assimp/scripts/StepImporter/schema_ap203e2_mim_lf.exp

16379 lines
634 KiB
Plaintext

(*
$Id: mim_lf.exp,v 1.43 2009/09/10 20:08:09 darla Exp $
ISO TC184/SC4/WG3 N2635 - ISO/TS 10303-403 AP203 configuration controlled 3d design of mechanical parts and assemblies - EXPRESS MIM Long form
Supersedes ISO TC184/SC4/WG3 N2464
*)
SCHEMA Ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies_mim_lf;
CONSTANT
deprecated_constructed_data_types : SET [0:?] OF STRING := ['approved_item',
'certified_item',
'change_request_item',
'contracted_item',
'cc_classified_item',
'date_time_item',
'cc_person_organization_item',
'cc_specified_item',
'start_request_item',
'work_item'];
deprecated_entity_data_types : SET [0:?] OF STRING := ['cc_design_approval',
'cc_design_certification',
'cc_design_contract',
'cc_design_date_and_time_assignment',
'cc_design_person_and_organization_assignment',
'cc_design_security_classification',
'cc_design_specification_reference',
'change',
'change_request',
'design_context',
'design_make_from_relationship',
'mechanical_context',
'start_request',
'start_work',
'supplied_part_relationship'];
deprecated_interfaced_data_types : SET [0:?] OF STRING := ['document_with_class',
'ordinal_date',
'product_definition_formation_with_specified_source',
'week_of_year_and_day_date'];
dummy_gri : geometric_representation_item := representation_item('')||
geometric_representation_item();
dummy_tri : topological_representation_item := representation_item('')||
topological_representation_item();
pre_defined_picture_representation_types : SET [0:?] OF STRING := [ 'JPEG', 'PNG', 'TIFF', 'BMP', 'GIF'];
END_CONSTANT;
TYPE absorbed_dose_measure = REAL;
END_TYPE;
TYPE acceleration_measure = REAL;
END_TYPE;
TYPE action_items = SELECT (
action_directive,
certification_item,
characterized_object,
classification_item,
configuration_effectivity,
document_reference_item,
identification_item,
organization,
person_and_organization,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
requirement_assigned_item);
END_TYPE;
TYPE action_method_items = SELECT (
product,
product_definition_formation);
END_TYPE;
TYPE action_request_item = SELECT (
product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
property_definition,
versioned_action_request);
END_TYPE;
TYPE ahead_or_behind = ENUMERATION OF (
ahead,
exact,
behind );
END_TYPE;
TYPE amount_of_substance_measure = REAL;
END_TYPE;
TYPE angle_direction_reference_select = SELECT (
direction,
curve,
point_path);
END_TYPE;
TYPE angle_direction_reference_with_a2p3d_select = SELECT (
angle_direction_reference_select,
axis2_placement_3d);
END_TYPE;
TYPE angle_relator = ENUMERATION OF (
equal,
large,
small );
END_TYPE;
TYPE annotation_plane_element = SELECT (
draughting_callout,
styled_item);
END_TYPE;
TYPE annotation_representation_select = SELECT (
presentation_area,
presentation_view,
symbol_representation);
END_TYPE;
TYPE annotation_symbol_occurrence_item = SELECT (
annotation_symbol,
defined_symbol);
END_TYPE;
TYPE annotation_text_occurrence_item = SELECT (
text_literal,
annotation_text,
annotation_text_character,
composite_text);
END_TYPE;
TYPE approval_item = SELECT (
action,
action_directive,
alternate_product_relationship,
applied_action_assignment,
applied_usage_right,
assembly_component_usage_substitute,
certification,
configuration_effectivity,
configuration_item,
contract,
date,
directed_action,
document,
document_file,
effectivity,
executed_action,
general_property_relationship,
group,
group_relationship,
information_usage_right,
product,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
representation,
requirement_assignment,
security_classification,
shape_aspect_relationship,
versioned_action_request);
END_TYPE;
TYPE approved_item = SELECT (
certification,
change,
change_request,
configuration_effectivity,
configuration_item,
contract,
product,
security_classification,
start_request,
start_work);
END_TYPE;
TYPE area_measure = REAL;
END_TYPE;
TYPE area_or_view = SELECT (
presentation_area,
presentation_view);
END_TYPE;
TYPE attribute_classification_item = SELECT (
action_directive,
action_method,
action_property,
action_property_representation,
action_relationship,
action_request_solution,
action_request_status,
alternate_product_relationship,
applied_action_assignment,
applied_action_request_assignment,
applied_approval_assignment,
applied_certification_assignment,
applied_document_reference,
applied_document_usage_constraint_assignment,
applied_effectivity_assignment,
applied_event_occurrence_assignment,
applied_external_identification_assignment,
applied_identification_assignment,
applied_organization_assignment,
applied_organizational_project_assignment,
applied_person_and_organization_assignment,
approval,
approval_person_organization,
approval_relationship,
approval_status,
certification,
context_dependent_unit,
contract,
date_and_time_assignment,
date_assignment,
derived_unit,
descriptive_representation_item,
document_file,
document_relationship,
effectivity,
event_occurrence_relationship,
executed_action,
general_property,
general_property_relationship,
group,
group_relationship,
information_right,
information_usage_right,
language,
measure_representation_item,
measure_with_unit,
named_unit,
organization_relationship,
organizational_address,
organizational_project_relationship,
person_and_organization,
person_and_organization_address,
product,
product_category,
product_concept,
product_concept_context,
product_definition,
product_definition_context,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
property_definition,
property_definition_relationship,
property_definition_representation,
representation,
representation_context,
representation_item,
security_classification,
time_interval_relationship,
uncertainty_measure_with_unit,
usage_association,
versioned_action_request);
END_TYPE;
TYPE attribute_language_item = SELECT (
alternate_product_relationship,
application_context,
applied_certification_assignment,
applied_document_reference,
applied_document_usage_constraint_assignment,
applied_external_identification_assignment,
applied_identification_assignment,
applied_organizational_project_assignment,
applied_security_classification_assignment,
approval,
approval_relationship,
approval_status,
assembly_component_usage_substitute,
attribute_value_assignment,
certification,
certification_type,
configuration_design,
configuration_item,
contract,
date_role,
date_time_role,
descriptive_representation_item,
document_relationship,
document_usage_role,
effectivity,
effectivity_relationship,
event_occurrence,
external_source,
general_property,
general_property_relationship,
geometric_representation_item,
geometric_tolerance,
identification_role,
information_right,
information_usage_right,
make_from_usage_option,
mapped_item,
multi_language_attribute_assignment,
object_role,
organization_relationship,
organization_role,
organizational_project,
organizational_project_relationship,
organizational_project_role,
person_and_organization,
person_and_organization_role,
product,
product_concept,
product_concept_relationship,
product_definition,
product_definition_context,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
product_definition_shape,
product_related_product_category,
property_definition,
representation,
security_classification,
security_classification_assignment,
shape_aspect,
shape_aspect_relationship,
shape_representation,
time_interval_role,
topological_representation_item,
uncertainty_measure_with_unit,
uncertainty_qualifier,
usage_association);
END_TYPE;
TYPE attribute_type = SELECT (
label,
text);
END_TYPE;
TYPE axis2_placement = SELECT (
axis2_placement_2d,
axis2_placement_3d);
END_TYPE;
TYPE b_spline_curve_form = ENUMERATION OF (
polyline_form,
circular_arc,
elliptic_arc,
parabolic_arc,
hyperbolic_arc,
unspecified );
END_TYPE;
TYPE b_spline_surface_form = ENUMERATION OF (
plane_surf,
cylindrical_surf,
conical_surf,
spherical_surf,
toroidal_surf,
surf_of_revolution,
ruled_surf,
generalised_cone,
quadric_surf,
surf_of_linear_extrusion,
unspecified );
END_TYPE;
TYPE base_solid_select = SELECT (
solid_model,
csg_primitive,
boolean_result);
WHERE
WR1 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRIMITIVE_2D' IN TYPEOF(SELF));
END_TYPE;
TYPE blend_end_condition_select = SELECT (
point_on_curve,
edge_curve,
vertex);
END_TYPE;
TYPE blend_radius_variation_type = ENUMERATION OF (
linear_blend,
cubic_blend,
unspecified_blend );
END_TYPE;
TYPE boolean_operand = SELECT (
solid_model,
half_space_solid,
csg_primitive,
boolean_result);
END_TYPE;
TYPE boolean_operator = ENUMERATION OF (
union,
intersection,
difference );
END_TYPE;
TYPE box_characteristic_select = SELECT (
box_height,
box_width,
box_slant_angle,
box_rotate_angle);
END_TYPE;
TYPE box_height = positive_ratio_measure;
END_TYPE;
TYPE box_rotate_angle = plane_angle_measure;
END_TYPE;
TYPE box_slant_angle = plane_angle_measure;
END_TYPE;
TYPE box_width = positive_ratio_measure;
END_TYPE;
TYPE camera_model_d3_multi_clipping_interection_select = SELECT (
camera_model_d3_multi_clipping_union,
plane);
END_TYPE;
TYPE camera_model_d3_multi_clipping_union_select = SELECT (
camera_model_d3_multi_clipping_intersection,
plane);
END_TYPE;
TYPE capacitance_measure = REAL;
END_TYPE;
TYPE category_usage_item = SELECT (
product_class);
END_TYPE;
TYPE cc_classified_item = SELECT (
assembly_component_usage,
product_definition_formation);
END_TYPE;
TYPE cc_person_organization_item = SELECT (
change,
change_request,
configuration_item,
contract,
product,
product_definition,
product_definition_formation,
security_classification,
start_request,
start_work);
END_TYPE;
TYPE cc_specified_item = SELECT (
product_definition,
shape_aspect);
END_TYPE;
TYPE celsius_temperature_measure = REAL;
END_TYPE;
TYPE central_or_parallel = ENUMERATION OF (
central,
parallel );
END_TYPE;
TYPE certification_item = SELECT (
alternate_product_relationship,
make_from_usage_option,
product_definition_formation,
product_definition_formation_relationship);
END_TYPE;
TYPE certified_item = SELECT (
supplied_part_relationship);
END_TYPE;
TYPE change_request_item = SELECT (
product_definition_formation);
END_TYPE;
TYPE character_spacing_select = SELECT (
length_measure,
ratio_measure,
measure_with_unit,
descriptive_measure);
END_TYPE;
TYPE character_style_select = SELECT (
character_glyph_style_stroke,
character_glyph_style_outline,
text_style_for_defined_font);
END_TYPE;
TYPE characterized_action_definition = SELECT (
action,
action_method,
action_method_relationship,
action_relationship);
END_TYPE;
TYPE characterized_definition = SELECT (
characterized_object,
characterized_product_definition,
shape_definition);
END_TYPE;
TYPE characterized_material_property = SELECT (
material_property_representation,
product_material_composition_relationship);
END_TYPE;
TYPE characterized_product_composition_value = SELECT (
measure_with_unit);
END_TYPE;
TYPE characterized_product_definition = SELECT (
product_definition,
product_definition_relationship);
END_TYPE;
TYPE class_usage_effectivity_context_item = SELECT (
product_definition);
END_TYPE;
TYPE classification_item = SELECT (
action,
action_directive,
action_method,
action_property,
action_relationship,
action_request_solution,
action_request_status,
address,
alternate_product_relationship,
applied_action_assignment,
applied_action_request_assignment,
applied_approval_assignment,
applied_certification_assignment,
applied_contract_assignment,
applied_date_and_time_assignment,
applied_date_assignment,
applied_document_reference,
applied_document_usage_constraint_assignment,
applied_effectivity_assignment,
applied_event_occurrence_assignment,
applied_external_identification_assignment,
applied_identification_assignment,
applied_organization_assignment,
applied_organizational_project_assignment,
applied_person_and_organization_assignment,
applied_security_classification_assignment,
approval,
approval_person_organization,
approval_relationship,
approval_status,
assembly_component_usage_substitute,
calendar_date,
certification,
characterized_class,
characterized_object,
class,
classified_item,
configuration_item,
context_dependent_unit,
contract,
conversion_based_unit,
date_and_time,
date_and_time_assignment,
date_assignment,
derived_unit,
descriptive_representation_item,
directed_action,
document_file,
document_relationship,
effectivity,
event_occurrence,
executed_action,
general_property,
general_property_relationship,
group,
identification_assignment,
information_right,
information_usage_right,
language,
measure_representation_item,
measure_with_unit,
multi_language_attribute_assignment,
named_unit,
organization,
organization_relationship,
organizational_address,
organizational_project,
organizational_project_relationship,
person,
person_and_organization_address,
product,
product_concept,
product_definition,
product_definition_context,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
property_definition,
property_definition_representation,
representation,
representation_context,
representation_item,
security_classification,
uncertainty_measure_with_unit,
usage_association,
versioned_action_request);
END_TYPE;
TYPE classified_item = SELECT (
product,
product_definition,
product_definition_formation);
END_TYPE;
TYPE compound_item_definition = SELECT (
list_representation_item,
set_representation_item);
END_TYPE;
TYPE conductance_measure = REAL;
END_TYPE;
TYPE configuration_design_item = SELECT (
product_definition,
product_definition_formation);
END_TYPE;
TYPE configured_effectivity_context_item = SELECT (
product_concept_feature_association);
END_TYPE;
TYPE configured_effectivity_item = SELECT (
product_definition);
END_TYPE;
TYPE constructive_geometry_representation_or_shape_represenation = SELECT (
constructive_geometry_representation,
shape_representation);
END_TYPE;
TYPE context_dependent_measure = REAL;
END_TYPE;
TYPE contract_item = SELECT (
action_directive,
alternate_product_relationship,
directed_action,
executed_action,
information_usage_right,
organization,
person_and_organization,
product,
product_definition_formation);
END_TYPE;
TYPE contracted_item = SELECT (
product_definition_formation);
END_TYPE;
TYPE count_measure = NUMBER;
END_TYPE;
TYPE csg_primitive = SELECT (
sphere,
block,
right_angular_wedge,
torus,
right_circular_cone,
right_circular_cylinder);
END_TYPE;
TYPE csg_select = SELECT (
boolean_result,
csg_primitive);
END_TYPE;
TYPE curve_font_or_scaled_curve_font_select = SELECT (
curve_style_font_select,
curve_style_font_and_scaling);
END_TYPE;
TYPE curve_on_surface = SELECT (
pcurve,
surface_curve,
composite_curve_on_surface);
END_TYPE;
TYPE curve_or_annotation_curve_occurrence = SELECT (
curve,
annotation_curve_occurrence);
END_TYPE;
TYPE curve_or_render = SELECT (
curve_style,
curve_style_rendering);
END_TYPE;
TYPE curve_style_font_select = SELECT (
curve_style_font,
pre_defined_curve_font,
externally_defined_curve_font);
END_TYPE;
TYPE date_and_time_item = SELECT (
action,
action_directive,
applied_action_assignment,
applied_organization_assignment,
applied_person_and_organization_assignment,
applied_security_classification_assignment,
approval_person_organization,
certification,
contract,
directed_action,
document,
document_file,
event_occurrence,
executed_action,
information_usage_right,
organizational_project,
product_definition,
product_definition_formation,
product_definition_relationship,
rule_action,
security_classification,
versioned_action_request);
END_TYPE;
TYPE date_item = SELECT (
action,
action_directive,
applied_action_assignment,
applied_organization_assignment,
applied_person_and_organization_assignment,
applied_security_classification_assignment,
approval_person_organization,
certification,
contract,
directed_action,
document,
document_file,
event_occurrence,
executed_action,
information_usage_right,
organizational_project,
product_definition,
product_definition_formation,
product_definition_relationship,
security_classification,
versioned_action_request);
END_TYPE;
TYPE date_time_item = SELECT (
approval_person_organization,
certification,
change,
change_request,
contract,
product_definition,
security_classification,
start_request,
start_work);
END_TYPE;
TYPE date_time_or_event_occurrence = SELECT (
date_time_select,
event_occurrence);
END_TYPE;
TYPE date_time_select = SELECT (
date,
date_and_time,
local_time);
END_TYPE;
TYPE day_in_month_number = INTEGER;
WHERE
WR1 : {1 <= SELF <= 31};
END_TYPE;
TYPE day_in_week_number = INTEGER;
WHERE
WR1 : { 1 <= SELF <= 7 };
END_TYPE;
TYPE day_in_year_number = INTEGER;
WHERE
WR1 : {1 <= SELF <= 366};
END_TYPE;
TYPE defined_symbol_select = SELECT (
pre_defined_symbol,
externally_defined_symbol);
END_TYPE;
TYPE derived_property_select = SELECT (
property_definition,
action_property);
END_TYPE;
TYPE description_attribute_select = SELECT (
action_request_solution,
application_context,
approval_role,
configuration_design,
date_role,
date_time_role,
context_dependent_shape_representation,
effectivity,
external_source,
organization_role,
person_and_organization_role,
person_and_organization,
property_definition_representation,
representation);
END_TYPE;
TYPE descriptive_measure = STRING;
END_TYPE;
TYPE dimension_count = INTEGER;
WHERE
WR1 : SELF > 0;
END_TYPE;
TYPE dimension_extent_usage = ENUMERATION OF (
origin,
target );
END_TYPE;
TYPE dimensional_characteristic = SELECT (
dimensional_location,
dimensional_size);
END_TYPE;
TYPE direction_count_select = SELECT (
u_direction_count,
v_direction_count);
END_TYPE;
TYPE document_identifier_assigned_item = SELECT (
document);
END_TYPE;
TYPE document_reference_item = SELECT (
action_method,
applied_external_identification_assignment,
assembly_component_usage,
characterized_class,
characterized_object,
configuration_item,
descriptive_representation_item,
dimensional_size,
executed_action,
externally_defined_dimension_definition,
externally_defined_item,
group,
group_relationship,
information_right,
information_usage_right,
material_designation,
measure_representation_item,
product,
product_category,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
property_definition,
representation,
representation_item,
rule_set,
shape_aspect,
shape_aspect_relationship,
usage_association,
versioned_action_request);
END_TYPE;
TYPE dose_equivalent_measure = REAL;
END_TYPE;
TYPE draughting_callout_element = SELECT (
annotation_text_occurrence,
annotation_symbol_occurrence,
annotation_curve_occurrence);
END_TYPE;
TYPE draughting_model_item_association_select = SELECT (
annotation_occurrence,
draughting_callout);
END_TYPE;
TYPE draughting_model_item_select = SELECT (
mapped_item,
styled_item,
axis2_placement,
camera_model,
draughting_callout);
END_TYPE;
TYPE draughting_titled_item = SELECT (
drawing_revision,
drawing_sheet_revision);
END_TYPE;
TYPE effectivity_item = SELECT (
assembly_component_usage_substitute,
product,
product_definition,
product_definition_formation,
product_definition_relationship,
product_definition_substitute);
END_TYPE;
TYPE electric_charge_measure = REAL;
END_TYPE;
TYPE electric_current_measure = REAL;
END_TYPE;
TYPE electric_potential_measure = REAL;
END_TYPE;
TYPE energy_measure = REAL;
END_TYPE;
TYPE event_occurrence_item = SELECT (
organizational_project);
END_TYPE;
TYPE external_identification_item = SELECT (
action_relationship,
action_request_status,
applied_organization_assignment,
applied_person_and_organization_assignment,
approval,
approval_status,
date_and_time_assignment,
date_assignment,
document_file,
external_source,
externally_defined_class,
externally_defined_context_dependent_unit,
externally_defined_conversion_based_unit,
externally_defined_general_property,
externally_defined_picture_representation_item,
externally_defined_representation_item,
organizational_address,
product_definition,
security_classification,
trimmed_curve,
versioned_action_request);
END_TYPE;
TYPE fill_area_style_tile_shape_select = SELECT (
fill_area_style_tile_curve_with_style,
fill_area_style_tile_coloured_region,
fill_area_style_tile_symbol_with_style,
pre_defined_tile,
externally_defined_tile);
END_TYPE;
TYPE fill_style_select = SELECT (
fill_area_style_colour,
externally_defined_tile_style,
fill_area_style_tiles,
externally_defined_hatch_style,
fill_area_style_hatching);
END_TYPE;
TYPE font_select = SELECT (
pre_defined_text_font,
externally_defined_text_font,
text_font);
END_TYPE;
TYPE force_measure = REAL;
END_TYPE;
TYPE founded_item_select = SELECT (
founded_item,
representation_item);
END_TYPE;
TYPE frequency_measure = REAL;
END_TYPE;
TYPE generalized_surface_select = SELECT (
surface,
face_surface,
surfaced_open_shell);
END_TYPE;
TYPE geometric_item_specific_usage_select = SELECT (
shape_aspect,
shape_aspect_relationship);
END_TYPE;
TYPE geometric_set_select = SELECT (
point,
curve,
surface);
END_TYPE;
TYPE groupable_item = SELECT (
geometric_representation_item,
group_relationship,
mapped_item,
package_product_concept_feature,
product_concept_feature,
product_definition,
product_definition_formation,
property_definition_representation,
representation,
representation_item,
representation_relationship_with_transformation,
shape_aspect,
shape_aspect_relationship,
shape_representation_relationship,
styled_item,
topological_representation_item);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GROUP' IN TYPEOF(SELF));
END_TYPE;
TYPE hour_in_day = INTEGER;
WHERE
WR1 : { 0 <= SELF < 24 };
END_TYPE;
TYPE id_attribute_select = SELECT (
action,
address,
product_category,
property_definition,
shape_aspect,
shape_aspect_relationship,
application_context,
group,
organizational_project,
representation);
END_TYPE;
TYPE identification_item = SELECT (
approval_status,
characterized_class,
class,
configuration_item,
contract,
dimensional_size,
document_file,
general_property,
group,
group_relationship,
information_right,
information_usage_right,
material_designation,
organization,
person_and_organization,
product,
product_category,
product_class,
product_concept,
product_concept_feature,
product_definition,
product_definition_formation,
product_identification,
representation,
rule_set,
security_classification,
security_classification_level,
shape_aspect_relationship,
shape_representation,
usage_association);
END_TYPE;
TYPE identifier = STRING;
END_TYPE;
TYPE illuminance_measure = REAL;
END_TYPE;
TYPE inductance_measure = REAL;
END_TYPE;
TYPE instance_usage_context_select = SELECT (
product_definition_relationship,
product_definition_usage);
END_TYPE;
TYPE invisibility_context = SELECT (
draughting_model,
presentation_representation,
presentation_set);
END_TYPE;
TYPE invisible_item = SELECT (
draughting_callout,
presentation_layer_assignment,
representation,
styled_item);
END_TYPE;
TYPE ir_usage_item = action_items;
WHERE
wr1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONFIGURATION_EFFECTIVITY' IN TYPEOF(SELF));
END_TYPE;
TYPE knot_type = ENUMERATION OF (
uniform_knots,
quasi_uniform_knots,
piecewise_bezier_knots,
unspecified );
END_TYPE;
TYPE label = STRING;
END_TYPE;
TYPE layered_item = SELECT (
presentation_representation,
representation_item);
END_TYPE;
TYPE length_measure = REAL;
END_TYPE;
TYPE limit_condition = ENUMERATION OF (
maximum_material_condition,
least_material_condition,
regardless_of_feature_size );
END_TYPE;
TYPE list_of_reversible_topology_item = LIST [0:?] OF reversible_topology_item;
END_TYPE;
TYPE list_representation_item = LIST [1:?] OF representation_item;
END_TYPE;
TYPE luminous_flux_measure = REAL;
END_TYPE;
TYPE luminous_intensity_measure = REAL;
END_TYPE;
TYPE magnetic_flux_density_measure = REAL;
END_TYPE;
TYPE magnetic_flux_measure = REAL;
END_TYPE;
TYPE marker_select = SELECT (
marker_type,
pre_defined_marker);
END_TYPE;
TYPE marker_type = ENUMERATION OF (
dot,
x,
plus,
asterisk,
ring,
square,
triangle );
END_TYPE;
TYPE mass_measure = REAL;
END_TYPE;
TYPE measure_value = SELECT (
absorbed_dose_measure,
dose_equivalent_measure,
radioactivity_measure,
acceleration_measure,
amount_of_substance_measure,
area_measure,
celsius_temperature_measure,
context_dependent_measure,
count_measure,
descriptive_measure,
capacitance_measure,
electric_charge_measure,
conductance_measure,
electric_current_measure,
electric_potential_measure,
energy_measure,
magnetic_flux_density_measure,
force_measure,
frequency_measure,
illuminance_measure,
inductance_measure,
length_measure,
luminous_flux_measure,
luminous_intensity_measure,
magnetic_flux_measure,
mass_measure,
numeric_measure,
non_negative_length_measure,
parameter_value,
plane_angle_measure,
positive_length_measure,
positive_plane_angle_measure,
positive_ratio_measure,
power_measure,
pressure_measure,
ratio_measure,
resistance_measure,
solid_angle_measure,
thermodynamic_temperature_measure,
time_measure,
velocity_measure,
volume_measure);
END_TYPE;
TYPE mechanical_design_and_draughting_relationship_select = SELECT (
draughting_model,
mechanical_design_geometric_presentation_representation,
mechanical_design_presentation_representation_with_draughting,
mechanical_design_shaded_presentation_representation,
shape_representation);
END_TYPE;
TYPE mechanical_design_geometric_presentation_area_items = SELECT (
axis2_placement,
mapped_item);
END_TYPE;
TYPE mechanical_design_geometric_presentation_representation_items = SELECT (
axis2_placement,
camera_model_d3,
mapped_item,
styled_item);
END_TYPE;
TYPE message = STRING;
END_TYPE;
TYPE minute_in_hour = INTEGER;
WHERE
WR1 : { 0 <= SELF <= 59 };
END_TYPE;
TYPE month_in_year_number = INTEGER;
WHERE
WR1 : { 1 <= SELF <= 12 };
END_TYPE;
TYPE multi_language_attribute_item = SELECT (
alternate_product_relationship,
application_context,
applied_certification_assignment,
applied_document_reference,
applied_document_usage_constraint_assignment,
applied_external_identification_assignment,
applied_identification_assignment,
applied_organizational_project_assignment,
approval,
approval_relationship,
approval_status,
assembly_component_usage_substitute,
attribute_value_assignment,
certification,
certification_type,
colour,
configuration_design,
configuration_item,
contract,
date_role,
date_time_role,
descriptive_representation_item,
document_relationship,
document_usage_role,
effectivity,
effectivity_relationship,
event_occurrence,
external_source,
general_property,
general_property_relationship,
geometric_representation_item,
geometric_tolerance,
identification_role,
information_right,
information_usage_right,
make_from_usage_option,
mapped_item,
object_role,
organization_relationship,
organization_role,
organizational_project,
organizational_project_relationship,
organizational_project_role,
person_and_organization,
person_and_organization_role,
product,
product_concept,
product_concept_relationship,
product_definition,
product_definition_context,
product_definition_formation,
product_definition_formation_relationship,
product_definition_relationship,
product_definition_shape,
product_related_product_category,
property_definition,
representation,
representation_relationship,
security_classification,
security_classification_assignment,
shape_aspect,
shape_aspect_relationship,
shape_representation,
time_interval_role,
topological_representation_item,
uncertainty_measure_with_unit,
usage_association);
END_TYPE;
TYPE name_attribute_select = SELECT (
action_request_solution,
address,
configuration_design,
context_dependent_shape_representation,
derived_unit,
effectivity,
person_and_organization,
product_definition,
product_definition_substitute,
property_definition_representation);
END_TYPE;
TYPE name_item = SELECT (
assembly_component_usage,
external_class_library,
group,
group_relationship,
product,
product_definition);
END_TYPE;
TYPE non_negative_length_measure = length_measure;
WHERE
WR1 : SELF >= 0.0;
END_TYPE;
TYPE nonnegative_integer = INTEGER;
WHERE
nonnegativity : SELF >= 0;
END_TYPE;
TYPE null_style = ENUMERATION OF (
null );
END_TYPE;
TYPE numeric_measure = NUMBER;
END_TYPE;
TYPE organization_item = SELECT (
action,
action_directive,
alternate_product_relationship,
applied_action_assignment,
applied_classification_assignment,
applied_identification_assignment,
applied_security_classification_assignment,
approval,
assembly_component_usage_substitute,
certification,
class,
configuration_item,
contract,
document_file,
executed_action,
general_property,
information_usage_right,
organizational_project,
product,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
property_definition,
rule_action,
security_classification,
shape_representation,
versioned_action_request);
END_TYPE;
TYPE orientation_basis_select = SELECT (
axis2_placement_3d,
min_and_major_ply_orientation_basis);
END_TYPE;
TYPE parameter_value = REAL;
END_TYPE;
TYPE pcurve_or_surface = SELECT (
pcurve,
surface);
END_TYPE;
TYPE person_and_organization_item = SELECT (
action,
action_directive,
alternate_product_relationship,
applied_action_assignment,
applied_classification_assignment,
applied_identification_assignment,
applied_security_classification_assignment,
approval,
assembly_component_usage_substitute,
certification,
configuration_item,
contract,
document_file,
executed_action,
general_property,
information_usage_right,
organizational_project,
person_and_organization,
product,
product_definition,
product_definition_formation,
product_definition_formation_relationship,
property_definition,
rule_action,
security_classification,
shape_representation,
versioned_action_request);
END_TYPE;
TYPE person_organization_select = SELECT (
person,
organization,
person_and_organization);
END_TYPE;
TYPE picture_representation_item_select = SELECT (
styled_item,
planar_box,
axis2_placement_2d);
END_TYPE;
TYPE plane_angle_measure = REAL;
END_TYPE;
TYPE plane_or_planar_box = SELECT (
plane,
planar_box);
END_TYPE;
TYPE point_and_vector_member = SELECT (
point,
direction);
END_TYPE;
TYPE point_and_vector_members = LIST [2:3] OF point_and_vector_member;
END_TYPE;
TYPE point_path_members = LIST [1:?] OF point_and_vector;
END_TYPE;
TYPE positive_integer = nonnegative_integer;
WHERE
positivity : SELF > 0;
END_TYPE;
TYPE positive_length_measure = non_negative_length_measure;
WHERE
WR1 : SELF > 0.0;
END_TYPE;
TYPE positive_plane_angle_measure = plane_angle_measure;
WHERE
WR1 : SELF > 0.0;
END_TYPE;
TYPE positive_ratio_measure = ratio_measure;
WHERE
WR1 : SELF > 0.0;
END_TYPE;
TYPE power_measure = REAL;
END_TYPE;
TYPE preferred_surface_curve_representation = ENUMERATION OF (
curve_3d,
pcurve_s1,
pcurve_s2 );
END_TYPE;
TYPE presentable_text = STRING;
WHERE
WR1 : control_characters_free(SELF);
END_TYPE;
TYPE presentation_representation_select = SELECT (
presentation_representation,
presentation_set);
END_TYPE;
TYPE presentation_size_assignment_select = SELECT (
presentation_view,
presentation_area,
area_in_set);
END_TYPE;
TYPE presentation_style_select = SELECT (
point_style,
curve_style,
surface_style_usage,
symbol_style,
fill_area_style,
text_style,
null_style);
END_TYPE;
TYPE presented_item_select = SELECT (
action,
action_method,
action_relationship,
product_concept,
product_concept_feature,
product_concept_feature_category,
product_definition,
product_definition_formation,
product_definition_relationship);
END_TYPE;
TYPE pressure_measure = REAL;
END_TYPE;
TYPE product_definition_or_assembly_relationship = SELECT (
assembly_component_usage,
product_definition);
END_TYPE;
TYPE product_definition_or_breakdown_element_usage = SELECT (
product_definition,
product_definition_usage);
END_TYPE;
TYPE product_definition_or_product_definition_relationship = SELECT (
product_definition,
product_definition_usage);
END_TYPE;
TYPE product_or_formation_or_definition = SELECT (
product,
product_definition_formation,
product_definition);
END_TYPE;
TYPE project_item = SELECT (
executed_action,
product_concept);
END_TYPE;
TYPE radioactivity_measure = REAL;
END_TYPE;
TYPE ratio_measure = REAL;
END_TYPE;
TYPE rendering_properties_select = SELECT (
surface_style_reflectance_ambient,
surface_style_transparent);
END_TYPE;
TYPE represented_definition = SELECT (
general_property,
property_definition,
property_definition_relationship,
shape_aspect,
shape_aspect_relationship);
END_TYPE;
TYPE requirement_assigned_item = SELECT (
configuration_item,
descriptive_representation_item,
product,
product_class,
product_definition,
product_definition_formation,
product_definition_relationship,
representation,
shape_aspect);
END_TYPE;
TYPE requirement_satisfaction_item = SELECT (
requirement_assigned_item);
END_TYPE;
TYPE requirement_source_item = SELECT (
characterized_object,
group,
group_relationship,
product,
product_definition,
product_definition_formation,
product_definition_relationship,
shape_aspect);
END_TYPE;
TYPE resistance_measure = REAL;
END_TYPE;
TYPE reversible_topology = SELECT (
reversible_topology_item,
list_of_reversible_topology_item,
set_of_reversible_topology_item);
END_TYPE;
TYPE reversible_topology_item = SELECT (
edge,
path,
face,
face_bound,
closed_shell,
open_shell);
END_TYPE;
TYPE role_select = SELECT (
action_assignment,
action_request_assignment,
approval_assignment,
approval_date_time,
certification_assignment,
contract_assignment,
document_reference,
effectivity_assignment,
group_assignment,
name_assignment,
security_classification_assignment);
END_TYPE;
TYPE rule_superseded_item = SELECT (
product_definition_formation);
END_TYPE;
TYPE second_in_minute = REAL;
WHERE
WR1 : { 0 <= SELF <= 60.0 };
END_TYPE;
TYPE security_classification_item = SELECT (
assembly_component_usage,
document,
document_file,
make_from_usage_option,
product,
product_definition,
product_definition_formation,
product_definition_usage);
END_TYPE;
TYPE set_of_reversible_topology_item = SET [0:?] OF reversible_topology_item;
END_TYPE;
TYPE set_representation_item = SET [1:?] OF representation_item;
END_TYPE;
TYPE shading_curve_method = ENUMERATION OF (
constant_colour,
linear_colour );
END_TYPE;
TYPE shading_surface_method = ENUMERATION OF (
constant_shading,
colour_shading,
dot_shading,
normal_shading );
END_TYPE;
TYPE shape_definition = SELECT (
product_definition_shape,
shape_aspect,
shape_aspect_relationship);
END_TYPE;
TYPE shell = SELECT (
vertex_shell,
wire_shell,
open_shell,
closed_shell);
END_TYPE;
TYPE si_prefix = ENUMERATION OF (
exa,
peta,
tera,
giga,
mega,
kilo,
hecto,
deca,
deci,
centi,
milli,
micro,
nano,
pico,
femto,
atto );
END_TYPE;
TYPE si_unit_name = ENUMERATION OF (
metre,
gram,
second,
ampere,
kelvin,
mole,
candela,
radian,
steradian,
hertz,
newton,
pascal,
joule,
watt,
coulomb,
volt,
farad,
ohm,
siemens,
weber,
tesla,
henry,
degree_Celsius,
lumen,
lux,
becquerel,
gray,
sievert );
END_TYPE;
TYPE size_select = SELECT (
positive_length_measure,
measure_with_unit,
descriptive_measure);
END_TYPE;
TYPE sketch_basis_select = SELECT (
curve_bounded_surface,
face_surface);
END_TYPE;
TYPE solid_angle_measure = REAL;
END_TYPE;
TYPE source = ENUMERATION OF (
made,
bought,
not_known );
END_TYPE;
TYPE source_item = SELECT (
identifier,
message);
END_TYPE;
TYPE start_request_item = SELECT (
product_definition_formation);
END_TYPE;
TYPE string_representation_item_select = SELECT (
descriptive_representation_item,
included_text_block,
structured_text_composition);
END_TYPE;
TYPE style_context_select = SELECT (
group,
presentation_layer_assignment,
presentation_set,
representation,
representation_item,
representation_relationship);
END_TYPE;
TYPE surface_side = ENUMERATION OF (
positive,
negative,
both );
END_TYPE;
TYPE surface_side_style_select = SELECT (
surface_side_style,
pre_defined_surface_side_style);
END_TYPE;
TYPE surface_style_element_select = SELECT (
surface_style_fill_area,
surface_style_boundary,
surface_style_silhouette,
surface_style_segmentation_curve,
surface_style_control_grid,
surface_style_parameter_line,
surface_style_rendering);
END_TYPE;
TYPE symbol_style_select = SELECT (
symbol_colour);
END_TYPE;
TYPE text = STRING;
END_TYPE;
TYPE text_alignment = label;
END_TYPE;
TYPE text_delineation = label;
END_TYPE;
TYPE text_or_character = SELECT (
annotation_text,
annotation_text_character,
composite_text,
text_literal);
END_TYPE;
TYPE text_path = ENUMERATION OF (
left,
right,
up,
down );
END_TYPE;
TYPE text_string_representation_item = SELECT (
text_literal,
annotation_text,
annotation_text_character,
composite_text,
axis2_placement);
END_TYPE;
TYPE thermodynamic_temperature_measure = REAL;
END_TYPE;
TYPE time_interval_item = SELECT (
action,
time_interval_based_effectivity);
END_TYPE;
TYPE time_measure = REAL;
END_TYPE;
TYPE tolerance_method_definition = SELECT (
tolerance_value,
limits_and_fits);
END_TYPE;
TYPE transformation = SELECT (
item_defined_transformation,
functionally_defined_transformation);
END_TYPE;
TYPE transition_code = ENUMERATION OF (
discontinuous,
continuous,
cont_same_gradient,
cont_same_gradient_same_curvature );
END_TYPE;
TYPE trim_condition_select = SELECT (
length_measure,
plane_angle_measure,
generalized_surface_select,
solid_model);
END_TYPE;
TYPE trim_intent = ENUMERATION OF (
blind,
offset,
through_all,
unspecified,
up_to_next );
END_TYPE;
TYPE trimming_preference = ENUMERATION OF (
cartesian,
parameter,
unspecified );
END_TYPE;
TYPE trimming_select = SELECT (
cartesian_point,
parameter_value);
END_TYPE;
TYPE u_direction_count = INTEGER;
WHERE
WR1 : SELF > 1;
END_TYPE;
TYPE unit = SELECT (
derived_unit,
named_unit);
END_TYPE;
TYPE v_direction_count = INTEGER;
WHERE
WR1 : SELF > 1;
END_TYPE;
TYPE value_qualifier = SELECT (
precision_qualifier,
type_qualifier,
uncertainty_qualifier);
END_TYPE;
TYPE vector_or_direction = SELECT (
vector,
direction);
END_TYPE;
TYPE velocity_measure = REAL;
END_TYPE;
TYPE volume_measure = REAL;
END_TYPE;
TYPE week_in_year_number = INTEGER;
WHERE
WR1 : { 1 <= SELF <= 53 };
END_TYPE;
TYPE work_item = SELECT (
product_definition_formation);
END_TYPE;
TYPE year_number = INTEGER;
END_TYPE;
ENTITY absorbed_dose_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY absorbed_dose_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.gray);
END_ENTITY;
ENTITY abstract_variable
SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item);
END_ENTITY;
ENTITY acceleration_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACCELERATION_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY acceleration_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) =
dimensional_exponents ( 1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0 );
END_ENTITY;
ENTITY action;
name : label;
description : OPTIONAL text;
chosen_method : action_method;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY action_assignment
ABSTRACT SUPERTYPE;
assigned_action : action;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY action_directive;
name : label;
description : OPTIONAL text;
analysis : text;
comment : text;
requests : SET [1:?] OF versioned_action_request;
END_ENTITY;
ENTITY action_method;
name : label;
description : OPTIONAL text;
consequence : text;
purpose : text;
END_ENTITY;
ENTITY action_method_assignment
ABSTRACT SUPERTYPE;
assigned_action_method : action_method;
role : action_method_role;
END_ENTITY;
ENTITY action_method_relationship;
name : label;
description : OPTIONAL text;
relating_method : action_method;
related_method : action_method;
END_ENTITY;
ENTITY action_method_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY action_property;
name : label;
description : text;
definition : characterized_action_definition;
END_ENTITY;
ENTITY action_property_representation;
name : label;
description : text;
property : action_property;
representation : representation;
END_ENTITY;
ENTITY action_relationship;
name : label;
description : OPTIONAL text;
relating_action : action;
related_action : action;
END_ENTITY;
ENTITY action_request_assignment
ABSTRACT SUPERTYPE;
assigned_action_request : versioned_action_request;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY action_request_solution;
method : action_method;
request : versioned_action_request;
DERIVE
description : text := get_description_value(SELF);
name : label := get_name_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
END_ENTITY;
ENTITY action_request_status;
status : label;
assigned_request : versioned_action_request;
END_ENTITY;
ENTITY action_status;
status : label;
assigned_action : executed_action;
END_ENTITY;
ENTITY address;
internal_location : OPTIONAL label;
street_number : OPTIONAL label;
street : OPTIONAL label;
postal_box : OPTIONAL label;
town : OPTIONAL label;
region : OPTIONAL label;
postal_code : OPTIONAL label;
country : OPTIONAL label;
facsimile_number : OPTIONAL label;
telephone_number : OPTIONAL label;
electronic_mail_address : OPTIONAL label;
telex_number : OPTIONAL label;
DERIVE
name : label := get_name_value(SELF);
url : identifier := get_id_value(SELF);
WHERE
WR1 : EXISTS(internal_location) OR EXISTS(street_number) OR EXISTS(street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS(region) OR EXISTS(postal_code) OR EXISTS(country) OR EXISTS(facsimile_number) OR EXISTS(telephone_number) OR EXISTS(electronic_mail_address) OR EXISTS(telex_number);
END_ENTITY;
ENTITY advanced_brep_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (
QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0;
WR2 : SIZEOF (
QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0;
WR3 : SIZEOF (
QUERY ( msb <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( csh <* msb_shells(msb)| NOT ( SIZEOF (
QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fcs)) )) = 0) )) = 0) )) = 0;
WR4 : SIZEOF (
QUERY ( msb <*
QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0;
WR5 : SIZEOF (
QUERY ( brv <*
QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( csh <* brv\brep_with_voids.voids| csh\oriented_closed_shell.orientation )) = 0) )) = 0;
WR6 : SIZEOF (
QUERY ( mi <*
QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
END_ENTITY;
ENTITY advanced_face
SUBTYPE OF (face_surface);
WHERE
WR1 : SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' ] * TYPEOF (face_geometry)) = 1;
WR2 : SIZEOF (
QUERY ( elp_fbnds <*
QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe\oriented_edge.edge_element)) )) = 0) )) = 0;
WR3 : SIZEOF (
QUERY ( elp_fbnds <*
QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (oe.edge_element\edge_curve.edge_geometry)) = 1) )) = 0) )) = 0;
WR4 : SIZEOF (
QUERY ( elp_fbnds <*
QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_end)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_end\vertex_point.vertex_geometry)))) )) = 0) )) = 0;
WR5 : SIZEOF (
QUERY ( elp_fbnds <*
QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (elp_fbnds.bound)) )) = 0;
WR6 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (face_geometry\swept_surface.swept_curve)) = 1);
WR7 : SIZEOF (
QUERY ( vlp_fbnds <*
QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) )| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\vertex_point.vertex_geometry))) )) = 0;
WR8 : SIZEOF (
QUERY ( bnd <* bounds| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' ] * TYPEOF (bnd.bound)) = 1) )) = 0;
WR9 : SIZEOF (
QUERY ( elp_fbnds <*
QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT ( SIZEOF (
QUERY ( sc_ag <* oe.edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF (sc_ag)) )) = 0) )) = 0) )) = 0;
WR10 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (face_geometry\swept_surface.swept_curve)) OR ( SIZEOF (face_geometry\swept_surface.swept_curve\polyline.points) >= 3))) AND ( SIZEOF (
QUERY ( elp_fbnds <*
QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT ( SIZEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry\polyline.points) >= 3) )) = 0) )) = 0);
END_ENTITY;
ENTITY alternate_product_relationship;
name : label;
definition : OPTIONAL text;
alternate : product;
base : product;
basis : text;
UNIQUE
UR1 : alternate, base;
WHERE
WR1 : alternate :<>: base;
END_ENTITY;
ENTITY amount_of_substance_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY amount_of_substance_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 1.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY angle_direction_reference
SUBTYPE OF (representation_item_relationship, geometric_representation_item);
SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select;
SELF\representation_item_relationship.relating_representation_item : orientation_basis_select;
WHERE
WR1 : ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF(relating_representation_item)))
OR
(NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(relating_representation_item))));
END_ENTITY;
ENTITY angular_dimension
SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY;
ENTITY angular_location
SUBTYPE OF (dimensional_location);
angle_selection : angle_relator;
END_ENTITY;
ENTITY angular_size
SUBTYPE OF (dimensional_size);
angle_selection : angle_relator;
END_ENTITY;
ENTITY angularity_tolerance
SUBTYPE OF (geometric_tolerance_with_datum_reference);
WHERE
WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) < 3;
END_ENTITY;
ENTITY annotation_curve_occurrence
SUBTYPE OF (annotation_occurrence);
SELF\styled_item.item : curve;
END_ENTITY;
ENTITY annotation_fill_area
SUBTYPE OF (geometric_representation_item);
boundaries : SET [1:?] OF curve;
WHERE
WR1 : (SELF\geometric_representation_item.dim = 3) OR (SIZEOF (QUERY (curve <* SELF.boundaries |
NOT (
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' IN TYPEOF (curve)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE' IN TYPEOF (curve)) OR
( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (curve))
AND (curve\b_spline_curve.closed_curve = TRUE) ) OR
( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (curve))
AND (curve\composite_curve.closed_curve = TRUE) ) OR
( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (curve))
AND (curve\polyline.points[LOINDEX(curve\polyline.points)] =
curve\polyline.points[HIINDEX(curve\polyline.points)]) )
) )) = 0);
END_ENTITY;
ENTITY annotation_fill_area_occurrence
SUBTYPE OF (annotation_occurrence);
fill_style_target : point;
SELF\styled_item.item : annotation_fill_area;
END_ENTITY;
ENTITY annotation_occurrence
SUPERTYPE OF (ONEOF (annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, annotation_symbol_occurrence))
SUBTYPE OF (styled_item);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN
TYPEOF (SELF);
WR2 : SIZEOF (QUERY (reps <* using_representations(SELF) |
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_REPRESENTATION_SELECT' IN TYPEOF(reps)))) = 0;
END_ENTITY;
ENTITY annotation_occurrence_associativity
SUBTYPE OF (annotation_occurrence_relationship);
WHERE
WR1 : SIZEOF (TYPEOF (SELF.related_annotation_occurrence) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE']) = 1;
END_ENTITY;
ENTITY annotation_occurrence_relationship;
name : label;
description : text;
relating_annotation_occurrence : annotation_occurrence;
related_annotation_occurrence : annotation_occurrence;
END_ENTITY;
ENTITY annotation_plane
SUBTYPE OF (annotation_occurrence, geometric_representation_item);
elements : OPTIONAL SET [1:?] OF annotation_plane_element;
SELF\styled_item.item : plane_or_planar_box;
WHERE
WR1 : SELF\geometric_representation_item.dim = 3;
WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\styled_item.item\planar_box.placement));
WR3 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'CURVE_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))) OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANE' IN TYPEOF(SELF\styled_item.item)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'FILL_AREA_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1])));
WR4 : (SIZEOF(SELF\styled_item.styles) = 1) AND
(SIZEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles) = 1);
END_ENTITY;
ENTITY annotation_subfigure_occurrence
SUBTYPE OF (annotation_symbol_occurrence);
WHERE
WR1 : SIZEOF (QUERY (sty <* SELF.styles |
NOT (SIZEOF (sty.styles) = 1)
)) = 0;
WR2 : SIZEOF (QUERY (sty <* SELF.styles |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NULL_STYLE'
IN TYPEOF (sty.styles[1])) ))=0;
WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL'
IN TYPEOF (SELF.item));
WR4 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION'
IN TYPEOF
(SELF.item\mapped_item.mapping_source.mapped_representation));
END_ENTITY;
ENTITY annotation_symbol
SUBTYPE OF (mapped_item);
SELF\mapped_item.mapping_source : symbol_representation_map;
SELF\mapped_item.mapping_target : symbol_target;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN
TYPEOF (SELF);
END_ENTITY;
ENTITY annotation_symbol_occurrence
SUBTYPE OF (annotation_occurrence);
SELF\styled_item.item : annotation_symbol_occurrence_item;
END_ENTITY;
ENTITY annotation_text
SUBTYPE OF (mapped_item);
SELF\mapped_item.mapping_target : axis2_placement;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STRING_REPRESENTATION' IN
TYPEOF( SELF\mapped_item.mapping_source.mapped_representation);
WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN
TYPEOF( SELF);
END_ENTITY;
ENTITY annotation_text_character
SUBTYPE OF (mapped_item);
alignment : text_alignment;
SELF\mapped_item.mapping_target : axis2_placement;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN
TYPEOF (SELF\mapped_item.mapping_source.mapped_representation);
WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN
TYPEOF (SELF);
END_ENTITY;
ENTITY annotation_text_occurrence
SUBTYPE OF (annotation_occurrence);
SELF\styled_item.item : annotation_text_occurrence_item;
END_ENTITY;
ENTITY apex
SUBTYPE OF (derived_shape_aspect);
END_ENTITY;
ENTITY application_context;
application : label;
DERIVE
description : text := get_description_value(SELF);
id : identifier := get_id_value(SELF);
INVERSE
context_elements: SET [1:?] OF application_context_element FOR frame_of_reference;
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY application_context_element
SUPERTYPE OF (ONEOF (product_concept_context, product_context, product_definition_context));
name : label;
frame_of_reference : application_context;
END_ENTITY;
ENTITY application_protocol_definition;
status : label;
application_interpreted_model_schema_name : label;
application_protocol_year : year_number;
application : application_context;
END_ENTITY;
ENTITY applied_action_assignment
SUBTYPE OF (action_assignment);
items : SET [1:?] OF action_items;
END_ENTITY;
ENTITY applied_action_method_assignment
SUBTYPE OF (action_method_assignment);
items : SET [1:?] OF action_method_items;
END_ENTITY;
ENTITY applied_action_request_assignment
SUBTYPE OF (action_request_assignment);
items : SET [1:?] OF action_request_item;
END_ENTITY;
ENTITY applied_approval_assignment
SUBTYPE OF (approval_assignment);
items : SET [1:?] OF approval_item;
END_ENTITY;
ENTITY applied_attribute_classification_assignment
SUBTYPE OF (attribute_classification_assignment);
items : SET [1:?] OF attribute_classification_item;
SELF\attribute_classification_assignment.assigned_class : class;
END_ENTITY;
ENTITY applied_certification_assignment
SUBTYPE OF (certification_assignment);
items : SET [1:?] OF certification_item;
END_ENTITY;
ENTITY applied_classification_assignment
SUBTYPE OF (classification_assignment);
items : SET [1:?] OF classification_item;
END_ENTITY;
ENTITY applied_contract_assignment
SUBTYPE OF (contract_assignment);
items : SET [1:?] OF contract_item;
END_ENTITY;
ENTITY applied_date_and_time_assignment
SUBTYPE OF (date_and_time_assignment);
items : SET [1:?] OF date_and_time_item;
END_ENTITY;
ENTITY applied_date_assignment
SUBTYPE OF (date_assignment);
items : SET [1:?] OF date_item;
END_ENTITY;
ENTITY applied_document_reference
SUBTYPE OF (document_reference);
items : SET [1:?] OF document_reference_item;
END_ENTITY;
ENTITY applied_document_usage_constraint_assignment
SUBTYPE OF (document_usage_constraint_assignment);
items : SET [1:?] OF document_reference_item;
END_ENTITY;
ENTITY applied_effectivity_assignment
SUBTYPE OF (effectivity_assignment);
items : SET [1:?] OF effectivity_item;
END_ENTITY;
ENTITY applied_event_occurrence_assignment
SUBTYPE OF (event_occurrence_assignment);
items : SET [1:?] OF event_occurrence_item;
END_ENTITY;
ENTITY applied_external_identification_assignment
SUBTYPE OF (external_identification_assignment);
items : SET [1:?] OF external_identification_item;
END_ENTITY;
ENTITY applied_group_assignment
SUBTYPE OF (group_assignment);
items : SET [1:?] OF groupable_item;
END_ENTITY;
ENTITY applied_identification_assignment
SUBTYPE OF (identification_assignment);
items : SET [1:?] OF identification_item;
END_ENTITY;
ENTITY applied_name_assignment
SUBTYPE OF (name_assignment);
item : name_item;
END_ENTITY;
ENTITY applied_organization_assignment
SUBTYPE OF (organization_assignment);
items : SET [1:?] OF organization_item;
END_ENTITY;
ENTITY applied_organizational_project_assignment
SUBTYPE OF (organizational_project_assignment);
items : SET [1:?] OF project_item;
END_ENTITY;
ENTITY applied_person_and_organization_assignment
SUBTYPE OF (person_and_organization_assignment);
items : SET [1:?] OF person_and_organization_item;
END_ENTITY;
ENTITY applied_presented_item
SUBTYPE OF (presented_item);
items : SET [1:?] OF presented_item_select;
END_ENTITY;
ENTITY applied_security_classification_assignment
SUBTYPE OF (security_classification_assignment);
items : SET [1:?] OF security_classification_item;
END_ENTITY;
ENTITY applied_time_interval_assignment
SUBTYPE OF (time_interval_assignment);
items : SET [0:?] OF time_interval_item;
END_ENTITY;
ENTITY applied_usage_right
SUBTYPE OF (applied_action_assignment);
SELF\applied_action_assignment.items : SET [1:?] OF ir_usage_item;
END_ENTITY;
ENTITY approval;
status : approval_status;
level : label;
END_ENTITY;
ENTITY approval_assignment
ABSTRACT SUPERTYPE;
assigned_approval : approval;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY approval_date_time;
date_time : date_time_select;
dated_approval : approval;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY approval_person_organization;
person_organization : person_organization_select;
authorized_approval : approval;
role : approval_role;
END_ENTITY;
ENTITY approval_relationship;
name : label;
description : OPTIONAL text;
relating_approval : approval;
related_approval : approval;
END_ENTITY;
ENTITY approval_role;
role : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY approval_status;
name : label;
END_ENTITY;
ENTITY area_in_set;
area : presentation_area;
in_set : presentation_set;
END_ENTITY;
ENTITY area_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY area_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) =
dimensional_exponents ( 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
END_ENTITY;
ENTITY assembly_component_usage
SUPERTYPE OF (ONEOF (next_assembly_usage_occurrence, specified_higher_usage_occurrence, promissory_usage_occurrence))
SUBTYPE OF (product_definition_usage);
reference_designator : OPTIONAL identifier;
END_ENTITY;
ENTITY assembly_component_usage_substitute;
name : label;
definition : OPTIONAL text;
base : assembly_component_usage;
substitute : assembly_component_usage;
UNIQUE
UR1 : base, substitute;
WHERE
WR1 : base.relating_product_definition :=:
substitute.relating_product_definition;
WR2 : base :<>: substitute;
END_ENTITY;
ENTITY assigned_requirement
SUBTYPE OF (group_assignment);
items : SET [1:1] OF product_definition;
SELF\group_assignment.assigned_group : requirement_assignment;
END_ENTITY;
ENTITY atomic_formula
SUBTYPE OF (compound_representation_item);
END_ENTITY;
ENTITY attribute_assertion
SUBTYPE OF (fact_type, property_definition_representation, representation);
END_ENTITY;
ENTITY attribute_classification_assignment
ABSTRACT SUPERTYPE;
assigned_class : group;
attribute_name : label;
role : classification_role;
END_ENTITY;
ENTITY attribute_language_assignment
SUBTYPE OF (attribute_classification_assignment);
items : SET [1:?] OF attribute_language_item;
SELF\attribute_classification_assignment.assigned_class : language;
WHERE
WR1 : SELF\attribute_classification_assignment.role.name IN ['primary', 'translated'];
WR2 : SELF\attribute_classification_assignment.attribute_name<> '';
END_ENTITY;
ENTITY attribute_value_assignment
ABSTRACT SUPERTYPE;
attribute_name : label;
attribute_value : attribute_type;
role : attribute_value_role;
END_ENTITY;
ENTITY attribute_value_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY auxiliary_geometric_representation_item
SUBTYPE OF (geometric_representation_item, variational_representation_item);
END_ENTITY;
ENTITY axis1_placement
SUBTYPE OF (placement);
axis : OPTIONAL direction;
DERIVE
z : direction := NVL(normalise(axis), dummy_gri ||
direction([0.0,0.0,1.0]));
WHERE
WR1 : SELF\geometric_representation_item.dim = 3;
END_ENTITY;
ENTITY axis2_placement_2d
SUBTYPE OF (placement);
ref_direction : OPTIONAL direction;
DERIVE
p : LIST [2:2] OF direction := build_2axes(ref_direction);
WHERE
WR1 : SELF\geometric_representation_item.dim = 2;
END_ENTITY;
ENTITY axis2_placement_3d
SUBTYPE OF (placement);
axis : OPTIONAL direction;
ref_direction : OPTIONAL direction;
DERIVE
p : LIST [3:3] OF direction := build_axes(axis,ref_direction);
WHERE
WR1 : SELF\placement.location.dim = 3;
WR2 : (NOT (EXISTS (axis))) OR (axis.dim = 3);
WR3 : (NOT (EXISTS (ref_direction))) OR (ref_direction.dim = 3);
WR4 : (NOT (EXISTS (axis))) OR (NOT (EXISTS (ref_direction))) OR
(cross_product(axis,ref_direction).magnitude > 0.0);
END_ENTITY;
ENTITY b_spline_curve
SUPERTYPE OF ((ONEOF (uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve) ANDOR rational_b_spline_curve))
SUBTYPE OF (bounded_curve);
degree : INTEGER;
control_points_list : LIST [2:?] OF cartesian_point;
curve_form : b_spline_curve_form;
closed_curve : LOGICAL;
self_intersect : LOGICAL;
DERIVE
control_points : ARRAY [0:upper_index_on_control_points] OF cartesian_point := list_to_array(control_points_list,0,
upper_index_on_control_points);
upper_index_on_control_points : INTEGER := (SIZEOF(control_points_list) - 1);
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNIFORM_CURVE' IN TYPEOF(self)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(self)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BEZIER_CURVE' IN TYPEOF(self)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(self));
END_ENTITY;
ENTITY b_spline_curve_with_knots
SUBTYPE OF (b_spline_curve);
knot_multiplicities : LIST [2:?] OF INTEGER;
knots : LIST [2:?] OF parameter_value;
knot_spec : knot_type;
DERIVE
upper_index_on_knots : INTEGER := SIZEOF(knots);
WHERE
WR1 : constraints_param_b_spline(degree, upper_index_on_knots,
upper_index_on_control_points,
knot_multiplicities, knots);
WR2 : SIZEOF(knot_multiplicities) = upper_index_on_knots;
END_ENTITY;
ENTITY b_spline_surface
SUPERTYPE OF ((ONEOF (b_spline_surface_with_knots, uniform_surface, quasi_uniform_surface, bezier_surface) ANDOR rational_b_spline_surface))
SUBTYPE OF (bounded_surface);
u_degree : INTEGER;
v_degree : INTEGER;
control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point;
surface_form : b_spline_surface_form;
u_closed : LOGICAL;
v_closed : LOGICAL;
self_intersect : LOGICAL;
DERIVE
control_points : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF cartesian_point := make_array_of_array(control_points_list,
0,u_upper,0,v_upper);
u_upper : INTEGER := SIZEOF(control_points_list) - 1;
v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1;
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BEZIER_SURFACE' IN TYPEOF(SELF)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF));
END_ENTITY;
ENTITY b_spline_surface_with_knots
SUBTYPE OF (b_spline_surface);
u_multiplicities : LIST [2:?] OF INTEGER;
v_multiplicities : LIST [2:?] OF INTEGER;
u_knots : LIST [2:?] OF parameter_value;
v_knots : LIST [2:?] OF parameter_value;
knot_spec : knot_type;
DERIVE
knot_u_upper : INTEGER := SIZEOF(u_knots);
knot_v_upper : INTEGER := SIZEOF(v_knots);
WHERE
WR1 : constraints_param_b_spline(SELF\b_spline_surface.u_degree,
knot_u_upper, SELF\b_spline_surface.u_upper,
u_multiplicities, u_knots);
WR2 : constraints_param_b_spline(SELF\b_spline_surface.v_degree,
knot_v_upper, SELF\b_spline_surface.v_upper,
v_multiplicities, v_knots);
WR3 : SIZEOF(u_multiplicities) = knot_u_upper;
WR4 : SIZEOF(v_multiplicities) = knot_v_upper;
END_ENTITY;
ENTITY back_chaining_rule
SUBTYPE OF (rule_definition);
END_ENTITY;
ENTITY back_chaining_rule_body
SUBTYPE OF (property_definition, property_definition_representation, representation);
END_ENTITY;
ENTITY background_colour
SUBTYPE OF (colour);
presentation : area_or_view;
UNIQUE
UR1 : presentation;
END_ENTITY;
ENTITY beveled_sheet_representation
SUBTYPE OF (shape_representation);
END_ENTITY;
ENTITY bezier_curve
SUBTYPE OF (b_spline_curve);
END_ENTITY;
ENTITY bezier_surface
SUBTYPE OF (b_spline_surface);
END_ENTITY;
ENTITY binary_generic_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (generic_expression);
operands : LIST [2:2] OF generic_expression;
END_ENTITY;
ENTITY binary_numeric_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (numeric_expression, binary_generic_expression);
SELF\binary_generic_expression.operands : LIST [2:2] OF numeric_expression;
END_ENTITY;
ENTITY binary_representation_item
SUBTYPE OF (representation_item);
binary_value : BINARY;
END_ENTITY;
ENTITY block
SUBTYPE OF (geometric_representation_item);
position : axis2_placement_3d;
x : positive_length_measure;
y : positive_length_measure;
z : positive_length_measure;
END_ENTITY;
ENTITY boolean_expression
ABSTRACT SUPERTYPE OF (ONEOF (simple_boolean_expression, multiple_arity_boolean_expression, comparison_expression, interval_expression))
SUBTYPE OF (expression);
END_ENTITY;
ENTITY boolean_literal
SUBTYPE OF (simple_boolean_expression, generic_literal);
the_value : BOOLEAN;
END_ENTITY;
ENTITY boolean_representation_item
SUBTYPE OF (representation_item, boolean_literal);
END_ENTITY;
ENTITY boolean_result
SUBTYPE OF (geometric_representation_item);
operator : boolean_operator;
first_operand : boolean_operand;
second_operand : boolean_operand;
END_ENTITY;
ENTITY boundary_curve
SUBTYPE OF (composite_curve_on_surface);
WHERE
WR1 : SELF\composite_curve.closed_curve;
END_ENTITY;
ENTITY bounded_curve
SUPERTYPE OF (ONEOF (polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve))
SUBTYPE OF (curve);
END_ENTITY;
ENTITY bounded_pcurve
SUBTYPE OF (pcurve, bounded_curve);
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN
TYPEOF(SELF\pcurve.reference_to_curve.items[1]));
END_ENTITY;
ENTITY bounded_surface
SUPERTYPE OF (ONEOF (b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, rectangular_composite_surface))
SUBTYPE OF (surface);
END_ENTITY;
ENTITY bounded_surface_curve
SUBTYPE OF (surface_curve, bounded_curve);
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN
TYPEOF(SELF\surface_curve.curve_3d));
END_ENTITY;
ENTITY box_domain
SUBTYPE OF (founded_item);
corner : cartesian_point;
xlength : positive_length_measure;
ylength : positive_length_measure;
zlength : positive_length_measure;
WHERE
WR1 : SIZEOF(QUERY(item <* USEDIN(SELF,'')|
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOXED_HALF_SPACE'
IN TYPEOF(item)))) = 0;
END_ENTITY;
ENTITY boxed_half_space
SUBTYPE OF (half_space_solid);
enclosure : box_domain;
END_ENTITY;
ENTITY breakdown_context
SUBTYPE OF (product_definition_relationship);
END_ENTITY;
ENTITY breakdown_element_group_assignment
SUBTYPE OF (group_assignment);
items : SET [1:1] OF product_definition_or_breakdown_element_usage;
SELF\group_assignment.assigned_group : product_definition_element_relationship;
END_ENTITY;
ENTITY breakdown_element_realization
SUBTYPE OF (characterized_object, product_definition_element_relationship);
END_ENTITY;
ENTITY breakdown_element_usage
SUBTYPE OF (product_definition_relationship);
END_ENTITY;
ENTITY breakdown_of
SUBTYPE OF (product_definition_relationship);
END_ENTITY;
ENTITY brep_with_voids
SUBTYPE OF (manifold_solid_brep);
voids : SET [1:?] OF oriented_closed_shell;
END_ENTITY;
ENTITY bytes_representation_item
SUBTYPE OF (binary_representation_item);
DERIVE
no_of_bytes : INTEGER := BLENGTH(SELF\binary_representation_item.binary_value) DIV 8;
WHERE
WR1 : BLENGTH(SELF\binary_representation_item.binary_value) MOD 8 = 0;
END_ENTITY;
ENTITY calendar_date
SUBTYPE OF (date);
day_component : day_in_month_number;
month_component : month_in_year_number;
WHERE
WR1 : valid_calendar_date (SELF);
END_ENTITY;
ENTITY camera_image
SUBTYPE OF (mapped_item);
SELF\mapped_item.mapping_source : camera_usage;
SELF\mapped_item.mapping_target : planar_box;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM'
IN TYPEOF (SELF);
END_ENTITY;
ENTITY camera_image_3d_with_scale
SUBTYPE OF (camera_image);
DERIVE
scale : positive_ratio_measure := ((SELF\mapped_item.mapping_target\
planar_extent.size_in_x) / (SELF\mapped_item.mapping_source.
mapping_origin\camera_model_d3.perspective_of_volume.view_window.
size_in_x));
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL_D3'
IN TYPEOF (SELF\mapped_item.mapping_source.mapping_origin));
WR2 : aspect_ratio(SELF\mapped_item.mapping_target) =
aspect_ratio(SELF\mapped_item.mapping_source.mapping_origin\
camera_model_d3.perspective_of_volume.view_window);
WR3 : SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
perspective_of_volume.front_plane_clipping
AND
SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
perspective_of_volume.view_volume_sides_clipping;
WR4 : (SELF\mapped_item.mapping_target\planar_extent.size_in_x > 0)
AND
(SELF\mapped_item.mapping_target\planar_extent.size_in_y > 0);
WR5 : (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
perspective_of_volume.view_window.size_in_x > 0)
AND
(SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
perspective_of_volume.view_window.size_in_y > 0);
WR6 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AXIS2_PLACEMENT_2D' IN TYPEOF (SELF\mapped_item.
mapping_target\planar_box.placement))
AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AXIS2_PLACEMENT_3D' IN TYPEOF (SELF\mapped_item.
mapping_target\planar_box.placement));
END_ENTITY;
ENTITY camera_model
ABSTRACT SUPERTYPE
SUBTYPE OF (geometric_representation_item);
WHERE
WR1 : (SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'ITEM_DEFINED_TRANSFORMATION.' +
'TRANSFORM_ITEM_1')) +
SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'REPRESENTATION_MAP.MAPPING_ORIGIN'))
) > 0;
WR2 : SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'STYLED_ITEM.ITEM')) = 0;
END_ENTITY;
ENTITY camera_model_d3
SUBTYPE OF (camera_model);
view_reference_system : axis2_placement_3d;
perspective_of_volume : view_volume;
WHERE
WR1 : (dot_product (SELF.view_reference_system.p[3],
SELF.perspective_of_volume.view_window.placement.p[3]) = 1.0)
AND
(SELF.view_reference_system.location.coordinates[3] =
SELF.perspective_of_volume.view_window.
placement.location.coordinates[3]);
WR2 : SELF\geometric_representation_item.dim = 3;
END_ENTITY;
ENTITY camera_model_d3_multi_clipping
SUBTYPE OF (camera_model_d3);
shape_clipping : SET [1:?] OF camera_model_d3_multi_clipping_interection_select;
END_ENTITY;
ENTITY camera_model_d3_multi_clipping_intersection
SUBTYPE OF (geometric_representation_item);
shape_clipping : SET [2:?] OF camera_model_d3_multi_clipping_interection_select;
END_ENTITY;
ENTITY camera_model_d3_multi_clipping_union
SUBTYPE OF (geometric_representation_item);
shape_clipping : SET [2:?] OF camera_model_d3_multi_clipping_union_select;
END_ENTITY;
ENTITY camera_model_d3_with_hlhsr
SUBTYPE OF (camera_model_d3);
hidden_line_surface_removal : BOOLEAN;
END_ENTITY;
ENTITY camera_model_with_light_sources
SUBTYPE OF (camera_model_d3);
sources : SET [1:?] OF light_source;
END_ENTITY;
ENTITY camera_usage
SUBTYPE OF (representation_map);
SELF\representation_map.mapping_origin : camera_model;
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION'
IN TYPEOF(SELF\representation_map.mapped_representation));
END_ENTITY;
ENTITY capacitance_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAPACITANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY capacitance_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.farad);
END_ENTITY;
ENTITY cartesian_point
SUBTYPE OF (point);
coordinates : LIST [1:3] OF length_measure;
END_ENTITY;
ENTITY cartesian_transformation_operator
SUPERTYPE OF (ONEOF (cartesian_transformation_operator_2d, cartesian_transformation_operator_3d))
SUBTYPE OF (geometric_representation_item, functionally_defined_transformation);
axis1 : OPTIONAL direction;
axis2 : OPTIONAL direction;
local_origin : cartesian_point;
scale : OPTIONAL REAL;
DERIVE
scl : REAL := NVL(scale, 1.0);
WHERE
WR1 : scl > 0.0;
END_ENTITY;
ENTITY cartesian_transformation_operator_2d
SUBTYPE OF (cartesian_transformation_operator);
DERIVE
u : LIST [2:2] OF direction := base_axis(2,SELF\cartesian_transformation_operator.axis1,
SELF\cartesian_transformation_operator.axis2,?);
WHERE
WR1 : SELF\geometric_representation_item.dim = 2;
END_ENTITY;
ENTITY cartesian_transformation_operator_3d
SUBTYPE OF (cartesian_transformation_operator);
axis3 : OPTIONAL direction;
DERIVE
u : LIST [3:3] OF direction := base_axis(3,SELF\cartesian_transformation_operator.axis1,
SELF\cartesian_transformation_operator.axis2,axis3);
WHERE
WR1 : SELF\geometric_representation_item.dim = 3;
END_ENTITY;
ENTITY cc_design_approval
SUBTYPE OF (approval_assignment);
items : SET [1:?] OF approved_item;
END_ENTITY;
ENTITY cc_design_certification
SUBTYPE OF (certification_assignment);
items : SET [1:?] OF certified_item;
END_ENTITY;
ENTITY cc_design_contract
SUBTYPE OF (contract_assignment);
items : SET [1:?] OF contracted_item;
END_ENTITY;
ENTITY cc_design_date_and_time_assignment
SUBTYPE OF (date_and_time_assignment);
items : SET [1:?] OF date_time_item;
END_ENTITY;
ENTITY cc_design_person_and_organization_assignment
SUBTYPE OF (person_and_organization_assignment);
items : SET [1:?] OF cc_person_organization_item;
WHERE
WR1 : cc_design_person_and_organization_correlation(SELF);
END_ENTITY;
ENTITY cc_design_security_classification
SUBTYPE OF (security_classification_assignment);
items : SET [1:?] OF cc_classified_item;
END_ENTITY;
ENTITY cc_design_specification_reference
SUBTYPE OF (document_reference);
items : SET [1:?] OF cc_specified_item;
END_ENTITY;
ENTITY celsius_temperature_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY centre_of_symmetry
SUBTYPE OF (derived_shape_aspect);
WHERE
WR1 : SIZEOF
(QUERY(sadr<*SELF\derived_shape_aspect.deriving_relationships|
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRIC_SHAPE_ASPECT'
IN TYPEOF
(sadr\shape_aspect_relationship.related_shape_aspect))))=0;
END_ENTITY;
ENTITY certification;
name : label;
purpose : text;
kind : certification_type;
END_ENTITY;
ENTITY certification_assignment
ABSTRACT SUPERTYPE;
assigned_certification : certification;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY certification_type;
description : label;
END_ENTITY;
ENTITY change
SUBTYPE OF (action_assignment);
items : SET [1:?] OF work_item;
END_ENTITY;
ENTITY change_request
SUBTYPE OF (action_request_assignment);
items : SET [1:?] OF change_request_item;
END_ENTITY;
ENTITY character_glyph_font_usage;
character : generic_character_glyph_symbol;
font : text_font;
END_ENTITY;
ENTITY character_glyph_style_outline
SUBTYPE OF (founded_item);
outline_style : curve_style;
END_ENTITY;
ENTITY character_glyph_style_stroke
SUBTYPE OF (founded_item);
stroke_style : curve_style;
END_ENTITY;
ENTITY character_glyph_symbol
SUBTYPE OF (generic_character_glyph_symbol);
character_box : planar_extent;
baseline_ratio : ratio_measure;
DERIVE
box_height : length_measure := character_box.size_in_y;
WHERE
WR1 : {0.0 <= baseline_ratio <= 1.0};
WR2 : item_in_context(SELF.character_box,
SELF\representation.context_of_items);
WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE'
IN TYPEOF (SELF.box_height);
END_ENTITY;
ENTITY character_glyph_symbol_outline
SUBTYPE OF (character_glyph_symbol);
outlines : SET [1:?] OF annotation_fill_area;
WHERE
WR1 : SELF.outlines <= SELF\representation.items;
END_ENTITY;
ENTITY character_glyph_symbol_stroke
SUBTYPE OF (character_glyph_symbol);
strokes : SET [1:?] OF curve;
WHERE
WR1 : SELF.strokes <= SELF\representation.items;
END_ENTITY;
ENTITY characteristic_data_column_header
SUBTYPE OF (general_property);
END_ENTITY;
ENTITY characteristic_data_column_header_link
SUBTYPE OF (general_property_relationship);
END_ENTITY;
ENTITY characteristic_data_table_header
SUBTYPE OF (general_property);
END_ENTITY;
ENTITY characteristic_data_table_header_decomposition
SUBTYPE OF (general_property_relationship);
END_ENTITY;
ENTITY characteristic_type
SUBTYPE OF (group);
END_ENTITY;
ENTITY characterized_class
SUBTYPE OF (characterized_object, class);
END_ENTITY;
ENTITY characterized_object;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY circle
SUBTYPE OF (conic);
radius : positive_length_measure;
END_ENTITY;
ENTITY circular_runout_tolerance
SUBTYPE OF (geometric_tolerance_with_datum_reference);
WHERE
WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2;
END_ENTITY;
ENTITY class
SUBTYPE OF (group);
END_ENTITY;
ENTITY class_by_extension
SUBTYPE OF (class);
END_ENTITY;
ENTITY class_by_intension
SUBTYPE OF (class);
END_ENTITY;
ENTITY class_system
SUBTYPE OF (group);
END_ENTITY;
ENTITY class_usage_effectivity_context_assignment
SUBTYPE OF (effectivity_context_assignment);
items : SET [1:?] OF class_usage_effectivity_context_item;
WHERE
WR1 : SELF.role.name = 'class usage influence';
WR2 : SIZEOF( QUERY( i <* SELF.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) )) = 0;
WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF.assigned_effectivity_assignment)) AND
(SIZEOF(TYPEOF(SELF.assigned_effectivity_assignment.assigned_effectivity) ) = 1) AND
(SELF.assigned_effectivity_assignment.assigned_effectivity.id = 'class usage') AND
(SIZEOF( QUERY( i <* SELF.assigned_effectivity_assignment\applied_effectivity_assignment.items |
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) )) = 0);
END_ENTITY;
ENTITY classification_assignment
ABSTRACT SUPERTYPE;
assigned_class : group;
role : classification_role;
END_ENTITY;
ENTITY classification_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY closed_shell
SUBTYPE OF (connected_face_set);
END_ENTITY;
ENTITY coaxiality_tolerance
SUBTYPE OF (geometric_tolerance_with_datum_reference);
WHERE
WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2;
END_ENTITY;
ENTITY colour;
END_ENTITY;
ENTITY colour_rgb
SUBTYPE OF (colour_specification);
red : REAL;
green : REAL;
blue : REAL;
WHERE
WR1 : {0.0 <= red <= 1.0};
WR2 : {0.0 <= green <= 1.0};
WR3 : {0.0 <= blue <= 1.0};
END_ENTITY;
ENTITY colour_specification
SUBTYPE OF (colour);
name : label;
END_ENTITY;
ENTITY common_datum
SUBTYPE OF (composite_shape_aspect, datum);
WHERE
WR1 : SIZEOF (SELF\composite_shape_aspect.component_relationships) = 2;
WR2 : SIZEOF (QUERY ( sar <* SELF\composite_shape_aspect.component_relationships|
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF (sar.related_shape_aspect)) AND
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMMON_DATUM' IN TYPEOF (sar.related_shape_aspect))) )) = 0;
END_ENTITY;
ENTITY comparison_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (boolean_expression, binary_generic_expression);
SELF\binary_generic_expression.operands : LIST [2:2] OF expression;
WHERE
WR1 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION'
IN TYPEOF(SELF\binary_generic_expression.operands[1]))
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION'
IN TYPEOF(SELF\binary_generic_expression.operands[2])))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_EXPRESSION'
IN TYPEOF(SELF\binary_generic_expression.operands[1]))
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_EXPRESSION'
IN TYPEOF(SELF\binary_generic_expression.operands[2])))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
IN TYPEOF(SELF\binary_generic_expression.operands[1]))
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
IN TYPEOF(SELF\binary_generic_expression.operands[2])));
END_ENTITY;
ENTITY complex_clause
SUBTYPE OF (compound_representation_item);
END_ENTITY;
ENTITY complex_conjunctive_clause
SUBTYPE OF (complex_clause);
END_ENTITY;
ENTITY complex_disjunctive_clause
SUBTYPE OF (complex_clause);
END_ENTITY;
ENTITY complex_shelled_solid
SUBTYPE OF (shelled_solid);
thickened_face_list : LIST [1:?] OF SET [1:?] OF face_surface;
thickness_list : LIST [1:?] OF length_measure;
WHERE
WR1 : SIZEOF(thickened_face_list) = SIZEOF(thickness_list);
WR2 : SIZEOF(QUERY(q <* thickness_list | (q = 0))) = 0;
END_ENTITY;
ENTITY composite_assembly_definition
SUBTYPE OF (product_definition);
WHERE
WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_RELATIONSHIP.' +
'RELATING_PRODUCT_DEFINITION') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
TYPEOF (pdr))) = 1;
END_ENTITY;
ENTITY composite_assembly_sequence_definition
SUBTYPE OF (product_definition);
WHERE
WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_RELATIONSHIP.' +
'RELATING_PRODUCT_DEFINITION') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
TYPEOF (pdr))) > 0;
END_ENTITY;
ENTITY composite_assembly_table
SUBTYPE OF (part_laminate_table);
END_ENTITY;
ENTITY composite_curve
SUBTYPE OF (bounded_curve);
segments : LIST [1:?] OF composite_curve_segment;
self_intersect : LOGICAL;
DERIVE
closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous;
n_segments : INTEGER := SIZEOF(segments);
WHERE
WR1 : ((NOT closed_curve) AND (SIZEOF(QUERY(temp <* segments |
temp.transition = discontinuous)) = 1)) OR
((closed_curve) AND (SIZEOF(QUERY(temp <* segments |
temp.transition = discontinuous)) = 0));
END_ENTITY;
ENTITY composite_curve_on_surface
SUPERTYPE OF (boundary_curve)
SUBTYPE OF (composite_curve);
DERIVE
basis_surface : SET [0:2] OF surface := get_basis_surface(SELF);
WHERE
WR1 : SIZEOF(basis_surface) > 0;
WR2 : constraints_composite_curve_on_surface(SELF);
END_ENTITY;
ENTITY composite_curve_segment
SUBTYPE OF (founded_item);
transition : transition_code;
same_sense : BOOLEAN;
parent_curve : curve;
INVERSE
using_curves: BAG [1:?] OF composite_curve FOR segments;
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN TYPEOF(parent_curve));
END_ENTITY;
ENTITY composite_material_designation
SUBTYPE OF (material_designation);
END_ENTITY;
ENTITY composite_shape_aspect
SUBTYPE OF (shape_aspect);
INVERSE
component_relationships: SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect;
END_ENTITY;
ENTITY composite_sheet_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF (SELF)) = 1;
END_ENTITY;
ENTITY composite_text
SUBTYPE OF (geometric_representation_item);
collected_text : SET [2:?] OF text_or_character;
WHERE
WR1 : acyclic_composite_text( SELF, SELF.collected_text);
END_ENTITY;
ENTITY composite_text_with_associated_curves
SUBTYPE OF (composite_text);
associated_curves : SET [1:?] OF curve;
END_ENTITY;
ENTITY composite_text_with_blanking_box
SUBTYPE OF (composite_text);
blanking : planar_box;
END_ENTITY;
ENTITY composite_text_with_delineation
SUBTYPE OF (composite_text);
delineation : text_delineation;
END_ENTITY;
ENTITY composite_text_with_extent
SUBTYPE OF (composite_text);
extent : planar_extent;
END_ENTITY;
ENTITY compound_representation_item
SUPERTYPE OF (ONEOF (point_and_vector, point_path, row_representation_item, table_representation_item))
SUBTYPE OF (representation_item);
item_element : compound_item_definition;
END_ENTITY;
ENTITY compound_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'GEOMETRIC_REPRESENTATION_CONTEXT'
IN TYPEOF ( SELF.context_of_items ) ) AND (
SELF.context_of_items\
geometric_representation_context.coordinate_space_dimension =3 );
WR2 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'AXIS2_PLACEMENT_3D']* TYPEOF ( cbsr_i ) ) <>1 ) ) =0;
WR3 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM']* TYPEOF ( cbsr_i ) ) =1 ) ) >0;
WR4 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM' IN TYPEOF ( cbsr_i ) )
AND ( SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'COMPOUND_SHAPE_REPRESENTATION' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION']* TYPEOF (
cbsr_i\ mapped_item.mapping_source ) ) <>1 ) ) ) =0;
END_ENTITY;
ENTITY concentricity_tolerance
SUBTYPE OF (geometric_tolerance_with_datum_reference);
WHERE
WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) = 1;
END_ENTITY;
ENTITY concept_feature_operator;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY concept_feature_relationship;
name : label;
description : OPTIONAL text;
relating_product_concept_feature : product_concept_feature;
related_product_concept_feature : product_concept_feature;
END_ENTITY;
ENTITY concept_feature_relationship_with_condition
SUBTYPE OF (concept_feature_relationship);
conditional_operator : concept_feature_operator;
END_ENTITY;
ENTITY conditional_concept_feature
SUBTYPE OF (product_concept_feature);
condition : concept_feature_relationship_with_condition;
END_ENTITY;
ENTITY conductance_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY conductance_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.siemens);
END_ENTITY;
ENTITY configurable_item
SUBTYPE OF (configuration_item);
item_concept_feature : SET [1:?] OF product_concept_feature_association;
END_ENTITY;
ENTITY configuration_design;
configuration : configuration_item;
design : configuration_design_item;
DERIVE
description : text := get_description_value (SELF);
name : label := get_name_value (SELF);
UNIQUE
UR1 : configuration, design;
WHERE
WR1 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
WR2 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY configuration_effectivity
SUBTYPE OF (product_definition_effectivity);
configuration : configuration_design;
UNIQUE
UR1: configuration, SELF\product_definition_effectivity.usage, SELF\effectivity.id;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_USAGE' IN
TYPEOF (SELF\product_definition_effectivity.usage);
END_ENTITY;
ENTITY configuration_item;
id : identifier;
name : label;
description : OPTIONAL text;
item_concept : product_concept;
purpose : OPTIONAL label;
END_ENTITY;
ENTITY configuration_item_hierarchical_relationship
SUBTYPE OF (configuration_item_relationship);
END_ENTITY;
ENTITY configuration_item_relationship;
name : label;
description : OPTIONAL text;
relating_configuration_item : configuration_item;
related_configuration_item : configuration_item;
END_ENTITY;
ENTITY configuration_item_revision_sequence
SUBTYPE OF (configuration_item_relationship);
END_ENTITY;
ENTITY configured_effectivity_assignment
SUBTYPE OF (effectivity_assignment);
items : SET [1:?] OF configured_effectivity_item;
WHERE
WR1 : (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity) ) = 1)
AND (SELF.assigned_effectivity.id = 'configuration validity');
WR2 : SIZEOF(SELF.items) = 1;
WR3 : SIZEOF( QUERY( i <* SELF.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i))
OR NOT (i\product_definition.frame_of_reference.name IN ['conceptual definition','part occurrence', 'functional definition','alternative definition']) )) = 0;
WR4 : SELF.role.name IN ['design', 'usage'];
WR5 : (SELF.role.name <> 'design')
OR (SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\product_definition.frame_of_reference.name = 'part occurrence') )) = 0);
WR6 : (SELF.role.name <> 'usage') OR (SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\product_definition.frame_of_reference.name = 'conceptual definition') )) = 0);
WR7 : SELF.role.description IN ['exception', 'inherited', 'local'];
WR8 : SIZEOF( QUERY( x <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.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;
SELF\effectivity_context_assignment.assigned_effectivity_assignment : configured_effectivity_assignment;
WHERE
WR1 : SIZEOF(SELF.items) = 1;
END_ENTITY;
ENTITY conic
SUPERTYPE OF (ONEOF (circle, ellipse, hyperbola, parabola))
SUBTYPE OF (curve);
position : axis2_placement;
END_ENTITY;
ENTITY conical_stepped_hole_transition
SUBTYPE OF (geometric_representation_item);
transition_number : positive_integer;
cone_apex_angle : plane_angle_measure;
cone_base_radius : positive_length_measure;
END_ENTITY;
ENTITY conical_surface
SUBTYPE OF (elementary_surface);
radius : length_measure;
semi_angle : plane_angle_measure;
WHERE
WR1 : radius >= 0.0;
END_ENTITY;
ENTITY connected_edge_set
SUBTYPE OF (topological_representation_item);
ces_edges : SET [1:?] OF edge;
END_ENTITY;
ENTITY connected_face_set
SUPERTYPE OF (ONEOF (closed_shell, open_shell))
SUBTYPE OF (topological_representation_item);
cfs_faces : SET [1:?] OF face;
END_ENTITY;
ENTITY connected_face_sub_set
SUBTYPE OF (connected_face_set);
parent_face_set : connected_face_set;
END_ENTITY;
ENTITY constructive_geometry_representation
SUBTYPE OF (representation);
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND ({2 <= SELF.context_of_items\geometric_representation_context. coordinate_space_dimension <= 3});
WR2 : SIZEOF( QUERY( cgr_i <* SELF.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLACEMENT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1 )) = 0;
WR3 : SIZEOF( USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) > 0;
WR4 : SIZEOF( USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') ) = 0;
END_ENTITY;
ENTITY constructive_geometry_representation_relationship
SUBTYPE OF (representation_relationship);
SELF\representation_relationship.rep_1 : constructive_geometry_representation_or_shape_represenation;
SELF\representation_relationship.rep_2 : constructive_geometry_representation;
WHERE
WR1 : (SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items));
WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF));
END_ENTITY;
ENTITY contact_ratio_representation
SUBTYPE OF (representation);
WHERE
WR1 : ( SIZEOF ( SELF.items ) =1 ) AND ( SIZEOF ( QUERY ( i <*
SELF.items | ( SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) AND ( i.name =
'ratio value' ) ) ) =1 );
WR2 : ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) | pdr. name =
'contact ratio reference' ) ) =1 ) AND ( SIZEOF ( QUERY (
pdr <* USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) | ( pdr. name =
'contact ratio reference' ) AND ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'PRODUCT_DEFINITION' IN TYPEOF ( pdr.
definition.definition ) ) ) ) =1 );
WR3 : ( SIZEOF ( USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
<* USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
pdr. definition ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
( gpa. base_definition.name ='surface_condition' ) ) ) =1 )
) =1 );
END_ENTITY;
ENTITY context_dependent_invisibility
SUBTYPE OF (invisibility);
presentation_context : invisibility_context;
END_ENTITY;
ENTITY context_dependent_over_riding_styled_item
SUBTYPE OF (over_riding_styled_item);
style_context : LIST [1:?] OF style_context_select;
WHERE
WR1 : (SIZEOF(QUERY(sc <* SELF.style_context | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc)))= 1) OR
(SIZEOF(QUERY(sc <* SELF.style_context |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(sc)) ))
= SIZEOF(style_context));
END_ENTITY;
ENTITY context_dependent_shape_representation;
representation_relation : shape_representation_relationship;
represented_product_relation : product_definition_shape;
DERIVE
description : text := get_description_value(SELF);
name : label := get_name_value(SELF);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF.represented_product_relation.definition);
WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
WR3 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
END_ENTITY;
ENTITY context_dependent_unit
SUBTYPE OF (named_unit);
name : label;
END_ENTITY;
ENTITY contract;
name : label;
purpose : text;
kind : contract_type;
END_ENTITY;
ENTITY contract_assignment
ABSTRACT SUPERTYPE;
assigned_contract : contract;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY contract_relationship;
id : identifier;
name : label;
description : OPTIONAL text;
relating_contract : contract;
related_contract : contract;
END_ENTITY;
ENTITY contract_type;
description : label;
END_ENTITY;
ENTITY conversion_based_unit
SUBTYPE OF (named_unit);
name : label;
conversion_factor : measure_with_unit;
WHERE
WR1 : SELF\named_unit.dimensions = derive_dimensional_exponents(conversion_factor\measure_with_unit.unit_component);
END_ENTITY;
ENTITY coordinated_universal_time_offset;
hour_offset : INTEGER;
minute_offset : OPTIONAL INTEGER;
sense : ahead_or_behind;
DERIVE
actual_minute_offset : INTEGER := NVL(minute_offset,0);
WHERE
WR1 : { 0 <= hour_offset < 24 };
WR2 : { 0 <= actual_minute_offset <= 59 };
WR3 : NOT (((hour_offset <> 0) OR (actual_minute_offset <>0)) AND (sense = exact));
END_ENTITY;
ENTITY csg_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
WR2 : SIZEOF (
QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REVOLVED_FACE_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (it)) <> 1) )) = 0;
WR3 : SIZEOF (
QUERY ( mi <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
WR4 : SIZEOF (
QUERY ( sr <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA' IN TYPEOF (it)) )| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REVOLVED_FACE_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (sr\solid_replica.parent_solid)) = 0) )) = 0;
WR5 : SIZEOF (
QUERY ( it <* SELF.items| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (it)) )) > 0;
END_ENTITY;
ENTITY csg_solid
SUBTYPE OF (solid_model);
tree_root_expression : csg_select;
END_ENTITY;
ENTITY currency
ABSTRACT SUPERTYPE OF (ONEOF (externally_defined_currency, iso4217_currency))
SUBTYPE OF (context_dependent_unit);
WHERE
WR1 : ((SELF\named_unit.dimensions.length_exponent = 0.0) AND
(SELF\named_unit.dimensions.mass_exponent = 0.0) AND
(SELF\named_unit.dimensions.time_exponent = 0.0) AND
(SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
(SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0));
END_ENTITY;
ENTITY currency_measure_with_unit
SUBTYPE OF (measure_with_unit);
SELF\measure_with_unit.unit_component : currency;
END_ENTITY;
ENTITY curve
SUPERTYPE OF (ONEOF (line, conic, pcurve, surface_curve, offset_curve_2d, offset_curve_3d, curve_replica))
SUBTYPE OF (geometric_representation_item);
END_ENTITY;
ENTITY curve_bounded_surface
SUBTYPE OF (bounded_surface);
basis_surface : surface;
boundaries : SET [1:?] OF boundary_curve;
implicit_outer : BOOLEAN;
WHERE
WR1 : (NOT implicit_outer) OR
(SIZEOF (QUERY (temp <* boundaries |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) = 0);
WR2 : (NOT(implicit_outer)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(basis_surface));
WR3 : SIZEOF(QUERY(temp <* boundaries |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OUTER_BOUNDARY_CURVE' IN
TYPEOF(temp))) <= 1;
WR4 : SIZEOF(QUERY(temp <* boundaries |
(temp\composite_curve_on_surface.basis_surface [1] <>
SELF.basis_surface))) = 0;
END_ENTITY;
ENTITY curve_dimension
SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY;
ENTITY curve_replica
SUBTYPE OF (curve);
parent_curve : curve;
transformation : cartesian_transformation_operator;
WHERE
WR1 : transformation.dim = parent_curve.dim;
WR2 : acyclic_curve_replica (SELF, parent_curve);
END_ENTITY;
ENTITY curve_style
SUBTYPE OF (founded_item);
name : label;
curve_font : curve_font_or_scaled_curve_font_select;
curve_width : size_select;
curve_colour : colour;
END_ENTITY;
ENTITY curve_style_font
SUBTYPE OF (founded_item);
name : label;
pattern_list : LIST [1:?] OF curve_style_font_pattern;
END_ENTITY;
ENTITY curve_style_font_and_scaling
SUBTYPE OF (founded_item);
name : label;
curve_font : curve_style_font_select;
curve_font_scaling : REAL;
END_ENTITY;
ENTITY curve_style_font_pattern
SUBTYPE OF (founded_item);
visible_segment_length : positive_length_measure;
invisible_segment_length : positive_length_measure;
END_ENTITY;
ENTITY curve_style_rendering;
rendering_method : shading_curve_method;
rendering_properties : surface_rendering_properties;
END_ENTITY;
ENTITY curve_swept_solid_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (QUERY (it <* SELF.items |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_AREA_SOLID',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_DISK_SOLID',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] *
TYPEOF(it)) = 1))) = 0;
WR2 : SIZEOF (QUERY (it <* SELF.items |
SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_AREA_SOLID',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_DISK_SOLID',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0;
WR3 : SIZEOF (QUERY (mi <* QUERY (it <* items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' IN
TYPEOF(mi\mapped_item.mapping_source.
mapped_representation)))) = 0;
WR4 : SIZEOF (QUERY (scsas <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN
TYPEOF(it)) |
NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN
TYPEOF(scsas\surface_curve_swept_area_solid.directrix)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
TYPEOF(scsas\surface_curve_swept_area_solid.directrix))))) = 0;
END_ENTITY;
ENTITY cylindrical_surface
SUBTYPE OF (elementary_surface);
radius : positive_length_measure;
END_ENTITY;
ENTITY cylindricity_tolerance
SUBTYPE OF (geometric_tolerance);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
END_ENTITY;
ENTITY data_environment;
name : label;
description : text;
elements : SET [1:?] OF property_definition_representation;
END_ENTITY;
ENTITY date
SUPERTYPE OF (ONEOF (calendar_date, ordinal_date, week_of_year_and_day_date, year_month));
year_component : year_number;
END_ENTITY;
ENTITY date_and_time;
date_component : date;
time_component : local_time;
END_ENTITY;
ENTITY date_and_time_assignment
ABSTRACT SUPERTYPE;
assigned_date_and_time : date_and_time;
role : date_time_role;
END_ENTITY;
ENTITY date_assignment
ABSTRACT SUPERTYPE;
assigned_date : date;
role : date_role;
END_ENTITY;
ENTITY date_representation_item
SUBTYPE OF (representation_item, date);
END_ENTITY;
ENTITY date_role;
name : label;
DERIVE
description : text := get_description_value (SELF);
WHERE
WR1 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY date_time_representation_item
SUBTYPE OF (representation_item, date_and_time);
END_ENTITY;
ENTITY date_time_role;
name : label;
DERIVE
description : text := get_description_value (SELF);
WHERE
WR1 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY dated_effectivity
SUBTYPE OF (effectivity);
effectivity_end_date : OPTIONAL date_time_or_event_occurrence;
effectivity_start_date : date_time_or_event_occurrence;
END_ENTITY;
ENTITY datum
SUBTYPE OF (shape_aspect);
identification : identifier;
INVERSE
established_by_relationships: SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect;
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMMON_DATUM' IN TYPEOF(SELF)) XOR
((SIZEOF(QUERY(x <* SELF\datum.established_by_relationships |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_FEATURE' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) = 1) XOR
(SIZEOF(QUERY(x <* SELF\datum.established_by_relationships |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_TARGET' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) >= 1));
END_ENTITY;
ENTITY datum_feature
SUBTYPE OF (shape_aspect);
INVERSE
feature_basis_relationship: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
WHERE
WR1 : SIZEOF(QUERY(sar <* SELF\datum_feature.feature_basis_relationship
| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF
(sar\shape_aspect_relationship.related_shape_aspect)))) = 1;
WR2 : SELF\shape_aspect.product_definitional = TRUE;
END_ENTITY;
ENTITY datum_feature_callout
SUBTYPE OF (draughting_callout);
END_ENTITY;
ENTITY datum_reference;
precedence : INTEGER;
referenced_datum : datum;
WHERE
WR1 : precedence > 0;
END_ENTITY;
ENTITY datum_target
SUBTYPE OF (shape_aspect);
target_id : identifier;
INVERSE
target_basis_relationship: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
WHERE
WR1 : SIZEOF(QUERY(sar <* SELF\datum_target.target_basis_relationship
| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF
(sar\shape_aspect_relationship.related_shape_aspect)))) = 1;
WR2 : SELF\shape_aspect.product_definitional = TRUE;
END_ENTITY;
ENTITY datum_target_callout
SUBTYPE OF (draughting_callout);
END_ENTITY;
ENTITY default_tolerance_table
SUBTYPE OF (representation);
WHERE
WR1 : SIZEOF( QUERY( i <* SELF.items | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)) )) = 0;
WR2 : (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | rr.name < 'general tolerance definition' )) = 0) AND (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance') )) = 0) AND (SIZEOF( USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) = 0);
END_ENTITY;
ENTITY default_tolerance_table_cell
SUBTYPE OF (compound_representation_item);
WHERE
WR1 : SIZEOF(QUERY( x <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION.ITEMS') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DEFAULT_TOLERANCE_TABLE' IN TYPEOF(x)))=1;
WR2 : default_tolerance_table_cell_wr2(SELF\compound_representation_item.item_element);
WR3 : default_tolerance_table_cell_wr3(SELF\compound_representation_item.item_element);
WR4 : default_tolerance_table_cell_wr4(SELF\compound_representation_item.item_element);
WR5 : default_tolerance_table_cell_wr5(SELF\compound_representation_item.item_element);
END_ENTITY;
ENTITY defined_symbol
SUBTYPE OF (geometric_representation_item);
definition : defined_symbol_select;
target : symbol_target;
END_ENTITY;
ENTITY definitional_representation
SUBTYPE OF (representation);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN
TYPEOF (SELF\representation.context_of_items );
END_ENTITY;
ENTITY definitional_representation_relationship
SUBTYPE OF (representation_relationship);
WHERE
WR1 : acyclic_representation_relationship(SELF,
[SELF\representation_relationship.rep_2],
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION');
END_ENTITY;
ENTITY definitional_representation_relationship_with_same_context
SUBTYPE OF (definitional_representation_relationship);
WHERE
WR1 : SELF\representation_relationship.rep_1.context_of_items :=:
SELF\representation_relationship.rep_2.context_of_items;
END_ENTITY;
ENTITY degenerate_pcurve
SUBTYPE OF (point);
basis_surface : surface;
reference_to_curve : definitional_representation;
WHERE
WR1 : SIZEOF(reference_to_curve\representation.items) = 1;
WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF
(reference_to_curve\representation.items[1]);
WR3 : reference_to_curve\representation.
items[1]\geometric_representation_item.dim =2;
END_ENTITY;
ENTITY degenerate_toroidal_surface
SUBTYPE OF (toroidal_surface);
select_outer : BOOLEAN;
WHERE
WR1 : major_radius < minor_radius;
END_ENTITY;
ENTITY derived_shape_aspect
SUPERTYPE OF (ONEOF (apex, centre_of_symmetry, geometric_alignment, geometric_intersection, parallel_offset, perpendicular_to, extension, tangent))
SUBTYPE OF (shape_aspect);
INVERSE
deriving_relationships: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
WHERE
WR1 : SIZEOF (QUERY (dr <*
SELF\derived_shape_aspect.deriving_relationships |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SHAPE_ASPECT_DERIVING_RELATIONSHIP'
IN TYPEOF (dr)))) = 0;
END_ENTITY;
ENTITY derived_unit
SUPERTYPE OF (ONEOF (absorbed_dose_unit, acceleration_unit, radioactivity_unit, area_unit, capacitance_unit, dose_equivalent_unit, electric_charge_unit, conductance_unit, electric_potential_unit, energy_unit, magnetic_flux_density_unit, force_unit, frequency_unit, illuminance_unit, inductance_unit, magnetic_flux_unit, power_unit, pressure_unit, resistance_unit, velocity_unit, volume_unit));
elements : SET [1:?] OF derived_unit_element;
DERIVE
name : label := get_name_value(SELF);
WHERE
WR1 : (SIZEOF(elements) > 1) OR ((SIZEOF(elements) = 1) AND (elements[1].exponent <> 1.0));
WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
END_ENTITY;
ENTITY derived_unit_element;
unit : named_unit;
exponent : REAL;
END_ENTITY;
ENTITY description_attribute;
attribute_value : text;
described_item : description_attribute_select;
END_ENTITY;
ENTITY descriptive_representation_item
SUPERTYPE OF (ONEOF (tagged_text_item, uniform_resource_identifier))
SUBTYPE OF (representation_item);
description : text;
END_ENTITY;
ENTITY design_context
SUBTYPE OF (product_definition_context);
WHERE
WR1 : SELF.life_cycle_stage = 'design';
END_ENTITY;
ENTITY design_make_from_relationship
SUBTYPE OF (product_definition_relationship);
END_ENTITY;
ENTITY diameter_dimension
SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY;
ENTITY dielectric_constant_measure_with_unit
SUBTYPE OF (ratio_measure_with_unit);
END_ENTITY;
ENTITY dimension_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT'
IN (TYPEOF (SELF))) XOR
(SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE'
IN (TYPEOF(dce_1))))) = 0);
WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT'
IN (TYPEOF (SELF))) XOR
(SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE'
IN (TYPEOF(dce_1))))) = 0);
WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT'
IN (TYPEOF (SELF))) XOR
(SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE'
IN (TYPEOF(dce_1))))) = 0);
END_ENTITY;
ENTITY dimension_callout_component_relationship
SUBTYPE OF (draughting_callout_relationship);
WHERE
WR1 : SELF.name IN ['prefix', 'suffix'];
WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRUCTURED_DIMENSION_CALLOUT'
IN TYPEOF (SELF.relating_draughting_callout);
WR3 : SIZEOF (TYPEOF (SELF.related_draughting_callout) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRUCTURED_DIMENSION_CALLOUT']) = 0;
WR4 : SELF.related_draughting_callout.contents *
SELF.relating_draughting_callout.contents =
SELF.related_draughting_callout.contents;
WR5 : ((SELF.name = 'prefix') AND
(SIZEOF (QUERY (ato <* QUERY (con <*
SELF.related_draughting_callout.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF(con))) |
NOT (ato.name = 'prefix text')
)) = 0));
WR6 : ((SELF.name = 'suffix') AND
(SIZEOF (QUERY (ato <* QUERY (con <*
SELF.related_draughting_callout.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF(con))) |
NOT (ato.name = 'suffix text')
)) = 0));
END_ENTITY;
ENTITY dimension_callout_relationship
SUBTYPE OF (draughting_callout_relationship);
WHERE
WR1 : SELF.name IN ['primary', 'secondary'];
WR2 : SIZEOF (TYPEOF (SELF.relating_draughting_callout) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])>=1;
WR3 : SIZEOF (TYPEOF (SELF.related_draughting_callout) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT']) = 0;
WR4 : SELF.related_draughting_callout.contents *
SELF.relating_draughting_callout.contents =
SELF.related_draughting_callout.contents;
END_ENTITY;
ENTITY dimension_curve
SUBTYPE OF (annotation_curve_occurrence);
WHERE
WR1 : (SIZEOF(
QUERY(dct <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'TERMINATOR_SYMBOL.ANNOTATED_CURVE')
| (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct))
))
) <= 2);
WR2 : SIZEOF(
QUERY( dcdc <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_CALLOUT.CONTENTS') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc)))
)>= 1;
WR3 : (SIZEOF(
QUERY(dct1 <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'TERMINATOR_SYMBOL.ANNOTATED_CURVE')
| (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1))
AND (dct1\dimension_curve_terminator.role = dimension_extent_usage.origin)))
) <= 1)
AND
(SIZEOF(
QUERY (dct2 <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'TERMINATOR_SYMBOL.ANNOTATED_CURVE')
| (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2))
AND (dct2\dimension_curve_terminator.role = dimension_extent_usage.target)))
) <= 1);
END_ENTITY;
ENTITY dimension_curve_directed_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1 : SIZEOF(QUERY(d_c<*SELF\draughting_callout.contents |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(d_c))))=1;
WR2 : SIZEOF(SELF\draughting_callout.contents) >= 2;
END_ENTITY;
ENTITY dimension_curve_terminator
SUBTYPE OF (terminator_symbol);
role : dimension_extent_usage;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN TYPEOF
(SELF\terminator_symbol.annotated_curve);
END_ENTITY;
ENTITY dimension_curve_terminator_to_projection_curve_associativity
SUBTYPE OF (annotation_occurrence_associativity);
SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve;
SELF\annotation_occurrence_relationship.relating_annotation_occurrence : dimension_curve_terminator;
END_ENTITY;
ENTITY dimension_pair
SUBTYPE OF (draughting_callout_relationship);
WHERE
WR1 : SELF.name IN ['chained', 'parallel'];
WR2 : SIZEOF (TYPEOF (SELF.relating_draughting_callout) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])=1;
WR3 : SIZEOF (TYPEOF (SELF.related_draughting_callout) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])=1;
END_ENTITY;
ENTITY dimension_related_tolerance_zone_element;
related_dimension : dimensional_location;
related_element : tolerance_zone_definition;
END_ENTITY;
ENTITY dimension_text_associativity
SUBTYPE OF (text_literal, mapped_item);
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DIMENSION_REPRESENTATION'
IN TYPEOF (SELF\mapped_item.
mapping_source.mapped_representation));
WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT'
IN TYPEOF (SELF\mapped_item.mapping_target));
WR3 : SIZEOF (QUERY (ato <* QUERY (si <*
USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF(si))) |
NOT (SIZEOF( QUERY (dc <*
USEDIN (ato, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_CALLOUT.CONTENTS') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT'
IN TYPEOF (dc)))
* [SELF\mapped_item.mapping_target]) = 1)
)) = 0;
END_ENTITY;
ENTITY dimensional_characteristic_representation;
dimension : dimensional_characteristic;
representation : shape_dimension_representation;
END_ENTITY;
ENTITY dimensional_exponents;
length_exponent : REAL;
mass_exponent : REAL;
time_exponent : REAL;
electric_current_exponent : REAL;
thermodynamic_temperature_exponent : REAL;
amount_of_substance_exponent : REAL;
luminous_intensity_exponent : REAL;
END_ENTITY;
ENTITY dimensional_location
SUPERTYPE OF (ONEOF (angular_location, dimensional_location_with_path))
SUBTYPE OF (shape_aspect_relationship);
END_ENTITY;
ENTITY dimensional_location_with_path
SUBTYPE OF (dimensional_location);
path : shape_aspect;
END_ENTITY;
ENTITY dimensional_size
SUPERTYPE OF (ONEOF (angular_size, dimensional_size_with_path));
applies_to : shape_aspect;
name : label;
WHERE
WR1 : applies_to.product_definitional = TRUE;
END_ENTITY;
ENTITY dimensional_size_with_path
SUBTYPE OF (dimensional_size);
path : shape_aspect;
END_ENTITY;
ENTITY directed_action
SUBTYPE OF (executed_action);
directive : action_directive;
END_ENTITY;
ENTITY directed_dimensional_location
SUBTYPE OF (dimensional_location);
END_ENTITY;
ENTITY direction
SUBTYPE OF (geometric_representation_item);
direction_ratios : LIST [2:3] OF REAL;
WHERE
WR1 : SIZEOF(QUERY(tmp <* direction_ratios | tmp <> 0.0)) > 0;
END_ENTITY;
ENTITY document;
id : identifier;
name : label;
description : OPTIONAL text;
kind : document_type;
INVERSE
representation_types: SET [0:?] OF document_representation_type FOR represented_document;
END_ENTITY;
ENTITY document_file
SUBTYPE OF (document, characterized_object);
WHERE
WR1 : SELF\characterized_object.name = '';
WR2 : NOT EXISTS(SELF\characterized_object.description);
WR3 : SIZEOF( QUERY( drt <* SELF\document.representation_types |
drt.name IN ['digital','physical'])) = 1;
END_ENTITY;
ENTITY document_identifier
SUBTYPE OF (group);
UNIQUE
UR1: SELF\group.name, SELF\group.description;
END_ENTITY;
ENTITY document_identifier_assignment
SUBTYPE OF (group_assignment);
items : SET [1:?] OF document_identifier_assigned_item;
SELF\group_assignment.assigned_group : document_identifier;
END_ENTITY;
ENTITY document_product_association;
name : label;
description : OPTIONAL text;
relating_document : document;
related_product : product_or_formation_or_definition;
END_ENTITY;
ENTITY document_product_equivalence
SUBTYPE OF (document_product_association);
WHERE
WR1 : SELF\document_product_association.name = 'equivalence';
WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT' IN TYPEOF(SELF\document_product_association.related_product)) OR ((SELF\document_product_association.relating_document.kind. product_data_type = 'configuration controlled document') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF\document_product_association.related_product,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document' )) = 1));
WR3 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(SELF.related_product)) OR ((SELF\document_product_association.relating_document.kind.product_data_type = 'configuration controlled document version') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF.related_product\product_definition_formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1));
WR4 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF.related_product)) OR ((SELF\document_product_association.relating_document.kind.product_data_type = 'configuration controlled document definition') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF\document_product_association.related_product\product_definition.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document' )) = 1));
END_ENTITY;
ENTITY document_reference
ABSTRACT SUPERTYPE;
assigned_document : document;
source : label;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY document_relationship;
name : label;
description : OPTIONAL text;
relating_document : document;
related_document : document;
END_ENTITY;
ENTITY document_representation_type;
name : label;
represented_document : document;
END_ENTITY;
ENTITY document_type;
product_data_type : label;
END_ENTITY;
ENTITY document_usage_constraint;
source : document;
subject_element : label;
subject_element_value : text;
END_ENTITY;
ENTITY document_usage_constraint_assignment
ABSTRACT SUPERTYPE;
assigned_document_usage : document_usage_constraint;
role : document_usage_role;
END_ENTITY;
ENTITY document_usage_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY dose_equivalent_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY dose_equivalent_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.sievert);
END_ENTITY;
ENTITY double_offset_shelled_solid
SUBTYPE OF (shelled_solid);
thickness2 : length_measure;
WHERE
WR1 : thickness2 <> 0;
WR2 : SELF\shelled_solid.thickness <> thickness2;
END_ENTITY;
ENTITY draped_defined_transformation
SUBTYPE OF (transformation_with_derived_angle);
END_ENTITY;
ENTITY draughting_annotation_occurrence
SUBTYPE OF (annotation_occurrence);
WHERE
WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE'
IN TYPEOF (SELF))) OR
(SIZEOF (QUERY (sty <* SELF.styles |
NOT ((SIZEOF (sty.styles) = 1)
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF (sty.styles[1]))) )) = 0);
WR2 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE'
IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles |
NOT ((SIZEOF (sty.styles) = 1)
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE'
IN TYPEOF (sty.styles[1]))) )) = 0);
WR3 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE'
IN TYPEOF (SELF))) OR (SIZEOF (QUERY (bound <*
SELF.item\annotation_fill_area.boundaries |
NOT (SIZEOF (QUERY (si <*
USEDIN (bound, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'STYLED_ITEM.ITEM') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)))) > 0))) = 0);
WR4 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE'
IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles |
NOT ((SIZEOF (sty.styles) = 1) AND
(SIZEOF (TYPEOF (sty.styles[1]) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_STYLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NULL_STYLE']) = 1)) )) = 0);
WR5 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE'
IN TYPEOF (SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL'
IN TYPEOF(SELF.item)))) OR
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_SYMBOL_REPRESENTATION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_SUBFIGURE_REPRESENTATION'] *
TYPEOF (SELF.item\mapped_item.mapping_source.
mapped_representation)) = 1);
WR6 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (SELF))) OR
(SIZEOF (QUERY (sty <* SELF.styles |
NOT ((SIZEOF (sty.styles) = 1)
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STYLE'
IN TYPEOF (sty.styles[1]))) )) = 0);
WR7 : (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (SELF))) OR
(SIZEOF (TYPEOF(SELF.item) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL']) = 1);
WR8 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <*
SELF.item\composite_text.collected_text |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL'
IN TYPEOF (tl)) )) = 0);
WR9 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL'
IN TYPEOF (SELF.item)))) OR (SELF.item\text_literal.alignment
IN ['baseline left', 'baseline centre', 'baseline right']);
WR10 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
IN TYPEOF (SELF.item)))) OR
(SIZEOF (QUERY (tl <* QUERY (text <* SELF.
item\composite_text.collected_text
|('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL' IN TYPEOF(text))) |
NOT (tl\text_literal.alignment IN
['baseline left', 'baseline centre', 'baseline right']) )) = 0);
WR11 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF(SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
IN TYPEOF (SELF.item))) OR check_text_alignment(SELF.item);
WR12 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF(SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
IN TYPEOF (SELF.item))) OR check_text_font(SELF.item);
WR13 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF(SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
IN TYPEOF (SELF.item)))) OR
(SIZEOF (QUERY (tl <* QUERY (text <*
SELF.item\composite_text.collected_text |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL' IN TYPEOF (text))) |
NOT (SIZEOF (TYPEOF(tl) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'TEXT_LITERAL_WITH_BLANKING_BOX',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0) )) = 0);
WR14 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL_WITH_ASSOCIATED_CURVES'
IN TYPEOF (SELF.item)))) OR
(SIZEOF (QUERY (crv <*
SELF.item\text_literal_with_associated_curves.
associated_curves |
NOT (SIZEOF (QUERY (si <* USEDIN (crv,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE'
IN TYPEOF (si)) )) > 0) )) = 0);
WR15 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (SELF)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES'
IN TYPEOF (SELF.item)))) OR
(SIZEOF (QUERY (crv <*
SELF.item\composite_text_with_associated_curves.
associated_curves |
NOT (SIZEOF (QUERY (si <* USEDIN (crv,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE'
IN TYPEOF (si)) )) > 0) )) = 0);
WR16 : SIZEOF (QUERY (cs <* QUERY (sty <* SELF.styles |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sty.styles[1])))
| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT'
IN TYPEOF (cs.styles[1]\curve_style.curve_width)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE'
IN TYPEOF (cs.styles[1]\curve_style.
curve_width\measure_with_unit.value_component))))) = 0;
WR17 : SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE'
IN TYPEOF (sty.styles[1]))) |
NOT ((SIZEOF (QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles
| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE_TILES'
IN TYPEOF (fs)))) <= 1)
AND (SIZEOF (QUERY (fst <* QUERY (fs <*
fas.styles[1]\fill_area_style.fill_styles |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE_TILES'
IN TYPEOF (fs))) |
NOT (SIZEOF (fst\fill_area_style_tiles.tiles) = 1)
)) = 0))
)) = 0;
WR18 : SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE'
IN TYPEOF (sty.styles[1]))) |
NOT (SIZEOF (QUERY (fsh <* QUERY (fs <*
fas.styles[1]\fill_area_style.fill_styles |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE_HATCHING'
IN TYPEOF (fs))) |
NOT (fsh\fill_area_style_hatching.point_of_reference_hatch_line :=:
fsh\fill_area_style_hatching.pattern_start) )) = 0) )) = 0;
WR19 : SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STYLE'
IN TYPEOF(sty.styles[1]))) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'TEXT_STYLE_WITH_BOX_CHARACTERISTICS'
IN TYPEOF (ts.styles[1])))) = 0;
WR20 : SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STYLE_WITH_BOX_CHARACTERISTICS'
IN TYPEOF (sty.styles[1]))) |
NOT (SIZEOF (ts.styles[1]\text_style_with_box_characteristics.
characteristics) = 4) )) = 0;
END_ENTITY;
ENTITY draughting_callout
SUPERTYPE OF ((ONEOF (datum_feature_callout, datum_target_callout, dimension_curve_directed_callout, draughting_elements, geometrical_tolerance_callout, leader_directed_callout, projection_directed_callout, structured_dimension_callout) ANDOR surface_condition_callout))
SUBTYPE OF (geometric_representation_item);
contents : SET [1:?] OF draughting_callout_element;
WHERE
WR1 : (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) = 0) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND
(SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(l_1)))) = 0) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND
(SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(l_1)))) = 0) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF)));
END_ENTITY;
ENTITY draughting_callout_relationship;
name : label;
description : text;
relating_draughting_callout : draughting_callout;
related_draughting_callout : draughting_callout;
END_ENTITY;
ENTITY draughting_elements
SUBTYPE OF (draughting_callout);
WHERE
WR1 : SIZEOF (QUERY (l_c <* QUERY (con <* SELF.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) |
NOT (SIZEOF (QUERY (ldc <* USEDIN (l_c,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT'
IN TYPEOF (ldc)))) <= 1)))=0;
WR2 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT'
IN TYPEOF(SELF)) OR
(SIZEOF (QUERY (con <* SELF.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN
TYPEOF (con)))) <= 2);
WR3 : SIZEOF (QUERY (rc <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' +
'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND
(rc.name = 'primary') )) <= 1;
WR4 : SIZEOF (QUERY (rc <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' +
'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND
(rc.name = 'secondary') )) <= 1;
WR5 : SIZEOF (QUERY (sec <* QUERY (rc <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' +
'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND
(rc.name = 'secondary') ) |
NOT (SIZEOF (QUERY (prim <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' +
'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (prim)) AND
(prim.name = 'primary') )) = 1))) = 0;
END_ENTITY;
ENTITY draughting_model
SUBTYPE OF (representation);
SELF\representation.items : SET [1:?] OF draughting_model_item_select;
UNIQUE
UR1: SELF\representation.name;
WHERE
WR1 : SIZEOF (QUERY (mi <* QUERY (it <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) |
NOT (
SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_MODEL'] *
TYPEOF (mi\mapped_item.mapping_source.
mapped_representation)) = 1
))) = 0;
WR2 : SIZEOF (QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN
TYPEOF(si\styled_item.item))) |
(NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN
TYPEOF(smi\styled_item.item\mapped_item.
mapping_source.mapped_representation))
AND
(SIZEOF (QUERY (sty <* smi\styled_item.styles |
(NOT (SIZEOF (QUERY (psa <* sty.styles |
(NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF(psa))))) = 1
)))) = 1)))
)) = 0;
END_ENTITY;
ENTITY draughting_model_item_association
SUBTYPE OF (item_identified_representation_usage);
SELF\item_identified_representation_usage.definition : shape_definition;
SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select;
SELF\item_identified_representation_usage.used_representation : draughting_model;
END_ENTITY;
ENTITY draughting_pre_defined_colour
SUBTYPE OF (pre_defined_colour);
WHERE
WR1 : SELF.name IN
['red',
'green',
'blue',
'yellow',
'magenta',
'cyan',
'black',
'white'];
END_ENTITY;
ENTITY draughting_pre_defined_curve_font
SUBTYPE OF (pre_defined_curve_font);
WHERE
WR1 : SELF.name IN
['continuous',
'chain',
'chain double dash',
'dashed',
'dotted'];
END_ENTITY;
ENTITY draughting_pre_defined_text_font
SUBTYPE OF (pre_defined_text_font);
WHERE
WR1 : SELF.name[1:8] = 'ISO 3098';
END_ENTITY;
ENTITY draughting_subfigure_representation
SUBTYPE OF (symbol_representation);
WHERE
WR1 : SIZEOF (QUERY (item <* SELF\representation.items |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT']
* TYPEOF (item)) = 1))) = 0;
WR2 : SIZEOF (QUERY (item <* SELF\representation.items |
SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT'] *
TYPEOF (item)) = 1)) >= 1;
WR3 : SIZEOF (QUERY (srm <* QUERY (rm <*
USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'REPRESENTATION_MAP.MAPPED_REPRESENTATION') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_REPRESENTATION_MAP'
IN TYPEOF(rm))) |
NOT (SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi)))
| NOT (SIZEOF (QUERY (aso <*
USEDIN (a_s, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'STYLED_ITEM.ITEM') |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE'
IN TYPEOF(aso)))) = 0))) = 0))) > 0;
WR4 : NOT (acyclic_mapped_item_usage (SELF));
WR5 : SIZEOF (SELF.context_of_items.representations_in_context) = 1;
END_ENTITY;
ENTITY draughting_symbol_representation
SUBTYPE OF (symbol_representation);
UNIQUE
UR1: SELF\representation.name;
WHERE
WR1 : SIZEOF (QUERY (item <* SELF\representation.items |
NOT (SIZEOF (TYPEOF (item) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT']) = 1)
)) = 0;
WR2 : SIZEOF (QUERY (item <* SELF\representation.items |
(SIZEOF (TYPEOF (item) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE']) = 1)
)) >= 1;
WR3 : SIZEOF (QUERY (item <* SELF\representation.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE'
IN TYPEOF (item))) = 0;
WR4 : SIZEOF (QUERY (srm <* QUERY (rm <*
USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'REPRESENTATION_MAP.MAPPED_REPRESENTATION') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_REPRESENTATION_MAP'
IN TYPEOF(rm))) |
(SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) |
NOT (SIZEOF (QUERY(aso <*
USEDIN(a_s, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'STYLED_ITEM.ITEM') |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE'
IN TYPEOF(aso))
)) = 0) )) = 0) )) > 0;
WR5 : NOT (acyclic_mapped_item_usage (SELF));
WR6 : SIZEOF (SELF.context_of_items.representations_in_context) = 1;
END_ENTITY;
ENTITY draughting_text_literal_with_delineation
SUBTYPE OF (text_literal_with_delineation);
WHERE
WR1 : SELF.delineation IN ['underline', 'overline'];
END_ENTITY;
ENTITY draughting_title;
items : SET [1:?] OF draughting_titled_item;
language : label;
contents : text;
END_ENTITY;
ENTITY drawing_definition;
drawing_number : identifier;
drawing_type : OPTIONAL label;
END_ENTITY;
ENTITY drawing_revision
SUBTYPE OF (presentation_set);
revision_identifier : identifier;
drawing_identifier : drawing_definition;
intended_scale : OPTIONAL text;
UNIQUE
UR1 : revision_identifier, drawing_identifier;
END_ENTITY;
ENTITY drawing_revision_sequence;
predecessor : drawing_revision;
successor : drawing_revision;
WHERE
WR1 : predecessor :<>: successor;
END_ENTITY;
ENTITY drawing_sheet_revision
SUBTYPE OF (presentation_area);
revision_identifier : identifier;
WHERE
WR1 : SIZEOF( QUERY(item <* SELF\representation.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN (TYPEOF(item)))
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION' IN
(TYPEOF(item\mapped_item.mapping_source.mapped_representation)))))=0;
END_ENTITY;
ENTITY drawing_sheet_revision_sequence
SUBTYPE OF (representation_relationship);
WHERE
WR1 : SELF\representation_relationship.rep_1 :<>:
SELF\representation_relationship.rep_2;
WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION'
IN TYPEOF (SELF\representation_relationship.rep_1);
WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION'
IN TYPEOF (SELF\representation_relationship.rep_2);
END_ENTITY;
ENTITY drawing_sheet_revision_usage
SUBTYPE OF (area_in_set);
sheet_number : identifier;
UNIQUE
UR1: sheet_number, SELF\area_in_set.in_set;
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION' IN
TYPEOF(SELF\area_in_set.area))
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_REVISION'
IN TYPEOF (SELF\area_in_set.in_set));
END_ENTITY;
ENTITY edge
SUPERTYPE OF (ONEOF (edge_curve, oriented_edge, subedge))
SUBTYPE OF (topological_representation_item);
edge_start : vertex;
edge_end : vertex;
END_ENTITY;
ENTITY edge_based_wireframe_model
SUBTYPE OF (geometric_representation_item);
ebwm_boundary : SET [1:?] OF connected_edge_set;
END_ENTITY;
ENTITY edge_based_wireframe_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (
QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0;
WR2 : SIZEOF (
QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1;
WR3 : SIZEOF (
QUERY ( ebwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
QUERY ( edges <* eb.ces_edges| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (edges)) )) = 0) )) = 0) )) = 0;
WR4 : SIZEOF (
QUERY ( ebwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
QUERY ( pline_edges <*
QUERY ( edges <* eb.ces_edges| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (edges\edge_curve.edge_geometry)) )| NOT ( SIZEOF (pline_edges\edge_curve.edge_geometry\polyline.points) > 2) )) = 0) )) = 0) )) = 0;
WR5 : SIZEOF (
QUERY ( ebwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
QUERY ( edges <* eb.ces_edges| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_end))) )) = 0) )) = 0) )) = 0;
WR6 : SIZEOF (
QUERY ( ebwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
QUERY ( edges <* eb.ces_edges| NOT valid_wireframe_edge_curve(edges\edge_curve.edge_geometry) )) = 0) )) = 0) )) = 0;
WR7 : SIZEOF (
QUERY ( ebwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
QUERY ( edges <* eb.ces_edges| NOT (valid_wireframe_vertex_point(edges.edge_start\vertex_point.vertex_geometry) AND valid_wireframe_vertex_point(edges.edge_end\vertex_point.vertex_geometry)) )) = 0) )) = 0) )) = 0;
WR8 : SIZEOF (
QUERY ( mi <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
WR9 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
END_ENTITY;
ENTITY edge_blended_solid
ABSTRACT SUPERTYPE OF ((track_blended_solid ANDOR ONEOF (solid_with_constant_radius_edge_blend, solid_with_variable_radius_edge_blend, solid_with_chamfered_edges)))
SUBTYPE OF (modified_solid);
blended_edges : LIST [1:?] OF UNIQUE edge_curve;
END_ENTITY;
ENTITY edge_curve
SUBTYPE OF (edge, geometric_representation_item);
edge_geometry : curve;
same_sense : BOOLEAN;
END_ENTITY;
ENTITY edge_loop
SUBTYPE OF (loop, path);
DERIVE
ne : INTEGER := SIZEOF(SELF\path.edge_list);
WHERE
WR1 : (SELF\path.edge_list[1].edge_start) :=:
(SELF\path.edge_list[ne].edge_end);
END_ENTITY;
ENTITY effectivity
SUPERTYPE OF (ONEOF (serial_numbered_effectivity, dated_effectivity, lot_effectivity, time_interval_based_effectivity));
id : identifier;
DERIVE
description : text := get_description_value(SELF);
name : label := get_name_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY effectivity_assignment
ABSTRACT SUPERTYPE;
assigned_effectivity : effectivity;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY effectivity_context_assignment
ABSTRACT SUPERTYPE;
assigned_effectivity_assignment : effectivity_assignment;
role : effectivity_context_role;
END_ENTITY;
ENTITY effectivity_context_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY effectivity_relationship;
name : label;
description : OPTIONAL text;
related_effectivity : effectivity;
relating_effectivity : effectivity;
END_ENTITY;
ENTITY electric_charge_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY electric_charge_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.coulomb);
END_ENTITY;
ENTITY electric_current_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY electric_current_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 1.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY electric_potential_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY electric_potential_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.volt);
END_ENTITY;
ENTITY elementary_brep_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (QUERY (it <* SELF.items |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] *
TYPEOF(it)) = 1))) = 0;
WR2 : SIZEOF (QUERY (it <* SELF.items |
SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0;
WR3 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
NOT (SIZEOF (QUERY(fcs <* csh.cfs_faces |
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(fcs)))) = 0
))) = 0
))) = 0;
WR4 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN
TYPEOF(fcs\face_surface.face_geometry))
))) = 0
))) = 0
))) = 0;
WR5 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN
TYPEOF(oe.edge_element)))) = 0
))) = 0
))) = 0
))) = 0
))) = 0;
WR6 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE'] *
TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1 )
)) = 0
))) = 0
))) = 0
))) = 0
))) = 0;
WR7 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start))
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
TYPEOF(oe.edge_end))
))) = 0
))) = 0
))) = 0
))) = 0
))) = 0;
WR8 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN
TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND
(NOT (SIZEOF (oe\oriented_edge.edge_element\
edge_curve.edge_geometry\polyline.points) >= 3))
)) = 0
))) = 0
))) = 0
))) = 0
))) = 0;
WR9 : SIZEOF (QUERY (msb <* QUERY (it <* items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF
(msb\manifold_solid_brep.outer)))
= 0;
WR10 : SIZEOF (QUERY (brv <* QUERY (it <* items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (csh <* brv\brep_with_voids.voids |
csh\oriented_closed_shell.orientation)) = 0))) = 0;
WR11 : SIZEOF (QUERY (mi <* QUERY (it <* items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN
TYPEOF(mi\mapped_item.mapping_source.
mapped_representation)))) = 0;
WR12 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
NOT (SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) |
NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN
TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.
loop_vertex\vertex_point.vertex_geometry))
))) = 0))) = 0))) = 0))) =0;
END_ENTITY;
ENTITY elementary_surface
SUPERTYPE OF (ONEOF (plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface))
SUBTYPE OF (surface);
position : axis2_placement_3d;
END_ENTITY;
ENTITY ellipse
SUBTYPE OF (conic);
semi_axis_1 : positive_length_measure;
semi_axis_2 : positive_length_measure;
END_ENTITY;
ENTITY energy_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY energy_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.joule);
END_ENTITY;
ENTITY entity_assertion
SUBTYPE OF (fact_type);
END_ENTITY;
ENTITY enum_reference_prefix
SUBTYPE OF (descriptive_representation_item);
END_ENTITY;
ENTITY environment;
syntactic_representation : generic_variable;
semantics : variable_semantics;
END_ENTITY;
ENTITY evaluated_characteristic
SUBTYPE OF (representation, representation_relationship);
UNIQUE
UR1: SELF\representation_relationship.rep_1, SELF\representation_relationship.rep_2;
WHERE
WR1 : SELF\representation_relationship.rep_1 <>
SELF\representation_relationship.rep_2;
END_ENTITY;
ENTITY evaluated_degenerate_pcurve
SUBTYPE OF (degenerate_pcurve);
equivalent_point : cartesian_point;
END_ENTITY;
ENTITY evaluation_product_definition
SUBTYPE OF (product_definition);
END_ENTITY;
ENTITY event_occurrence;
id : identifier;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY event_occurrence_assignment
ABSTRACT SUPERTYPE;
assigned_event_occurrence : event_occurrence;
role : event_occurrence_role;
END_ENTITY;
ENTITY event_occurrence_relationship;
name : label;
description : OPTIONAL text;
relating_event : event_occurrence;
related_event : event_occurrence;
END_ENTITY;
ENTITY event_occurrence_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY exclusive_product_concept_feature_category
SUBTYPE OF (product_concept_feature_category);
END_ENTITY;
ENTITY executed_action
SUBTYPE OF (action);
END_ENTITY;
ENTITY expanded_uncertainty
SUBTYPE OF (standard_uncertainty);
coverage_factor : REAL;
END_ENTITY;
ENTITY explicit_procedural_geometric_representation_item_relationship
SUBTYPE OF (explicit_procedural_representation_item_relationship);
SELF\representation_item_relationship.related_representation_item : geometric_representation_item;
SELF\representation_item_relationship.relating_representation_item : procedural_shape_representation_sequence;
WHERE
WR1 : NOT (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE'
IN TYPEOF(
SELF\representation_item_relationship.related_representation_item));
END_ENTITY;
ENTITY explicit_procedural_representation_item_relationship
SUBTYPE OF (representation_item_relationship);
SELF\representation_item_relationship.relating_representation_item : procedural_representation_sequence;
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_REPRESENTATION_SEQUENCE'
IN TYPEOF(
SELF\representation_item_relationship.related_representation_item));
WR2 : SIZEOF(QUERY(q <* using_representations(
SELF\representation_item_relationship.related_representation_item) |
item_in_context(
SELF\representation_item_relationship.relating_representation_item,
q.context_of_items))) > 0;
END_ENTITY;
ENTITY explicit_procedural_representation_relationship
SUBTYPE OF (representation_relationship);
SELF\representation_relationship.rep_1 : procedural_representation;
WHERE
WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_REPRESENTATION'
IN TYPEOF(SELF\representation_relationship.rep_2))) AND
(NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VARIATIONAL_REPRESENTATION'
IN TYPEOF(SELF\representation_relationship.rep_2)));
WR2 : SELF\representation_relationship.rep_1.context_of_items :=:
SELF\representation_relationship.rep_2.context_of_items;
END_ENTITY;
ENTITY explicit_procedural_shape_representation_relationship
SUBTYPE OF (explicit_procedural_representation_relationship);
SELF\representation_relationship.rep_1 : procedural_shape_representation;
SELF\representation_relationship.rep_2 : shape_representation;
END_ENTITY;
ENTITY expression
ABSTRACT SUPERTYPE OF (ONEOF (numeric_expression, boolean_expression))
SUBTYPE OF (generic_expression);
END_ENTITY;
ENTITY expression_conversion_based_unit
SUBTYPE OF (context_dependent_unit, variable_semantics);
INVERSE
associated_variable_environment: environment FOR semantics;
END_ENTITY;
ENTITY extension
SUBTYPE OF (derived_shape_aspect);
WHERE
WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
END_ENTITY;
ENTITY extent
SUBTYPE OF (characterized_object);
END_ENTITY;
ENTITY external_class_library
SUBTYPE OF (external_source);
END_ENTITY;
ENTITY external_identification_assignment
ABSTRACT SUPERTYPE
SUBTYPE OF (identification_assignment);
source : external_source;
END_ENTITY;
ENTITY external_source;
source_id : source_item;
DERIVE
description : text := get_description_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY external_source_relationship;
name : label;
description : OPTIONAL text;
relating_source : external_source;
related_source : external_source;
END_ENTITY;
ENTITY externally_defined_class
SUBTYPE OF (class, externally_defined_item);
END_ENTITY;
ENTITY externally_defined_colour
SUBTYPE OF (colour_specification, externally_defined_item);
END_ENTITY;
ENTITY externally_defined_context_dependent_unit
SUBTYPE OF (context_dependent_unit, externally_defined_item);
END_ENTITY;
ENTITY externally_defined_conversion_based_unit
SUBTYPE OF (conversion_based_unit, externally_defined_item);
END_ENTITY;
ENTITY externally_defined_currency
SUBTYPE OF (currency, externally_defined_context_dependent_unit);
END_ENTITY;
ENTITY externally_defined_curve_font
SUBTYPE OF (externally_defined_item);
END_ENTITY;
ENTITY externally_defined_dimension_definition
SUBTYPE OF (dimensional_size, externally_defined_item);
WHERE
WR1 : (SELF\externally_defined_item.item_id = 'external size dimension') AND (SELF\externally_defined_item.source.source_id = 'external size dimension specification');
WR2 : 1 >= SIZEOF(QUERY ( adr <* USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'external size dimension specification') ));
END_ENTITY;
ENTITY externally_defined_general_property
SUBTYPE OF (general_property, externally_defined_item);
END_ENTITY;
ENTITY externally_defined_hatch_style
SUBTYPE OF (externally_defined_item, geometric_representation_item);
END_ENTITY;
ENTITY externally_defined_item;
item_id : source_item;
source : external_source;
END_ENTITY;
ENTITY externally_defined_item_relationship;
name : label;
description : OPTIONAL text;
relating_item : externally_defined_item;
related_item : externally_defined_item;
END_ENTITY;
ENTITY externally_defined_marker
SUBTYPE OF (externally_defined_symbol, pre_defined_marker);
END_ENTITY;
ENTITY externally_defined_picture_representation_item
SUBTYPE OF (picture_representation_item);
INVERSE
source: applied_external_identification_assignment FOR items;
WHERE
WR1 : NOT (SELF\representation_item.name IN pre_defined_picture_representation_types);
END_ENTITY;
ENTITY externally_defined_representation_item
SUBTYPE OF (representation_item, externally_defined_item);
END_ENTITY;
ENTITY externally_defined_string
SUBTYPE OF (externally_defined_representation_item);
END_ENTITY;
ENTITY externally_defined_symbol
SUBTYPE OF (externally_defined_item);
END_ENTITY;
ENTITY externally_defined_terminator_symbol
SUBTYPE OF (externally_defined_symbol);
END_ENTITY;
ENTITY externally_defined_text_font
SUBTYPE OF (externally_defined_item);
END_ENTITY;
ENTITY externally_defined_tile
SUBTYPE OF (externally_defined_item);
END_ENTITY;
ENTITY externally_defined_tile_style
SUBTYPE OF (externally_defined_item, geometric_representation_item);
END_ENTITY;
ENTITY extruded_area_solid
SUBTYPE OF (swept_area_solid);
extruded_direction : direction;
depth : positive_length_measure;
WHERE
WR1 : dot_product(
(SELF\swept_area_solid.swept_area.basis_surface\
elementary_surface.position.p[3]), extruded_direction) <> 0.0;
END_ENTITY;
ENTITY extruded_face_solid
SUBTYPE OF (swept_face_solid);
extruded_direction : direction;
depth : positive_length_measure;
WHERE
WR1 : dot_product(
(SELF\swept_face_solid.swept_face.face_geometry\
elementary_surface.position.p[3]), extruded_direction) <> 0.0;
END_ENTITY;
ENTITY extruded_face_solid_with_draft_angle
SUBTYPE OF (extruded_face_solid_with_trim_conditions);
draft_angle : plane_angle_measure;
WHERE
WR1 : draft_angle <> 0;
END_ENTITY;
ENTITY extruded_face_solid_with_multiple_draft_angles
SUBTYPE OF (extruded_face_solid_with_trim_conditions);
drafted_edges : LIST [2:?] OF SET [1:?] OF edge_curve;
draft_angles : LIST [2:?] OF plane_angle_measure;
WHERE
WR1 : SIZEOF(drafted_edges) = SIZEOF(draft_angles);
WR2 : SIZEOF(QUERY(q <* draft_angles | q = 0)) = 0;
WR3 : SIZEOF(QUERY(q <* drafted_edges | (SIZEOF(QUERY(r <* q | NOT
(SELF\swept_face_solid.swept_face IN
using_items(r,[])))) > 0))) = 0;
END_ENTITY;
ENTITY extruded_face_solid_with_trim_conditions
SUPERTYPE OF (ONEOF (extruded_face_solid_with_draft_angle, extruded_face_solid_with_multiple_draft_angles))
SUBTYPE OF (extruded_face_solid);
first_trim_condition : trim_condition_select;
second_trim_condition : trim_condition_select;
first_trim_intent : trim_intent;
second_trim_intent : trim_intent;
first_offset : non_negative_length_measure;
second_offset : non_negative_length_measure;
WHERE
WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE'
IN TYPEOF(first_trim_condition)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE'
IN TYPEOF(second_trim_condition)));
WR2 : NOT ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
IN TYPEOF(first_trim_condition)) AND
((first_trim_intent = trim_intent.offset)
OR (first_trim_intent = trim_intent.up_to_next))) OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
IN TYPEOF(second_trim_condition)) AND
((second_trim_intent = trim_intent.offset)
OR (second_trim_intent = trim_intent.up_to_next))));
WR3 : NOT (((NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
IN TYPEOF(first_trim_condition))) AND
((first_trim_intent = trim_intent.blind)
OR (first_trim_intent = trim_intent.through_all))) OR
((NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
IN TYPEOF(second_trim_condition))) AND
((second_trim_intent = trim_intent.blind)
OR (second_trim_intent = trim_intent.through_all))));
WR4 : (((first_trim_intent = trim_intent.offset)
AND (first_offset > 0)) XOR
((first_trim_intent <> trim_intent.offset)
AND (first_offset = 0))) AND
(((second_trim_intent = trim_intent.offset)
AND (second_offset > 0)) XOR
((second_trim_intent <> trim_intent.offset)
AND (second_offset = 0)));
WR5 : NOT((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
IN TYPEOF(first_trim_condition)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
IN TYPEOF(second_trim_condition))) AND
(first_trim_condition = second_trim_condition));
END_ENTITY;
ENTITY face
SUPERTYPE OF (ONEOF (face_surface, subface, oriented_face))
SUBTYPE OF (topological_representation_item);
bounds : SET [1:?] OF face_bound;
WHERE
WR1 : NOT (mixed_loop_type_set(list_to_set(list_face_loops(SELF))));
WR2 : SIZEOF(QUERY(temp <* bounds | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN
TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY face_based_surface_model
SUBTYPE OF (geometric_representation_item);
fbsm_faces : SET [1:?] OF connected_face_set;
END_ENTITY;
ENTITY face_bound
SUBTYPE OF (topological_representation_item);
bound : loop;
orientation : BOOLEAN;
END_ENTITY;
ENTITY face_outer_bound
SUBTYPE OF (face_bound);
END_ENTITY;
ENTITY face_surface
SUBTYPE OF (face, geometric_representation_item);
face_geometry : surface;
same_sense : BOOLEAN;
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_SURFACE' IN TYPEOF(face_geometry));
END_ENTITY;
ENTITY faceted_brep
SUBTYPE OF (manifold_solid_brep);
END_ENTITY;
ENTITY faceted_brep_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (
QUERY ( it <* items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0;
WR2 : SIZEOF (
QUERY ( it <* items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0;
WR3 : SIZEOF (
QUERY ( fbrep <*
QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( csh <* msb_shells(fbrep)| NOT ( SIZEOF (
QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fcs)) AND (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF (fcs\face_surface.face_geometry)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (fcs\face_surface.face_geometry\elementary_surface.position.location)))) )) = 0) )) = 0) )) = 0;
WR4 : SIZEOF (
QUERY ( fbrep <*
QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( csh <* msb_shells(fbrep)| NOT ( SIZEOF (
QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT ( SIZEOF (
QUERY ( bnds <* fcs.bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF (bnds)) )) = 1) )) = 0) )) = 0) )) = 0;
WR5 : SIZEOF (
QUERY ( msb <*
QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0;
WR6 : SIZEOF (
QUERY ( brv <*
QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( csh <* brv\brep_with_voids.voids| csh\oriented_closed_shell.orientation )) = 0) )) = 0;
WR7 : SIZEOF (
QUERY ( mi <*
QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
END_ENTITY;
ENTITY fact_type
SUBTYPE OF (property_definition);
END_ENTITY;
ENTITY fill_area_style
SUBTYPE OF (founded_item);
name : label;
fill_styles : SET [1:?] OF fill_style_select;
WHERE
WR1 : SIZEOF(QUERY(fill_style <* SELF.fill_styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'FILL_AREA_STYLE_COLOUR' IN
TYPEOF(fill_style)
)) <= 1;
END_ENTITY;
ENTITY fill_area_style_colour;
name : label;
fill_colour : colour;
END_ENTITY;
ENTITY fill_area_style_hatching
SUBTYPE OF (geometric_representation_item);
hatch_line_appearance : curve_style;
start_of_next_hatch_line : one_direction_repeat_factor;
point_of_reference_hatch_line : cartesian_point;
pattern_start : cartesian_point;
hatch_line_angle : plane_angle_measure;
END_ENTITY;
ENTITY fill_area_style_tile_coloured_region
SUBTYPE OF (geometric_representation_item);
closed_curve : curve_or_annotation_curve_occurrence;
region_colour : colour;
WHERE
WR1 : (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (closed_curve))) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' IN TYPEOF (closed_curve)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE' IN TYPEOF (closed_curve)) OR
( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (closed_curve))
AND (closed_curve\b_spline_curve.closed_curve = TRUE) ) OR
( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (closed_curve))
AND (closed_curve\composite_curve.closed_curve = TRUE) ) OR
( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (closed_curve))
AND (closed_curve\polyline.points[LOINDEX(closed_curve\polyline.points)] =
closed_curve\polyline.points[HIINDEX(closed_curve\polyline.points)]) );
END_ENTITY;
ENTITY fill_area_style_tile_curve_with_style
SUBTYPE OF (geometric_representation_item);
styled_curve : annotation_curve_occurrence;
END_ENTITY;
ENTITY fill_area_style_tile_symbol_with_style
SUBTYPE OF (geometric_representation_item);
symbol : annotation_symbol_occurrence;
END_ENTITY;
ENTITY fill_area_style_tiles
SUBTYPE OF (geometric_representation_item);
tiling_pattern : two_direction_repeat_factor;
tiles : SET [1:?] OF fill_area_style_tile_shape_select;
tiling_scale : positive_ratio_measure;
END_ENTITY;
ENTITY flat_pattern_ply_representation_relationship
SUBTYPE OF (shape_representation_relationship);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN
(TYPEOF (SELF\representation_relationship.rep_1) *
TYPEOF (SELF\representation_relationship.rep_2));
WR2 : SELF\representation_relationship.rep_1.
context_of_items\geometric_representation_context.
coordinate_space_dimension = 3;
END_ENTITY;
ENTITY flatness_tolerance
SUBTYPE OF (geometric_tolerance);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
END_ENTITY;
ENTITY force_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY force_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.newton);
END_ENTITY;
ENTITY forward_chaining_rule
SUBTYPE OF (rule_definition);
END_ENTITY;
ENTITY forward_chaining_rule_premise
SUBTYPE OF (property_definition, property_definition_representation, representation);
END_ENTITY;
ENTITY founded_item
SUPERTYPE OF (ONEOF (character_glyph_style_outline, character_glyph_style_stroke, curve_style, curve_style_font, curve_style_font_and_scaling, curve_style_font_pattern, fill_area_style, point_style, presentation_style_assignment, surface_side_style, surface_style_boundary, surface_style_control_grid, surface_style_fill_area, surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, surface_style_usage, symbol_style, text_style));
DERIVE
users : SET [0:?] OF founded_item_select := using_items(SELF,[]);
WHERE
WR1 : SIZEOF(users) > 0;
WR2 : NOT(SELF IN users);
END_ENTITY;
ENTITY frequency_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FREQUENCY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY frequency_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.hertz);
END_ENTITY;
ENTITY func
SUBTYPE OF (compound_representation_item);
END_ENTITY;
ENTITY functional_breakdown_context
SUBTYPE OF (breakdown_context);
END_ENTITY;
ENTITY functional_element_usage
SUBTYPE OF (breakdown_element_usage);
END_ENTITY;
ENTITY functionally_defined_transformation;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY general_material_property
SUBTYPE OF (general_property);
WHERE
WR1 : SIZEOF( QUERY( gpa <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF(gpa.derived_definition)) )) = 0;
END_ENTITY;
ENTITY general_property;
id : identifier;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY general_property_association;
name : label;
description : OPTIONAL text;
base_definition : general_property;
derived_definition : derived_property_select;
WHERE
WR1 : SIZEOF(USEDIN(derived_definition, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')) = 1;
WR2 : derived_definition.name = base_definition.name;
END_ENTITY;
ENTITY general_property_relationship;
name : label;
description : OPTIONAL text;
relating_property : general_property;
related_property : general_property;
END_ENTITY;
ENTITY generic_character_glyph_symbol
ABSTRACT SUPERTYPE
SUBTYPE OF (symbol_representation);
END_ENTITY;
ENTITY generic_expression
ABSTRACT SUPERTYPE OF (ONEOF (simple_generic_expression, unary_generic_expression, binary_generic_expression, multiple_arity_generic_expression));
WHERE
WR1 : is_acyclic(SELF);
END_ENTITY;
ENTITY generic_literal
ABSTRACT SUPERTYPE
SUBTYPE OF (simple_generic_expression);
END_ENTITY;
ENTITY generic_variable
ABSTRACT SUPERTYPE
SUBTYPE OF (simple_generic_expression);
INVERSE
interpretation: environment FOR syntactic_representation;
END_ENTITY;
ENTITY geometric_alignment
SUBTYPE OF (derived_shape_aspect);
WHERE
WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1;
END_ENTITY;
ENTITY geometric_curve_set
SUBTYPE OF (geometric_set);
WHERE
WR1 : SIZEOF(QUERY(temp <* SELF\geometric_set.elements |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(temp))) = 0;
END_ENTITY;
ENTITY geometric_intersection
SUBTYPE OF (derived_shape_aspect);
WHERE
WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1;
END_ENTITY;
ENTITY geometric_item_specific_usage
SUBTYPE OF (item_identified_representation_usage);
SELF\item_identified_representation_usage.definition : geometric_item_specific_usage_select;
SELF\item_identified_representation_usage.identified_item : geometric_representation_item;
SELF\item_identified_representation_usage.used_representation : shape_representation;
END_ENTITY;
ENTITY geometric_model_element_relationship
SUBTYPE OF (geometric_representation_item, representation_item_relationship);
SELF\representation_item_relationship.related_representation_item : geometric_representation_item;
SELF\representation_item_relationship.relating_representation_item : geometric_representation_item;
UNIQUE
UR1 : relating_representation_item, related_representation_item;
WHERE
WR1 : SELF\representation_item_relationship.relating_representation_item :<>:
SELF\representation_item_relationship.related_representation_item;
END_ENTITY;
ENTITY geometric_representation_context
SUBTYPE OF (representation_context);
coordinate_space_dimension : dimension_count;
END_ENTITY;
ENTITY geometric_representation_item
SUPERTYPE OF (ONEOF (point, direction, vector, placement, cartesian_transformation_operator, curve, surface, edge_curve, face_surface, poly_loop, vertex_point, solid_model, boolean_result, sphere, right_circular_cone, right_circular_cylinder, torus, block, right_angular_wedge, half_space_solid, shell_based_surface_model, face_based_surface_model, shell_based_wireframe_model, edge_based_wireframe_model, geometric_set, camera_model, camera_model_d3_multi_clipping_intersection, camera_model_d3_multi_clipping_union, light_source))
SUBTYPE OF (representation_item);
DERIVE
dim : dimension_count := dimension_of(SELF);
WHERE
WR1 : SIZEOF (QUERY (using_rep <* using_representations (SELF) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN
TYPEOF (using_rep.context_of_items)))) = 0;
END_ENTITY;
ENTITY geometric_set
SUBTYPE OF (geometric_representation_item);
elements : SET [1:?] OF geometric_set_select;
END_ENTITY;
ENTITY geometric_tolerance;
name : label;
description : text;
magnitude : measure_with_unit;
toleranced_shape_aspect : shape_aspect;
WHERE
WR1 : ('NUMBER' IN TYPEOF
(magnitude\measure_with_unit.value_component)) AND
(magnitude\measure_with_unit.value_component >= 0.0);
END_ENTITY;
ENTITY geometric_tolerance_relationship;
name : label;
description : text;
relating_geometric_tolerance : geometric_tolerance;
related_geometric_tolerance : geometric_tolerance;
END_ENTITY;
ENTITY geometric_tolerance_with_datum_reference
SUBTYPE OF (geometric_tolerance);
datum_system : SET [1:?] OF datum_reference;
END_ENTITY;
ENTITY geometric_tolerance_with_defined_unit
SUBTYPE OF (geometric_tolerance);
unit_size : measure_with_unit;
WHERE
WR1 : ('NUMBER' IN TYPEOF
(unit_size\measure_with_unit.value_component)) AND
(unit_size\measure_with_unit.value_component > 0.0);
END_ENTITY;
ENTITY geometrical_tolerance_callout
SUBTYPE OF (draughting_callout);
END_ENTITY;
ENTITY geometrically_bounded_2d_wireframe_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SELF.context_of_items\geometric_representation_context.
coordinate_space_dimension = 2;
WR2 : SIZEOF (QUERY (item <* SELF.items |
NOT (SIZEOF (TYPEOF (item) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_2D',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM']) = 1)
)) = 0;
WR3 : SIZEOF (QUERY (item <* SELF.items |
SIZEOF (TYPEOF (item) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM']) = 1
)) >= 1;
WR4 : SIZEOF (QUERY (mi <* QUERY (item <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF (item))) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION'
IN TYPEOF
(mi\mapped_item.mapping_source.mapped_representation))
)) = 0;
WR5 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET'
IN TYPEOF (item))) |
NOT (SIZEOF (QUERY (elem <* gcs\geometric_set.elements |
NOT (SIZEOF (TYPEOF (elem) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_2D',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE']) =
1)
)) = 0)
)) = 0;
WR6 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET'
IN TYPEOF (item))) |
NOT (SIZEOF (QUERY (crv <*
QUERY (elem <* gcs\geometric_set.elements |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE'
IN TYPEOF (elem))) |
NOT (valid_basis_curve_in_2d_wireframe
(crv))
)) = 0)
)) = 0;
WR7 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET'
IN TYPEOF (item))) |
NOT (SIZEOF (QUERY (pnt <*
QUERY (elem <* gcs\geometric_set.elements |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT'
IN TYPEOF(elem))) |
NOT (SIZEOF (TYPEOF (pnt) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE'])
= 1)
)) = 0)
)) = 0;
END_ENTITY;
ENTITY geometrically_bounded_surface_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0;
WR2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0;
WR3 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY(mr_it <* mi\mapped_item.mapping_source.mapped_representation.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(mr_it)))) > 0)))) = 0;
WR4 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(pnt <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT' IN TYPEOF(gsel)) | NOT (gbsf_check_point(pnt)))) = 0))) = 0;
WR5 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cv <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF(gsel)) | NOT (gbsf_check_curve(cv)))) = 0))) = 0;
WR6 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(sf <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(gsel)) | NOT (gbsf_check_surface(sf)))) = 0))) = 0;
WR7 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | SIZEOF(QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(gsel))) > 0)) > 0;
END_ENTITY;
ENTITY geometrically_bounded_wireframe_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (
QUERY ( it <* SELF.items| NOT ( SIZEOF ( TYPEOF (it) * [ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ]) = 1) )) = 0;
WR2 : SIZEOF (
QUERY ( it <* SELF.items| ( SIZEOF ( TYPEOF (it) * [ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ]) = 1) )) >= 1;
WR3 : SIZEOF (
QUERY ( gcs <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( crv <*
QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_curve(crv) )) = 0) )) = 0;
WR4 : SIZEOF (
QUERY ( gcs <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( pnts <*
QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_point(pnts) )) = 0) )) = 0;
WR5 : SIZEOF (
QUERY ( gcs <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( cnc <*
QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC' IN TYPEOF (elem)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (cnc\conic.position)) )) = 0) )) = 0;
WR6 : SIZEOF (
QUERY ( gcs <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( pline <*
QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (elem)) )| NOT ( SIZEOF (pline\polyline.points) > 2) )) = 0) )) = 0;
WR7 : SIZEOF (
QUERY ( mi <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
END_ENTITY;
ENTITY global_assignment
SUBTYPE OF (representation_item_relationship);
END_ENTITY;
ENTITY global_uncertainty_assigned_context
SUBTYPE OF (representation_context);
uncertainty : SET [1:?] OF uncertainty_measure_with_unit;
END_ENTITY;
ENTITY global_unit_assigned_context
SUBTYPE OF (representation_context);
units : SET [1:?] OF unit;
END_ENTITY;
ENTITY ground_fact
SUBTYPE OF (atomic_formula);
END_ENTITY;
ENTITY group;
name : label;
description : OPTIONAL text;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY group_assignment
ABSTRACT SUPERTYPE;
assigned_group : group;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY group_relationship;
name : label;
description : OPTIONAL text;
relating_group : group;
related_group : group;
END_ENTITY;
ENTITY half_space_solid
SUBTYPE OF (geometric_representation_item);
base_surface : surface;
agreement_flag : BOOLEAN;
END_ENTITY;
ENTITY hardness_representation
SUBTYPE OF (representation);
WHERE
WR1 : ( {2<= SIZEOF ( SELF.items ) <=4} ) AND ( SIZEOF ( QUERY (
i <* items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND (
i.name IN [ 'measuring method' , 'measuring position' ] ) )
) + SIZEOF ( QUERY ( i <* items | ( SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 )
AND ( i.name IN ['depth' , 'hardness'] ) ) ) = SIZEOF (
SELF.items ) );
WR2 : SIZEOF ( QUERY ( i <* SELF.items | i.name =
'measuring method' ) ) =1;
WR3 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='hardness' ) )
=1;
WR4 : SIZEOF ( QUERY ( i <* SELF.items | i.name =
'measuring position' ) ) <=1;
WR5 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='depth' ) )
<=1;
WR6 : ( SIZEOF ( USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
<* USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
pdr. definition ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'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);
SELF\styled_item.item : camera_image;
SELF\context_dependent_over_riding_styled_item.style_context : LIST [1:1] OF presentation_view;
INVERSE
container: SET [1:?] OF presentation_view FOR items;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF
(SELF.item\mapped_item.mapping_source.mapping_origin);
END_ENTITY;
ENTITY hyperbola
SUBTYPE OF (conic);
semi_axis : positive_length_measure;
semi_imag_axis : positive_length_measure;
END_ENTITY;
ENTITY id_attribute;
attribute_value : identifier;
identified_item : id_attribute_select;
END_ENTITY;
ENTITY identification_assignment
ABSTRACT SUPERTYPE;
assigned_id : identifier;
role : identification_role;
END_ENTITY;
ENTITY identification_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY illuminance_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ILLUMINANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY illuminance_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lux);
END_ENTITY;
ENTITY included_text_block
SUBTYPE OF (mapped_item);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRUCTURED_TEXT_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation);
END_ENTITY;
ENTITY inclusion_product_concept_feature
SUBTYPE OF (conditional_concept_feature);
WHERE
WR1 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( SELF ) );
WR2 : SIZEOF (QUERY
( cfr <* USEDIN
( SELF ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' )
|
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF( cfr )
)
) +
SIZEOF(QUERY
( cfr <* USEDIN
(SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' )
|
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)
)
)= 0;
WR3 : SELF.condition.conditional_operator.name = 'implication';
END_ENTITY;
ENTITY indirectly_selected_elements
SUBTYPE OF (user_selected_elements);
indirectly_picked_items : SET [1:?] OF representation_item;
END_ENTITY;
ENTITY indirectly_selected_shape_elements
SUBTYPE OF (indirectly_selected_elements, user_selected_shape_elements);
WHERE
WR1 : SIZEOF(QUERY(q <*
SELF\indirectly_selected_elements.indirectly_picked_items
| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM'
IN TYPEOF(q)))) = 0;
END_ENTITY;
ENTITY inductance_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY inductance_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.henry);
END_ENTITY;
ENTITY information_right
SUBTYPE OF (action_method);
END_ENTITY;
ENTITY information_usage_right
SUBTYPE OF (action_method);
END_ENTITY;
ENTITY instance_usage_context_assignment
SUBTYPE OF (product_definition_context);
items : SET [1:?] OF instance_usage_context_select;
END_ENTITY;
ENTITY instanced_feature
SUBTYPE OF (shape_aspect, shape_feature_definition);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN
TYPEOF(SELF\shape_aspect.of_shape.definition);
WR2 : SELF\shape_aspect.product_definitional;
END_ENTITY;
ENTITY int_literal
SUBTYPE OF (literal_number);
SELF\literal_number.the_value : INTEGER;
END_ENTITY;
ENTITY integer_representation_item
SUBTYPE OF (representation_item, int_literal);
END_ENTITY;
ENTITY intersection_curve
SUBTYPE OF (surface_curve);
WHERE
WR1 : SIZEOF(SELF\surface_curve.associated_geometry) = 2;
WR2 : associated_surface(SELF\surface_curve.associated_geometry[1]) <>
associated_surface(SELF\surface_curve.associated_geometry[2]);
END_ENTITY;
ENTITY interval_expression
SUBTYPE OF (boolean_expression, multiple_arity_generic_expression);
DERIVE
interval_high : generic_expression := SELF\multiple_arity_generic_expression.operands[3];
interval_item : generic_expression := SELF\multiple_arity_generic_expression.operands[2];
interval_low : generic_expression := SELF\multiple_arity_generic_expression.operands[1];
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION'
IN TYPEOF(interval_low))
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION'
IN TYPEOF(interval_item) )
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION'
IN TYPEOF(interval_high));
WR2 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
IN TYPEOF (SELF.interval_low))
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
IN TYPEOF (SELF.interval_high))
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
IN TYPEOF (SELF.interval_item)))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
IN TYPEOF(SELF.interval_low))
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION'
IN TYPEOF(SELF.interval_item))
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION'
IN TYPEOF(SELF.interval_high)));
END_ENTITY;
ENTITY invisibility;
invisible_items : SET [1:?] OF invisible_item;
END_ENTITY;
ENTITY iso4217_currency
SUBTYPE OF (currency);
END_ENTITY;
ENTITY item_defined_transformation;
name : label;
description : OPTIONAL text;
transform_item_1 : representation_item;
transform_item_2 : representation_item;
END_ENTITY;
ENTITY item_identified_representation_usage;
name : label;
description : OPTIONAL text;
definition : represented_definition;
used_representation : representation;
identified_item : representation_item;
WHERE
WR1 : SELF.used_representation IN using_representations(SELF.identified_item);
END_ENTITY;
ENTITY known_source
SUBTYPE OF (external_source, pre_defined_item);
END_ENTITY;
ENTITY laid_defined_transformation
SUBTYPE OF (transformation_with_derived_angle);
END_ENTITY;
ENTITY laminate_table
SUPERTYPE OF (ONEOF (part_laminate_table, zone_structural_makeup))
SUBTYPE OF (product_definition);
END_ENTITY;
ENTITY language
SUBTYPE OF (group);
WHERE
WR1 : SELF\group.name <> '';
END_ENTITY;
ENTITY leader_curve
SUBTYPE OF (annotation_curve_occurrence);
WHERE
WR1 : SIZEOF(
QUERY(ldc <* USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_CALLOUT.CONTENTS')
| 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= 1;
END_ENTITY;
ENTITY leader_directed_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1 : SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) >= 1;
WR2 : SIZEOF(SELF\draughting_callout.contents) >=2;
END_ENTITY;
ENTITY leader_directed_dimension
SUBTYPE OF (leader_directed_callout);
WHERE
WR1 : SIZEOF (QUERY (con <* SELF.contents |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF (con)))=1;
END_ENTITY;
ENTITY leader_terminator
SUBTYPE OF (terminator_symbol);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF
(SELF\terminator_symbol.annotated_curve);
END_ENTITY;
ENTITY length_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY length_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 1.0) AND
(SELF\named_unit.dimensions.mass_exponent = 0.0) AND
(SELF\named_unit.dimensions.time_exponent = 0.0) AND
(SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
(SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY light_source
SUPERTYPE OF (ONEOF (light_source_ambient, light_source_directional, light_source_positional, light_source_spot))
SUBTYPE OF (geometric_representation_item);
light_colour : colour;
WHERE
WR1 : SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'STYLED_ITEM.ITEM')) = 0;
END_ENTITY;
ENTITY light_source_ambient
SUBTYPE OF (light_source);
END_ENTITY;
ENTITY light_source_directional
SUBTYPE OF (light_source);
orientation : direction;
END_ENTITY;
ENTITY light_source_positional
SUBTYPE OF (light_source);
position : cartesian_point;
constant_attenuation : REAL;
distance_attenuation : REAL;
END_ENTITY;
ENTITY light_source_spot
SUBTYPE OF (light_source);
position : cartesian_point;
orientation : direction;
concentration_exponent : REAL;
constant_attenuation : REAL;
distance_attenuation : REAL;
spread_angle : positive_plane_angle_measure;
END_ENTITY;
ENTITY limits_and_fits;
form_variance : label;
zone_variance : label;
grade : label;
source : text;
END_ENTITY;
ENTITY line
SUBTYPE OF (curve);
pnt : cartesian_point;
dir : vector;
WHERE
WR1 : dir.dim = pnt.dim;
END_ENTITY;
ENTITY line_profile_tolerance
SUBTYPE OF (geometric_tolerance);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3);
WR2 : SIZEOF (
QUERY ( sar <* USEDIN (SELF\geometric_tolerance.toleranced_shape_aspect, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.name IN [ 'affected plane association', 'resulting intersection curve association' ]) )) = 1;
END_ENTITY;
ENTITY linear_dimension
SUBTYPE OF (dimension_curve_directed_callout);
END_ENTITY;
ENTITY literal_conjunction
SUBTYPE OF (simple_clause);
END_ENTITY;
ENTITY literal_disjunction
SUBTYPE OF (simple_clause);
END_ENTITY;
ENTITY literal_number
ABSTRACT SUPERTYPE OF (ONEOF (int_literal, real_literal))
SUBTYPE OF (simple_numeric_expression, generic_literal);
the_value : NUMBER;
END_ENTITY;
ENTITY local_time;
hour_component : hour_in_day;
minute_component : OPTIONAL minute_in_hour;
second_component : OPTIONAL second_in_minute;
zone : coordinated_universal_time_offset;
WHERE
WR1 : valid_time (SELF);
END_ENTITY;
ENTITY logical_literal
SUBTYPE OF (generic_literal);
lit_value : LOGICAL;
END_ENTITY;
ENTITY logical_representation_item
SUBTYPE OF (representation_item, logical_literal);
END_ENTITY;
ENTITY loop
SUPERTYPE OF (ONEOF (vertex_loop, edge_loop, poly_loop))
SUBTYPE OF (topological_representation_item);
END_ENTITY;
ENTITY loss_tangent_measure_with_unit
SUBTYPE OF (ratio_measure_with_unit);
END_ENTITY;
ENTITY lot_effectivity
SUBTYPE OF (effectivity);
effectivity_lot_id : identifier;
effectivity_lot_size : measure_with_unit;
END_ENTITY;
ENTITY luminous_flux_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY luminous_flux_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lumen);
END_ENTITY;
ENTITY luminous_intensity_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY luminous_intensity_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 1.0);
END_ENTITY;
ENTITY magnetic_flux_density_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY magnetic_flux_density_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.tesla);
END_ENTITY;
ENTITY magnetic_flux_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY magnetic_flux_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.weber);
END_ENTITY;
ENTITY make_from_usage_option
SUBTYPE OF (product_definition_usage);
ranking : INTEGER;
ranking_rationale : text;
quantity : measure_with_unit;
WHERE
WR1 : (NOT ('NUMBER' IN TYPEOF(quantity.value_component)))
OR (quantity.value_component > 0);
END_ENTITY;
ENTITY manifold_solid_brep
SUBTYPE OF (solid_model);
outer : closed_shell;
END_ENTITY;
ENTITY manifold_subsurface_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (QUERY (it <* SELF.items |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] *
TYPEOF(it)) = 1))) = 0;
WR2 : SIZEOF (QUERY (it <* SELF.items |
SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0;
WR3 : SIZEOF (QUERY (mi <* QUERY (it <* items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN
TYPEOF(mi\mapped_item.mapping_source.
mapped_representation)))) = 0;
WR4 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN TYPEOF(cfss)))) = 0;
WR5 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
NOT( (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN
TYPEOF(cfss\connected_face_sub_set.parent_face_set))AND
(SIZEOF(QUERY(fac <* cfss\connected_face_sub_set.parent_face_set\connected_face_set.cfs_faces | NOT
advanced_face_properties(fac))) = 0)) OR
(SIZEOF(QUERY(fac <* cfss\connected_face_sub_set.parent_face_set\connected_face_set.cfs_faces | NOT
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF(fac)))) = 0)
))) = 0;
WR6 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
( SIZEOF (QUERY (fac <* cfss\connected_face_set.cfs_faces | NOT
advanced_face_properties(fac))) = 0))) = 0;
WR7 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN
TYPEOF(oe.edge_element)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBEDGE' IN
TYPEOF(oe.edge_element)) ))) = 0
))) = 0
))) = 0
))) = 0;
WR8 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start))
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
TYPEOF(oe.edge_end))
))) = 0
))) = 0
))) = 0
))) = 0;
WR9 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
( NOT (SIZEOF(QUERY (bnds <* fcs.bounds |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP'] *
TYPEOF(bnds.bound)) = 1 )
)) = 0)
))) = 0
))) = 0;
WR10 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
( NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' ] *
TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1 )
)) = 0
))) = 0
)))) = 0
))) = 0;
WR11 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
(NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN
TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND
(NOT ((SIZEOF (QUERY (sc_ag <*
oe.edge_element\edge_curve.edge_geometry\
surface_curve.associated_geometry |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
TYPEOF(sc_ag)))) = 0)))
)) = 0
))) = 0
)))) = 0
))) = 0;
WR12 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
(NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN
TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND
(NOT (SIZEOF (oe\oriented_edge.edge_element\
edge_curve.edge_geometry\polyline.points) >= 3))
)) = 0
))) = 0
)))) = 0
))) = 0;
END_ENTITY;
ENTITY manifold_surface_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (QUERY (it <* SELF.items |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1))) = 0;
WR2 : SIZEOF (QUERY (it <* SELF.items |
SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0;
WR3 : SIZEOF (QUERY (mi <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION'
IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation))
AND
(SIZEOF(QUERY (mr_it <*
mi\mapped_item.mapping_source.mapped_representation.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL'
IN TYPEOF (mr_it)))) > 0 )))) = 0;
WR4 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (sh <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL']
* TYPEOF (sh)) = 1))) = 0))) = 0;
WR5 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fa)) )) = 0)))
= 0))) = 0;
WR6 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(msf_surface_check(fa\face_surface.face_geometry))))) = 0)))
= 0))) = 0;
WR7 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (bnds <* fa.bounds |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP']
* TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0;
WR8 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items|
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF
(oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR9 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <*
elp_fbnds\path.edge_list |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE'] *
TYPEOF (oe_cv.edge_element\edge_curve.edge_geometry))
= 1))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR10 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT (msf_curve_check (oe.edge_element\edge_curve.edge_geometry))))
= 0))) = 0)))) = 0))) = 0))) = 0;
WR11 : SIZEOF (QUERY(sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list|
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF
(oe.edge_element.edge_start))
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
TYPEOF (oe.edge_element.edge_end)))))
= 0))) = 0)))) = 0))) = 0))) = 0;
WR12 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT ((SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1)
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
(oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1
)))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR13 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF
(vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0)))
= 0))) = 0;
WR14 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
sbsm\shell_based_surface_model.sbsm_boundary |
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
(vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry))
= 1))) = 0)))) = 0))) = 0))) = 0;
END_ENTITY;
ENTITY mapped_item
SUBTYPE OF (representation_item);
mapping_source : representation_map;
mapping_target : representation_item;
WHERE
WR1 : acyclic_mapped_representation(SELF);
END_ENTITY;
ENTITY mass_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY mass_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 1.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY material_designation;
name : label;
definitions : SET [1:?] OF characterized_definition;
END_ENTITY;
ENTITY material_designation_characterization;
name : label;
description : text;
designation : material_designation;
property : characterized_material_property;
END_ENTITY;
ENTITY material_property
SUBTYPE OF (property_definition);
UNIQUE
UR1: SELF\property_definition.name, SELF\property_definition.definition;
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_OBJECT' IN
TYPEOF(SELF\property_definition.definition)) OR
(SIZEOF(bag_to_set(USEDIN(SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) -
QUERY(temp <* bag_to_set(USEDIN(SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'MATERIAL_PROPERTY_REPRESENTATION' IN
TYPEOF(temp)))) = 0);
END_ENTITY;
ENTITY material_property_representation
SUBTYPE OF (property_definition_representation);
dependent_environment : data_environment;
END_ENTITY;
ENTITY measure_qualification;
name : label;
description : text;
qualified_measure : measure_with_unit;
qualifiers : SET [1:?] OF value_qualifier;
WHERE
WR1 : SIZEOF(QUERY(temp <* qualifiers |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRECISION_QUALIFIER'
IN TYPEOF(temp))) < 2;
WR2 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM'
IN TYPEOF(SELF\measure_qualification.qualified_measure));
END_ENTITY;
ENTITY measure_representation_item
SUBTYPE OF (representation_item, measure_with_unit);
END_ENTITY;
ENTITY measure_with_unit
SUPERTYPE OF (ONEOF (length_measure_with_unit, mass_measure_with_unit, time_measure_with_unit, electric_current_measure_with_unit, thermodynamic_temperature_measure_with_unit, celsius_temperature_measure_with_unit, amount_of_substance_measure_with_unit, luminous_intensity_measure_with_unit, plane_angle_measure_with_unit, solid_angle_measure_with_unit, area_measure_with_unit, volume_measure_with_unit, ratio_measure_with_unit, acceleration_measure_with_unit, capacitance_measure_with_unit, electric_charge_measure_with_unit, conductance_measure_with_unit, electric_potential_measure_with_unit, energy_measure_with_unit, magnetic_flux_density_measure_with_unit, force_measure_with_unit, frequency_measure_with_unit, illuminance_measure_with_unit, inductance_measure_with_unit, luminous_flux_measure_with_unit, magnetic_flux_measure_with_unit, power_measure_with_unit, pressure_measure_with_unit, resistance_measure_with_unit, velocity_measure_with_unit, absorbed_dose_measure_with_unit, radioactivity_measure_with_unit, dose_equivalent_measure_with_unit));
value_component : measure_value;
unit_component : unit;
WHERE
WR1 : valid_units(SELF);
END_ENTITY;
ENTITY mechanical_context
SUBTYPE OF (product_context);
WHERE
WR1 : SELF.discipline_type = 'mechanical';
END_ENTITY;
ENTITY mechanical_design_and_draughting_relationship
SUBTYPE OF (definitional_representation_relationship_with_same_context);
SELF\representation_relationship.rep_1 : mechanical_design_and_draughting_relationship_select;
SELF\representation_relationship.rep_2 : mechanical_design_and_draughting_relationship_select;
WHERE
WR1 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
WR3 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
END_ENTITY;
ENTITY mechanical_design_geometric_presentation_area
SUBTYPE OF (presentation_area);
SELF\representation.items : SET [1:?] OF mechanical_design_geometric_presentation_area_items;
WHERE
WR1 : SIZEOF(QUERY(it1 <* SELF.items |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF(it1))
OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
IN TYPEOF
(it1\mapped_item.mapping_source.mapped_representation)))) = 0;
WR2 : SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF(it1)) |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
IN TYPEOF
(mi1\mapped_item.mapping_source.mapped_representation)) |
-- search in all presentation_views for axis2_placements and
-- mapped_items and for the subtype of mapped_item
-- camera_image_3d_with_scale; the latter shall reference
-- a mechanical_design_geometric_presentation_representation;
-- the supertype mapped_item shall reference presentation_view.
NOT (SIZEOF(QUERY(it2 <* pv\mapped_item.mapping_source.
mapped_representation\representation.items |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT'
IN TYPEOF(it2))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF(it2)) AND NOT
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
IN TYPEOF
(it2\mapped_item.mapping_source.mapped_representation)))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))
AND NOT (
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'
IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) ))
))) = 0))) = 0;
WR3 : (SIZEOF(QUERY(ps <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT') | ((ps.size\planar_extent.size_in_x <= 0)
OR
(ps.size\planar_extent.size_in_y <= 0)))) = 0)
AND
(SIZEOF(QUERY(ais <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AREA_IN_SET.AREA') |
(SIZEOF(QUERY(ps <* USEDIN (ais,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT') |
((ps.size\planar_extent.size_in_x <= 0)
OR
(ps.size\planar_extent.size_in_y <= 0)))) > 0))) = 0);
WR4 : (SIZEOF(QUERY(ps <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1)
AND
(SIZEOF(QUERY(ps <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0)
OR
((SIZEOF(QUERY(ais <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AREA_IN_SET.AREA') |
(SIZEOF(QUERY(ps <* USEDIN (ais,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1))) = 1)
AND
(SIZEOF(QUERY(ais <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AREA_IN_SET.AREA') |
(SIZEOF(QUERY(ps <* USEDIN (ais,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0))) = 1));
END_ENTITY;
ENTITY mechanical_design_geometric_presentation_representation
SUBTYPE OF (representation);
SELF\representation.items : SET [1:?] OF mechanical_design_geometric_presentation_representation_items;
WHERE
WR1 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF(it))) | NOT (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SHAPE_REPRESENTATION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION']
* TYPEOF(mi\mapped_item.mapping_source.mapped_representation))
= 1))) = 0;
WR2 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it))) |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF(si\styled_item.item))) | NOT (
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item.
item\mapped_item.mapping_source.mapped_representation))) )) = 0;
WR3 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(pss <* psa.styles | NOT (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE']
* TYPEOF(pss)) = 1))) = 0))) = 0))) = 0;
WR4 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) |
NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\styled_item.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'REPRESENTATION_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION']
* TYPEOF(psbc\presentation_style_by_context.style_context))
= 1))) = 0))) = 0;
WR5 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE'
IN TYPEOF(pss)) | NOT
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ps\point_style.marker_size))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_COLOUR']
* TYPEOF(ps\point_style.marker_colour))
= 1)))) = 0))) = 0))) = 0;
WR6 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF(pss)) | NOT((SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_COLOUR']
* TYPEOF(cs\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs\curve_style.curve_width))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
* TYPEOF(cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0;
WR7 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF(pss)) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_SIDE_STYLE' IN TYPEOF
(ssu\surface_style_usage.style)))) = 0))) = 0))) = 0;
WR8 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
NOT (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_PARAMETER_LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_CONTROL_GRID',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_SILHOUETTE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_SEGMENTATION_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_FILL_AREA',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_BOUNDARY']
* TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0;
WR9 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sspl <* QUERY(sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF
(sspl\surface_style_parameter_line.style_of_parameter_lines))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_COLOUR']
* TYPEOF(sspl\surface_style_parameter_line.
style_of_parameter_lines\curve_style.curve_colour)) = 1)
AND (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'POSITIVE_LENGTH_MEASURE' IN TYPEOF
(sspl\surface_style_parameter_line.
style_of_parameter_lines\curve_style.curve_width))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
* TYPEOF(sspl\surface_style_parameter_line.
style_of_parameter_lines\curve_style.curve_font)) = 1))))
= 0))) = 0))) = 0))) = 0;
WR10 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sscg <* QUERY(sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_COLOUR']
* TYPEOF(sscg\surface_style_control_grid.
style_of_control_grid\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'POSITIVE_LENGTH_MEASURE' IN TYPEOF
(sscg\surface_style_control_grid.
style_of_control_grid\curve_style.curve_width))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
* TYPEOF(sscg\surface_style_control_grid.
style_of_control_grid\curve_style.curve_font)) = 1))))
= 0))) = 0))) = 0))) = 0;
WR11 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) |
NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssh <* QUERY(sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_COLOUR']
* TYPEOF(sssh\surface_style_silhouette.
style_of_silhouette\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'POSITIVE_LENGTH_MEASURE' IN TYPEOF
(sssh\surface_style_silhouette.style_of_silhouette\curve_style.
curve_width))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
* TYPEOF(sssh\surface_style_silhouette.
style_of_silhouette\curve_style.curve_font)) = 1))))
= 0))) = 0))) = 0))) = 0;
WR12 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssc <* QUERY(sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF
(sssc\surface_style_segmentation_curve.style_of_segmentation_curve))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_COLOUR']
* TYPEOF(sssc\surface_style_segmentation_curve.
style_of_segmentation_curve\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'POSITIVE_LENGTH_MEASURE' IN TYPEOF
(sssc\surface_style_segmentation_curve.
style_of_segmentation_curve\curve_style.curve_width))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
* TYPEOF(sssc\surface_style_segmentation_curve.
style_of_segmentation_curve\curve_style.curve_font)) = 1))))
= 0))) = 0))) = 0))) = 0;
WR13 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssbd <* QUERY(sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_COLOUR']
* TYPEOF(ssbd\surface_style_boundary.
style_of_boundary\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ssbd\surface_style_boundary.
style_of_boundary\curve_style.curve_width))
AND (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
* TYPEOF(ssbd\surface_style_boundary.
style_of_boundary\curve_style.curve_font)) = 1)))) = 0)))
= 0))) = 0))) = 0;
END_ENTITY;
ENTITY mechanical_design_presentation_representation_with_draughting
SUBTYPE OF (representation);
SELF\representation.items : SET [1:?] OF camera_model_d3;
END_ENTITY;
ENTITY mechanical_design_shaded_presentation_area
SUBTYPE OF (presentation_area);
WHERE
WR1 : SIZEOF (QUERY (it1 <* SELF.items |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT'
IN TYPEOF (it1))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF (it1)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
IN TYPEOF
(it1\mapped_item.mapping_source.mapped_representation)))))) = 0;
WR2 : SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF (it1)) |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
IN TYPEOF
(mi1\mapped_item.mapping_source.mapped_representation)) |
(* search in all presentation_views for axis2_placements and
mapped_items and for the subtype of mapped_item,
camera_image_3d_with_scale; the latter shall reference
a mechanical_design_geometric_presentation_representation;
the supertype mapped_item shall reference presentation_view. *)
NOT (SIZEOF(QUERY(it2 <* pv\mapped_item.mapping_source.
mapped_representation\representation.items |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT'
IN TYPEOF(it2))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF(it2)) AND NOT
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
IN TYPEOF
(it2\mapped_item.mapping_source.mapped_representation)))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))
AND NOT (
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'
IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) ))
))) = 0))) = 0;
WR3 : (SIZEOF (QUERY(ps <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT') |
NOT ((ps.size\planar_extent.size_in_x > 0)
AND (ps.size\planar_extent.size_in_y > 0)) )) = 0)
AND
(* check secondly for presentation_set, via area_in_set *)
(SIZEOF (QUERY(pset <* QUERY(ais <*
USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AREA_IN_SET.AREA')
| 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SET' IN TYPEOF (ais.in_set)) |
(* after having collected all presentation_set, check their sizes *)
SIZEOF (QUERY(psize <* USEDIN(pset,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT')
| NOT ((psize.size\planar_extent.size_in_x > 0)
AND (psize.size\planar_extent.size_in_y > 0)) )) = 0)) = 0);
WR4 : (SIZEOF(QUERY( psize <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT')
| 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AXIS2_PLACEMENT_2D'
IN TYPEOF (psize.size.placement))) = 1)
AND
(* check secondly for presentation_set, via area_in_set *)
(SIZEOF (QUERY(pset <* QUERY(ais <*
USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AREA_IN_SET.AREA')
| 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SET' IN TYPEOF (ais.in_set)) |
(* after having collected all presentation_set, check their
dimension *)
SIZEOF (QUERY(psize <* USEDIN(pset,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT')
| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AXIS2_PLACEMENT_2D'
IN TYPEOF (psize.size.placement)) )) = 0)) = 0);
WR5 : SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF (it1)) |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
IN TYPEOF
(mi1\mapped_item.mapping_source.mapped_representation)) |
(* search in all presentation_views for
mapped_items and for the subtype of mapped_item,
camera_image_3d_with_scale; the latter shall reference
a camera_usage that shall have as its mapping_origin either
camera_model_d3, camera_model_d3_with_hlhsr, or
camera_model_with_light_sources. *)
NOT (SIZEOF(QUERY(ci <* pv\mapped_item.mapping_source.
mapped_representation\representation.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci))
AND
(SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CAMERA_MODEL_D3',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CAMERA_MODEL_D3_WITH_HLHSR',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CAMERA_MODEL_WITH_LIGHT_SOURCES'] * TYPEOF
(ci\mapped_item.mapping_source.mapping_origin))
= 1))) = 0))) = 0;
END_ENTITY;
ENTITY mechanical_design_shaded_presentation_representation
SUBTYPE OF (representation);
WHERE
WR1 : SIZEOF(QUERY(it <* SELF.items |
NOT (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL_D3']
* TYPEOF(it)) = 1))) = 0;
WR2 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF(it))) | NOT (SIZEOF(
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SHAPE_REPRESENTATION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION']
* TYPEOF(mi\mapped_item.mapping_source.mapped_representation))
= 1))) = 0;
WR3 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF(it))) |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
IN TYPEOF(si\styled_item.item))) | NOT (
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item.
item\mapped_item.mapping_source.mapped_representation))) )) = 0;
WR4 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (pss <* psa.styles |
NOT (SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE']
* TYPEOF (pss)) = 1))) = 0))) = 0))) = 0;
WR5 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psbc <* QUERY (psa <* si\styled_item.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF (psa)) |
NOT (SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION']
* TYPEOF (psbc\presentation_style_by_context.style_context)) = 1)))
= 0))) = 0;
WR6 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ps <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE'
IN TYPEOF (pss)) |
NOT (
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MARKER_TYPE'
IN TYPEOF (ps\point_style.marker))
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
(ps\point_style.marker_size))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0;
WR7 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (cs <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF (pss)) |
NOT (
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(cs\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
(cs\curve_style.curve_width))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
(cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0;
WR8 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_SIDE_STYLE'
IN TYPEOF (ssu\surface_style_usage.style)) )) = 0))) = 0 ))) = 0;
WR9 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT (SIZEOF (QUERY (sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
NOT (SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_PARAMETER_LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_CONTROL_GRID',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_SILHOUETTE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_SEGMENTATION_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_BOUNDARY',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_FILL_AREA',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_RENDERING'] * TYPEOF (sses)) = 1))) = 0))) = 0)))
= 0))) = 0;
WR10 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT (SIZEOF (QUERY (ssfa <* QUERY (sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_FILL_AREA'
IN TYPEOF (sses)) |
NOT (SIZEOF (QUERY (fss <*
ssfa\surface_style_fill_area.fill_area.fill_styles |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'FILL_AREA_STYLE_COLOUR' IN TYPEOF (fss))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(fss\fill_area_style_colour.fill_colour)) = 1)))) = 0))) = 0)))
= 0))) = 0))) = 0;
WR11 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT (SIZEOF (QUERY (sspl <* QUERY (sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF (sses)) |
NOT ((
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF
(sspl\surface_style_parameter_line.style_of_parameter_lines))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(sspl\surface_style_parameter_line.
style_of_parameter_lines\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
(sspl\surface_style_parameter_line.
style_of_parameter_lines\curve_style.curve_width))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
(sspl\surface_style_parameter_line.
style_of_parameter_lines\curve_style.curve_font)) = 1))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
IN TYPEOF
(sspl\surface_style_parameter_line.style_of_parameter_lines))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(sspl\surface_style_parameter_line.style_of_parameter_lines\
curve_style_rendering.rendering_properties.rendered_colour))
= 1))) )) = 0))) = 0))) = 0))) = 0;
WR12 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT (SIZEOF (QUERY (sscg <* QUERY (sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF (sses)) |
NOT ((
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(sscg\surface_style_control_grid.
style_of_control_grid\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
(sscg\surface_style_control_grid.
style_of_control_grid\curve_style.curve_width))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
(sscg\surface_style_control_grid.
style_of_control_grid\curve_style.curve_font)) = 1))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(sscg\surface_style_control_grid.style_of_control_grid\
curve_style_rendering.rendering_properties.rendered_colour))
= 1))) )) = 0))) = 0))) = 0))) = 0;
WR13 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT (SIZEOF (QUERY (sssh <* QUERY (sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_SILHOUETTE' IN TYPEOF (sses)) |
NOT ((
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(sssh\surface_style_silhouette.
style_of_silhouette\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
(sssh\surface_style_silhouette.
style_of_silhouette\curve_style.curve_width))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
(sssh\surface_style_silhouette.
style_of_silhouette\curve_style.curve_font)) = 1))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(sssh\surface_style_silhouette.style_of_silhouette\
curve_style_rendering.rendering_properties.rendered_colour))
= 1))) )) = 0))) = 0))) = 0))) = 0;
WR14 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT (SIZEOF (QUERY (sssc <* QUERY (sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF (sses)) |
NOT ((
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF
(sssc\surface_style_segmentation_curve.style_of_segmentation_curve))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(sssc\surface_style_segmentation_curve.
style_of_segmentation_curve\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
(sssc\surface_style_segmentation_curve.
style_of_segmentation_curve\curve_style.curve_width))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
(sssc\surface_style_segmentation_curve.
style_of_segmentation_curve\curve_style.curve_font)) = 1))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
IN TYPEOF (sssc\surface_style_segmentation_curve.
style_of_segmentation_curve))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\
curve_style_rendering.rendering_properties.rendered_colour))
= 1))) )) = 0))) = 0))) = 0))) = 0;
WR15 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT (SIZEOF (QUERY (ssbd <* QUERY (sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_BOUNDARY' IN TYPEOF (sses)) |
NOT ((
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(ssbd\surface_style_boundary.
style_of_boundary\curve_style.curve_colour)) = 1)
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
(ssbd\surface_style_boundary.
style_of_boundary\curve_style.curve_width))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
(ssbd\surface_style_boundary.
style_of_boundary\curve_style.curve_font)) = 1))
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary))
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(ssbd\surface_style_boundary.style_of_boundary\
curve_style_rendering.rendering_properties.rendered_colour))
= 1))) )) = 0))) = 0))) = 0))) = 0;
WR16 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
IN TYPEOF (pss)) |
NOT (SIZEOF (QUERY (ssre <* QUERY (sses <*
ssu\surface_style_usage.style\surface_side_style.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'SURFACE_STYLE_RENDERING' IN TYPEOF (sses)) |
NOT
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
(ssre\surface_style_rendering.surface_colour)) = 1)))
= 0))) = 0))) = 0))) = 0;
END_ENTITY;
ENTITY min_and_major_ply_orientation_basis
SUBTYPE OF (representation_item_relationship, geometric_representation_item);
SELF\representation_item_relationship.related_representation_item : axis2_placement_3d;
SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d;
DERIVE
major_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.related_representation_item;
minor_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.relating_representation_item;
END_ENTITY;
ENTITY modified_geometric_tolerance
SUBTYPE OF (geometric_tolerance);
modifier : limit_condition;
END_ENTITY;
ENTITY modified_solid
ABSTRACT SUPERTYPE OF (ONEOF (edge_blended_solid, sculptured_solid, shelled_solid, modified_solid_with_placed_configuration))
SUBTYPE OF (solid_model);
rationale : text;
base_solid : base_solid_select;
END_ENTITY;
ENTITY modified_solid_with_placed_configuration
ABSTRACT SUPERTYPE OF (ONEOF (solid_with_depression, solid_with_protrusion, solid_with_shape_element_pattern))
SUBTYPE OF (modified_solid);
placing : axis2_placement_3d;
END_ENTITY;
ENTITY moments_of_inertia_representation
SUBTYPE OF (representation);
WHERE
WR1 : (SIZEOF(SELF.items) = 1) AND
(SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
(i.name = 'moments of inertia matrix') )) = 1);
WR2 : SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'LIST_REPRESENTATION_ITEM' IN TYPEOF(i\compound_representation_item.item_element)) AND
value_range_aggregate_rep_item (i\compound_representation_item.item_element) )) = 1;
END_ENTITY;
ENTITY multi_language_attribute_assignment
SUBTYPE OF (attribute_value_assignment);
items : SET [1:?] OF multi_language_attribute_item;
DERIVE
translation_language : language := language_indication[1]\attribute_classification_assignment.assigned_class;
INVERSE
language_indication: SET [1:1] OF attribute_language_assignment FOR items;
WHERE
WR1 : (SELF\attribute_value_assignment.role.name = 'alternate language');
WR2 : SIZEOF( QUERY( ala <* language_indication |
(ala\attribute_classification_assignment.attribute_name = 'attribute_value') AND
(ala\attribute_classification_assignment.role.name='translated') )) = 1;
WR3 : SELF\attribute_value_assignment.attribute_name <> '';
WR4 : SIZEOF(QUERY(ci <* items |
SIZEOF(QUERY(ata <* USEDIN(ci, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') |
(ata\attribute_value_assignment.attribute_name = SELF\attribute_value_assignment.attribute_name) AND
(ata.translation_language :=: translation_language) ))>1 )) =0;
WR5 : SIZEOF(QUERY(ci <* items |
SIZEOF(QUERY(ata <* USEDIN(ci, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') |
(ata\attribute_classification_assignment.role.name='primary') AND
(ata\attribute_classification_assignment.attribute_name= SELF\attribute_value_assignment.attribute_name) AND
(ata\attribute_classification_assignment.assigned_class :=: translation_language) ))>0 )) =0;
END_ENTITY;
ENTITY multiple_arity_boolean_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (boolean_expression, multiple_arity_generic_expression);
SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF boolean_expression;
END_ENTITY;
ENTITY multiple_arity_generic_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (generic_expression);
operands : LIST [2:?] OF generic_expression;
END_ENTITY;
ENTITY multiple_arity_numeric_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (numeric_expression, multiple_arity_generic_expression);
SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression;
END_ENTITY;
ENTITY name_assignment
ABSTRACT SUPERTYPE;
assigned_name : label;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY name_attribute;
attribute_value : label;
named_item : name_attribute_select;
END_ENTITY;
ENTITY named_unit
SUPERTYPE OF ((ONEOF (si_unit, conversion_based_unit, context_dependent_unit) ANDOR ONEOF (length_unit, mass_unit, time_unit, electric_current_unit, thermodynamic_temperature_unit, amount_of_substance_unit, luminous_flux_unit, luminous_intensity_unit, plane_angle_unit, solid_angle_unit, ratio_unit)));
dimensions : dimensional_exponents;
END_ENTITY;
ENTITY next_assembly_usage_occurrence
SUBTYPE OF (assembly_component_usage);
END_ENTITY;
ENTITY non_manifold_surface_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (QUERY (it <* SELF.items |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1)))
= 0;
WR2 : SIZEOF (QUERY (it <* SELF.items |
SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0;
WR3 : SIZEOF (QUERY (mi <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION'
IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation))
AND
(SIZEOF(QUERY (mr_it <*
mi\mapped_item.mapping_source.mapped_representation.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL'
IN TYPEOF (mr_it)))) > 0 )))) = 0;
WR4 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE'] * TYPEOF (fa)) = 1)))
= 0))) = 0))) = 0;
WR5 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (f_sf <* QUERY (fa <* cfs.cfs_faces |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fa))) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (f_sf))
OR
(nmsf_surface_check(f_sf\face_surface.face_geometry))))) = 0)))
= 0))) = 0;
WR6 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (o_fa <* QUERY (fa <* cfs.cfs_faces |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (fa))) |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF
(o_fa\oriented_face.face_element))
OR
(nmsf_surface_check
(o_fa\oriented_face.face_element\face_surface.face_geometry)))))
= 0))) = 0))) = 0;
WR7 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (bnds <* fa.bounds |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP']
* TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0;
WR8 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items|
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF
(oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR9 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <*
elp_fbnds\path.edge_list |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE'] *
TYPEOF (oe_cv.edge_element\edge_curve.edge_geometry))
= 1))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR10 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT (nmsf_curve_check (oe.edge_element\edge_curve.edge_geometry))))
= 0))) = 0)))) = 0))) = 0))) = 0;
WR11 : SIZEOF (QUERY(fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list|
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF
(oe.edge_element.edge_start))
AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
TYPEOF (oe.edge_element.edge_end)))))
= 0))) = 0)))) = 0))) = 0))) = 0;
WR12 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT ((SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1)
AND
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
(oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1
)))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR13 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF
(vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0)))
= 0))) = 0;
WR14 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
(vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry))
= 1))) = 0)))) = 0))) = 0))) = 0;
END_ENTITY;
ENTITY null_representation_item
SUBTYPE OF (representation_item);
END_ENTITY;
ENTITY numeric_expression
ABSTRACT SUPERTYPE OF (ONEOF (simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, multiple_arity_numeric_expression))
SUBTYPE OF (expression);
DERIVE
is_int : LOGICAL := is_int_expr (SELF);
sql_mappable : LOGICAL := is_SQL_mappable (SELF);
END_ENTITY;
ENTITY object_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY offset_curve_2d
SUBTYPE OF (curve);
basis_curve : curve;
distance : length_measure;
self_intersect : LOGICAL;
WHERE
WR1 : basis_curve.dim = 2;
END_ENTITY;
ENTITY offset_curve_3d
SUBTYPE OF (curve);
basis_curve : curve;
distance : length_measure;
self_intersect : LOGICAL;
ref_direction : direction;
WHERE
WR1 : (basis_curve.dim = 3) AND (ref_direction.dim = 3);
END_ENTITY;
ENTITY offset_surface
SUBTYPE OF (surface);
basis_surface : surface;
distance : length_measure;
self_intersect : LOGICAL;
END_ENTITY;
ENTITY one_direction_repeat_factor
SUBTYPE OF (geometric_representation_item);
repeat_factor : vector;
END_ENTITY;
ENTITY open_shell
SUBTYPE OF (connected_face_set);
END_ENTITY;
ENTITY ordinal_date
SUBTYPE OF (date);
day_component : day_in_year_number;
WHERE
WR1 : (NOT leap_year(SELF.year_component) AND { 1 <= day_component <= 365 }) OR (leap_year(SELF.year_component) AND { 1 <= day_component <= 366 });
END_ENTITY;
ENTITY ordinate_dimension
SUBTYPE OF (projection_directed_callout);
END_ENTITY;
ENTITY organization;
id : OPTIONAL identifier;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY organization_assignment
ABSTRACT SUPERTYPE;
assigned_organization : organization;
role : organization_role;
END_ENTITY;
ENTITY organization_relationship;
name : label;
description : OPTIONAL text;
relating_organization : organization;
related_organization : organization;
END_ENTITY;
ENTITY organization_role;
name : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY organizational_address
SUBTYPE OF (address);
organizations : SET [1:?] OF organization;
description : OPTIONAL text;
END_ENTITY;
ENTITY organizational_project;
name : label;
description : OPTIONAL text;
responsible_organizations : SET [1:?] OF organization;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY organizational_project_assignment
ABSTRACT SUPERTYPE;
assigned_organizational_project : organizational_project;
role : organizational_project_role;
END_ENTITY;
ENTITY organizational_project_relationship;
name : label;
description : OPTIONAL text;
relating_organizational_project : organizational_project;
related_organizational_project : organizational_project;
END_ENTITY;
ENTITY organizational_project_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY oriented_closed_shell
SUBTYPE OF (closed_shell);
closed_shell_element : closed_shell;
orientation : BOOLEAN;
DERIVE
SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation,
SELF.closed_shell_element.cfs_faces);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL'
IN TYPEOF (SELF.closed_shell_element));
END_ENTITY;
ENTITY oriented_edge
SUBTYPE OF (edge);
edge_element : edge;
orientation : BOOLEAN;
DERIVE
SELF\edge.edge_end : vertex := boolean_choose (SELF.orientation,
SELF.edge_element.edge_end,
SELF.edge_element.edge_start);
SELF\edge.edge_start : vertex := boolean_choose (SELF.orientation,
SELF.edge_element.edge_start,
SELF.edge_element.edge_end);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_EDGE' IN TYPEOF (SELF.edge_element));
END_ENTITY;
ENTITY oriented_face
SUBTYPE OF (face);
face_element : face;
orientation : BOOLEAN;
DERIVE
SELF\face.bounds : SET [1:?] OF face_bound := conditional_reverse(SELF.orientation,SELF.face_element.bounds);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (SELF.face_element));
END_ENTITY;
ENTITY oriented_open_shell
SUBTYPE OF (open_shell);
open_shell_element : open_shell;
orientation : BOOLEAN;
DERIVE
SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation,
SELF.open_shell_element.cfs_faces);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_OPEN_SHELL'
IN TYPEOF (SELF.open_shell_element));
END_ENTITY;
ENTITY oriented_path
SUBTYPE OF (path);
path_element : path;
orientation : BOOLEAN;
DERIVE
SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_edge := conditional_reverse(SELF.orientation,
SELF.path_element.edge_list);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (SELF.path_element));
END_ENTITY;
ENTITY oriented_surface
SUBTYPE OF (surface);
orientation : BOOLEAN;
END_ENTITY;
ENTITY outer_boundary_curve
SUBTYPE OF (boundary_curve);
END_ENTITY;
ENTITY over_riding_styled_item
SUBTYPE OF (styled_item);
over_ridden_style : styled_item;
END_ENTITY;
ENTITY package_product_concept_feature
SUBTYPE OF (product_concept_feature);
WHERE
WR1 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF ( SELF ) );
WR2 : SIZEOF ( QUERY
(
cfr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.' +'RELATING_PRODUCT_CONCEPT_FEATURE' )
|
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF (cfr ) )
AND
( SIZEOF ( QUERY
(
ipcf <* USEDIN ( cfr , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' )
|
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ipcf )
)
)= 1
)
)
)>0;
END_ENTITY;
ENTITY parabola
SUBTYPE OF (conic);
focal_dist : length_measure;
WHERE
WR1 : focal_dist <> 0.0;
END_ENTITY;
ENTITY parallel_offset
SUBTYPE OF (derived_shape_aspect);
offset : measure_with_unit;
WHERE
WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
END_ENTITY;
ENTITY parallelism_tolerance
SUBTYPE OF (geometric_tolerance_with_datum_reference);
WHERE
WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) < 3;
END_ENTITY;
ENTITY parametric_representation_context
SUBTYPE OF (representation_context);
END_ENTITY;
ENTITY part_laminate_table
SUPERTYPE OF (ONEOF (composite_assembly_table, ply_laminate_table))
SUBTYPE OF (laminate_table);
END_ENTITY;
ENTITY partial_document_with_structured_text_representation_assignment
SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object);
END_ENTITY;
ENTITY path
SUPERTYPE OF (ONEOF (edge_loop, oriented_path))
SUBTYPE OF (topological_representation_item);
edge_list : LIST [1:?] OF UNIQUE oriented_edge;
WHERE
WR1 : path_head_to_tail(SELF);
END_ENTITY;
ENTITY pcurve
SUBTYPE OF (curve);
basis_surface : surface;
reference_to_curve : definitional_representation;
WHERE
WR1 : SIZEOF(reference_to_curve\representation.items) = 1;
WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF
(reference_to_curve\representation.items[1]);
WR3 : reference_to_curve\representation.items[1]\
geometric_representation_item.dim =2;
END_ENTITY;
ENTITY percentage_laminate_definition
SUBTYPE OF (product_definition);
WHERE
WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_RELATIONSHIP.' +
'RELATING_PRODUCT_DEFINITION') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
TYPEOF (pdr))) > 0;
END_ENTITY;
ENTITY percentage_laminate_table
SUBTYPE OF (zone_structural_makeup);
END_ENTITY;
ENTITY percentage_ply_definition
SUBTYPE OF (product_definition);
WHERE
WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERCENTAGE_LAMINATE_DEFINITION'
IN TYPEOF (pdr.related_product_definition)) AND
(pdr.name = 'makeup and properties'))) = 0;
END_ENTITY;
ENTITY perpendicular_to
SUBTYPE OF (derived_shape_aspect);
WHERE
WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
END_ENTITY;
ENTITY perpendicularity_tolerance
SUBTYPE OF (geometric_tolerance_with_datum_reference);
WHERE
WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3;
END_ENTITY;
ENTITY person;
id : identifier;
last_name : OPTIONAL label;
first_name : OPTIONAL label;
middle_names : OPTIONAL LIST [1:?] OF label;
prefix_titles : OPTIONAL LIST [1:?] OF label;
suffix_titles : OPTIONAL LIST [1:?] OF label;
WHERE
WR1 : EXISTS(last_name) OR EXISTS(first_name);
END_ENTITY;
ENTITY person_and_organization;
the_person : person;
the_organization : organization;
DERIVE
description : text := get_description_value(SELF);
name : label := get_name_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY person_and_organization_address
SUBTYPE OF (organizational_address, personal_address);
SELF\organizational_address.organizations : SET [1:1] OF organization;
SELF\personal_address.people : SET [1:1] OF person;
WHERE
WR1 : SIZEOF(QUERY(pao <* USEDIN (SELF\personal_address.people[1], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERSON_AND_ORGANIZATION.THE_PERSON') | pao.the_organization :=: SELF\organizational_address.organizations[1])) = 1;
END_ENTITY;
ENTITY person_and_organization_assignment
ABSTRACT SUPERTYPE;
assigned_person_and_organization : person_and_organization;
role : person_and_organization_role;
END_ENTITY;
ENTITY person_and_organization_role;
name : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
ENTITY personal_address
SUBTYPE OF (address);
people : SET [1:?] OF person;
description : OPTIONAL text;
END_ENTITY;
ENTITY physical_breakdown_context
SUBTYPE OF (breakdown_context);
END_ENTITY;
ENTITY physical_element_usage
SUBTYPE OF (breakdown_element_usage);
END_ENTITY;
ENTITY picture_representation
SUBTYPE OF (presentation_view);
SELF\representation.items : SET [2:?] OF picture_representation_item_select;
INVERSE
size: presentation_size FOR unit;
WHERE
WR1: SIZEOF(QUERY(item <* items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) = 1;
WR2: SIZEOF (QUERY (se <* QUERY (item <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (item)))
| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PICTURE_REPRESENTATION_ITEM'
IN TYPEOF (se\styled_item.item)) )) = 0;
END_ENTITY;
ENTITY picture_representation_item
ABSTRACT SUPERTYPE OF (ONEOF (externally_defined_picture_representation_item, predefined_picture_representation_item))
SUBTYPE OF (bytes_representation_item);
END_ENTITY;
ENTITY placed_datum_target_feature
SUBTYPE OF (datum_target);
DERIVE
representation_associations : SET [0:?] OF property_definition_representation := get_shape_aspect_property_definition_representations(SELF);
WHERE
WR1 : SELF.description IN ['point','line','rectangle','circle', 'circular line'];
WR2 : SIZEOF (QUERY (pdr <* representation_associations | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF (pdr.used_representation) )) = 1;
WR3 : valid_datum_target_parameters(SELF);
END_ENTITY;
ENTITY placed_feature
SUBTYPE OF (shape_aspect);
END_ENTITY;
ENTITY placement
SUPERTYPE OF (ONEOF (axis1_placement, axis2_placement_2d, axis2_placement_3d))
SUBTYPE OF (geometric_representation_item);
location : cartesian_point;
END_ENTITY;
ENTITY planar_box
SUBTYPE OF (planar_extent);
placement : axis2_placement;
END_ENTITY;
ENTITY planar_extent
SUBTYPE OF (geometric_representation_item);
size_in_x : length_measure;
size_in_y : length_measure;
END_ENTITY;
ENTITY plane
SUBTYPE OF (elementary_surface);
END_ENTITY;
ENTITY plane_angle_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY plane_angle_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY plus_minus_tolerance;
range : tolerance_method_definition;
toleranced_dimension : dimensional_characteristic;
UNIQUE
UR1 : toleranced_dimension;
END_ENTITY;
ENTITY ply_laminate_definition
SUBTYPE OF (product_definition);
WHERE
WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_RELATIONSHIP.' +
'RELATING_PRODUCT_DEFINITION') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
TYPEOF (pdr))) = 1;
END_ENTITY;
ENTITY ply_laminate_sequence_definition
SUBTYPE OF (product_definition);
WHERE
WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_RELATIONSHIP.' +
'RELATING_PRODUCT_DEFINITION') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
TYPEOF (pdr))) > 0;
END_ENTITY;
ENTITY ply_laminate_table
SUBTYPE OF (part_laminate_table);
END_ENTITY;
ENTITY point
SUPERTYPE OF (ONEOF (cartesian_point, point_on_curve, point_on_surface, point_replica, degenerate_pcurve))
SUBTYPE OF (geometric_representation_item);
END_ENTITY;
ENTITY point_and_vector
SUBTYPE OF (compound_representation_item, geometric_representation_item);
SELF\compound_representation_item.item_element : point_and_vector_members;
END_ENTITY;
ENTITY point_on_curve
SUBTYPE OF (point);
basis_curve : curve;
point_parameter : parameter_value;
END_ENTITY;
ENTITY point_on_surface
SUBTYPE OF (point);
basis_surface : surface;
point_parameter_u : parameter_value;
point_parameter_v : parameter_value;
END_ENTITY;
ENTITY point_path
SUBTYPE OF (compound_representation_item, geometric_representation_item);
SELF\compound_representation_item.item_element : point_path_members;
END_ENTITY;
ENTITY point_replica
SUBTYPE OF (point);
parent_pt : point;
transformation : cartesian_transformation_operator;
WHERE
WR1 : transformation.dim = parent_pt.dim;
WR2 : acyclic_point_replica (SELF,parent_pt);
END_ENTITY;
ENTITY point_style
SUBTYPE OF (founded_item);
name : label;
marker : marker_select;
marker_size : size_select;
marker_colour : colour;
END_ENTITY;
ENTITY polar_complex_number_literal
SUBTYPE OF (generic_literal);
radius : REAL;
angle : REAL;
WHERE
WR1 : radius >= 0;
WR2 : { 0 <= angle < 2*PI };
END_ENTITY;
ENTITY poly_loop
SUBTYPE OF (loop, geometric_representation_item);
polygon : LIST [3:?] OF UNIQUE cartesian_point;
END_ENTITY;
ENTITY polyline
SUBTYPE OF (bounded_curve);
points : LIST [2:?] OF cartesian_point;
END_ENTITY;
ENTITY position_tolerance
SUBTYPE OF (geometric_tolerance);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3);
END_ENTITY;
ENTITY positioned_sketch
SUBTYPE OF (geometric_representation_item);
sketch_basis : sketch_basis_select;
auxiliary_elements : SET [0:?] OF auxiliary_geometric_representation_item;
WHERE
WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE' IN
TYPEOF(sketch_basis)) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN
TYPEOF(sketch_basis\curve_bounded_surface.basis_surface)));
WR2 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(sketch_basis)) AND
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(sketch_basis\face_surface.face_geometry)));
WR3 : SIZEOF(QUERY(q <* auxiliary_elements | (SIZEOF(TYPEOF(q) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT','AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE']) = 0))) = 0;
WR4 : SIZEOF(QUERY(q <* auxiliary_elements |
q\geometric_representation_item.dim <> 3)) = 0;
END_ENTITY;
ENTITY power_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY power_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.watt);
END_ENTITY;
ENTITY pre_defined_colour
SUBTYPE OF (pre_defined_item, colour);
END_ENTITY;
ENTITY pre_defined_curve_font
SUBTYPE OF (pre_defined_item);
END_ENTITY;
ENTITY pre_defined_dimension_symbol
SUBTYPE OF (pre_defined_symbol);
WHERE
WR1 : SELF.name IN [ 'arc length' , 'conical taper' , 'counterbore' , 'countersink' , 'depth' , 'diameter' , 'plus minus' , 'radius' , 'slope' , 'spherical diameter' , 'spherical radius' , 'square'];
END_ENTITY;
ENTITY pre_defined_geometrical_tolerance_symbol
SUBTYPE OF (pre_defined_symbol);
WHERE
WR1 : SELF.name IN ['angularity' , 'basic dimension' , 'blanked datum reference' , 'circular runout' , 'circularity' , 'concentricity' , 'cylindricity' , 'datum target identification' , 'diameter' , 'filled datum reference' , 'flatness' , 'least material condition' , 'maximum material condition' , 'parallelism' , 'perpendicularity' , 'position' , 'profile of a line' , 'profile of a surface' , 'projected tolerance zone' , 'regardless of feature size' , 'straightness' , 'symmetry' , 'total runout' ];
END_ENTITY;
ENTITY pre_defined_item;
name : label;
END_ENTITY;
ENTITY pre_defined_marker
SUBTYPE OF (pre_defined_item);
END_ENTITY;
ENTITY pre_defined_point_marker_symbol
SUBTYPE OF (pre_defined_marker, pre_defined_symbol);
WHERE
WR1 : SELF.name IN ['asterisk','circle','dot','plus','square','triangle','x'];
END_ENTITY;
ENTITY pre_defined_surface_condition_symbol
SUBTYPE OF (pre_defined_symbol);
WHERE
WR1 : SELF.name IN ['000' , '010' , '020' , '030' , '040' , '050' , '060' , '070' , '001' , '011' , '021' , '031' , '041' , '051' , '061' , '071' , '100' , '110' , '120' , '130' , '140' , '150' , '160' , '170' , '101' , '111' , '121' , '131' , '141' , '151' , '161' , '171' , '200' , '210' , '220' , '230' , '240' , '250' , '260' , '270' , '201' , '211' , '221' , '231' , '241' , '251' , '261' , '271'];
END_ENTITY;
ENTITY pre_defined_surface_side_style
SUBTYPE OF (pre_defined_item);
END_ENTITY;
ENTITY pre_defined_symbol
SUBTYPE OF (pre_defined_item);
END_ENTITY;
ENTITY pre_defined_terminator_symbol
SUBTYPE OF (pre_defined_symbol);
WHERE
WR1 : SELF.name IN ['blanked arrow', 'blanked box', 'blanked dot', 'blanked triangle', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', 'unfilled arrow', 'unfilled triangle', 'filled triangle'];
END_ENTITY;
ENTITY pre_defined_text_font
SUBTYPE OF (pre_defined_item);
END_ENTITY;
ENTITY pre_defined_tile
SUBTYPE OF (pre_defined_item);
END_ENTITY;
ENTITY precision_qualifier;
precision_value : INTEGER;
END_ENTITY;
ENTITY predefined_picture_representation_item
SUBTYPE OF (picture_representation_item);
WHERE
WR1 : SELF\representation_item.name IN pre_defined_picture_representation_types;
END_ENTITY;
ENTITY presentation_area
SUBTYPE OF (presentation_representation);
WHERE
WR1 : ((SIZEOF (QUERY (ais <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'AREA_IN_SET.AREA') |
SIZEOF (USEDIN (ais, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT')) =1)) > 0) OR
(SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_SIZE.UNIT')) =1));
END_ENTITY;
ENTITY presentation_layer_assignment;
name : label;
description : text;
assigned_items : SET [1:?] OF layered_item;
END_ENTITY;
ENTITY presentation_representation
SUPERTYPE OF (ONEOF (presentation_area, presentation_view))
SUBTYPE OF (representation);
SELF\representation.context_of_items : geometric_representation_context;
WHERE
WR1 : SELF\representation.
context_of_items\geometric_representation_context.
coordinate_space_dimension = 2;
WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_AREA' IN TYPEOF (SELF))
OR
(SIZEOF (QUERY (prr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'REPRESENTATION_RELATIONSHIP.REP_2') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION' IN
TYPEOF (prr\representation_relationship.rep_1))) > 0)
OR
(SIZEOF(QUERY( rm <* USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'REPRESENTATION_MAP.'+
'MAPPED_REPRESENTATION') |
SIZEOF(QUERY( mi <* USEDIN(rm, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'MAPPED_ITEM.'+
'MAPPING_SOURCE') |
SIZEOF(QUERY( rep <* using_representations (mi) |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'PRESENTATION_REPRESENTATION' IN
TYPEOF (rep))) > 0
)) > 0))
> 0);
END_ENTITY;
ENTITY presentation_set;
INVERSE
areas: SET [1:?] OF area_in_set FOR in_set;
END_ENTITY;
ENTITY presentation_size;
unit : presentation_size_assignment_select;
size : planar_box;
UNIQUE
UR1 : unit;
WHERE
WR1 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION'
IN TYPEOF (SELF.unit)) AND
item_in_context (SELF.size,
SELF.unit\representation.context_of_items)
)
OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_IN_SET'
IN TYPEOF (SELF.unit)) AND
(SIZEOF (QUERY ( ais <* SELF.unit\area_in_set.in_set.areas |
NOT item_in_context (SELF.size, ais.area\representation.
context_of_items) )) = 0));
END_ENTITY;
ENTITY presentation_style_assignment
SUBTYPE OF (founded_item);
styles : SET [1:?] OF presentation_style_select;
WHERE
WR1 : SIZEOF (QUERY (style1 <* SELF.styles |
NOT (SIZEOF (QUERY (style2 <* (SELF.styles - style1) |
NOT ((TYPEOF (style1) <> TYPEOF (style2)) OR
(SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SURFACE_STYLE_USAGE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'EXTERNALLY_DEFINED_STYLE'] *
TYPEOF (style1)) = 1)
))) = 0
))) = 0;
WR2 : SIZEOF (QUERY (style1 <* SELF.styles |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN
TYPEOF(style1)
)) <= 2;
WR3 : SIZEOF (QUERY (style1 <* SELF.styles |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style1)) AND
(SIZEOF (QUERY (style2 <* (SELF.styles - style1) |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style2)) AND
((style1\surface_style_usage.side = both) OR
(style2\surface_style_usage.side = both) OR
(style1\surface_style_usage.side = style2\surface_style_usage.side)) )) > 0))) = 0;
END_ENTITY;
ENTITY presentation_style_by_context
SUBTYPE OF (presentation_style_assignment);
style_context : style_context_select;
END_ENTITY;
ENTITY presentation_view
SUBTYPE OF (presentation_representation);
END_ENTITY;
ENTITY presented_item
ABSTRACT SUPERTYPE;
END_ENTITY;
ENTITY presented_item_representation;
presentation : presentation_representation_select;
item : presented_item;
END_ENTITY;
ENTITY pressure_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY pressure_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.pascal);
END_ENTITY;
ENTITY procedural_representation
SUBTYPE OF (representation);
SELF\representation.items : SET [1:?] OF procedural_representation_sequence;
END_ENTITY;
ENTITY procedural_representation_sequence
SUBTYPE OF (representation_item);
elements : LIST [1:?] OF representation_item;
suppressed_items : SET [0:?] OF representation_item;
rationale : text;
WHERE
WR1 : SIZEOF(QUERY(q <* suppressed_items | NOT (q IN elements))) = 0;
END_ENTITY;
ENTITY procedural_shape_representation
SUBTYPE OF (procedural_representation, shape_representation);
SELF\representation.items : SET [1:?] OF procedural_shape_representation_sequence;
END_ENTITY;
ENTITY procedural_shape_representation_sequence
SUBTYPE OF (geometric_representation_item, procedural_representation_sequence);
WHERE
WR1 : SIZEOF(QUERY(q <* SELF\procedural_representation_sequence.elements
| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM'
IN TYPEOF(q)))) = 0;
END_ENTITY;
ENTITY product;
id : identifier;
name : label;
description : OPTIONAL text;
frame_of_reference : SET [1:?] OF product_context;
END_ENTITY;
ENTITY product_category;
name : label;
description : OPTIONAL text;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY product_class
SUBTYPE OF (product_concept, characterized_object);
END_ENTITY;
ENTITY product_concept;
id : identifier;
name : label;
description : OPTIONAL text;
market_context : product_concept_context;
UNIQUE
UR1 : id;
END_ENTITY;
ENTITY product_concept_context
SUBTYPE OF (application_context_element);
market_segment_type : label;
END_ENTITY;
ENTITY product_concept_feature;
id : identifier;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY product_concept_feature_association;
name : label;
description : OPTIONAL text;
concept : product_concept;
feature : product_concept_feature;
END_ENTITY;
ENTITY product_concept_feature_category
SUBTYPE OF (group);
WHERE
WR1 : SIZEOF(QUERY
(
aga <* USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GROUP_ASSIGNMENT.ASSIGNED_GROUP' )
|
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga))
AND
(
( aga.role.name <> 'specification category member' )
OR
( SIZEOF(QUERY
(
i <* aga.items
|
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( i ) )
AND
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ '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;
SELF\group_assignment.assigned_group : product_concept_feature_category;
WHERE
WR1 : SELF.role.name IN [ 'mandatory category usage', 'optional category usage' ];
END_ENTITY;
ENTITY product_concept_relationship;
name : label;
description : OPTIONAL text;
relating_product_concept : product_concept;
related_product_concept : product_concept;
END_ENTITY;
ENTITY product_context
SUBTYPE OF (application_context_element);
discipline_type : label;
END_ENTITY;
ENTITY product_definition
SUPERTYPE OF (ONEOF (composite_assembly_definition, composite_assembly_sequence_definition, laminate_table, percentage_laminate_definition, percentage_ply_definition, ply_laminate_definition, ply_laminate_sequence_definition, thickness_laminate_definition));
id : identifier;
description : OPTIONAL text;
formation : product_definition_formation;
frame_of_reference : product_definition_context;
DERIVE
name : label := get_name_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
END_ENTITY;
ENTITY product_definition_context
SUBTYPE OF (application_context_element);
life_cycle_stage : label;
END_ENTITY;
ENTITY product_definition_context_association;
definition : product_definition;
frame_of_reference : product_definition_context;
role : product_definition_context_role;
END_ENTITY;
ENTITY product_definition_context_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY product_definition_effectivity
SUBTYPE OF (effectivity);
usage : product_definition_relationship;
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0;
END_ENTITY;
ENTITY product_definition_element_relationship
SUBTYPE OF (group);
END_ENTITY;
ENTITY product_definition_formation;
id : identifier;
description : OPTIONAL text;
of_product : product;
UNIQUE
UR1 : id, of_product;
END_ENTITY;
ENTITY product_definition_formation_relationship;
id : identifier;
name : label;
description : OPTIONAL text;
relating_product_definition_formation : product_definition_formation;
related_product_definition_formation : product_definition_formation;
END_ENTITY;
ENTITY product_definition_formation_with_specified_source
SUBTYPE OF (product_definition_formation);
make_or_buy : source;
END_ENTITY;
ENTITY product_definition_group_assignment
SUBTYPE OF (group_assignment);
items : SET [1:1] OF product_definition_or_product_definition_relationship;
SELF\group_assignment.assigned_group : product_definition_element_relationship;
END_ENTITY;
ENTITY product_definition_occurrence_relationship;
name : label;
description : OPTIONAL text;
occurrence : product_definition;
occurrence_usage : assembly_component_usage;
WHERE
WR1 : occurrence_usage.relating_product_definition :<>:
occurrence;
WR2 : occurrence_usage.related_product_definition :<>:
occurrence;
WR3 : occurrence.formation :=:
occurrence_usage.related_product_definition.formation;
END_ENTITY;
ENTITY product_definition_relationship;
id : identifier;
name : label;
description : OPTIONAL text;
relating_product_definition : product_definition;
related_product_definition : product_definition;
END_ENTITY;
ENTITY product_definition_shape
SUBTYPE OF (property_definition);
UNIQUE
UR1: SELF\property_definition.definition;
WHERE
WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\property_definition.definition)) > 0;
END_ENTITY;
ENTITY product_definition_substitute;
description : OPTIONAL text;
context_relationship : product_definition_relationship;
substitute_definition : product_definition;
DERIVE
name : label := get_name_value(SELF);
WHERE
WR1 : context_relationship.related_product_definition :<>: substitute_definition;
WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
END_ENTITY;
ENTITY product_definition_usage
SUPERTYPE OF (ONEOF (make_from_usage_option, assembly_component_usage))
SUBTYPE OF (product_definition_relationship);
UNIQUE
UR1: SELF\product_definition_relationship.id,
SELF\product_definition_relationship.relating_product_definition,
SELF\product_definition_relationship.related_product_definition;
WHERE
WR1 : acyclic_product_definition_relationship
(SELF,
[SELF\product_definition_relationship.related_product_definition],
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_USAGE');
END_ENTITY;
ENTITY product_definition_with_associated_documents
SUBTYPE OF (product_definition);
documentation_ids : SET [1:?] OF document;
END_ENTITY;
ENTITY product_identification
SUBTYPE OF (configuration_item, characterized_object);
SELF\configuration_item.item_concept : product_class;
WHERE
WR1 : SIZEOF(QUERY
( cd <* USEDIN ( SELF ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONFIGURATION_DESIGN.CONFIGURATION' )
|
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF ( cd. design ) )
AND
( SIZEOF ( QUERY
(
prpc <* USEDIN ( cd. design\product_definition_formation.of_product , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')
|
prpc. name IN ['part' , 'raw material' , 'tool'] ) ) >0
)
)
) <=1;
WR2 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CONFIGURABLE_ITEM' IN TYPEOF( SELF ) )
XOR ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_SPECIFICATION' IN TYPEOF ( SELF ) );
END_ENTITY;
ENTITY product_material_composition_relationship
SUBTYPE OF (product_definition_relationship);
class : label;
constituent_amount : SET [1:?] OF characterized_product_composition_value;
composition_basis : label;
determination_method : text;
END_ENTITY;
ENTITY product_related_product_category
SUBTYPE OF (product_category);
products : SET [1:?] OF product;
END_ENTITY;
ENTITY product_specification
SUBTYPE OF (product_identification, configurable_item);
END_ENTITY;
ENTITY projected_zone_definition
SUBTYPE OF (tolerance_zone_definition);
projection_end : shape_aspect;
projected_length : measure_with_unit;
WHERE
WR1 : ('NUMBER' IN TYPEOF
(projected_length\measure_with_unit.value_component)) AND
(projected_length\measure_with_unit.value_component > 0.0);
WR2 : (derive_dimensional_exponents
(projected_length\measure_with_unit.unit_component)=
dimensional_exponents(1,0,0,0,0,0,0));
END_ENTITY;
ENTITY projection_curve
SUBTYPE OF (annotation_curve_occurrence);
END_ENTITY;
ENTITY projection_directed_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1 : SIZEOF(QUERY(p_1<*SELF\draughting_callout.contents |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(p_1))))=1;
WR2 : SIZEOF(SELF\draughting_callout.contents) >=2;
END_ENTITY;
ENTITY promissory_usage_occurrence
SUBTYPE OF (assembly_component_usage);
END_ENTITY;
ENTITY property_definition;
name : label;
description : OPTIONAL text;
definition : characterized_definition;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY property_definition_relationship;
name : label;
description : text;
relating_property_definition : property_definition;
related_property_definition : property_definition;
END_ENTITY;
ENTITY property_definition_representation;
definition : represented_definition;
used_representation : representation;
DERIVE
description : text := get_description_value(SELF);
name : label := get_name_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
END_ENTITY;
ENTITY qualified_representation_item
SUBTYPE OF (representation_item);
qualifiers : SET [1:?] OF value_qualifier;
WHERE
WR1 : SIZEOF(QUERY(temp <* qualifiers |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRECISION_QUALIFIER'
IN TYPEOF(temp))) < 2;
END_ENTITY;
ENTITY qualitative_uncertainty
SUBTYPE OF (uncertainty_qualifier);
uncertainty_value : text;
END_ENTITY;
ENTITY quantified_assembly_component_usage
SUBTYPE OF (assembly_component_usage);
quantity : measure_with_unit;
WHERE
WR1 : (NOT ('NUMBER' IN TYPEOF(quantity.value_component)))
OR (quantity.value_component > 0);
END_ENTITY;
ENTITY quasi_uniform_curve
SUBTYPE OF (b_spline_curve);
END_ENTITY;
ENTITY quasi_uniform_surface
SUBTYPE OF (b_spline_surface);
END_ENTITY;
ENTITY radioactivity_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY radioactivity_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.becquerel);
END_ENTITY;
ENTITY radius_dimension
SUBTYPE OF (dimension_curve_directed_callout);
WHERE
WR1 : SIZEOF (QUERY (con <* SELF.contents |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN TYPEOF (con)))<=1;
END_ENTITY;
ENTITY range_characteristic
SUBTYPE OF (representation, descriptive_representation_item);
WHERE
WR1 : NOT(SELF\representation.name IN ['tolerance', 'minimum tolerance', 'maximum tolerance',
'nominal tolerance', 'plus minus tolerance', 'symmetrical tolerance', 'statistical tolerance']);
END_ENTITY;
ENTITY ratio_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY ratio_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY rational_b_spline_curve
SUBTYPE OF (b_spline_curve);
weights_data : LIST [2:?] OF REAL;
DERIVE
weights : ARRAY [0:upper_index_on_control_points] OF REAL := list_to_array(weights_data,0,
upper_index_on_control_points);
WHERE
WR1 : SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve.
control_points_list);
WR2 : curve_weights_positive(SELF);
END_ENTITY;
ENTITY rational_b_spline_surface
SUBTYPE OF (b_spline_surface);
weights_data : LIST [2:?] OF LIST [2:?] OF REAL;
DERIVE
weights : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF REAL := make_array_of_array(weights_data,0,u_upper,0,v_upper);
WHERE
WR1 : (SIZEOF(weights_data) =
SIZEOF(SELF\b_spline_surface.control_points_list))
AND (SIZEOF(weights_data[1]) =
SIZEOF(SELF\b_spline_surface.control_points_list[1]));
WR2 : surface_weights_positive(SELF);
END_ENTITY;
ENTITY rational_representation_item
SUBTYPE OF (representation_item, slash_expression);
WHERE
WR1 : SIZEOF( QUERY( operand <* SELF\binary_generic_expression.operands |
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_LITERAL' IN TYPEOF(operand)))) = 0;
END_ENTITY;
ENTITY real_literal
SUBTYPE OF (literal_number);
SELF\literal_number.the_value : REAL;
END_ENTITY;
ENTITY real_representation_item
SUBTYPE OF (representation_item, real_literal);
END_ENTITY;
ENTITY rectangular_composite_surface
SUBTYPE OF (bounded_surface);
segments : LIST [1:?] OF LIST [1:?] OF surface_patch;
DERIVE
n_u : INTEGER := SIZEOF(segments);
n_v : INTEGER := SIZEOF(segments[1]);
WHERE
WR1 : SIZEOF(QUERY (s <* segments | n_v <> SIZEOF (s))) = 0;
WR2 : constraints_rectangular_composite_surface(SELF);
END_ENTITY;
ENTITY rectangular_trimmed_surface
SUBTYPE OF (bounded_surface);
basis_surface : surface;
u1 : parameter_value;
u2 : parameter_value;
v1 : parameter_value;
v2 : parameter_value;
usense : BOOLEAN;
vsense : BOOLEAN;
WHERE
WR1 : u1 <> u2;
WR2 : v1 <> v2;
WR3 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface))
AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(basis_surface)))) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface))
OR (usense = (u2 > u1));
WR4 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF(basis_surface))
OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF(basis_surface)))
OR (vsense = (v2 > v1));
END_ENTITY;
ENTITY referenced_modified_datum
SUBTYPE OF (datum_reference);
modifier : limit_condition;
END_ENTITY;
ENTITY relative_event_occurrence
SUBTYPE OF (event_occurrence);
base_event : event_occurrence;
offset : time_measure_with_unit;
END_ENTITY;
ENTITY rep_item_group
SUBTYPE OF (group, representation_item);
WHERE
WR1 : SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS')) > 0;
WR2 : SIZEOF(QUERY(r <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION.' + 'ITEMS') | r.name = 'group representation')) > 0;
WR3 : SIZEOF(QUERY(ga <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP') | ga.role.name <> 'group membership')) = 0;
WR4 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MAPPED_ITEM','AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'STYLED_ITEM'] * TYPEOF(SELF)) = 1;
END_ENTITY;
ENTITY reparametrised_composite_curve_segment
SUBTYPE OF (composite_curve_segment);
param_length : parameter_value;
WHERE
WR1 : param_length > 0.0;
END_ENTITY;
ENTITY representation;
name : label;
items : SET [1:?] OF representation_item;
context_of_items : representation_context;
DERIVE
description : text := get_description_value (SELF);
id : identifier := get_id_value (SELF);
WHERE
WR1 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'ID_ATTRIBUTE.IDENTIFIED_ITEM'))
<= 1;
WR2 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM'))
<= 1;
END_ENTITY;
ENTITY representation_context;
context_identifier : identifier;
context_type : text;
INVERSE
representations_in_context: SET [1:?] OF representation FOR context_of_items;
END_ENTITY;
ENTITY representation_item
SUPERTYPE OF (ONEOF (binary_representation_item, compound_representation_item, mapped_item, value_representation_item, mapped_item, styled_item, boolean_representation_item, date_representation_item, date_time_representation_item, integer_representation_item, logical_representation_item, rational_representation_item, real_representation_item));
name : label;
WHERE
WR1 : SIZEOF(using_representations(SELF)) > 0;
END_ENTITY;
ENTITY representation_item_relationship;
name : label;
description : OPTIONAL text;
relating_representation_item : representation_item;
related_representation_item : representation_item;
END_ENTITY;
ENTITY representation_map;
mapping_origin : representation_item;
mapped_representation : representation;
INVERSE
map_usage: SET [1:?] OF mapped_item FOR mapping_source;
WHERE
WR1 : item_in_context(SELF.mapping_origin,
SELF.mapped_representation.context_of_items);
END_ENTITY;
ENTITY representation_relationship;
name : label;
description : OPTIONAL text;
rep_1 : representation;
rep_2 : representation;
END_ENTITY;
ENTITY representation_relationship_with_transformation
SUBTYPE OF (representation_relationship);
transformation_operator : transformation;
WHERE
WR1 : SELF\representation_relationship.rep_1.context_of_items
:<>: SELF\representation_relationship.rep_2.context_of_items;
END_ENTITY;
ENTITY requirement_assigned_object
SUBTYPE OF (group_assignment);
items : SET [1:1] OF requirement_assigned_item;
SELF\group_assignment.assigned_group : requirement_assignment;
END_ENTITY;
ENTITY requirement_assignment
SUBTYPE OF (characterized_object, group);
END_ENTITY;
ENTITY requirement_source
SUBTYPE OF (group);
END_ENTITY;
ENTITY requirement_view_definition_relationship
SUBTYPE OF (product_definition_relationship);
END_ENTITY;
ENTITY resistance_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY resistance_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.ohm);
END_ENTITY;
ENTITY revolved_area_solid
SUBTYPE OF (swept_area_solid);
axis : axis1_placement;
angle : plane_angle_measure;
DERIVE
axis_line : line := representation_item('')||
geometric_representation_item()|| curve()||
line(axis.location, representation_item('')||
geometric_representation_item()||
vector(axis.z, 1.0));
END_ENTITY;
ENTITY revolved_face_solid
SUBTYPE OF (swept_face_solid);
axis : axis1_placement;
angle : plane_angle_measure;
DERIVE
axis_line : line := representation_item('')||
geometric_representation_item()|| curve()||
line(axis.location, representation_item('')||
geometric_representation_item()||
vector(axis.z, 1.0));
END_ENTITY;
ENTITY revolved_face_solid_with_trim_conditions
SUBTYPE OF (revolved_face_solid);
first_trim_condition : trim_condition_select;
second_trim_condition : trim_condition_select;
WHERE
WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
IN TYPEOF(first_trim_condition))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
IN TYPEOF(second_trim_condition)));
WR2 : NOT((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE'
IN TYPEOF(first_trim_condition)) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE'
IN TYPEOF(second_trim_condition))) AND
(first_trim_condition = second_trim_condition));
END_ENTITY;
ENTITY right_angular_wedge
SUBTYPE OF (geometric_representation_item);
position : axis2_placement_3d;
x : positive_length_measure;
y : positive_length_measure;
z : positive_length_measure;
ltx : length_measure;
WHERE
WR1 : ((0.0 <= ltx) AND (ltx < x));
END_ENTITY;
ENTITY right_circular_cone
SUBTYPE OF (geometric_representation_item);
position : axis1_placement;
height : positive_length_measure;
radius : length_measure;
semi_angle : plane_angle_measure;
WHERE
WR1 : radius >= 0.0;
END_ENTITY;
ENTITY right_circular_cylinder
SUBTYPE OF (geometric_representation_item);
position : axis1_placement;
height : positive_length_measure;
radius : positive_length_measure;
END_ENTITY;
ENTITY right_to_usage_association
SUBTYPE OF (action_method_relationship);
SELF\action_method_relationship.related_method : information_right;
SELF\action_method_relationship.relating_method : information_usage_right;
DERIVE
right_applied : information_right := SELF\action_method_relationship.related_method;
right_usage : information_usage_right := SELF\action_method_relationship.relating_method;
END_ENTITY;
ENTITY role_association;
role : object_role;
item_with_role : role_select;
END_ENTITY;
ENTITY roundness_tolerance
SUBTYPE OF (geometric_tolerance);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
END_ENTITY;
ENTITY row_representation_item
SUBTYPE OF (compound_representation_item);
SELF\compound_representation_item.item_element : list_representation_item;
END_ENTITY;
ENTITY row_value
SUBTYPE OF (compound_representation_item);
END_ENTITY;
ENTITY row_variable
SUBTYPE OF (abstract_variable);
END_ENTITY;
ENTITY rule_action
SUBTYPE OF (action);
END_ENTITY;
ENTITY rule_condition
SUBTYPE OF (atomic_formula);
END_ENTITY;
ENTITY rule_definition
SUBTYPE OF (rule_software_definition);
END_ENTITY;
ENTITY rule_set
SUBTYPE OF (rule_software_definition);
END_ENTITY;
ENTITY rule_set_group
SUBTYPE OF (rule_software_definition);
END_ENTITY;
ENTITY rule_software_definition
SUBTYPE OF (product_definition);
END_ENTITY;
ENTITY rule_superseded_assignment
SUBTYPE OF (action_assignment);
items : SET [1:?] OF rule_superseded_item;
END_ENTITY;
ENTITY rule_supersedence
SUBTYPE OF (rule_action);
END_ENTITY;
ENTITY ruled_surface_swept_area_solid
SUBTYPE OF (surface_curve_swept_area_solid);
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND
(SELF.reference_surface\b_spline_surface.u_degree = 1);
WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(SELF.directrix)) OR
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(SELF.directrix\surface_curve.curve_3d))
AND
(SELF.directrix\surface_curve.curve_3d\b_spline_curve.degree =
SELF.reference_surface\b_spline_surface.v_degree));
END_ENTITY;
ENTITY runout_zone_definition
SUBTYPE OF (tolerance_zone_definition);
orientation : runout_zone_orientation;
END_ENTITY;
ENTITY runout_zone_orientation;
angle : measure_with_unit;
END_ENTITY;
ENTITY runout_zone_orientation_reference_direction
SUBTYPE OF (runout_zone_orientation);
orientation_defining_relationship : shape_aspect_relationship;
END_ENTITY;
ENTITY satisfied_requirement
SUBTYPE OF (group_assignment);
items : SET [1:1] OF product_definition;
SELF\group_assignment.assigned_group : satisfies_requirement;
END_ENTITY;
ENTITY satisfies_requirement
SUBTYPE OF (group);
END_ENTITY;
ENTITY satisfying_item
SUBTYPE OF (group_assignment);
items : SET [1:1] OF requirement_satisfaction_item;
SELF\group_assignment.assigned_group : satisfies_requirement;
END_ENTITY;
ENTITY scalar_variable
SUBTYPE OF (abstract_variable);
END_ENTITY;
ENTITY scattering_parameter
SUBTYPE OF (polar_complex_number_literal);
WHERE
WR1 : SIZEOF(TYPEOF(SELF) - (TYPEOF(SELF\polar_complex_number_literal ||
SELF\scattering_parameter))) = 0;
END_ENTITY;
ENTITY sculptured_solid
SUBTYPE OF (modified_solid);
sculpturing_element : generalized_surface_select;
positive_side : BOOLEAN;
END_ENTITY;
ENTITY seam_curve
SUBTYPE OF (surface_curve);
WHERE
WR1 : SIZEOF(SELF\surface_curve.associated_geometry) = 2;
WR2 : associated_surface(SELF\surface_curve.associated_geometry[1]) =
associated_surface(SELF\surface_curve.associated_geometry[2]);
WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
TYPEOF(SELF\surface_curve.associated_geometry[1]);
WR4 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
TYPEOF(SELF\surface_curve.associated_geometry[2]);
END_ENTITY;
ENTITY security_classification;
name : label;
purpose : text;
security_level : security_classification_level;
END_ENTITY;
ENTITY security_classification_assignment
ABSTRACT SUPERTYPE;
assigned_security_classification : security_classification;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
ENTITY security_classification_level;
name : label;
END_ENTITY;
ENTITY serial_numbered_effectivity
SUBTYPE OF (effectivity);
effectivity_start_id : identifier;
effectivity_end_id : OPTIONAL identifier;
END_ENTITY;
ENTITY shape_aspect;
name : label;
description : OPTIONAL text;
of_shape : product_definition_shape;
product_definitional : LOGICAL;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY shape_aspect_associativity
SUBTYPE OF (shape_aspect_relationship);
WHERE
WR1 : SELF.relating_shape_aspect.product_definitional;
WR2 : NOT (SELF.related_shape_aspect.product_definitional);
END_ENTITY;
ENTITY shape_aspect_deriving_relationship
SUBTYPE OF (shape_aspect_relationship);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_SHAPE_ASPECT' IN
TYPEOF
(SELF\SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT);
END_ENTITY;
ENTITY shape_aspect_relationship;
name : label;
description : OPTIONAL text;
relating_shape_aspect : shape_aspect;
related_shape_aspect : shape_aspect;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
ENTITY shape_definition_representation
SUBTYPE OF (property_definition_representation);
WHERE
WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.definition)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DEFINITION' IN TYPEOF(SELF.definition.definition));
WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(SELF.used_representation);
END_ENTITY;
ENTITY shape_dimension_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (QUERY (temp <* SELF\representation.items |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM'
IN TYPEOF (temp)))) = 0;
WR2 : SIZEOF (SELF\representation.items) <= 3;
WR3 : SIZEOF (QUERY (pos_mri <* QUERY (real_mri <*
SELF\representation.items | 'REAL' IN TYPEOF
(real_mri\measure_with_unit.value_component) ) |
NOT (pos_mri\measure_with_unit.value_component > 0.0 ))) = 0;
END_ENTITY;
ENTITY shape_feature_definition
SUBTYPE OF (characterized_object);
END_ENTITY;
ENTITY shape_representation
SUBTYPE OF (representation);
END_ENTITY;
ENTITY shape_representation_relationship
SUBTYPE OF (representation_relationship);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN (TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2));
END_ENTITY;
ENTITY shape_representation_with_parameters
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLACEMENT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(i)) = 1 )) = SIZEOF(SELF.items);
END_ENTITY;
ENTITY shell_based_surface_model
SUBTYPE OF (geometric_representation_item);
sbsm_boundary : SET [1:?] OF shell;
WHERE
WR1 : constraints_geometry_shell_based_surface_model(SELF);
END_ENTITY;
ENTITY shell_based_wireframe_model
SUBTYPE OF (geometric_representation_item);
sbwm_boundary : SET [1:?] OF shell;
WHERE
WR1 : constraints_geometry_shell_based_wireframe_model(SELF);
END_ENTITY;
ENTITY shell_based_wireframe_shape_representation
SUBTYPE OF (shape_representation);
WHERE
WR1 : SIZEOF (
QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0;
WR2 : SIZEOF (
QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1;
WR3 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( ws <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
QUERY ( eloop <*
QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
QUERY ( el <* eloop\path.edge_list| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (el.edge_element)) )) = 0) )) = 0) )) = 0) )) = 0;
WR4 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( ws <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
QUERY ( eloop <*
QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
QUERY ( pline_el <*
QUERY ( el <* eloop\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (el.edge_element\edge_curve.edge_geometry)) )| NOT ( SIZEOF (pline_el.edge_element\edge_curve.edge_geometry\polyline.points) > 2) )) = 0) )) = 0) )) = 0) )) = 0;
WR5 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( ws <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
QUERY ( eloop <*
QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
QUERY ( el <* eloop\path.edge_list| NOT valid_wireframe_edge_curve(el.edge_element\edge_curve.edge_geometry) )) = 0) )) = 0) )) = 0) )) = 0;
WR6 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( ws <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
QUERY ( eloop <*
QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
QUERY ( el <* eloop\path.edge_list| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_end))) )) = 0) )) = 0) )) = 0) )) = 0;
WR7 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( ws <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
QUERY ( eloop <*
QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
QUERY ( el <* eloop\path.edge_list| NOT (valid_wireframe_vertex_point(el.edge_element.edge_start\vertex_point.vertex_geometry) AND valid_wireframe_vertex_point(el.edge_element.edge_end\vertex_point.vertex_geometry)) )) = 0) )) = 0) )) = 0) )) = 0;
WR8 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( ws <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
QUERY ( vloop <*
QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (wsb)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vloop\vertex_loop.loop_vertex)) )) = 0) )) = 0) )) = 0;
WR9 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( ws <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
QUERY ( vloop <*
QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (wsb)) )| NOT valid_wireframe_vertex_point(vloop\vertex_loop.loop_vertex\vertex_point.vertex_geometry) )) = 0) )) = 0) )) = 0;
WR10 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( vs <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN TYPEOF (sb)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vs\vertex_shell.vertex_shell_extent.loop_vertex)) )) = 0) )) = 0;
WR11 : SIZEOF (
QUERY ( sbwm <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
QUERY ( vs <*
QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN TYPEOF (sb)) )| NOT valid_wireframe_vertex_point(vs\vertex_shell.vertex_shell_extent.loop_vertex\vertex_point.vertex_geometry) )) = 0) )) = 0;
WR12 : SIZEOF (
QUERY ( mi <*
QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
WR13 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
END_ENTITY;
ENTITY shelled_solid
SUPERTYPE OF (ONEOF (double_offset_shelled_solid, complex_shelled_solid))
SUBTYPE OF (modified_solid);
deleted_face_set : SET [1:?] OF face_surface;
thickness : length_measure;
WHERE
WR1 : thickness <> 0;
END_ENTITY;
ENTITY si_absorbed_dose_unit
SUBTYPE OF (absorbed_dose_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.gray;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_capacitance_unit
SUBTYPE OF (capacitance_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.farad;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_conductance_unit
SUBTYPE OF (conductance_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.siemens;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_dose_equivalent_unit
SUBTYPE OF (dose_equivalent_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.sievert;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_electric_charge_unit
SUBTYPE OF (electric_charge_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.coulomb;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_electric_potential_unit
SUBTYPE OF (electric_potential_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.volt;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_energy_unit
SUBTYPE OF (energy_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.joule;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_force_unit
SUBTYPE OF (force_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.newton;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_frequency_unit
SUBTYPE OF (frequency_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.hertz;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_illuminance_unit
SUBTYPE OF (illuminance_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.lux;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_inductance_unit
SUBTYPE OF (inductance_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.henry;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_magnetic_flux_density_unit
SUBTYPE OF (magnetic_flux_density_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.tesla;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_magnetic_flux_unit
SUBTYPE OF (magnetic_flux_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.weber;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_power_unit
SUBTYPE OF (power_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.watt;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_pressure_unit
SUBTYPE OF (pressure_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.pascal;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_radioactivity_unit
SUBTYPE OF (radioactivity_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.becquerel;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_resistance_unit
SUBTYPE OF (resistance_unit, si_unit);
WHERE
WR1 : SELF\si_unit.name = si_unit_name.ohm;
WR2 : NOT EXISTS(SELF\derived_unit.name);
END_ENTITY;
ENTITY si_unit
SUBTYPE OF (named_unit);
prefix : OPTIONAL si_prefix;
name : si_unit_name;
DERIVE
SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name);
WHERE
WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_UNIT' IN TYPEOF(SELF)) AND
(SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR
(prefix = si_prefix.kilo);
END_ENTITY;
ENTITY simple_boolean_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (boolean_expression, simple_generic_expression);
END_ENTITY;
ENTITY simple_clause
SUBTYPE OF (compound_representation_item);
END_ENTITY;
ENTITY simple_generic_expression
ABSTRACT SUPERTYPE OF (ONEOF (generic_literal, generic_variable))
SUBTYPE OF (generic_expression);
END_ENTITY;
ENTITY simple_numeric_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (numeric_expression, simple_generic_expression);
END_ENTITY;
ENTITY slash_expression
SUBTYPE OF (binary_numeric_expression);
END_ENTITY;
ENTITY smeared_material_definition
SUBTYPE OF (zone_structural_makeup);
END_ENTITY;
ENTITY solid_angle_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY solid_angle_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY solid_curve_font
SUBTYPE OF (pre_defined_curve_font);
END_ENTITY;
ENTITY solid_model
SUPERTYPE OF (ONEOF (csg_solid, manifold_solid_brep, swept_face_solid, swept_area_solid, swept_disk_solid, solid_replica))
SUBTYPE OF (geometric_representation_item);
END_ENTITY;
ENTITY solid_replica
SUBTYPE OF (solid_model);
parent_solid : solid_model;
transformation : cartesian_transformation_operator_3d;
WHERE
WR1 : acyclic_solid_replica(SELF, parent_solid);
WR2 : parent_solid\geometric_representation_item.dim = 3;
END_ENTITY;
ENTITY solid_with_angle_based_chamfer
SUBTYPE OF (solid_with_chamfered_edges);
offset_distance : positive_length_measure;
left_offset : BOOLEAN;
offset_angle : positive_plane_angle_measure;
END_ENTITY;
ENTITY solid_with_chamfered_edges
ABSTRACT SUPERTYPE OF (ONEOF (solid_with_single_offset_chamfer, solid_with_double_offset_chamfer, solid_with_angle_based_chamfer))
SUBTYPE OF (edge_blended_solid);
END_ENTITY;
ENTITY solid_with_circular_pattern
SUPERTYPE OF (solid_with_incomplete_circular_pattern)
SUBTYPE OF (solid_with_shape_element_pattern);
replicate_count : positive_integer;
angular_spacing : plane_angle_measure;
radial_alignment : BOOLEAN;
reference_point : point;
END_ENTITY;
ENTITY solid_with_circular_pocket
SUBTYPE OF (solid_with_pocket);
pocket_radius : positive_length_measure;
WHERE
WR1 : SELF\solid_with_pocket.floor_blend_radius <= pocket_radius;
END_ENTITY;
ENTITY solid_with_circular_protrusion
SUBTYPE OF (solid_with_protrusion);
protrusion_radius : positive_length_measure;
END_ENTITY;
ENTITY solid_with_conical_bottom_round_hole
SUBTYPE OF (solid_with_stepped_round_hole);
semi_apex_angle : positive_plane_angle_measure;
tip_radius : non_negative_length_measure;
WHERE
WR1 : tip_radius <
SELF\solid_with_stepped_round_hole.segment_radii[segments];
END_ENTITY;
ENTITY solid_with_constant_radius_edge_blend
SUBTYPE OF (edge_blended_solid);
radius : positive_length_measure;
END_ENTITY;
ENTITY solid_with_curved_slot
SUBTYPE OF (solid_with_slot);
slot_centreline : bounded_curve;
END_ENTITY;
ENTITY solid_with_depression
ABSTRACT SUPERTYPE OF ((solid_with_through_depression ANDOR ONEOF (solid_with_hole, solid_with_pocket, solid_with_slot, solid_with_groove)))
SUBTYPE OF (modified_solid_with_placed_configuration);
depth : positive_length_measure;
END_ENTITY;
ENTITY solid_with_double_offset_chamfer
SUBTYPE OF (solid_with_chamfered_edges);
left_offset_distance : positive_length_measure;
right_offset_distance : positive_length_measure;
END_ENTITY;
ENTITY solid_with_flat_bottom_round_hole
SUBTYPE OF (solid_with_stepped_round_hole);
fillet_radius : non_negative_length_measure;
WHERE
WR1 : fillet_radius <
SELF\solid_with_stepped_round_hole.segment_radii[segments];
END_ENTITY;
ENTITY solid_with_general_pocket
SUBTYPE OF (solid_with_pocket);
profile : positioned_sketch;
reference_point : point;
WHERE
WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1;
WR2 : profile IN using_items(reference_point,[]);
END_ENTITY;
ENTITY solid_with_general_protrusion
SUBTYPE OF (solid_with_protrusion);
profile : positioned_sketch;
reference_point : point;
WHERE
WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1;
WR2 : profile IN using_items(reference_point,[]);
END_ENTITY;
ENTITY solid_with_groove
SUBTYPE OF (solid_with_depression);
groove_radius : positive_length_measure;
groove_width : positive_length_measure;
draft_angle : plane_angle_measure;
floor_fillet_radius : non_negative_length_measure;
external_groove : BOOLEAN;
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION'
IN TYPEOF(SELF));
END_ENTITY;
ENTITY solid_with_hole
ABSTRACT SUPERTYPE OF (solid_with_stepped_round_hole)
SUBTYPE OF (solid_with_depression);
END_ENTITY;
ENTITY solid_with_incomplete_circular_pattern
SUBTYPE OF (solid_with_circular_pattern);
omitted_instances : SET [1:?] OF positive_integer;
WHERE
WR1 : SIZEOF(omitted_instances) <
SELF\solid_with_circular_pattern.replicate_count;
WR2 : SIZEOF(QUERY(q <* omitted_instances | q >
SELF\solid_with_circular_pattern.replicate_count)) = 0;
END_ENTITY;
ENTITY solid_with_incomplete_rectangular_pattern
SUBTYPE OF (solid_with_rectangular_pattern);
omitted_instances : SET [1:?] OF LIST [2:2] OF positive_integer;
WHERE
WR1 : NOT([1,1] IN omitted_instances);
WR2 : SIZEOF(omitted_instances) <
((SELF\solid_with_rectangular_pattern.row_count *
SELF\solid_with_rectangular_pattern.column_count) - 1);
WR3 : SIZEOF(QUERY(q <* omitted_instances |
((q[1] > SELF\solid_with_rectangular_pattern.row_count) OR
(q[2] > SELF\solid_with_rectangular_pattern.column_count)))) = 0;
END_ENTITY;
ENTITY solid_with_pocket
ABSTRACT SUPERTYPE OF (ONEOF (solid_with_rectangular_pocket, solid_with_circular_pocket, solid_with_general_pocket))
SUBTYPE OF (solid_with_depression);
floor_blend_radius : non_negative_length_measure;
draft_angle : plane_angle_measure;
END_ENTITY;
ENTITY solid_with_protrusion
ABSTRACT SUPERTYPE OF (ONEOF (solid_with_circular_protrusion, solid_with_rectangular_protrusion, solid_with_general_protrusion))
SUBTYPE OF (modified_solid_with_placed_configuration);
protrusion_height : positive_length_measure;
protrusion_draft_angle : plane_angle_measure;
END_ENTITY;
ENTITY solid_with_rectangular_pattern
SUPERTYPE OF (solid_with_incomplete_rectangular_pattern)
SUBTYPE OF (solid_with_shape_element_pattern);
row_count : positive_integer;
column_count : positive_integer;
row_spacing : length_measure;
column_spacing : length_measure;
WHERE
WR1 : (row_count * column_count) > 1;
END_ENTITY;
ENTITY solid_with_rectangular_pocket
SUBTYPE OF (solid_with_pocket);
pocket_length : positive_length_measure;
pocket_width : positive_length_measure;
corner_radius : non_negative_length_measure;
WHERE
WR1 : (corner_radius < pocket_width/2)
AND (corner_radius < pocket_length/2);
END_ENTITY;
ENTITY solid_with_rectangular_protrusion
SUBTYPE OF (solid_with_protrusion);
protrusion_length : positive_length_measure;
protrusion_width : positive_length_measure;
protrusion_corner_radius : non_negative_length_measure;
WHERE
WR1 : (protrusion_corner_radius <= protrusion_width/2)
AND (protrusion_corner_radius <= protrusion_length/2);
END_ENTITY;
ENTITY solid_with_shape_element_pattern
ABSTRACT SUPERTYPE OF (ONEOF (solid_with_circular_pattern, solid_with_rectangular_pattern))
SUBTYPE OF (modified_solid_with_placed_configuration);
replicated_element : modified_solid_with_placed_configuration;
END_ENTITY;
ENTITY solid_with_single_offset_chamfer
SUBTYPE OF (solid_with_chamfered_edges);
offset_distance : positive_length_measure;
END_ENTITY;
ENTITY solid_with_slot
ABSTRACT SUPERTYPE OF ((ONEOF (solid_with_trapezoidal_section_slot, solid_with_tee_section_slot) AND ONEOF (solid_with_straight_slot, solid_with_curved_slot)))
SUBTYPE OF (solid_with_depression);
slot_width : positive_length_measure;
closed_ends : LIST [2:2] OF LOGICAL;
end_exit_faces : LIST [2:2] OF SET [0:?] OF face_surface;
WHERE
WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN
TYPEOF(SELF)) AND (closed_ends = [FALSE,FALSE]));
WR2 : NOT(((closed_ends[1] = TRUE) AND (SIZEOF(end_exit_faces[1]) <> 0))
OR ((closed_ends[2] = TRUE) AND (SIZEOF(end_exit_faces[2]) <> 0)));
END_ENTITY;
ENTITY solid_with_spherical_bottom_round_hole
SUBTYPE OF (solid_with_stepped_round_hole);
sphere_radius : positive_length_measure;
WHERE
WR1 : sphere_radius >=
SELF\solid_with_stepped_round_hole.segment_radii[segments];
END_ENTITY;
ENTITY solid_with_stepped_round_hole
SUPERTYPE OF ((solid_with_stepped_round_hole_and_conical_transitions ANDOR ONEOF (solid_with_flat_bottom_round_hole, solid_with_conical_bottom_round_hole, solid_with_spherical_bottom_round_hole)))
SUBTYPE OF (solid_with_hole);
segments : positive_integer;
segment_radii : LIST [1:segments] OF positive_length_measure;
segment_depths : LIST [1:segments] OF positive_length_measure;
DERIVE
SELF\solid_with_depression.depth : positive_length_measure := compute_total_depth(SELF);
WHERE
WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION'
IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE'])
<> 0));
END_ENTITY;
ENTITY solid_with_stepped_round_hole_and_conical_transitions
SUBTYPE OF (solid_with_stepped_round_hole);
conical_transitions : SET [1:?] OF conical_stepped_hole_transition;
WHERE
WR1 : SIZEOF (conical_transitions) <=
(SELF\solid_with_stepped_round_hole.segments + 1);
WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION'
IN TYPEOF(SELF)) XOR (SIZEOF(conical_transitions) <=
SELF\solid_with_stepped_round_hole.segments);
WR3 : validate_countersink_radii(SELF);
END_ENTITY;
ENTITY solid_with_straight_slot
SUBTYPE OF (solid_with_slot);
slot_length : positive_length_measure;
END_ENTITY;
ENTITY solid_with_tee_section_slot
SUBTYPE OF (solid_with_slot);
tee_section_width : positive_length_measure;
collar_depth : positive_length_measure;
WHERE
WR1 : collar_depth < SELF\solid_with_depression.depth;
WR2 : tee_section_width > SELF\solid_with_slot.slot_width;
END_ENTITY;
ENTITY solid_with_through_depression
SUBTYPE OF (solid_with_depression);
exit_faces : SET [1:?] OF face_surface;
WHERE
WR1 : SIZEOF(TYPEOF(SELF) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_HOLE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_POCKET',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_SLOT']) = 1;
END_ENTITY;
ENTITY solid_with_trapezoidal_section_slot
SUBTYPE OF (solid_with_slot);
draft_angle : plane_angle_measure;
floor_fillet_radius : non_negative_length_measure;
END_ENTITY;
ENTITY solid_with_variable_radius_edge_blend
SUBTYPE OF (edge_blended_solid, track_blended_solid);
point_list : LIST [2:?] OF point;
radius_list : LIST [2:?] OF positive_length_measure;
edge_function_list : LIST [1:?] OF blend_radius_variation_type;
WHERE
WR1 : SIZEOF(point_list) = SIZEOF(radius_list);
WR2 : SIZEOF(edge_function_list) = SIZEOF(radius_list) - 1;
WR3 : NOT((point_list[1] = point_list[HIINDEX(point_list)]) AND NOT
(radius_list[1] = radius_list[HIINDEX(radius_list)]));
END_ENTITY;
ENTITY source_for_requirement
SUBTYPE OF (group_assignment);
items : SET [1:1] OF requirement_source_item;
SELF\group_assignment.assigned_group : requirement_source;
END_ENTITY;
ENTITY sourced_requirement
SUBTYPE OF (group_assignment);
items : SET [1:1] OF product_definition;
SELF\group_assignment.assigned_group : requirement_source;
END_ENTITY;
ENTITY specification_definition
SUBTYPE OF (product_definition);
END_ENTITY;
ENTITY specified_higher_usage_occurrence
SUBTYPE OF (assembly_component_usage);
upper_usage : assembly_component_usage;
next_usage : next_assembly_usage_occurrence;
UNIQUE
UR1 : upper_usage, next_usage;
WHERE
WR1 : SELF :<>: upper_usage;
WR2 : SELF\product_definition_relationship.relating_product_definition
:=: upper_usage.relating_product_definition;
WR3 : SELF\product_definition_relationship.related_product_definition
:=: next_usage.related_product_definition;
WR4 : (upper_usage.related_product_definition :=:
next_usage.relating_product_definition) OR
(SIZEOF (QUERY (pdr <* USEDIN (upper_usage.related_product_definition,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' +
'RELATED_PRODUCT_DEFINITION') |
pdr.relating_product_definition :=:
next_usage.relating_product_definition)) = 1);
WR5 : SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE']
* TYPEOF(upper_usage)) = 1;
END_ENTITY;
ENTITY sphere
SUBTYPE OF (geometric_representation_item);
radius : positive_length_measure;
centre : point;
END_ENTITY;
ENTITY spherical_surface
SUBTYPE OF (elementary_surface);
radius : positive_length_measure;
END_ENTITY;
ENTITY standard_uncertainty
SUPERTYPE OF (expanded_uncertainty)
SUBTYPE OF (uncertainty_qualifier);
uncertainty_value : REAL;
END_ENTITY;
ENTITY start_request
SUBTYPE OF (action_request_assignment);
items : SET [1:?] OF start_request_item;
END_ENTITY;
ENTITY start_work
SUBTYPE OF (action_assignment);
items : SET [1:?] OF work_item;
END_ENTITY;
ENTITY straightness_tolerance
SUBTYPE OF (geometric_tolerance);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
END_ENTITY;
ENTITY structured_dimension_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1 : SIZEOF (TYPEOF (SELF) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_FEATURE_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_TARGET_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT']) = 0;
WR2 : SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (con))) |
NOT (ato.name IN
['dimension value', 'tolerance value', 'unit text',
'prefix text', 'suffix text']))) = 0;
WR3 : SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF (con))) |
(ato.name = 'dimension value')
)) >= 1;
WR4 : SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_CALLOUT_RELATIONSHIP.' +
'RELATING_DRAUGHTING_CALLOUT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND
(dcr.name = 'prefix') )) <= 1;
WR5 : SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_CALLOUT_RELATIONSHIP.' +
'RELATING_DRAUGHTING_CALLOUT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND
(dcr.name = 'suffix') )) <= 1;
WR6 : NOT((SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF(con)) ) |
(ato.name = 'prefix text')
)) > 0)) OR
(SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_CALLOUT_RELATIONSHIP.' +
'RELATING_DRAUGHTING_CALLOUT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND
(dcr.name = 'prefix') )) = 1);
WR7 : NOT(SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
IN TYPEOF(con))) |
(ato.name = 'suffix text')
)) > 0) OR
(SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DRAUGHTING_CALLOUT_RELATIONSHIP.' +
'RELATING_DRAUGHTING_CALLOUT') |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND
(dcr.name = 'suffix') )) = 1);
END_ENTITY;
ENTITY structured_text_composition
SUBTYPE OF (compound_representation_item);
END_ENTITY;
ENTITY structured_text_representation
SUBTYPE OF (representation);
SELF\representation.items : SET [1:?] OF string_representation_item_select;
END_ENTITY;
ENTITY styled_item
SUBTYPE OF (representation_item);
styles : SET [1:?] OF presentation_style_assignment;
item : representation_item;
WHERE
WR1 : (SIZEOF(SELF.styles) = 1)
XOR
(SIZEOF(QUERY(pres_style <* SELF.styles |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRESENTATION_STYLE_BY_CONTEXT' IN
TYPEOF(pres_style))
)) = 0);
END_ENTITY;
ENTITY subedge
SUBTYPE OF (edge);
parent_edge : edge;
END_ENTITY;
ENTITY subface
SUBTYPE OF (face);
parent_face : face;
WHERE
WR1 : NOT (mixed_loop_type_set(list_to_set(list_face_loops(SELF)) +
list_to_set(list_face_loops(parent_face))));
END_ENTITY;
ENTITY supplied_part_relationship
SUBTYPE OF (product_definition_relationship);
END_ENTITY;
ENTITY surface
SUPERTYPE OF (ONEOF (elementary_surface, swept_surface, bounded_surface, offset_surface, surface_replica))
SUBTYPE OF (geometric_representation_item);
END_ENTITY;
ENTITY surface_condition_callout
SUBTYPE OF (draughting_callout);
WHERE
WR1 : SIZEOF ( QUERY ( c <* SELF.contents | SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_CURVE_OCCURRENCE' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_SYMBOL_OCCURRENCE' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_TEXT_OCCURRENCE']* TYPEOF
( c ) ) <>1 ) ) =0;
END_ENTITY;
ENTITY surface_curve
SUPERTYPE OF ((ONEOF (intersection_curve, seam_curve) ANDOR bounded_surface_curve))
SUBTYPE OF (curve);
curve_3d : curve;
associated_geometry : LIST [1:2] OF pcurve_or_surface;
master_representation : preferred_surface_curve_representation;
DERIVE
basis_surface : SET [1:2] OF surface := get_basis_surface(SELF);
WHERE
WR1 : curve_3d.dim = 3;
WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[1])) OR
(master_representation <> pcurve_s1);
WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[2])) OR
(master_representation <> pcurve_s2);
WR4 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(curve_3d));
END_ENTITY;
ENTITY surface_curve_swept_area_solid
SUBTYPE OF (swept_area_solid);
directrix : curve;
start_param : REAL;
end_param : REAL;
reference_surface : surface;
WHERE
WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR
(reference_surface IN (directrix\surface_curve.basis_surface));
END_ENTITY;
ENTITY surface_of_linear_extrusion
SUBTYPE OF (swept_surface);
extrusion_axis : vector;
END_ENTITY;
ENTITY surface_of_revolution
SUBTYPE OF (swept_surface);
axis_position : axis1_placement;
DERIVE
axis_line : line := representation_item('')||
geometric_representation_item()|| curve()||
line(axis_position.location, representation_item('')||
geometric_representation_item()||
vector(axis_position.z, 1.0));
END_ENTITY;
ENTITY surface_patch
SUBTYPE OF (founded_item);
parent_surface : bounded_surface;
u_transition : transition_code;
v_transition : transition_code;
u_sense : BOOLEAN;
v_sense : BOOLEAN;
INVERSE
using_surfaces: BAG [1:?] OF rectangular_composite_surface FOR segments;
WHERE
WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE'
IN TYPEOF(parent_surface)));
END_ENTITY;
ENTITY surface_profile_tolerance
SUBTYPE OF (geometric_tolerance);
WHERE
WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3);
END_ENTITY;
ENTITY surface_rendering_properties;
rendered_colour : colour;
END_ENTITY;
ENTITY surface_replica
SUBTYPE OF (surface);
parent_surface : surface;
transformation : cartesian_transformation_operator_3d;
WHERE
WR1 : acyclic_surface_replica(SELF, parent_surface);
END_ENTITY;
ENTITY surface_side_style
SUBTYPE OF (founded_item);
name : label;
styles : SET [1:7] OF surface_style_element_select;
WHERE
WR1 : SIZEOF(QUERY( style1 <* SELF.styles |
SIZEOF(QUERY( style2 <* SELF.styles - style1 |
TYPEOF(style1) = TYPEOF(style2)
)) > 0
)) = 0;
END_ENTITY;
ENTITY surface_style_boundary
SUBTYPE OF (founded_item);
style_of_boundary : curve_or_render;
END_ENTITY;
ENTITY surface_style_control_grid
SUBTYPE OF (founded_item);
style_of_control_grid : curve_or_render;
END_ENTITY;
ENTITY surface_style_fill_area
SUBTYPE OF (founded_item);
fill_area : fill_area_style;
END_ENTITY;
ENTITY surface_style_parameter_line
SUBTYPE OF (founded_item);
style_of_parameter_lines : curve_or_render;
direction_counts : SET [1:2] OF direction_count_select;
WHERE
WR1 : (HIINDEX(SELF.direction_counts) = 1)
XOR
(TYPEOF(SELF.direction_counts[1]) <>
TYPEOF(SELF.direction_counts[2]));
END_ENTITY;
ENTITY surface_style_reflectance_ambient;
ambient_reflectance : REAL;
END_ENTITY;
ENTITY surface_style_reflectance_ambient_diffuse
SUBTYPE OF (surface_style_reflectance_ambient);
diffuse_reflectance : REAL;
END_ENTITY;
ENTITY surface_style_reflectance_ambient_diffuse_specular
SUBTYPE OF (surface_style_reflectance_ambient_diffuse);
specular_reflectance : REAL;
specular_exponent : REAL;
specular_colour : colour;
END_ENTITY;
ENTITY surface_style_rendering;
rendering_method : shading_surface_method;
surface_colour : colour;
END_ENTITY;
ENTITY surface_style_rendering_with_properties
SUBTYPE OF (surface_style_rendering);
properties : SET [1:2] OF rendering_properties_select;
WHERE
WR1 : (HIINDEX(SELF.properties) = 1)
XOR
(TYPEOF(SELF.properties[1]) <> TYPEOF(SELF.properties[2]));
END_ENTITY;
ENTITY surface_style_segmentation_curve
SUBTYPE OF (founded_item);
style_of_segmentation_curve : curve_or_render;
END_ENTITY;
ENTITY surface_style_silhouette
SUBTYPE OF (founded_item);
style_of_silhouette : curve_or_render;
END_ENTITY;
ENTITY surface_style_transparent;
transparency : REAL;
WHERE
WR1 : {0.0 <= transparency <= 1.0};
END_ENTITY;
ENTITY surface_style_usage
SUBTYPE OF (founded_item);
side : surface_side;
style : surface_side_style_select;
END_ENTITY;
ENTITY surface_texture_representation
SUBTYPE OF (representation);
WHERE
WR1 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DESCRIPTIVE_REPRESENTATION_ITEM']* TYPEOF ( i ) ) <>1 ) )
=0;
WR2 : ( SIZEOF ( QUERY ( i <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) ) =1 )
AND ( SIZEOF ( QUERY ( i <* SELF.items | (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN
TYPEOF ( i ) ) AND ( i.name = 'measuring method' ) ) ) =1 );
WR3 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) )
>0;
WR4 : ( SIZEOF ( USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+
'REP_1' ) ) <=1 ) AND ( SIZEOF ( USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+
'REP_2' ) ) =0 ) AND ( SIZEOF ( QUERY ( rr <* USEDIN ( SELF
, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+
'REP_1' ) | rr. rep_2.name = 'measuring direction' ) ) =
SIZEOF ( USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+
'REP_1' ) ) );
WR5 : ( SIZEOF ( USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
<* USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
pdr. definition ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
( gpa. base_definition.name ='surface_condition' ) ) ) =1 )
) =1 );
END_ENTITY;
ENTITY surfaced_open_shell
SUBTYPE OF (open_shell);
WHERE
WR1 : SIZEOF(QUERY(q <* SELF\connected_face_set.cfs_faces |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(q)))) = 0;
END_ENTITY;
ENTITY swept_area_solid
SUPERTYPE OF (ONEOF (revolved_area_solid, extruded_area_solid, surface_curve_swept_area_solid))
SUBTYPE OF (solid_model);
swept_area : curve_bounded_surface;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(swept_area.basis_surface);
END_ENTITY;
ENTITY swept_disk_solid
SUBTYPE OF (solid_model);
directrix : curve;
radius : positive_length_measure;
inner_radius : OPTIONAL positive_length_measure;
start_param : REAL;
end_param : REAL;
WHERE
WR1 : directrix.dim = 3;
WR2 : (NOT EXISTS(inner_radius)) OR (radius > inner_radius);
END_ENTITY;
ENTITY swept_face_solid
SUPERTYPE OF (ONEOF (extruded_face_solid, revolved_face_solid))
SUBTYPE OF (solid_model);
swept_face : face_surface;
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(swept_face.face_geometry);
END_ENTITY;
ENTITY swept_surface
SUPERTYPE OF (ONEOF (surface_of_linear_extrusion, surface_of_revolution))
SUBTYPE OF (surface);
swept_curve : curve;
END_ENTITY;
ENTITY symbol
SUBTYPE OF (representation_item);
END_ENTITY;
ENTITY symbol_colour;
colour_of_symbol : colour;
END_ENTITY;
ENTITY symbol_representation
SUBTYPE OF (representation);
END_ENTITY;
ENTITY symbol_representation_map
SUBTYPE OF (representation_map);
SELF\representation_map.mapped_representation : symbol_representation;
SELF\representation_map.mapping_origin : axis2_placement;
END_ENTITY;
ENTITY symbol_style
SUBTYPE OF (founded_item);
name : label;
style_of_symbol : symbol_style_select;
END_ENTITY;
ENTITY symbol_target
SUBTYPE OF (geometric_representation_item);
placement : axis2_placement;
x_scale : positive_ratio_measure;
y_scale : positive_ratio_measure;
END_ENTITY;
ENTITY symmetric_shape_aspect
SUBTYPE OF (shape_aspect);
INVERSE
basis_relationships: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
WHERE
WR1 : SIZEOF (QUERY (x<*SELF\symmetric_shape_aspect.basis_relationships |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CENTRE_OF_SYMMETRY' IN TYPEOF
(x\shape_aspect_relationship.related_shape_aspect)))>=1;
END_ENTITY;
ENTITY symmetry_tolerance
SUBTYPE OF (geometric_tolerance_with_datum_reference);
WHERE
WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3;
END_ENTITY;
ENTITY table_representation_item
SUBTYPE OF (compound_representation_item);
WHERE
WR1 : SIZEOF(QUERY(itet <* SELF\compound_representation_item.item_element |
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet))
)) = 0;
END_ENTITY;
ENTITY tactile_appearance_representation
SUBTYPE OF (representation);
WHERE
WR1 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) <>1 )) =0;
WR2 : SIZEOF ( QUERY ( i <* SELF.items | name ='depth' ) ) <=1;
WR3 : ( SIZEOF ( USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
<* USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
pdr. definition ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
( gpa. base_definition.name ='surface_condition' ) ) ) =1 )) =1 );
END_ENTITY;
ENTITY tagged_text_format
SUBTYPE OF (representation_context);
END_ENTITY;
ENTITY tagged_text_item
SUBTYPE OF (descriptive_representation_item);
END_ENTITY;
ENTITY tangent
SUBTYPE OF (derived_shape_aspect);
WHERE
WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
END_ENTITY;
ENTITY terminator_symbol
SUBTYPE OF (annotation_symbol_occurrence);
annotated_curve : annotation_curve_occurrence;
END_ENTITY;
ENTITY text_font;
id : identifier;
name : label;
description : text;
INVERSE
glyphs: SET [1:?] OF character_glyph_font_usage FOR font;
END_ENTITY;
ENTITY text_font_family;
id : identifier;
name : label;
description : text;
INVERSE
fonts: SET [1:?] OF text_font_in_family FOR family;
END_ENTITY;
ENTITY text_font_in_family;
font : text_font;
family : text_font_family;
END_ENTITY;
ENTITY text_literal
SUBTYPE OF (geometric_representation_item);
literal : presentable_text;
placement : axis2_placement;
alignment : text_alignment;
path : text_path;
font : font_select;
END_ENTITY;
ENTITY text_literal_with_associated_curves
SUBTYPE OF (text_literal);
associated_curves : SET [1:?] OF curve;
END_ENTITY;
ENTITY text_literal_with_blanking_box
SUBTYPE OF (text_literal);
blanking : planar_box;
END_ENTITY;
ENTITY text_literal_with_delineation
SUBTYPE OF (text_literal);
delineation : text_delineation;
END_ENTITY;
ENTITY text_literal_with_extent
SUBTYPE OF (text_literal);
extent : planar_extent;
END_ENTITY;
ENTITY text_string_representation
SUBTYPE OF (representation);
SELF\representation.items : SET [1:?] OF text_string_representation_item;
WHERE
WR1 : SIZEOF (
QUERY (item <* SELF\representation.items |
NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_CHARACTER',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEFINED_CHARACTER_GLYPH',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'] *
TYPEOF (item)) = 0)
)) >= 1;
WR2 : SIZEOF (
QUERY (a2p <*
QUERY (item <* SELF\representation.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF (item)) |
NOT ((SIZEOF (
QUERY (at <*
QUERY (item <* SELF\representation.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'ANNOTATION_TEXT' IN TYPEOF (item)) |
(at\mapped_item.mapping_target :=: a2p))) >= 1) OR
(SIZEOF (
QUERY (atc <*
QUERY (item <* SELF\representation.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'ANNOTATION_TEXT_CHARACTER' IN TYPEOF (item)) |
(atc\mapped_item.mapping_target :=: a2p))) >= 1)
))) = 0;
END_ENTITY;
ENTITY text_style
SUBTYPE OF (founded_item);
name : label;
character_appearance : character_style_select;
END_ENTITY;
ENTITY text_style_for_defined_font;
text_colour : colour;
END_ENTITY;
ENTITY text_style_with_box_characteristics
SUBTYPE OF (text_style);
characteristics : SET [1:4] OF box_characteristic_select;
WHERE
WR1 : SIZEOF( QUERY( c1 <* SELF.characteristics |
SIZEOF( QUERY( c2 <* SELF.characteristics - c1 |
TYPEOF (c1) = TYPEOF (c2)
)) > 0
)) = 0;
END_ENTITY;
ENTITY text_style_with_mirror
SUBTYPE OF (text_style);
mirror_placement : axis2_placement;
END_ENTITY;
ENTITY text_style_with_spacing
SUBTYPE OF (text_style);
character_spacing : character_spacing_select;
END_ENTITY;
ENTITY thermal_resistance_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMAL_RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY thermal_resistance_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) =
dimensional_exponents ( -1.0, -1.0, -3.0, 0.0, 1.0, 0.0, 0.0 );
END_ENTITY;
ENTITY thermodynamic_temperature_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY thermodynamic_temperature_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY thickened_face_solid
SUBTYPE OF (solid_model);
base_element : generalized_surface_select;
offset1 : length_measure;
offset2 : length_measure;
WHERE
WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(base_element)) AND
(NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(base_element))));
WR2 : offset1 <> offset2;
END_ENTITY;
ENTITY thickness_laminate_definition
SUBTYPE OF (product_definition);
WHERE
WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_RELATIONSHIP.' +
'RELATING_PRODUCT_DEFINITION') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
TYPEOF (pdr))) = 1;
END_ENTITY;
ENTITY thickness_laminate_table
SUBTYPE OF (zone_structural_makeup);
END_ENTITY;
ENTITY time_interval;
id : identifier;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY time_interval_assignment
ABSTRACT SUPERTYPE;
assigned_time_interval : time_interval;
role : time_interval_role;
END_ENTITY;
ENTITY time_interval_based_effectivity
SUBTYPE OF (effectivity);
effectivity_period : time_interval;
END_ENTITY;
ENTITY time_interval_relationship;
name : label;
description : OPTIONAL text;
relating_time_interval : time_interval;
related_time_interval : time_interval;
END_ENTITY;
ENTITY time_interval_role;
name : label;
description : OPTIONAL text;
END_ENTITY;
ENTITY time_interval_with_bounds
SUBTYPE OF (time_interval);
primary_bound : OPTIONAL date_time_or_event_occurrence;
secondary_bound : OPTIONAL date_time_or_event_occurrence;
duration : OPTIONAL time_measure_with_unit;
WHERE
WR1 : NOT (EXISTS(secondary_bound) AND EXISTS(duration));
WR2 : EXISTS(primary_bound) OR EXISTS(secondary_bound);
END_ENTITY;
ENTITY time_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY time_unit
SUBTYPE OF (named_unit);
WHERE
WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 1.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
END_ENTITY;
ENTITY tolerance_value;
lower_bound : measure_with_unit;
upper_bound : measure_with_unit;
DERIVE
lbvc : REAL := lower_bound\measure_with_unit.value_component;
ubvc : REAL := upper_bound\measure_with_unit.value_component;
WHERE
WR1 : ubvc > lbvc;
WR2 : upper_bound\measure_with_unit.unit_component =
lower_bound\measure_with_unit.unit_component;
END_ENTITY;
ENTITY tolerance_zone
SUBTYPE OF (shape_aspect);
defining_tolerance : SET [1:?] OF geometric_tolerance;
form : tolerance_zone_form;
END_ENTITY;
ENTITY tolerance_zone_definition
SUPERTYPE OF (ONEOF (projected_zone_definition, runout_zone_definition));
zone : tolerance_zone;
boundaries : SET [1:?] OF shape_aspect;
END_ENTITY;
ENTITY tolerance_zone_form;
name : label;
END_ENTITY;
ENTITY topological_representation_item
SUPERTYPE OF (ONEOF (vertex, edge, face_bound, face, vertex_shell, wire_shell, connected_edge_set, connected_face_set, (loop ANDOR path)))
SUBTYPE OF (representation_item);
END_ENTITY;
ENTITY toroidal_surface
SUBTYPE OF (elementary_surface);
major_radius : positive_length_measure;
minor_radius : positive_length_measure;
END_ENTITY;
ENTITY torus
SUBTYPE OF (geometric_representation_item);
position : axis1_placement;
major_radius : positive_length_measure;
minor_radius : positive_length_measure;
WHERE
WR1 : major_radius > minor_radius;
END_ENTITY;
ENTITY total_runout_tolerance
SUBTYPE OF (geometric_tolerance_with_datum_reference);
WHERE
WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2;
END_ENTITY;
ENTITY track_blended_solid
ABSTRACT SUPERTYPE OF (track_blended_solid_with_end_conditions)
SUBTYPE OF (edge_blended_solid);
WHERE
WR1 : check_continuous_edges(SELF\edge_blended_solid.blended_edges);
END_ENTITY;
ENTITY track_blended_solid_with_end_conditions
SUBTYPE OF (track_blended_solid);
end_conditions : LIST [2:2] OF blend_end_condition_select;
WHERE
WR1 : SIZEOF(TYPEOF(SELF) *
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_CHAMFERED_EDGES']) = 1;
WR2 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1]))
AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2])));
WR3 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1]))
AND (NOT ((end_conditions[1]
:=: SELF\edge_blended_solid.blended_edges[1].edge_start)
XOR (end_conditions[1]
:=: SELF\edge_blended_solid.blended_edges[1].edge_end))));
WR4 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2]))
AND (NOT ((end_conditions[2]
:=: SELF\edge_blended_solid.blended_edges[HIINDEX(
SELF\edge_blended_solid.blended_edges)].edge_start)
XOR (end_conditions[2]
:=: SELF\edge_blended_solid.blended_edges[HIINDEX(
SELF\edge_blended_solid.blended_edges)].edge_end))));
END_ENTITY;
ENTITY transformation_with_derived_angle
SUPERTYPE OF (ONEOF (draped_defined_transformation, laid_defined_transformation))
SUBTYPE OF (item_defined_transformation);
SELF\item_defined_transformation.transform_item_1 : angle_direction_reference_with_a2p3d_select;
SELF\item_defined_transformation.transform_item_2 : axis2_placement_3d;
DERIVE
orientation_angle : plane_angle_measure := derive_angle (
SELF\item_defined_transformation.transform_item_1,
SELF\item_defined_transformation.transform_item_2);
WHERE
WR1 : (SELF\item_defined_transformation.transform_item_1\
axis2_placement_3d.p[3].direction_ratios[1] =
SELF\item_defined_transformation.transform_item_2\
axis2_placement_3d.p[3].direction_ratios[1])
AND
(SELF\item_defined_transformation.transform_item_1\
axis2_placement_3d.p[3].direction_ratios[2] =
SELF\item_defined_transformation.transform_item_2\
axis2_placement_3d.p[3].direction_ratios[2])
AND
(SELF\item_defined_transformation.transform_item_1\
axis2_placement_3d.p[3].direction_ratios[3] =
SELF\item_defined_transformation.transform_item_2\
axis2_placement_3d.p[3].direction_ratios[3]);
END_ENTITY;
ENTITY trimmed_curve
SUBTYPE OF (bounded_curve);
basis_curve : curve;
trim_1 : SET [1:2] OF trimming_select;
trim_2 : SET [1:2] OF trimming_select;
sense_agreement : BOOLEAN;
master_representation : trimming_preference;
WHERE
WR1 : (HIINDEX(trim_1) = 1) OR (TYPEOF(trim_1[1]) <> TYPEOF(trim_1[2]));
WR2 : (HIINDEX(trim_2) = 1) OR (TYPEOF(trim_2[1]) <> TYPEOF(trim_2[2]));
END_ENTITY;
ENTITY two_direction_repeat_factor
SUBTYPE OF (one_direction_repeat_factor);
second_repeat_factor : vector;
END_ENTITY;
ENTITY type_qualifier;
name : label;
END_ENTITY;
ENTITY unary_generic_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (generic_expression);
operand : generic_expression;
END_ENTITY;
ENTITY unary_numeric_expression
ABSTRACT SUPERTYPE
SUBTYPE OF (numeric_expression, unary_generic_expression);
SELF\unary_generic_expression.operand : numeric_expression;
END_ENTITY;
ENTITY uncertainty_assigned_representation
SUBTYPE OF (representation);
uncertainty : SET [1:?] OF uncertainty_measure_with_unit;
END_ENTITY;
ENTITY uncertainty_measure_with_unit
SUBTYPE OF (measure_with_unit);
name : label;
description : OPTIONAL text;
WHERE
WR1 : valid_measure_value (SELF\measure_with_unit.value_component);
END_ENTITY;
ENTITY uncertainty_qualifier
SUPERTYPE OF (ONEOF (standard_uncertainty, qualitative_uncertainty));
measure_name : label;
description : text;
END_ENTITY;
ENTITY uniform_curve
SUBTYPE OF (b_spline_curve);
END_ENTITY;
ENTITY uniform_resource_identifier
SUBTYPE OF (descriptive_representation_item);
END_ENTITY;
ENTITY uniform_surface
SUBTYPE OF (b_spline_surface);
END_ENTITY;
ENTITY usage_association
SUBTYPE OF (action_method_relationship);
SELF\action_method_relationship.related_method : information_usage_right;
SELF\action_method_relationship.relating_method : information_usage_right;
DERIVE
related : information_usage_right := SELF\action_method_relationship.related_method;
relating : information_usage_right := SELF\action_method_relationship.relating_method;
END_ENTITY;
ENTITY user_defined_curve_font
SUBTYPE OF (curve_style_font, mapped_item);
END_ENTITY;
ENTITY user_defined_marker
SUBTYPE OF (mapped_item, pre_defined_marker);
END_ENTITY;
ENTITY user_defined_terminator_symbol
SUBTYPE OF (mapped_item, pre_defined_symbol);
END_ENTITY;
ENTITY user_selected_elements
SUBTYPE OF (representation_item);
picked_items : SET [1:?] OF representation_item;
END_ENTITY;
ENTITY user_selected_shape_elements
SUBTYPE OF (user_selected_elements);
WHERE
WR1 : SIZEOF(QUERY(q <*
SELF\user_selected_elements.picked_items | NOT
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM'
IN TYPEOF(q)))) = 0;
END_ENTITY;
ENTITY value_range
SUBTYPE OF (compound_representation_item);
WHERE
WR1 : ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SET_REPRESENTATION_ITEM' IN TYPEOF ( item_element ) ) AND value_range_wr1 ( item_element );
WR2 : value_range_wr2 ( item_element );
WR3 : value_range_wr3 ( item_element );
END_ENTITY;
ENTITY value_representation_item
SUBTYPE OF (representation_item);
value_component : measure_value;
WHERE
WR1 : SIZEOF (QUERY (rep <* using_representations (SELF) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT'
IN TYPEOF (rep.context_of_items)
))) = 0;
END_ENTITY;
ENTITY variable_semantics
ABSTRACT SUPERTYPE;
END_ENTITY;
ENTITY variational_representation_item
ABSTRACT SUPERTYPE OF (auxiliary_geometric_representation_item)
SUBTYPE OF (representation_item);
WHERE
WR1 : SIZEOF(QUERY(q <* using_representations(SELF) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VARIATIONAL_REPRESENTATION'
IN TYPEOF(q)))) = 0;
WR2 : SIZEOF(QUERY(q <* using_representations(SELF) |
NOT (SELF IN q.items))) = 0;
END_ENTITY;
ENTITY vector
SUBTYPE OF (geometric_representation_item);
orientation : direction;
magnitude : length_measure;
WHERE
WR1 : magnitude >= 0.0;
END_ENTITY;
ENTITY vector_style
SUBTYPE OF (curve_style, pre_defined_terminator_symbol);
END_ENTITY;
ENTITY velocity_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VELOCITY_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY velocity_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) =
dimensional_exponents ( 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 );
END_ENTITY;
ENTITY versioned_action_request;
id : identifier;
version : label;
purpose : text;
description : OPTIONAL text;
END_ENTITY;
ENTITY vertex
SUBTYPE OF (topological_representation_item);
END_ENTITY;
ENTITY vertex_loop
SUBTYPE OF (loop);
loop_vertex : vertex;
END_ENTITY;
ENTITY vertex_point
SUBTYPE OF (vertex, geometric_representation_item);
vertex_geometry : point;
END_ENTITY;
ENTITY vertex_shell
SUBTYPE OF (topological_representation_item);
vertex_shell_extent : vertex_loop;
END_ENTITY;
ENTITY view_volume
SUBTYPE OF (founded_item);
projection_type : central_or_parallel;
projection_point : cartesian_point;
view_plane_distance : length_measure;
front_plane_distance : length_measure;
front_plane_clipping : BOOLEAN;
back_plane_distance : length_measure;
back_plane_clipping : BOOLEAN;
view_volume_sides_clipping : BOOLEAN;
view_window : planar_box;
END_ENTITY;
ENTITY visual_appearance_representation
SUBTYPE OF (representation);
WHERE
WR1 : ( {3<= SIZEOF ( SELF.items ) <=9} ) AND ( SIZEOF ( QUERY (
i <* items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND (
i.name IN [ 'colour id' , 'colour name' , 'lustre' , 'pattern' , 'transparency', 'orientation'] ) )
) + SIZEOF ( QUERY ( i <* items | ( SIZEOF (
['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 )
AND ( i.name IN ['refraction index' , 'opacity'] ) )
) + SIZEOF ( QUERY ( i <* items | (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DOCUMENT_FILE' IN TYPEOF ( i ) )
AND ( i.name IN [ 'texture map' ] ) ) )
= SIZEOF ( SELF.items ) );
WR2 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'colour id' )) =1;
WR3 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='lustre' ) )=1;
WR4 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'colour name') ) <=1;
WR5 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='pattern' ) )<=1;
WR6 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='transparency') ) <=1;
WR7 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'texture map') ) <=1;
WR8 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='refraction index' ) )<=1;
WR9 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='opacity') ) <=1;
WR10 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='orientation') ) <=1;
WR11 : ( SIZEOF ( USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
<* USEDIN ( SELF ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
pdr. definition ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
( gpa. base_definition.name ='surface_condition' ) ) ) =1 )) =1 );
END_ENTITY;
ENTITY volume_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
END_ENTITY;
ENTITY volume_unit
SUBTYPE OF (derived_unit);
WHERE
WR1 : derive_dimensional_exponents(SELF) =
dimensional_exponents ( 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
END_ENTITY;
ENTITY week_of_year_and_day_date
SUBTYPE OF (date);
week_component : week_in_year_number;
day_component : OPTIONAL day_in_week_number;
END_ENTITY;
ENTITY wire_shell
SUBTYPE OF (topological_representation_item);
wire_shell_extent : SET [1:?] OF loop;
WHERE
WR1 : NOT mixed_loop_type_set(wire_shell_extent);
END_ENTITY;
ENTITY year_month
SUBTYPE OF (date);
month_component : month_in_year_number;
END_ENTITY;
ENTITY zone_structural_makeup
SUPERTYPE OF (ONEOF ((smeared_material_definition AND thickness_laminate_table), (smeared_material_definition AND percentage_laminate_table), thickness_laminate_table, percentage_laminate_table, smeared_material_definition))
SUBTYPE OF (laminate_table);
END_ENTITY;
RULE alternative_solution_requires_solution_definition FOR (product_definition_formation);
LOCAL
solution_versions: SET OF product_definition_formation := [];
END_LOCAL;
solution_versions := QUERY( pdf <* product_definition_formation |
SIZEOF( QUERY( prpc <* USEDIN(pdf.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') |
prpc.name = 'alternative solution')) = 1);
WHERE
WR1 : SIZEOF( QUERY( pdf <* solution_versions |
SIZEOF( QUERY( pd <* USEDIN(pdf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION.FORMATION') |
pd.frame_of_reference.name = 'alternative definition')) <> 1))= 0;
END_RULE;
RULE application_protocol_definition_required FOR (application_context);
WHERE
WR1 : SIZEOF( QUERY( ac <* application_context |
(SIZEOF (QUERY (apd <* USEDIN(ac,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') |
apd.application_interpreted_model_schema_name = 'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies'
)) > 0)
)) > 0;
END_RULE;
RULE breakdown_element_requires_product_definition FOR (product_definition_formation);
WHERE
WR1 : SIZEOF ( QUERY ( pdf <* product_definition_formation |
( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
prpc.name = 'functionality' ) ) = 1 ) AND
( SIZEOF ( QUERY ( pd <* USEDIN ( pdf ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION') |
pd.frame_of_reference.name = 'functional definition' ) ) <1 ) ) ) = 0;
WR2 : SIZEOF ( QUERY ( pdf <* product_definition_formation |
( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
prpc.name = 'conceptual design' ) ) = 1 ) AND
( SIZEOF (QUERY ( pd <* USEDIN ( pdf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) |
pd.frame_of_reference.name = 'conceptual definition' ) ) <1) ) ) = 0;
END_RULE;
RULE compatible_dimension FOR (cartesian_point, direction, representation_context, geometric_representation_context);
WHERE
WR1 : SIZEOF(QUERY(x <* cartesian_point| SIZEOF(QUERY
(y <* geometric_representation_context | item_in_context(x,y) AND
(HIINDEX(x.coordinates) <> y.coordinate_space_dimension))) > 0 )) =0;
WR2 : SIZEOF(QUERY(x <* direction | SIZEOF( QUERY
(y <* geometric_representation_context | item_in_context(x,y) AND
(HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension)))
> 0 )) = 0;
END_RULE;
RULE component_class_for_assembly_select FOR (composite_assembly_sequence_definition, next_assembly_usage_occurrence, product_related_product_category);
LOCAL
i,j,k : INTEGER :=0;
dkuhr : LOGICAL :=TRUE;
nnauo : INTEGER :=0;
nprpc : INTEGER :=0;
rp : product;
END_LOCAL;
REPEAT i:= LOINDEX (composite_assembly_sequence_definition) TO
HIINDEX (composite_assembly_sequence_definition);
nnauo := 0;
REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO
HIINDEX (next_assembly_usage_occurrence);
IF (composite_assembly_sequence_definition[i] =
next_assembly_usage_occurrence[j].relating_product_definition) THEN
rp := next_assembly_usage_occurrence[j].related_product_definition.
formation.of_product;
nprpc := 0;
REPEAT k:= LOINDEX (product_related_product_category) TO
HIINDEX (product_related_product_category);
IF ((rp IN product_related_product_category[k].products) AND
(product_related_product_category[k].name IN ['ply',
'ply laminate', 'filament laminate', 'processed core',
'composite assembly'])) THEN
nprpc := nprpc + 1;
END_IF;
END_REPEAT;
IF (nprpc = 1) THEN
nnauo := nnauo + 1;
ELSE
dkuhr := FALSE;
ESCAPE;
END_IF;
END_IF;
END_REPEAT;
IF (dkuhr = FALSE) THEN
ESCAPE;
END_IF;
IF(nnauo = 0) THEN
dkuhr := FALSE;
ESCAPE;
END_IF;
END_REPEAT;
WHERE
WR1 : dkuhr;
END_RULE;
RULE consistent_uncertainty FOR (global_uncertainty_assigned_context, qualified_representation_item, uncertainty_assigned_representation);
WHERE
WR1 : SIZEOF ( QUERY ( guac <* global_uncertainty_assigned_context |
SIZEOF ( QUERY ( u1 <* guac.uncertainty |
SIZEOF ( QUERY ( u2 <* guac.uncertainty | u2.name = u1.name ) ) >1 ) ) >0 ) ) = 0;
WR2 : SIZEOF ( QUERY ( uar <* uncertainty_assigned_representation |
SIZEOF ( QUERY ( u1<* uar.uncertainty |
SIZEOF ( QUERY ( u2 <* uar.uncertainty | u2.name = u1.name ) ) >1 ) ) >0 ) ) = 0;
WR3 : SIZEOF ( QUERY ( qri <* qualified_representation_item |
SIZEOF ( QUERY ( u1 <* qri.qualifiers |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.UNCERTAINTY_QUALIFIER' IN TYPEOF ( u1 ) ) AND
( SIZEOF ( QUERY ( u2 <* qri.qualifiers |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.UNCERTAINTY_QUALIFIER' IN TYPEOF ( u2 ) ) AND
( u2\uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name ) )
) >1 ) ) ) >0 ) ) = 0;
END_RULE;
RULE constraint_definition_requires_constraint_category FOR (product_definition);
LOCAL
constraint_definitions: SET OF product_definition := [];
END_LOCAL;
constraint_definitions := QUERY( pd <* product_definition |
(pd.frame_of_reference.name = 'design constraint definition'));
WHERE
WR1 : SIZEOF ( QUERY ( pd <* constraint_definitions |
( SIZEOF ( QUERY ( prpc <* USEDIN ( pd.formation.of_product ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
prpc. name ='requirement' ) ) =0 ) ) ) =0;
END_RULE;
RULE design_constraint_requires_product_definition FOR (product_definition_formation);
WHERE
WR1 : SIZEOF ( QUERY ( pdf <* product_definition_formation | (
SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
prpc.name = 'requirement' ) ) >0 ) AND
( SIZEOF ( QUERY ( pd <* USEDIN ( pdf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION') |
pd.frame_of_reference.name = 'design constraint definition' ) ) <1 ) ) ) = 0;
END_RULE;
RULE draughting_model_items_constraint FOR (draughting_model);
WHERE
WR1 : SIZEOF(QUERY(dm <* draughting_model |
NOT(SIZEOF(QUERY(it1 <* dm\representation.items |
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF(it1))
AND
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' IN TYPEOF(it1)))
)) = 0)
)) = 0;
WR2 : SIZEOF(QUERY(dm <* draughting_model |
NOT(SIZEOF(QUERY(it1 <* dm\representation.items |
(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(it1))
AND
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF(it1)))
)) = 0)
)) = 0;
END_RULE;
RULE external_version_assignments_are_valid FOR (applied_external_identification_assignment);
WHERE
WR1 : SIZEOF(QUERY(aia <* applied_external_identification_assignment |
NOT external_version_assignment_is_valid(aia)))=0;
END_RULE;
RULE material_for_coating_layer FOR (shape_aspect);
LOCAL
coating_layers: SET OF shape_aspect := [];
END_LOCAL;
coating_layers:= QUERY( r <* shape_aspect |
(r.name = 'coating layer') );
WHERE
WR1 : SIZEOF( QUERY( r <* coating_layers |
SIZEOF(USEDIN(r , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS'))<>1
)) = 0;
END_RULE;
RULE plib_property_reference_requires_name_scope FOR (externally_defined_general_property);
LOCAL
known_sourced_properties : SET OF externally_defined_general_property;
END_LOCAL;
known_sourced_properties := QUERY( edc <* externally_defined_general_property |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source) );
WHERE
WR1 : SIZEOF ( QUERY ( edgp <* known_sourced_properties |
( SIZEOF ( QUERY ( edir <* USEDIN ( edgp, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' )|
( edir.name = 'name scope' ) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_DEFINED_CLASS' IN TYPEOF ( edir.related_item ) ) AND
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF ( edir.related_item.source ) ) ) ) <>1 ) ) ) = 0;
END_RULE;
RULE plib_property_reference_requires_version FOR (externally_defined_general_property);
LOCAL
plib_properties : SET OF externally_defined_general_property := [];
END_LOCAL;
plib_properties := QUERY ( edgp <* externally_defined_general_property |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF ( edgp.source ) ) AND
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' + '.NAME' = 'ISO 13584 library' ) );
WHERE
WR1 : SIZEOF( QUERY( edgp <* plib_properties |
(SIZEOF( QUERY( edir <* USEDIN(edgp, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') |
(edir.role.name = 'version') )) <> 1) )) = 0;
END_RULE;
RULE ply_reference FOR (ply_laminate_sequence_definition, next_assembly_usage_occurrence, product_related_product_category);
LOCAL
i,j,k : INTEGER;
dkuhr : LOGICAL := TRUE;
nnauo : INTEGER;
nprpc : INTEGER := 0;
rp : product;
END_LOCAL;
REPEAT i:= LOINDEX (ply_laminate_sequence_definition) TO
HIINDEX (ply_laminate_sequence_definition);
nnauo := 0;
REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO
HIINDEX (next_assembly_usage_occurrence);
IF (ply_laminate_sequence_definition[i] =
next_assembly_usage_occurrence[j].relating_product_definition) THEN
rp := next_assembly_usage_occurrence[j].related_product_definition.
formation.of_product;
nprpc := 0;
REPEAT k:= LOINDEX (product_related_product_category) TO
HIINDEX (product_related_product_category);
IF ((product_related_product_category[k].name = 'ply') AND
(rp IN product_related_product_category[k].products)) THEN
nprpc := nprpc + 1;
END_IF;
END_REPEAT;
IF (nprpc = 1) THEN
nnauo := nnauo + 1;
ELSE
dkuhr := FALSE;
ESCAPE;
END_IF;
END_IF;
END_REPEAT;
IF (dkuhr = FALSE) THEN
ESCAPE;
END_IF;
IF(nnauo = 0) THEN
dkuhr := FALSE;
ESCAPE;
END_IF;
END_REPEAT;
WHERE
WR1 : dkuhr;
END_RULE;
RULE ply_stock_material_select FOR (product_related_product_category, make_from_usage_option);
LOCAL
i,j,k,kp : INTEGER;
dkuhr : LOGICAL;
nmfuo : INTEGER;
nprpc : INTEGER := 0;
rp : product;
END_LOCAL;
dkuhr := TRUE;
REPEAT kp:= LOINDEX (product_related_product_category) TO
HIINDEX (product_related_product_category);
IF (product_related_product_category[kp].name = 'ply') THEN
REPEAT i:= LOINDEX (product_related_product_category[kp].products) TO
HIINDEX (product_related_product_category[kp].products);
nmfuo := 0;
REPEAT j:= LOINDEX (make_from_usage_option) TO
HIINDEX (make_from_usage_option);
rp := make_from_usage_option[j].related_product_definition.
formation.of_product;
IF (product_related_product_category[kp].products[i] = rp) THEN
REPEAT k:= LOINDEX (product_related_product_category) TO
HIINDEX (product_related_product_category);
IF ((rp IN product_related_product_category[k].products) AND
(product_related_product_category[k].name IN
['isotropic material', 'filament assembly',
'discontinuous fiber assembly'])) THEN
nprpc := nprpc + 1;
END_IF;
END_REPEAT;
IF (nprpc = 1) THEN
nmfuo := nmfuo + 1;
ELSE
dkuhr := FALSE;
ESCAPE;
END_IF;
END_IF;
END_REPEAT;
IF (dkuhr = FALSE) THEN
ESCAPE;
END_IF;
IF(nmfuo <> 1) THEN
dkuhr := FALSE;
ESCAPE;
END_IF;
END_REPEAT;
END_IF;
END_REPEAT;
WHERE
WR1 : dkuhr;
END_RULE;
RULE product_concept_feature_requires_category FOR (product_concept_feature);
WHERE
WR1 : SIZEOF ( QUERY ( pcf <* product_concept_feature |
(SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF(pcf)) = 0) AND
(SIZEOF ( QUERY ( aga <* USEDIN ( pcf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) |
( aga.role.name = 'specification category member' ) AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF ( aga.assigned_group )))) <>1 ) ) ) = 0;
END_RULE;
RULE product_definition_replacement_requires_effectivity_assignment FOR (product_definition_relationship);
WHERE
WR1 : SIZEOF( QUERY( pdr <* product_definition_relationship |
(pdr.name = 'definition replacement') AND
(SIZEOF( USEDIN(pdr,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS') ) = 0) ))
= 0;
END_RULE;
RULE restrict_alternative_definition FOR (product_definition);
LOCAL
solution_definitions: SET OF product_definition := [];
END_LOCAL;
solution_definitions := QUERY( pd <* product_definition |
(pd.frame_of_reference.name = 'alternative definition'));
WHERE
WR1 : SIZEOF ( QUERY ( pd <* solution_definitions |
( SIZEOF ( QUERY ( pdr <* USEDIN ( pd ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) |
pdr.name = 'solution alternative definition' ) ) <>1 ) ) ) = 0;
WR2 : SIZEOF ( QUERY ( pd <* solution_definitions |
NOT ( pd.name IN ['technical' , 'supplier' , 'technical supplier' , ''] ) ) ) = 0;
WR3 : SIZEOF ( QUERY ( pd <* solution_definitions |
( pd.name IN ['supplier' , 'technical supplier'] ) AND (
SIZEOF ( QUERY ( aoa <* USEDIN ( pd.formation ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS' ) |
aoa.role.name = 'supplier' )) <>1 ) )) = 0;
END_RULE;
RULE restrict_assembly_category FOR (product_definition);
LOCAL
assembly_definitions: SET OF product_definition := [];
END_LOCAL;
assembly_definitions := QUERY( pd <* product_definition |
SIZEOF( QUERY( pdca <* USEDIN( pd, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') |
pdca.frame_of_reference.name= 'assembly definition')) > 0 );
WHERE
WR1 : SIZEOF( QUERY( pd <* assembly_definitions |
NOT ('assembly' IN categories_of_product(pd.formation.of_product)) ))= 0;
END_RULE;
RULE restrict_centre_of_mass_representation FOR (representation);
WHERE
WR1 : SIZEOF ( QUERY ( r <* representation |
( r.name ='centre of mass' ) AND
( ( SIZEOF ( r.items ) <>1 ) OR
(SIZEOF ( QUERY ( i <* r.items |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POINT' IN TYPEOF ( i ) ) AND
( i.name = 'centre point' ) )) <>1 ) ) ) )
=0;
END_RULE;
RULE restrict_classification_assignments FOR (applied_classification_assignment);
WHERE
WR1 : SIZEOF(QUERY(aia <* applied_classification_assignment |
NOT class_assignment_is_valid(aia)))=0;
END_RULE;
RULE restrict_collection_category FOR (product_definition);
LOCAL
collection_definitions: SET OF product_definition := [];
END_LOCAL;
collection_definitions := QUERY( pd <* product_definition |
SIZEOF( QUERY( pdca <* USEDIN( pd, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') |
pdca.frame_of_reference.name= 'collection definition')) > 0 );
WHERE
WR1 : SIZEOF( QUERY( pd <* collection_definitions |
NOT ('collection' IN categories_of_product(pd.formation.of_product)) ))= 0;
END_RULE;
RULE restrict_concept_feature_operator FOR (concept_feature_operator);
WHERE
WR1 : SIZEOF ( QUERY ( cfo <* concept_feature_operator | NOT
( cfo.name IN ['and' , 'or' , 'oneof' , 'not' , 'implication'] ) ) ) = 0;
WR2 : SIZEOF ( QUERY ( cfo <* concept_feature_operator | (cfo.name = 'implication' ) AND
( SIZEOF ( QUERY (cfrwc <* USEDIN ( cfo , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' +
'CONDITIONAL_OPERATOR' ) |
SIZEOF ( QUERY ( ccf <* USEDIN( cfrwc , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ccf )))) >0 )) >0 ))) = 0;
WR3 : SIZEOF( QUERY (cfo <* concept_feature_operator | (cfo.name = 'not')
AND (SIZEOF(QUERY(cfrwc <* USEDIN(cfo, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') |
cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature)) >0 ))) = 0;
END_RULE;
RULE restrict_configuration_design_for_class_breakdown_association FOR (configuration_design);
WHERE
WR1 : SIZEOF ( QUERY ( cd <* configuration_design |
( cd.name ='functionality' ) AND
( NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd. design ) ) OR
( cd.design\product_definition.frame_of_reference.name<> 'functional definition' ) )
) ) =0;
WR2 : SIZEOF ( QUERY ( cd <* configuration_design |
( cd.name='realization' ) AND
( NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR
( cd.design\product_definition.frame_of_reference.name<> 'conceptual definition' ) )
) ) =0;
WR3 : SIZEOF ( QUERY ( cd <* configuration_design |
( cd.name IN ['functionality' , 'realization'] ) AND
( NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CLASS' IN TYPEOF ( cd.configuration.item_concept ) ) )
) ) =0;
END_RULE;
RULE restrict_configuration_design_for_design_constraint FOR (configuration_design);
WHERE
WR1 : SIZEOF ( QUERY (cd <* configuration_design |
(cd.name = 'design constraint usage') AND
(NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR
(cd.design\product_definition.frame_of_reference.name <> 'design constraint definition')))) = 0;
END_RULE;
RULE restrict_group_relationship_for_classification_hierarchy FOR (group_relationship);
WHERE
WR1 : SIZEOF( QUERY( gr <* group_relationship |
(gr\group_relationship.name = 'class hierarchy') AND
(NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.related_group)) OR
NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.relating_group))) )) = 0;
END_RULE;
RULE restrict_group_relationship_for_specification_category FOR (group_relationship);
WHERE
WR1 : SIZEOF( QUERY( gr <* group_relationship |
(gr.name = 'specification category hierarchy') AND
(NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group))
OR NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.relating_group))) )) = 0;
END_RULE;
RULE restrict_language_assignment_per_attribute FOR (attribute_language_assignment);
WHERE
WR1 : SIZEOF ( QUERY ( ala1 <* attribute_language_assignment |
SIZEOF(QUERY( it <* ala1.items |
SIZEOF ( QUERY ( ala2 <* USEDIN ( it ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS' ) |
( ala1\attribute_classification_assignment.attribute_name = ala2\attribute_classification_assignment.attribute_name ) AND
( ala1\attribute_classification_assignment.assigned_class :=: ala2\attribute_classification_assignment.assigned_class )
)) >1
)) >0
)) =0;
END_RULE;
RULE restrict_part_occurrence FOR (product_definition);
LOCAL
part_occurrences: SET OF product_definition := QUERY(pd <* product_definition |
( pd.frame_of_reference.name = 'part occurrence' ));
END_LOCAL;
WHERE
WR1 : SIZEOF ( QUERY ( pd <* part_occurrences |
( NOT( pd.name IN
['single instance' , 'selected instance' ,'quantified instance' , 'specified instance' ] ) ) ) ) = 0;
WR2 : SIZEOF ( QUERY ( pd <* part_occurrences |
(SIZEOF ( QUERY ( pdr <* USEDIN ( pd ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) |
pdr.name = 'definition usage' ) ) <>1 ) AND
( SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) |
( cd.name = 'occurrence usage definition' ) AND
( NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF( cd.configuration ) ) ) ) ) <>1 ) ) ) = 0;
WR3 : SIZEOF ( QUERY ( pd <* part_occurrences |
(SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PRODUCT_DEFINITION_USAGE' IN TYPEOF ( cd ) ) ) ) = 0 )AND
( SIZEOF ( USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) ) = 0 ) ) ) = 0;
WR4 : SIZEOF ( QUERY ( pd <* part_occurrences |
( pd.name = 'selected instance' ) AND
NOT valid_selected_instance_representation(pd) ))=0;
WR5 : SIZEOF ( QUERY ( pd <* part_occurrences |
( pd.name = 'quantified instance' ) AND
( SIZEOF ( QUERY (ppd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PROPERTY_DEFINITION.DEFINITION' ) |
( ppd.name ='occurrence quantity' ) AND
( SIZEOF ( QUERY ( pdr <*USEDIN ( ppd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | (
pdr.used_representation.name = 'quantity' ) AND
(SIZEOF ( pdr.used_representation.items ) = 1 ) AND
(SIZEOF ( QUERY ( i <* pdr.used_representation.items |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND
( i.name = 'quantity measure' ) ) ) = 1)))= 1 )))= 0 )))= 0;
WR6 : SIZEOF ( QUERY ( pd <* part_occurrences |
( pd.name = 'specified instance' ) AND
( SIZEOF ( QUERY (
pdor <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN TYPEOF ( pdor.occurrence_usage ) ) ) = 0 ) ) ) = 0;
END_RULE;
RULE restrict_part_occurrence_category FOR (product_definition);
LOCAL
part_occurrences: SET OF product_definition := QUERY( pd <* product_definition |(
pd.frame_of_reference.name = 'part occurrence'));
END_LOCAL;
WHERE
WR1 : SIZEOF( QUERY( pd <* part_occurrences |
(SIZEOF( QUERY( prpc <* USEDIN(pd.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') |
prpc.name IN ['part','raw material','tool'] )) = 0 ) )) = 0;
END_RULE;
RULE restrict_product_definitions_for_base_element FOR (product_definition_relationship);
WHERE
WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
( pdr. name = 'solution alternative definition' ) AND
( NOT( pdr. relating_product_definition.frame_of_reference.name
IN [ 'alternative definition' , 'functional definition' , 'conceptual definition' ] ) OR
( pdr.related_product_definition.frame_of_reference.name<>'alternative definition' ) ) ) ) =0;
END_RULE;
RULE restrict_product_definitions_for_collection FOR (product_definition_relationship);
WHERE
WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
( pdr. name = 'collection membership' ) AND
( ( pdr.relating_product_definition.frame_of_reference.name<>'part definition' ) OR
( pdr.related_product_definition.frame_of_reference.name<>'part occurrence' ) OR
( SIZEOF ( QUERY ( pdca <* USEDIN (pdr.relating_product_definition ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') |
( pdca.role.name = 'part definition type' ) AND
( pdca.frame_of_reference.name = 'collection definition' ) )) =0 ) ) ) ) =0;
END_RULE;
RULE restrict_product_definitions_for_definition_usage FOR (product_definition_relationship);
WHERE
WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
( pdr.name = 'definition usage' ) AND
( ( pdr.relating_product_definition.frame_of_reference.name<> 'part definition' ) OR
( pdr.related_product_definition.frame_of_reference.name<>'part occurrence' )))) =0;
END_RULE;
RULE restrict_product_definitions_for_design_constraint_association FOR (product_definition_relationship);
WHERE
WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
( pdr. name = 'design constraint association' ) AND
( (pdr. relating_product_definition.frame_of_reference.name<>'design constraint definition' ) OR
NOT ( pdr.related_product_definition.frame_of_reference.name IN
['alternative definition' , 'functional definition' ,'conceptual definition' ] ) ) ) ) =0;
END_RULE;
RULE restrict_product_definitions_for_part_definition_relationship FOR (product_definition_relationship);
WHERE
WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
( pdr.name IN [ 'geometrical relationship' , 'definition replacement' ] ) AND
( ( pdr.relating_product_definition.frame_of_reference.name <>'part definition' ) OR
( pdr.related_product_definition.frame_of_reference.name <>'part definition' ) ) ) ) =0;
END_RULE;
RULE restrict_representation_for_surface_condition FOR (property_definition_representation);
WHERE
WR1 : SIZEOF(QUERY(pdr <* property_definition_representation |
NOT surface_condition_correlation(pdr.definition, pdr.used_representation) ))=0;
END_RULE;
RULE restrict_treatment_result FOR (representation);
LOCAL
treatment_results: SET OF representation := [];
END_LOCAL;
treatment_results:= QUERY( r <* representation |
(r.name = 'treatment result') );
WHERE
WR1 : (SIZEOF( QUERY( r <* treatment_results | (SIZEOF(r.items) > 2) )) = 0) AND
(SIZEOF( QUERY( r <* treatment_results |
(SIZEOF( QUERY( i <* r.items |
NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) > 0) )) = 0);
WR2 : SIZEOF( QUERY( r <* treatment_results |
(SIZEOF( QUERY( i <* r.items | i.name = 'result' )) = 0) )) = 0;
WR3 : SIZEOF( QUERY( r <* treatment_results |
(SIZEOF( QUERY( i <* r.items | i.name = 'purpose' )) > 1) )) = 0;
END_RULE;
RULE selected_instance_usage_requires_representation FOR (assembly_component_usage);
LOCAL
selected_instance_usages: SET OF assembly_component_usage := QUERY( acr <* assembly_component_usage|
(acr.name = 'selected instance usage'));
END_LOCAL;
WHERE
WR1 : SIZEOF ( QUERY ( acr <* selected_instance_usages |
NOT valid_selected_instance_representation(acr) ))=0;
END_RULE;
RULE solution_definition_requires_solution_category FOR (product_definition);
LOCAL
solution_definitions: SET OF product_definition := [];
END_LOCAL;
solution_definitions := QUERY( pd <* product_definition |
(pd.frame_of_reference.name = 'alternative definition'));
WHERE
WR1 : SIZEOF( QUERY( pd <* solution_definitions |
(SIZEOF( QUERY( prpc <* USEDIN(pd.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') |
prpc.name = 'alternative solution')) = 0 ) )) = 0;
END_RULE;
RULE stock_material_reference FOR (percentage_ply_definition, make_from_usage_option, product_related_product_category);
LOCAL
i,j,k : INTEGER;
dkuhr : LOGICAL;
nmfuo : INTEGER;
nprpc : INTEGER;
rp : product;
END_LOCAL;
dkuhr := TRUE;
REPEAT i:= LOINDEX (percentage_ply_definition) TO
HIINDEX (percentage_ply_definition);
nmfuo := 0;
REPEAT j:= LOINDEX (make_from_usage_option) TO
HIINDEX (make_from_usage_option);
IF (percentage_ply_definition[i] =
make_from_usage_option[j].relating_product_definition) THEN
rp := make_from_usage_option[j].related_product_definition.
formation.of_product;
nprpc := 0;
REPEAT k:= LOINDEX (product_related_product_category) TO
HIINDEX (product_related_product_category);
IF ((rp IN product_related_product_category[k].products) AND
(product_related_product_category[k].name IN
['anisotropic material', 'isotropic material', 'stock core',
'filament assembly', 'discontinuous fiber assembly'])) THEN
nprpc := nprpc + 1;
END_IF;
END_REPEAT;
IF (nprpc = 1) THEN
nmfuo := nmfuo + 1;
ELSE
dkuhr := FALSE;
ESCAPE;
END_IF;
END_IF;
END_REPEAT;
IF (dkuhr = FALSE) THEN
ESCAPE;
END_IF;
IF(nmfuo = 0) THEN
dkuhr := FALSE;
ESCAPE;
END_IF;
END_REPEAT;
WHERE
WR1 : dkuhr;
END_RULE;
RULE styled_curve FOR (styled_item);
WHERE
WR1 : SIZEOF( QUERY( si <* styled_item | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (si.item)) AND (SIZEOF (QUERY (psa <* si.styles | (SIZEOF (QUERY (cs <* psa.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (cs)) )) > 0) )) <> 1) )) = 0;
END_RULE;
RULE subtype_exclusiveness_geometric_tolerance FOR (geometric_tolerance);
WHERE
WR1 : SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COAXIALITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FLATNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARALLELISM_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITION_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROUNDNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOTAL_RUNOUT_TOLERANCE'] , 3)))) = 0;
END_RULE;
RULE subtype_exclusiveness_representation_item FOR (representation_item);
WHERE
WR1 : SIZEOF(QUERY (cri <* representation_item |
NOT (type_check_function(cri,['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_REPRESENTATION_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOUND_REPRESENTATION_ITEM'] , 3)))) = 0;
END_RULE;
RULE subtype_mandatory_geometric_tolerance FOR (geometric_tolerance);
WHERE
WR1 : SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COAXIALITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FLATNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARALLELISM_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITION_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROUNDNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOTAL_RUNOUT_TOLERANCE'] , 0)))) = 0;
END_RULE;
RULE text_font_usage FOR (externally_defined_text_font, pre_defined_text_font);
WHERE
WR1 : SIZEOF (QUERY (pdtf <* pre_defined_text_font | SIZEOF (USEDIN (pdtf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0;
WR2 : SIZEOF (QUERY (edtf <* externally_defined_text_font | SIZEOF (USEDIN (edtf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0;
END_RULE;
RULE thickness_laminate_table_component_select FOR (thickness_laminate_definition, next_assembly_usage_occurrence, product_related_product_category);
LOCAL
i,j,k : INTEGER;
dkuhr : LOGICAL;
nnauo : INTEGER;
nprpc : INTEGER;
rp : product;
END_LOCAL;
dkuhr := TRUE;
REPEAT i:= LOINDEX (thickness_laminate_definition) TO
HIINDEX (thickness_laminate_definition);
nnauo := 0;
REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO
HIINDEX (next_assembly_usage_occurrence);
IF (thickness_laminate_definition[i] =
next_assembly_usage_occurrence[j].relating_product_definition) THEN
rp := next_assembly_usage_occurrence[j].related_product_definition.
formation.of_product;
nprpc := 0;
REPEAT k:= LOINDEX (product_related_product_category) TO
HIINDEX (product_related_product_category);
IF ((rp IN product_related_product_category[k].products) AND
(product_related_product_category[k].name IN
['ply', 'filament laminate', 'processed core'])) THEN
nprpc := nprpc + 1;
END_IF;
END_REPEAT;
IF (nprpc = 1) THEN
nnauo := nnauo + 1;
ELSE
dkuhr := FALSE;
ESCAPE;
END_IF;
END_IF;
END_REPEAT;
IF (dkuhr = FALSE) THEN
ESCAPE;
END_IF;
IF (nnauo <> 1) THEN
dkuhr := FALSE;
ESCAPE;
END_IF;
END_REPEAT;
WHERE
WR1 : dkuhr;
END_RULE;
RULE validate_dependently_instantiable_entity_data_types FOR (action_method_role, annotation_text, attribute_value_role, auxiliary_geometric_representation_item, binary_numeric_expression, boolean_expression, bounded_curve, bounded_surface, cartesian_transformation_operator, comparison_expression, concept_feature_relationship, concept_feature_relationship_with_condition, connected_edge_set, document_usage_constraint, edge_blended_solid, effectivity_context_role, event_occurrence_role, explicit_procedural_representation_item_relationship, expression, founded_item, generic_expression, generic_variable, indirectly_selected_elements, interval_expression, literal_number, local_time, loop, modified_solid_with_placed_configuration, multiple_arity_boolean_expression, multiple_arity_generic_expression, multiple_arity_numeric_expression, numeric_expression, one_direction_repeat_factor, oriented_open_shell, oriented_path, positioned_sketch, procedural_representation, procedural_representation_sequence, product_definition_context_role, product_definition_effectivity, runout_zone_orientation, simple_boolean_expression, simple_generic_expression, simple_numeric_expression, solid_with_depression, solid_with_hole, solid_with_pocket, solid_with_protrusion, solid_with_shape_element_pattern, solid_with_slot, swept_area_solid, symbol_target, tolerance_zone_form, two_direction_repeat_factor, unary_generic_expression, unary_numeric_expression, user_selected_elements, variational_representation_item, view_volume);
LOCAL
number_of_input_instances : INTEGER;
previous_in_chain : LIST OF GENERIC := [];
set_of_input_types : SET OF STRING := [];
all_instances : SET OF GENERIC := [];
END_LOCAL;
all_instances := all_instances + action_method_role + annotation_text + attribute_value_role + auxiliary_geometric_representation_item + binary_numeric_expression + boolean_expression + bounded_curve + bounded_surface + cartesian_transformation_operator + comparison_expression + concept_feature_relationship + concept_feature_relationship_with_condition + connected_edge_set + document_usage_constraint + edge_blended_solid + effectivity_context_role + event_occurrence_role + explicit_procedural_representation_item_relationship + expression + founded_item + generic_expression + generic_variable + indirectly_selected_elements + interval_expression + literal_number + local_time + loop + modified_solid_with_placed_configuration + multiple_arity_boolean_expression + multiple_arity_generic_expression + multiple_arity_numeric_expression + numeric_expression + one_direction_repeat_factor + oriented_open_shell + oriented_path + positioned_sketch + procedural_representation + procedural_representation_sequence + product_definition_context_role + product_definition_effectivity + runout_zone_orientation + simple_boolean_expression + simple_generic_expression + simple_numeric_expression + solid_with_depression + solid_with_hole + solid_with_pocket + solid_with_protrusion + solid_with_shape_element_pattern + solid_with_slot + swept_area_solid + symbol_target + tolerance_zone_form + two_direction_repeat_factor + unary_generic_expression + unary_numeric_expression + user_selected_elements + variational_representation_item + view_volume;--<make a union of all implicit populations of the FOR-clause>
number_of_input_instances := SIZEOF(all_instances);
(* Collect all type strings of all FOR instances into one set. *)
REPEAT i:=1 TO number_of_input_instances;
set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]);
END_REPEAT;
WHERE
WR1 : dependently_instantiated(all_instances, set_of_input_types,
previous_in_chain);
END_RULE;
FUNCTION acyclic
(arg1: generic_expression; arg2: SET [0:?] OF generic_expression) : BOOLEAN;
LOCAL
result: BOOLEAN := TRUE;
END_LOCAL;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_GENERIC_EXPRESSION'
IN TYPEOF (arg1))
THEN
RETURN (TRUE);
END_IF;
IF arg1 IN arg2
THEN
RETURN (FALSE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNARY_GENERIC_EXPRESSION'
IN TYPEOF (arg1)
THEN
RETURN
(acyclic(arg1\unary_generic_expression.operand,arg2+[arg1]));
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BINARY_GENERIC_EXPRESSION'
IN TYPEOF (arg1)
THEN
RETURN
(acyclic(arg1\binary_generic_expression.operands[1],arg2+[arg1])
AND
acyclic(arg1\binary_generic_expression.operands[2],arg2+[arg1]));
END_IF;
IF
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION'
IN TYPEOF (arg1)
THEN
result := TRUE;
REPEAT i := 1 TO
SIZEOF (arg1\multiple_arity_generic_expression.operands);
result := result AND
acyclic(arg1\multiple_arity_generic_expression.operands[i], arg2+[arg1]);
END_REPEAT;
RETURN (result);
END_IF;
RETURN (result);
END_FUNCTION;
FUNCTION acyclic_composite_text
(start_composite: composite_text; child_text: SET [1:?] OF text_or_character) : LOGICAL;
LOCAL
i : INTEGER;
local_composite_text : SET [0:?] OF composite_text;
local_annotation_text : SET [0:?] OF annotation_text;
local_children : SET [0:?] OF text_or_character;
END_LOCAL;
local_composite_text := QUERY (child <* child_text |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
IN TYPEOF (child)));
IF (SIZEOF (local_composite_text) > 0)
THEN
REPEAT i := 1 TO HIINDEX (local_composite_text);
IF (start_composite :=: local_composite_text[i])
THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
END_IF;
local_children := child_text;
IF (SIZEOF (local_composite_text)) > 0 THEN
REPEAT i := 1 TO HIINDEX (local_composite_text);
local_children := local_children +
local_composite_text[i].collected_text;
END_REPEAT;
END_IF;
local_annotation_text := QUERY (child <* child_text |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT'
IN TYPEOF (child)));
IF (SIZEOF (local_annotation_text) > 0) THEN
REPEAT i := 1 TO HIINDEX (local_annotation_text);
local_children := local_children +
QUERY (item <* local_annotation_text[i]\mapped_item.
mapping_source.mapped_representation.items |
SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'] *
TYPEOF(item)) > 0);
END_REPEAT;
END_IF;
IF (local_children :<>: child_text) THEN
RETURN (acyclic_composite_text (start_composite, local_children));
ELSE
RETURN (TRUE);
END_IF;
END_FUNCTION;
FUNCTION acyclic_curve_replica
(rep: curve_replica; parent: curve) : BOOLEAN;
IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA') IN TYPEOF(parent)) THEN
RETURN (TRUE);
END_IF;
(* Return TRUE if the parent is not of type curve_replica *)
IF (parent :=: rep) THEN
RETURN (FALSE);
(* Return FALSE if the parent is the same curve_replica, otherwise,
call function again with the parents own parent_curve. *)
ELSE
RETURN(acyclic_curve_replica(rep,
parent\curve_replica.parent_curve));
END_IF;
END_FUNCTION;
FUNCTION acyclic_mapped_item_usage
(rep: representation) : BOOLEAN;
LOCAL
items : SET OF representation_item;
END_LOCAL;
items := QUERY (item <* rep.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (item));
IF SIZEOF (items) = 0
THEN
RETURN (FALSE);
ELSE
REPEAT i := 1 TO HIINDEX (items);
IF items[i]\mapped_item.mapping_source.mapped_representation :=: rep
THEN
RETURN (TRUE);
ELSE
RETURN (acyclic_mapped_item_usage(items[i]\
mapped_item.mapping_source.mapped_representation));
END_IF;
END_REPEAT;
RETURN (FALSE);
END_IF;
END_FUNCTION;
FUNCTION acyclic_mapped_representation
(mi: mapped_item) : BOOLEAN;
LOCAL
rms : SET OF representation_map;
mis : SET OF mapped_item;
rs1, rs2 : SET OF representation;
END_LOCAL;
rs1 := using_representations(mi);
rs2 := [];
-- loop as long as there are elements in rs1
REPEAT WHILE SIZEOF(rs1) > 0;
REPEAT i := 1 TO HIINDEX(rs1);
-- Determine the set of representation_map that reference the parent_set
rms := bag_to_set(USEDIN(rs1[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
IF SIZEOF(rms) > 0 THEN
REPEAT j := 1 TO HIINDEX(rms);
mis := bag_to_set(USEDIN(rms[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE'));
IF SIZEOF(mis) > 0 THEN
REPEAT j := 1 TO HIINDEX(mis);
-- check mis members for instance equal with mi. If so then there is a cycle
IF mis[i] :=: mi THEN
RETURN (FALSE);
END_IF;
rs2 := rs2 + using_representations(mis[i]);
END_REPEAT;
END_IF;
END_REPEAT;
END_IF;
END_REPEAT;
rs1 := rs2;
rs2 := [];
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
FUNCTION acyclic_point_replica
(rep: point_replica; parent: point) : BOOLEAN;
IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA') IN TYPEOF(parent)) THEN
RETURN (TRUE);
END_IF;
(* Return TRUE if the parent is not of type point_replica *)
IF (parent :=: rep) THEN
RETURN (FALSE);
(* Return FALSE if the parent is the same point_replica, otherwise,
call function again with the parents own parent_pt. *)
ELSE RETURN(acyclic_point_replica(rep, parent\point_replica.parent_pt));
END_IF;
END_FUNCTION;
FUNCTION acyclic_product_definition_relationship
(relation: product_definition_relationship; relatives: SET [1:?] OF product_definition; specific_relation: STRING) : BOOLEAN;
LOCAL
x : SET OF product_definition_relationship;
END_LOCAL;
IF relation.relating_product_definition IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_product_definition, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')) | specific_relation IN TYPEOF(pd));
REPEAT i := 1 TO HIINDEX(x);
IF NOT acyclic_product_definition_relationship(x[i], relatives + relation.relating_product_definition, specific_relation) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
FUNCTION acyclic_representation_relationship
(relation: representation_relationship; relatives: SET [1:?] OF representation; specific_relation: STRING) : BOOLEAN;
LOCAL
x : SET OF representation_relationship;
END_LOCAL;
IF relation.rep_1 IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(r <* bag_to_set(USEDIN(relation.rep_1, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2')) | specific_relation IN TYPEOF(r));
REPEAT i := 1 TO HIINDEX(x);
IF NOT acyclic_representation_relationship(x[i], relatives + relation.rep_1, specific_relation) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
FUNCTION acyclic_solid_replica
(rep: solid_replica; parent: solid_model) : BOOLEAN;
IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA') IN TYPEOF(parent)) THEN
RETURN (TRUE);
END_IF;
(* Return TRUE if the parent is not of type solid_replica. *)
IF (parent :=: rep) THEN
RETURN (FALSE);
(* Return FALSE if the parent is the same solid_replica, otherwise,
call function again with the parents own parent_solid. *)
ELSE RETURN(acyclic_solid_replica(rep,
parent\solid_replica.parent_solid));
END_IF;
END_FUNCTION;
FUNCTION acyclic_surface_replica
(rep: surface_replica; parent: surface) : BOOLEAN;
IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA') IN TYPEOF(parent)) THEN
RETURN (TRUE);
END_IF;
(* Return TRUE if the parent is not of type surface_replica *)
IF (parent :=: rep) THEN
RETURN (FALSE);
(* Return FALSE if the parent is the same surface_replica, otherwise,
call function again with the parents own parent_surface. *)
ELSE RETURN(acyclic_surface_replica(rep,
parent\surface_replica.parent_surface));
END_IF;
END_FUNCTION;
FUNCTION advanced_face_properties
(testface: face) : BOOLEAN;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF(testface) THEN
RETURN (TRUE);
END_IF;
(* if testface is a subface recursively test the parent_face,
return FALSE for all other types of face *)
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(testface)) THEN
RETURN(advanced_face_properties(testface\subface.parent_face));
ELSE RETURN (FALSE);
END_IF;
END_FUNCTION;
FUNCTION aspect_ratio
(p: planar_box) : positive_ratio_measure;
IF (p.size_in_x > 0.) AND (p.size_in_y > 0.) THEN
RETURN (p.size_in_x / p.size_in_y);
ELSE
RETURN (?);
END_IF;
END_FUNCTION;
FUNCTION associated_surface
(arg: pcurve_or_surface) : surface;
LOCAL
surf : surface;
END_LOCAL;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(arg) THEN
surf := arg\pcurve.basis_surface;
ELSE
surf := arg;
END_IF;
RETURN(surf);
END_FUNCTION;
FUNCTION bag_to_set
(the_bag: BAG [0:?] OF GENERIC: intype) : SET [0:?] OF GENERIC: intype;
LOCAL
the_set : SET OF GENERIC:intype := [];
END_LOCAL;
IF SIZEOF(the_bag) > 0 THEN
REPEAT i := 1 TO HIINDEX(the_bag);
the_set := the_set + the_bag[i];
END_REPEAT;
END_IF;
RETURN (the_set);
END_FUNCTION;
FUNCTION base_axis
(dim: INTEGER; axis1: direction; axis2: direction; axis3: direction) : LIST [2:3] OF direction;
LOCAL
u : LIST [2:3] OF direction;
factor : REAL;
d1, d2 : direction;
END_LOCAL;
IF (dim = 3) THEN
d1 := NVL(normalise(axis3), dummy_gri || direction([0.0,0.0,1.0]));
d2 := first_proj_axis(d1,axis1);
u := [d2, second_proj_axis(d1,d2,axis2), d1];
ELSE
IF EXISTS(axis1) THEN
d1 := normalise(axis1);
u := [d1, orthogonal_complement(d1)];
IF EXISTS(axis2) THEN
factor := dot_product(axis2,u[2]);
IF (factor < 0.0) THEN
u[2].direction_ratios[1] := -u[2].direction_ratios[1];
u[2].direction_ratios[2] := -u[2].direction_ratios[2];
END_IF;
END_IF;
ELSE
IF EXISTS(axis2) THEN
d1 := normalise(axis2);
u := [orthogonal_complement(d1), d1];
u[1].direction_ratios[1] := -u[1].direction_ratios[1];
u[1].direction_ratios[2] := -u[1].direction_ratios[2];
ELSE
u := [dummy_gri || direction([1.0, 0.0]), dummy_gri ||
direction([0.0, 1.0])];
END_IF;
END_IF;
END_IF;
RETURN(u);
END_FUNCTION;
FUNCTION boolean_choose
(b: BOOLEAN; choice1: GENERIC: item; choice2: GENERIC: item) : GENERIC: item;
IF b THEN
RETURN (choice1);
ELSE
RETURN (choice2);
END_IF;
END_FUNCTION;
FUNCTION build_2axes
(ref_direction: direction) : LIST [2:2] OF direction;
LOCAL
d : direction := NVL(normalise(ref_direction),
dummy_gri || direction([1.0,0.0]));
END_LOCAL;
RETURN([d, orthogonal_complement(d)]);
END_FUNCTION;
FUNCTION build_axes
(axis: direction; ref_direction: direction) : LIST [3:3] OF direction;
LOCAL
d1, d2 : direction;
END_LOCAL;
d1 := NVL(normalise(axis), dummy_gri || direction([0.0,0.0,1.0]));
d2 := first_proj_axis(d1, ref_direction);
RETURN([d2, normalise(cross_product(d1,d2))\vector.orientation, d1]);
END_FUNCTION;
FUNCTION categories_of_product
(obj: product) : SET [0:?] OF STRING;
LOCAL
category_assignments: BAG OF product_category;
categories: SET OF STRING:=[];
END_LOCAL;
category_assignments := USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS');
REPEAT i := LOINDEX(category_assignments) TO HIINDEX(category_assignments) BY 1;
categories := categories + category_assignments[i].name;
END_REPEAT;
RETURN(categories);
END_FUNCTION;
FUNCTION cc_design_person_and_organization_correlation
(e: cc_design_person_and_organization_assignment) : BOOLEAN;
LOCAL
po_role : STRING;
END_LOCAL;
po_role := e\person_and_organization_assignment.role.name;
CASE po_role OF
'request_recipient' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'CHANGE_REQUEST',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'START_REQUEST'] *
TYPEOF (x)) = 1))
THEN RETURN(FALSE);
END_IF;
'initiator' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'CHANGE_REQUEST',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'START_REQUEST',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'START_WORK',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'CHANGE'] *
TYPEOF (x)) = 1))
THEN RETURN(FALSE);
END_IF;
'creator' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_FORMATION',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION'] *
TYPEOF (x)) = 1))
THEN RETURN (FALSE);
END_IF;
'part_supplier' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_FORMATION'
IN TYPEOF (x)))
THEN RETURN(FALSE);
END_IF;
'design_supplier' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'PRODUCT_DEFINITION_FORMATION'
IN TYPEOF (x)))
THEN RETURN(FALSE);
END_IF;
'design_owner' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT'
IN TYPEOF (x)))
THEN RETURN(FALSE);
END_IF;
'configuration_manager' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'CONFIGURATION_ITEM'
IN TYPEOF (x)))
THEN RETURN(FALSE);
END_IF;
'contractor' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONTRACT'
IN TYPEOF (x)))
THEN RETURN(FALSE);
END_IF;
'classification_officer' : IF SIZEOF (e.items) <>
SIZEOF (QUERY (x <* e.items |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
'SECURITY_CLASSIFICATION'
IN TYPEOF (x))) THEN
RETURN(FALSE);
END_IF;
OTHERWISE : RETURN(TRUE);
END_CASE;
RETURN (TRUE);
END_FUNCTION;
FUNCTION check_continuous_edges
(edges: LIST [0:?] OF UNIQUE edge_curve) : BOOLEAN;
LOCAL
i : INTEGER;
next_vertex : vertex;
END_LOCAL;
-- first check whether there is only one edge in the list: in this
-- case there is no connectivity to be checked.
IF (SIZEOF(edges) = 1)
THEN RETURN(TRUE);
END_IF;
-- otherwise, establish the matching vertices of edges 1 and 2 in
-- the list, and determine the vertex of edge 2 to which edge 3,
-- must be connected, if there are more than two edges in the list.
IF ((edges[2].edge_start :=: edges[1].edge_end)
XOR (edges[2].edge_start :=: edges[1].edge_start))
THEN next_vertex := edges[2].edge_end;
ELSE
IF ((edges[2].edge_end :=: edges[1].edge_end)
XOR (edges[2].edge_end :=: edges[1].edge_start))
THEN next_vertex := edges[2].edge_start;
ELSE RETURN(FALSE); -- no match between any vertices of edges 1 and 2
END_IF;
END_IF;
-- exit if there are only two edges and they are connected
IF (SIZEOF(edges) = 2)
THEN RETURN(TRUE);
END_IF;
-- otherwise, check that any remaining edges are connected in list order.
REPEAT i := 3 TO HIINDEX(edges);
IF (edges[i].edge_start :=: next_vertex)
THEN next_vertex := edges[i].edge_end;
ELSE
IF (edges[i].edge_end :=: next_vertex)
THEN next_vertex := edges[i].edge_start;
ELSE RETURN(FALSE); -- no match is found.
END_IF;
END_IF;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
FUNCTION check_text_alignment
(ct: composite_text) : BOOLEAN;
LOCAL
a : SET OF text_alignment := [];
END_LOCAL;
-- create a set of all the alignments
REPEAT i := 1 TO HIINDEX (ct.collected_text);
a := a + [ct.collected_text[i]\text_literal.alignment];
END_REPEAT;
-- if there is more than one element in the set
-- then not all alignments were the same
RETURN (SIZEOF(a) = 1);
END_FUNCTION;
FUNCTION check_text_font
(ct: composite_text) : BOOLEAN;
LOCAL
f : SET OF font_select := [];
END_LOCAL;
-- build a set of all the fonts
REPEAT i := 1 TO HIINDEX (ct.collected_text);
f := f + [ct.collected_text[i]\text_literal.font];
END_REPEAT;
-- if there is more than one element in the set
-- then not all fonts were the same
RETURN (SIZEOF(f) <= 1);
END_FUNCTION;
FUNCTION class_assignment_is_valid
(aia: applied_classification_assignment) : BOOLEAN;
LOCAL
item: classification_item;
role: classification_role;
END_LOCAL;
role:= aia\classification_assignment.role;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'CLASS_SYSTEM' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN
IF(role\classification_role.name <> 'class system membership') THEN
RETURN(FALSE);
END_IF;
REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items);
item:= aia\applied_classification_assignment.items[i];
IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CLASS_SYSTEM_ITEM'] * TYPEOF(item))=0) THEN
-- item invalid if item does not belong to the types that may have a class_system
RETURN(FALSE);
END_IF;
END_REPEAT;
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'CHARACTERIZED_CLASS' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN
IF NOT(role\classification_role.name IN ['definitional','non-definitional','']) THEN
RETURN(FALSE);
END_IF;
REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items);
item:= aia\applied_classification_assignment.items[i];
IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CLASSIFIED_ITEM'] * TYPEOF(item))=0) THEN
-- item invalid if item does not belong to the types that may have a characterized_class
RETURN(FALSE);
END_IF;
END_REPEAT;
END_IF;
IF
(role\classification_role.name = 'definitional')
THEN
IF NOT
(SIZEOF(QUERY(it <* aia\applied_classification_assignment.items | NOT
(SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_FORMATION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1)
)) = 0 )
THEN
RETURN(FALSE);
END_IF;
END_IF;
RETURN(TRUE);
END_FUNCTION;
FUNCTION closed_shell_reversed
(a_shell: closed_shell) : oriented_closed_shell;
LOCAL
the_reverse : oriented_closed_shell;
END_LOCAL;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (a_shell) ) THEN
the_reverse := dummy_tri ||
connected_face_set (
a_shell\connected_face_set.cfs_faces) ||
closed_shell () || oriented_closed_shell(
a_shell\oriented_closed_shell.closed_shell_element,
NOT(a_shell\oriented_closed_shell.orientation));
ELSE
the_reverse := dummy_tri ||
connected_face_set (
a_shell\connected_face_set.cfs_faces) ||
closed_shell () || oriented_closed_shell (a_shell, FALSE);
END_IF;
RETURN (the_reverse);
END_FUNCTION;
FUNCTION compute_total_depth
(swsrh: solid_with_stepped_round_hole) : positive_length_measure;
LOCAL
i : positive_integer;
n : positive_integer := swsrh.segments;
td : positive_length_measure := swsrh.segment_depths[1];
END_LOCAL;
IF n = 1
THEN RETURN(td);
ELSE
REPEAT i := 2 TO n;
td := td + swsrh.segment_depths[i];
END_REPEAT;
END_IF;
RETURN(td);
END_FUNCTION;
FUNCTION conditional_reverse
(p: BOOLEAN; an_item: reversible_topology) : reversible_topology;
IF p THEN
RETURN (an_item);
ELSE
RETURN (topology_reversed (an_item));
END_IF;
END_FUNCTION;
FUNCTION constraints_composite_curve_on_surface
(c: composite_curve_on_surface) : BOOLEAN;
LOCAL
n_segments : INTEGER := SIZEOF(c.segments);
END_LOCAL;
REPEAT k := 1 TO n_segments;
IF (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
TYPEOF(c\composite_curve.segments[k].parent_curve))) AND
(NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN
TYPEOF(c\composite_curve.segments[k].parent_curve))) AND
(NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN
TYPEOF(c\composite_curve.segments[k].parent_curve))) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
FUNCTION constraints_geometry_shell_based_surface_model
(m: shell_based_surface_model) : BOOLEAN;
LOCAL
result : BOOLEAN := TRUE;
END_LOCAL;
REPEAT j := 1 TO SIZEOF(m.sbsm_boundary);
IF (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN
TYPEOF(m.sbsm_boundary[j])) AND
(NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL' IN
TYPEOF(m.sbsm_boundary[j]))))
THEN
result := FALSE;
RETURN(result);
(* A surface model is composed of OPEN_ and CLOSED_SHELLs. *)
END_IF;
END_REPEAT;
RETURN(result);
END_FUNCTION;
FUNCTION constraints_geometry_shell_based_wireframe_model
(m: shell_based_wireframe_model) : BOOLEAN;
LOCAL
result : BOOLEAN := TRUE;
END_LOCAL;
REPEAT j := 1 TO SIZEOF(m.sbwm_boundary);
IF (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN
TYPEOF(m.sbwm_boundary[j])) AND
(NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN
TYPEOF(m.sbwm_boundary[j]))))
THEN
result := FALSE;
RETURN(result);
(* A wireframe model is composed of WIRE_ and VERTEX_SHELLs *)
END_IF;
END_REPEAT;
RETURN(result);
END_FUNCTION;
FUNCTION constraints_param_b_spline
(degree: INTEGER; up_knots: INTEGER; up_cp: INTEGER; knot_mult: LIST [0:?] OF INTEGER; knots: LIST [0:?] OF parameter_value) : BOOLEAN;
LOCAL
result : BOOLEAN := TRUE;
k, sum : INTEGER;
END_LOCAL;
(* Find sum of knot multiplicities. *)
sum := knot_mult[1];
REPEAT i := 2 TO up_knots;
sum := sum + knot_mult[i];
END_REPEAT;
(* Check limits holding for all B-spline parametrisations *)
IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR
(sum <> (degree + up_cp + 2)) THEN
result := FALSE;
RETURN(result);
END_IF;
k := knot_mult[1];
IF (k < 1) OR (k > degree + 1) THEN
result := FALSE;
RETURN(result);
END_IF;
REPEAT i := 2 TO up_knots;
IF (knot_mult[i] < 1) OR (knots[i] <= knots[i-1]) THEN
result := FALSE;
RETURN(result);
END_IF;
k := knot_mult[i];
IF (i < up_knots) AND (k > degree) THEN
result := FALSE;
RETURN(result);
END_IF;
IF (i = up_knots) AND (k > degree + 1) THEN
result := FALSE;
RETURN(result);
END_IF;
END_REPEAT;
RETURN(result);
END_FUNCTION;
FUNCTION constraints_rectangular_composite_surface
(s: rectangular_composite_surface) : BOOLEAN;
REPEAT i := 1 TO s.n_u;
REPEAT j := 1 TO s.n_v;
IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF
(s.segments[i][j].parent_surface)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF
(s.segments[i][j].parent_surface))) THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
END_REPEAT;
(* Check the transition codes, omitting the last row or column *)
REPEAT i := 1 TO s.n_u-1;
REPEAT j := 1 TO s.n_v;
IF s.segments[i][j].u_transition = discontinuous THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO s.n_u;
REPEAT j := 1 TO s.n_v-1;
IF s.segments[i][j].v_transition = discontinuous THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
FUNCTION control_characters_free
(s: STRING) : BOOLEAN;
LOCAL
ch : STRING;
END_LOCAL;
REPEAT i:=1 TO LENGTH(s);
ch := s[i];
IF (ch = '\x9') OR (ch = '\xA') OR (ch = '\xD') THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
FUNCTION cross_product
(arg1: direction; arg2: direction) : vector;
LOCAL
mag : REAL;
res : direction;
v1,v2 : LIST[3:3] OF REAL;
result : vector;
END_LOCAL;
IF ( NOT EXISTS (arg1) OR (arg1.dim = 2)) OR
( NOT EXISTS (arg2) OR (arg2.dim = 2)) THEN
RETURN(?);
ELSE
BEGIN
v1 := normalise(arg1).direction_ratios;
v2 := normalise(arg2).direction_ratios;
res := dummy_gri || direction([(v1[2]*v2[3] - v1[3]*v2[2]),
(v1[3]*v2[1] - v1[1]*v2[3]), (v1[1]*v2[2] - v1[2]*v2[1])]);
mag := 0.0;
REPEAT i := 1 TO 3;
mag := mag + res.direction_ratios[i]*res.direction_ratios[i];
END_REPEAT;
IF (mag > 0.0) THEN
result := dummy_gri || vector(res, SQRT(mag));
ELSE
result := dummy_gri || vector(arg1, 0.0);
END_IF;
RETURN(result);
END;
END_IF;
END_FUNCTION;
FUNCTION curve_weights_positive
(b: rational_b_spline_curve) : BOOLEAN;
LOCAL
result : BOOLEAN := TRUE;
END_LOCAL;
REPEAT i := 0 TO b.upper_index_on_control_points;
IF b.weights[i] <= 0.0 THEN
result := FALSE;
RETURN(result);
END_IF;
END_REPEAT;
RETURN(result);
END_FUNCTION;
FUNCTION default_tolerance_table_cell_wr2
(agg: compound_item_definition) : BOOLEAN;
BEGIN
IF SIZEOF(agg) <= 5 THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION default_tolerance_table_cell_wr3
(agg: compound_item_definition) : BOOLEAN;
BEGIN
IF (SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i))
AND (i\representation_item.name = 'significant number of digits')) )) = 1) OR
((SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
(i\representation_item.name = 'lower limit')) )) = 1) AND
(SIZEOF( QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
(i\representation_item.name = 'upper limit')) )) = 1)) THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION default_tolerance_table_cell_wr4
(agg: compound_item_definition) : BOOLEAN;
BEGIN
IF (SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
(i\representation_item.name = 'plus minus tolerance value')) )) = 1) OR
((SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (
i\representation_item.name = 'lower tolerance value')) )) = 1) AND
(SIZEOF( QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (
i\representation_item.name = 'upper tolerance value')) )) = 1)) THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION default_tolerance_table_cell_wr5
(agg: compound_item_definition) : BOOLEAN;
BEGIN
IF (SIZEOF(QUERY ( i <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) <= 1) AND
(SIZEOF(QUERY ( i <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) =
SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
(i\representation_item.name = 'cell description'))) ))
THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION dependently_instantiated
(set_of_input_instances: SET [0:?] OF GENERIC: igen; set_of_input_types: SET [0:?] OF STRING; previous_in_chain: LIST [0:?] OF GENERIC: cgen) : BOOLEAN;
LOCAL
number_of_input_instances : INTEGER;
number_of_referring_instances : INTEGER;
bag_of_referring_instances : BAG OF GENERIC:igen := [];
dependently_instantiated_flag : BOOLEAN;
previous_in_chain_plus : LIST OF GENERIC:cgen := [];
result : BOOLEAN := true;
set_of_types : SET OF STRING := [];
END_LOCAL;
IF EXISTS(set_of_input_instances) THEN
number_of_input_instances := SIZEOF(set_of_input_instances);
(* Add the declared type of bag_of_referring_instances to the set of
types of the REFERENCEd instances for the subset comparison later.
*)
set_of_input_types := set_of_input_types + 'GENERIC';
REPEAT i:=1 TO number_of_input_instances;
(* Determine all references to the current input instance. *)
bag_of_referring_instances := USEDIN (set_of_input_instances[i] , '');
IF EXISTS(bag_of_referring_instances) THEN
number_of_referring_instances := SIZEOF(bag_of_referring_instances);
dependently_instantiated_flag := false;
REPEAT j:=1 TO number_of_referring_instances;
(* Determine the type strings of the current referencing instance.
*)
set_of_types := TYPEOF(bag_of_referring_instances[j]);
(* If the referencing instance is of one of the types of the
only dependently instantiable select items, the current input
instance may still be invalidly instantiated.
Otherwise it is OK, and the next input instance is tested.
*)
IF set_of_types <= set_of_input_types THEN -- subset operator
(* The referring instance is of one of the restricted types.
However, it may itself be referred to by a valid instance;
then also the current instance would be valid.
Thus, call this function recursively with the referring
instance as input.
To avoid an infinite loop in case a set of instances
reference each other in a closed loop, test first whether
the current referencing instance is in the list of
previously processed chain members.
*)
IF NOT (bag_of_referring_instances[j] IN previous_in_chain) THEN
previous_in_chain_plus := previous_in_chain +
set_of_input_instances[i];
IF dependently_instantiated([bag_of_referring_instances[j]],
set_of_input_types,
previous_in_chain_plus) THEN
dependently_instantiated_flag := true;
ESCAPE; -- dependently instantiated; next input instance
ELSE
(* Not dependently instantiated: go to next referring
instance. *)
SKIP;
END_IF;
END_IF;
ELSE
dependently_instantiated_flag := true;
ESCAPE; -- dependently instantiated; take next input instance
END_IF;
END_REPEAT;
IF NOT dependently_instantiated_flag THEN
RETURN(false);
END_IF;
ELSE
RETURN(false); -- not referenced at all => invalidly instantiated
END_IF;
END_REPEAT;
ELSE
RETURN(false); -- no input
END_IF;
RETURN(true);
END_FUNCTION;
FUNCTION derive_angle
(placement_1: axis2_placement_3d; placement_2: axis2_placement_3d) : plane_angle_measure;
LOCAL
v1 : direction;
v2 : direction;
mag_v1 : REAL;
mag_v2 : REAL;
theta : plane_angle_measure;
END_LOCAL;
v1 := placement_1.p[1];
v2 := placement_2.p[1];
mag_v1 := SQRT (v1.direction_ratios[1]*v1.direction_ratios[1] +
v1.direction_ratios[2]*v1.direction_ratios[2]);
mag_v2 := SQRT (v2.direction_ratios[1]*v2.direction_ratios[1] +
v2.direction_ratios[2]*v2.direction_ratios[2]);
IF ((mag_v1 = 0.0) OR (mag_v2 = 0.0)) THEN
theta := 0.0;
RETURN (theta);
END_IF;
theta := ACOS ((v1.direction_ratios[1]*v2.direction_ratios[1] +
v1.direction_ratios[2]*v2.direction_ratios[2]) /
(mag_v1*mag_v2));
RETURN (theta);
END_FUNCTION;
FUNCTION derive_dimensional_exponents
(x: unit) : dimensional_exponents;
LOCAL
result : dimensional_exponents := dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
END_LOCAL;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_UNIT' IN TYPEOF(x) THEN
REPEAT i := LOINDEX(x\derived_unit.elements) TO HIINDEX(x\derived_unit.elements);
result.length_exponent := result.length_exponent +
(x\derived_unit.elements[i]\derived_unit_element.exponent *
x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.length_exponent);
result.mass_exponent := result.mass_exponent +
(x\derived_unit.elements[i]\derived_unit_element.exponent *
x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.mass_exponent);
result.time_exponent := result.time_exponent +
(x\derived_unit.elements[i]\derived_unit_element.exponent *
x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.time_exponent);
result.electric_current_exponent := result.electric_current_exponent +
(x\derived_unit.elements[i]\derived_unit_element.exponent *
x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.electric_current_exponent);
result.thermodynamic_temperature_exponent := result.thermodynamic_temperature_exponent +
(x\derived_unit.elements[i]\derived_unit_element.exponent *
x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.thermodynamic_temperature_exponent);
result.amount_of_substance_exponent := result.amount_of_substance_exponent +
(x\derived_unit.elements[i]\derived_unit_element.exponent *
x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.amount_of_substance_exponent);
result.luminous_intensity_exponent := result.luminous_intensity_exponent +
(x\derived_unit.elements[i]\derived_unit_element.exponent *
x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.luminous_intensity_exponent);
END_REPEAT;
ELSE
result := x\named_unit.dimensions;
END_IF;
RETURN (result);
END_FUNCTION;
FUNCTION dimension_of
(item: geometric_representation_item) : dimension_count;
LOCAL
x : SET OF representation;
y : representation_context;
dim : dimension_count;
END_LOCAL;
-- For cartesian_point, direction, or vector dimension is determined by
-- counting components.
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF(item) THEN
dim := SIZEOF(item\cartesian_point.coordinates);
RETURN(dim);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIRECTION' IN TYPEOF(item) THEN
dim := SIZEOF(item\direction.direction_ratios);
RETURN(dim);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(item) THEN
dim := SIZEOF(item\vector.orientation\direction.direction_ratios);
RETURN(dim);
END_IF;
-- For all other types of geometric_representation_item dim is obtained
-- via context.
-- Find the set of representation in which the item is used.
x := using_representations(item);
-- Determines the dimension_count of the
-- geometric_representation_context. Note that the
-- RULE compatible_dimension ensures that the context_of_items
-- is of type geometric_representation_context and has
-- the same dimension_count for all values of x.
-- The SET x is non-empty since this is required by WR1 of
-- representation_item.
y := x[1].context_of_items;
dim := y\geometric_representation_context.coordinate_space_dimension;
RETURN (dim);
END_FUNCTION;
FUNCTION dimensions_for_si_unit
(n: si_unit_name) : dimensional_exponents;
CASE n OF
metre:
RETURN (dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
gram:
RETURN (dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0));
second:
RETURN (dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0));
ampere:
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0));
kelvin:
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
mole:
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0));
candela:
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
radian:
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
steradian:
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
hertz:
RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
newton:
RETURN (dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
pascal:
RETURN (dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
joule:
RETURN (dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
watt:
RETURN (dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0));
coulomb:
RETURN (dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0));
volt:
RETURN (dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0));
farad:
RETURN (dimensional_exponents(-2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0));
ohm:
RETURN (dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0));
siemens:
RETURN (dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0));
weber:
RETURN (dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
tesla:
RETURN (dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
henry:
RETURN (dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0));
degree_Celsius:
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
lumen:
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
lux:
RETURN (dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
becquerel:
RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
gray:
RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
sievert:
RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
OTHERWISE:
RETURN (?);
END_CASE;
END_FUNCTION;
FUNCTION dot_product
(arg1: direction; arg2: direction) : REAL;
LOCAL
scalar : REAL;
vec1, vec2: direction;
ndim : INTEGER;
END_LOCAL;
IF NOT EXISTS (arg1) OR NOT EXISTS (arg2) THEN
scalar := ?;
(* When function is called with invalid data an indeterminate result
is returned *)
ELSE
IF (arg1.dim <> arg2.dim) THEN
scalar := ?;
(* When function is called with invalid data an indeterminate result
is returned *)
ELSE
BEGIN
vec1 := normalise(arg1);
vec2 := normalise(arg2);
ndim := arg1.dim;
scalar := 0.0;
REPEAT i := 1 TO ndim;
scalar := scalar +
vec1.direction_ratios[i]*vec2.direction_ratios[i];
END_REPEAT;
END;
END_IF;
END_IF;
RETURN (scalar);
END_FUNCTION;
FUNCTION edge_reversed
(an_edge: edge) : oriented_edge;
LOCAL
the_reverse : oriented_edge;
END_LOCAL;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_EDGE' IN TYPEOF (an_edge) ) THEN
the_reverse := dummy_tri ||
edge(an_edge.edge_end, an_edge.edge_start) ||
oriented_edge(an_edge\oriented_edge.edge_element,
NOT (an_edge\oriented_edge.orientation)) ;
ELSE
the_reverse := dummy_tri ||
edge(an_edge.edge_end, an_edge.edge_start) ||
oriented_edge(an_edge, FALSE);
END_IF;
RETURN (the_reverse);
END_FUNCTION;
FUNCTION external_version_assignment_is_valid
(aia: applied_external_identification_assignment) : BOOLEAN;
LOCAL
item: identification_item;
role: identification_role;
END_LOCAL;
role:= aia.role;
IF role.name='version' THEN
REPEAT i:=LOINDEX(aia.items) TO HIINDEX(aia.items);
item:= aia.items[i];
IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_VERSIONED_ITEM']*TYPEOF(item))=0) THEN
-- item invalid if item does not belong to versionable types
RETURN(FALSE);
END_IF;
END_REPEAT;
RETURN(TRUE);
ELSE -- case where aia does not convey a version id
RETURN(TRUE);
END_IF;
END_FUNCTION;
FUNCTION face_bound_reversed
(a_face_bound: face_bound) : face_bound;
LOCAL
the_reverse : face_bound ;
END_LOCAL;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF (a_face_bound) ) THEN
the_reverse := dummy_tri ||
face_bound(a_face_bound\face_bound.bound,
NOT (a_face_bound\face_bound.orientation))
|| face_outer_bound() ;
ELSE
the_reverse := dummy_tri ||
face_bound(a_face_bound.bound, NOT(a_face_bound.orientation));
END_IF;
RETURN (the_reverse);
END_FUNCTION;
FUNCTION face_reversed
(a_face: face) : oriented_face;
LOCAL
the_reverse : oriented_face ;
END_LOCAL;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (a_face) ) THEN
the_reverse := dummy_tri ||
face(set_of_topology_reversed(a_face.bounds)) ||
oriented_face(a_face\oriented_face.face_element,
NOT (a_face\oriented_face.orientation)) ;
ELSE
the_reverse := dummy_tri ||
face(set_of_topology_reversed(a_face.bounds)) ||
oriented_face(a_face, FALSE) ;
END_IF;
RETURN (the_reverse);
END_FUNCTION;
FUNCTION first_proj_axis
(z_axis: direction; arg: direction) : direction;
LOCAL
x_axis : direction;
v : direction;
z : direction;
x_vec : vector;
END_LOCAL;
IF (NOT EXISTS(z_axis)) THEN
RETURN (?) ;
ELSE
z := normalise(z_axis);
IF NOT EXISTS(arg) THEN
IF ((z.direction_ratios <> [1.0,0.0,0.0]) AND
(z.direction_ratios <> [-1.0,0.0,0.0])) THEN
v := dummy_gri || direction([1.0,0.0,0.0]);
ELSE
v := dummy_gri || direction([0.0,1.0,0.0]);
END_IF;
ELSE
IF (arg.dim <> 3) THEN
RETURN (?) ;
END_IF;
IF ((cross_product(arg,z).magnitude) = 0.0) THEN
RETURN (?);
ELSE
v := normalise(arg);
END_IF;
END_IF;
x_vec := scalar_times_vector(dot_product(v, z), z);
x_axis := vector_difference(v, x_vec).orientation;
x_axis := normalise(x_axis);
END_IF;
RETURN(x_axis);
END_FUNCTION;
FUNCTION gbsf_check_curve
(cv: representation_item) : BOOLEAN;
IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN
RETURN (FALSE);
END_IF;
IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE'] * TYPEOF(cv)) = 1 THEN
RETURN (TRUE);
ELSE
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect = UNKNOWN)) THEN
RETURN (TRUE);
ELSE
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(cv)) AND (cv\composite_curve.self_intersect = FALSE) OR (cv\composite_curve.self_intersect = UNKNOWN)) THEN
RETURN (SIZEOF(QUERY(seg <* cv\composite_curve.segments | NOT (gbsf_check_curve(seg.parent_curve)))) = 0);
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN
RETURN (gbsf_check_curve(cv\curve_replica.parent_curve));
ELSE
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)))) THEN
RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN
RETURN ((gbsf_check_curve(cv\pcurve.reference_to_curve\representation.items[1])) AND (gbsf_check_surface(cv\pcurve.basis_surface)));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN
IF (SIZEOF(cv\polyline.points) >= 3) THEN
RETURN (TRUE);
END_IF;
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
IF gbsf_check_curve(cv\surface_curve.curve_3d) THEN
REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry);
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
IF NOT gbsf_check_surface(cv\surface_curve.associated_geometry[i]) THEN
RETURN (FALSE);
END_IF;
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
IF NOT gbsf_check_curve(cv\surface_curve.associated_geometry[i]) THEN
RETURN (FALSE);
END_IF;
END_IF;
END_IF;
END_REPEAT;
RETURN (TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN (FALSE);
END_FUNCTION;
FUNCTION gbsf_check_point
(pnt: point) : BOOLEAN;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) THEN
RETURN (TRUE);
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) THEN
RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN
RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE' IN TYPEOF(pnt) THEN
RETURN ((gbsf_check_curve(pnt\degenerate_pcurve.reference_to_curve\representation.items[1])) AND (gbsf_check_surface(pnt\degenerate_pcurve.basis_surface)));
END_IF;
END_IF;
END_IF;
END_IF;
RETURN (FALSE);
END_FUNCTION;
FUNCTION gbsf_check_surface
(sf: surface) : BOOLEAN;
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND (sf\b_spline_surface.self_intersect = FALSE) OR (sf\b_spline_surface.self_intersect = UNKNOWN)) THEN
RETURN (TRUE);
ELSE
IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPHERICAL_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOROIDAL_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF(sf)) = 1 THEN
RETURN (TRUE);
ELSE
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF(sf)) AND (sf\offset_surface.self_intersect = FALSE) OR (sf\offset_surface.self_intersect = UNKNOWN)) THEN
RETURN (gbsf_check_surface(sf\offset_surface.basis_surface));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF(sf) THEN
REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface.segments);
REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface.segments[i]);
IF NOT (gbsf_check_surface(sf\rectangular_composite_surface.segments[i][j].parent_surface)) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
END_REPEAT;
RETURN (TRUE);
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(sf) THEN
RETURN (gbsf_check_surface(sf\surface_replica.parent_surface));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(sf) THEN
RETURN (gbsf_check_curve(sf\swept_surface.swept_curve));
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN (FALSE);
END_FUNCTION;
FUNCTION get_basis_surface
(c: curve_on_surface) : SET [0:2] OF surface;
LOCAL
surfs : SET[0:2] OF surface;
n : INTEGER;
END_LOCAL;
surfs := [];
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF (c) THEN
surfs := [c\pcurve.basis_surface];
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF (c) THEN
n := SIZEOF(c\surface_curve.associated_geometry);
REPEAT i := 1 TO n;
surfs := surfs +
associated_surface(c\surface_curve.associated_geometry[i]);
END_REPEAT;
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF (c) THEN
(* For a composite_curve_on_surface the basis_surface is the intersection
of the basis_surfaces of all the segments. *)
n := SIZEOF(c\composite_curve.segments);
surfs := get_basis_surface(
c\composite_curve.segments[1].parent_curve);
IF n > 1 THEN
REPEAT i := 2 TO n;
surfs := surfs * get_basis_surface(
c\composite_curve.segments[i].parent_curve);
END_REPEAT;
END_IF;
END_IF;
RETURN(surfs);
END_FUNCTION;
FUNCTION get_description_value
(obj: description_attribute_select) : text;
LOCAL
description_bag : BAG OF description_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM'));
END_LOCAL;
IF SIZEOF(description_bag) = 1 THEN
RETURN (description_bag[1].attribute_value);
ELSE
RETURN (?);
END_IF;
END_FUNCTION;
FUNCTION get_id_value
(obj: id_attribute_select) : identifier;
LOCAL
id_bag : BAG OF id_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM'));
END_LOCAL;
IF SIZEOF(id_bag) = 1 THEN
RETURN (id_bag[1].attribute_value);
ELSE
RETURN (?);
END_IF;
END_FUNCTION;
FUNCTION get_name_value
(obj: name_attribute_select) : label;
LOCAL
name_bag : BAG OF name_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.' + 'NAMED_ITEM'));
END_LOCAL;
IF SIZEOF(name_bag) = 1 THEN
RETURN (name_bag[1].attribute_value);
ELSE
RETURN (?);
END_IF;
END_FUNCTION;
FUNCTION get_role
(obj: role_select) : object_role;
LOCAL
role_bag : BAG OF role_association := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE'));
END_LOCAL;
IF SIZEOF(role_bag) = 1 THEN
RETURN (role_bag[1].role);
ELSE
RETURN (?);
END_IF;
END_FUNCTION;
FUNCTION get_shape_aspect_property_definition_representations
(s_a_instance: shape_aspect) : SET [0:?] 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, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION.DEFINITION'));
IF (SIZEOF(pd_set) < 1) THEN
RETURN (pdr_set);
END_IF;
REPEAT i := 1 TO HIINDEX(pd_set);
pdr_set := pdr_set + (QUERY(pdr <* USEDIN(pd_set[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
END_REPEAT;
RETURN (pdr_set);
END_FUNCTION;
FUNCTION is_acyclic
(arg: generic_expression) : BOOLEAN;
RETURN (acyclic (arg, []));
END_FUNCTION;
FUNCTION is_int_expr
(arg: numeric_expression) : LOGICAL;
LOCAL
i: INTEGER := 0;
END_LOCAL;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_LITERAL' IN TYPEOF(arg)
THEN
RETURN (TRUE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_LITERAL' IN TYPEOF(arg)
THEN
RETURN (FALSE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg)
THEN
RETURN (TRUE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg)
THEN
RETURN (FALSE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg)
THEN
RETURN (is_int_expr(arg\unary_numeric_expression.operand));
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg)
THEN
RETURN (is_int_expr(arg\unary_numeric_expression.operand));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COS_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQUARE_ROOT_FUNCTION'
IN TYPEOF(arg))
THEN
RETURN (FALSE);
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULT_EXPRESSION'
IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAXIMUM_FUNCTION'
IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINIMUM_FUNCTION'
IN TYPEOF(arg))
THEN
REPEAT i :=1 TO SIZEOF (
arg\multiple_arity_numeric_expression.operands);
IF NOT
is_int_expr(arg\multiple_arity_numeric_expression.operands[i])
THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_EXPRESSION'
IN TYPEOF(arg))
THEN
RETURN (is_int_expr(arg\binary_numeric_expression.operands[1])
AND is_int_expr(arg\binary_numeric_expression.operands[2]));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg))
THEN
RETURN(TRUE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg)
THEN
RETURN (FALSE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg)
THEN
RETURN (TRUE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg)
THEN
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_VALUE_FUNCTION'
IN TYPEOF(arg)
THEN
RETURN (TRUE);
ELSE
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INTEGER_DEFINED_FUNCTION'
IN TYPEOF(arg)
THEN
RETURN(TRUE) ;
END_IF;
IF'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg)
THEN
RETURN(FALSE) ;
END_IF ;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_DEFINED_FUNCTION'
IN TYPEOF(arg)
THEN
RETURN(FALSE) ;
END_IF ;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_DEFINED_FUNCTION'
IN TYPEOF(arg)
THEN
RETURN (FALSE) ;
END_IF ;
RETURN (FALSE);
END_FUNCTION;
FUNCTION is_SQL_mappable
(arg: expression) : LOGICAL;
LOCAL
i: INTEGER;
END_LOCAL;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_NUMERIC_EXPRESSION'
IN TYPEOF (arg)
THEN
RETURN (TRUE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION'
IN TYPEOF (arg)
THEN
RETURN (TRUE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg)
THEN
RETURN (is_SQL_mappable(arg\unary_numeric_expression.operand));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COS_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQUARE_ROOT_FUNCTION'
IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_FUNCTION'
IN TYPEOF(arg))
THEN
RETURN (FALSE);
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg))
OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg))
OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAXIMUM_FUNCTION'
IN TYPEOF(arg))
OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINIMUM_FUNCTION'
IN TYPEOF(arg))
THEN
REPEAT i :=1 TO SIZEOF (
arg\multiple_arity_numeric_expression.operands);
IF NOT is_SQL_mappable(
arg\multiple_arity_numeric_expression.operands[i])
THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SLASH_EXPRESSION' IN
TYPEOF(arg))
THEN
RETURN (is_SQL_mappable(
arg\binary_numeric_expression.operands[1])
AND is_SQL_mappable(arg\binary_numeric_expression.operands[2]));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg))
OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_EXPRESSION'
IN TYPEOF(arg))
THEN
RETURN (FALSE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION'
IN TYPEOF (arg)
THEN
RETURN (TRUE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NOT_EXPRESSION' IN TYPEOF (arg)
THEN
RETURN (is_SQL_mappable (arg\UNARY_GENERIC_EXPRESSION.OPERAND));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ODD_FUNCTION'IN TYPEOF (arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.XOR_EXPRESSION'
IN TYPEOF (arg))
THEN
RETURN (FALSE);
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AND_EXPRESSION' IN TYPEOF (arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OR_EXPRESSION' IN TYPEOF (arg))
THEN
REPEAT i:=1 TO SIZEOF (
arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS);
IF NOT is_SQL_mappable (
arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS[i])
THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EQUALS_EXPRESSION' IN TYPEOF (arg)
THEN
RETURN(is_SQL_mappable (
arg\BINARY_GENERIC_EXPRESSION.OPERANDS [1])
AND is_SQL_mappable(
arg\BINARY_GENERIC_EXPRESSION.OPERANDS [2]));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_EQUAL' IN TYPEOF (arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_GREATER'
IN TYPEOF (arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_GREATER_EQUAL'
IN TYPEOF (arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_LESS'
IN TYPEOF (arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_LESS_EQUAL'
IN TYPEOF (arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_NOT_EQUAL'
IN TYPEOF (arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LIKE_EXPRESSION'
IN TYPEOF (arg))
THEN
RETURN (is_SQL_mappable (arg\COMPARISON_EXPRESSION.OPERANDS[1])
AND is_SQL_mappable (arg\COMPARISON_EXPRESSION.OPERANDS[2]));
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INTERVAL_EXPRESSION' IN TYPEOF(arg)
THEN
RETURN (is_SQL_mappable(arg\interval_expression.interval_low)
AND is_SQL_mappable(arg\interval_expression.interval_high)
AND is_SQL_mappable(arg\interval_expression.interval_item));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_DEFINED_FUNCTION'
IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_DEFINED_FUNCTION'
IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_DEFINED_FUNCTION'
IN TYPEOF(arg))
THEN
RETURN (FALSE) ;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_STRING_EXPRESSION'
IN TYPEOF(ARG)
THEN
RETURN (TRUE);
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDEX_EXPRESSION' IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBSTRING_EXPRESSION'
IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCAT_EXPRESSION'
IN TYPEOF(arg))
OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORMAT_FUNCTION'
IN TYPEOF(arg))
THEN
RETURN (FALSE);
END_IF;
RETURN (FALSE);
END_FUNCTION;
FUNCTION item_in_context
(item: representation_item; cntxt: representation_context) : BOOLEAN;
LOCAL
y : BAG OF representation_item;
END_LOCAL;
-- If there is one or more representation using both the item
-- and cntxt return true.
IF SIZEOF(USEDIN(item,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS')
* cntxt.representations_in_context) > 0 THEN
RETURN (TRUE);
-- Determine the bag of representation_items that reference
-- item
ELSE y := QUERY(z <* USEDIN (item , '') |
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z));
-- Ensure that the bag is not empty
IF SIZEOF(y) > 0 THEN
-- For each element in the bag
REPEAT i := 1 TO HIINDEX(y);
-- Check to see it is an item in the input cntxt.
IF item_in_context(y[i], cntxt) THEN
RETURN (TRUE);
END_IF;
END_REPEAT;
END_IF;
END_IF;
-- Return false when all possible branches have been checked
-- with no success.
RETURN (FALSE);
END_FUNCTION;
FUNCTION leap_year
(year: year_number) : BOOLEAN;
IF ((((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0)) THEN
RETURN (TRUE);
ELSE
RETURN (FALSE);
END_IF;
END_FUNCTION;
FUNCTION list_face_loops
(f: face) : LIST [0:?] OF loop;
LOCAL
loops : LIST[0:?] OF loop := [];
END_LOCAL;
REPEAT i := 1 TO SIZEOF(f.bounds);
loops := loops +(f.bounds[i].bound);
END_REPEAT;
RETURN(loops);
END_FUNCTION;
FUNCTION list_of_topology_reversed
(a_list: list_of_reversible_topology_item) : list_of_reversible_topology_item;
LOCAL
the_reverse : list_of_reversible_topology_item;
END_LOCAL;
the_reverse := [];
REPEAT i := 1 TO SIZEOF (a_list);
the_reverse := topology_reversed (a_list [i]) + the_reverse;
END_REPEAT;
RETURN (the_reverse);
END_FUNCTION;
FUNCTION list_to_array
(lis: LIST [0:?] OF GENERIC: T; low: INTEGER; u: INTEGER) : ARRAY [low:u] OF GENERIC: T;
LOCAL
n : INTEGER;
res : ARRAY [low:u] OF GENERIC : T;
END_LOCAL;
n := SIZEOF(lis);
IF (n <> (u-low +1)) THEN
RETURN(?);
ELSE
res := [lis[1] : n];
REPEAT i := 2 TO n;
res[low+i-1] := lis[i];
END_REPEAT;
RETURN(res);
END_IF;
END_FUNCTION;
FUNCTION list_to_set
(l: LIST [0:?] OF GENERIC: T) : SET [0:?] OF GENERIC: T;
LOCAL
s : SET OF GENERIC:T := [];
END_LOCAL;
REPEAT i := 1 TO SIZEOF(l);
s := s + l[i];
END_REPEAT;
RETURN(s);
END_FUNCTION;
FUNCTION make_array_of_array
(lis: LIST [1:?] OF LIST [1:?] OF GENERIC: T; low1: INTEGER; u1: INTEGER; low2: INTEGER; u2: INTEGER) : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC: T;
LOCAL
res : ARRAY[low1:u1] OF ARRAY [low2:u2] OF GENERIC : T;
END_LOCAL;
(* Check input dimensions for consistency *)
IF (u1-low1+1) <> SIZEOF(lis) THEN
RETURN (?);
END_IF;
IF (u2 - low2 + 1 ) <> SIZEOF(lis[1]) THEN
RETURN (?) ;
END_IF;
(* Initialise res with values from lis[1] *)
res := [list_to_array(lis[1], low2, u2) : (u1-low1 + 1)];
REPEAT i := 2 TO HIINDEX(lis);
IF (u2-low2+1) <> SIZEOF(lis[i]) THEN
RETURN (?);
END_IF;
res[low1+i-1] := list_to_array(lis[i], low2, u2);
END_REPEAT;
RETURN (res);
END_FUNCTION;
FUNCTION mixed_loop_type_set
(l: SET [0:?] OF loop) : LOGICAL;
LOCAL
poly_loop_type: LOGICAL;
END_LOCAL;
IF(SIZEOF(l) <= 1) THEN
RETURN(FALSE);
END_IF;
poly_loop_type := ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLY_LOOP' IN TYPEOF(l[1]));
REPEAT i := 2 TO SIZEOF(l);
IF(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type)
THEN
RETURN(TRUE);
END_IF;
END_REPEAT;
RETURN(FALSE);
END_FUNCTION;
FUNCTION msb_shells
(brep: manifold_solid_brep) : SET [1:?] OF closed_shell;
LOCAL
return_set: SET[1:?] OF closed_shell := [brep.outer];
END_LOCAL;
IF SIZEOF(QUERY(msbtype <* TYPEOF(brep) |
msbtype LIKE '*BREP_WITH_VOIDS')) >= 1
THEN
return_set := return_set + brep\brep_with_voids.voids;
END_IF;
RETURN(return_set);
END_FUNCTION;
FUNCTION msf_curve_check
(cv: representation_item) : BOOLEAN;
IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN
RETURN(FALSE);
END_IF;
(* b_spline_curves shall not self-intersect
*)
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (cv)) AND
(cv\b_spline_curve.self_intersect = FALSE)OR
(cv\b_spline_curve.self_intersect = UNKNOWN)) THEN
RETURN(TRUE);
ELSE
(* conics and lines are valid curve types
*)
IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE']
* TYPEOF (cv)) = 1 THEN
RETURN(TRUE);
ELSE
(* a curve_replica shall reference a valid curve
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN
RETURN (msf_curve_check(cv\curve_replica.parent_curve));
ELSE
(* an offset_curve_3d shall not self-intersect and
shall reference a valid curve; a polyline is not a
valid basis_curve
*)
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (cv))
AND
((cv\offset_curve_3d.self_intersect = FALSE) OR
(cv\offset_curve_3d.self_intersect = UNKNOWN))
AND
(NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF
(cv\offset_curve_3d.basis_curve)))) THEN
RETURN (msf_curve_check(cv\offset_curve_3d.basis_curve));
ELSE
(* a pcurve shall reference a valid curve and a valid
basis_surface
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN
RETURN ((msf_curve_check
(cv\pcurve.reference_to_curve\representation.items[1])) AND
(msf_surface_check(cv\pcurve.basis_surface)));
ELSE
(* a surface_curve references a curve_3d and one or
two pcurves or one or two surfaces or one of
each; all of these references shall be valid
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
(* if the curve reference is correct, check also the rest
*)
IF msf_curve_check(cv\surface_curve.curve_3d) THEN
REPEAT i := 1 TO SIZEOF
(cv\surface_curve.associated_geometry);
(* do for one or two associated_geometrys:
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN
TYPEOF (cv\surface_curve.associated_geometry[i]) THEN
IF NOT msf_surface_check
(cv\surface_curve.associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF
(cv\surface_curve.associated_geometry[i]) THEN
IF NOT msf_curve_check
(cv\surface_curve.associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
END_IF;
END_IF;
END_REPEAT;
RETURN(TRUE);
END_IF;
ELSE
(* a polyline shall have at least 3 points
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN
IF (SIZEOF (cv\polyline.points) >= 3) THEN RETURN (TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
(* FALSE is returned if the input parameter cv is not a valid curve.
*)
RETURN (FALSE);
END_FUNCTION;
FUNCTION msf_surface_check
(surf: surface) : BOOLEAN;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN
RETURN(TRUE);
ELSE
(* a swept_surface shall have a valid sweeping curve
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (surf) THEN
RETURN (msf_curve_check(surf\swept_surface.swept_curve));
ELSE
(* an offset_surface shall not self-intersect and shall
reference a valid surface
*)
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF (surf)) AND
(surf\offset_surface.self_intersect = FALSE) OR
(surf\offset_surface.self_intersect = UNKNOWN)) THEN
RETURN (msf_surface_check(surf\offset_surface.basis_surface));
ELSE
(* a surface_replica shall have a valid parent surface
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) THEN
RETURN(msf_surface_check(surf\surface_replica.parent_surface));
ELSE
(* a b_spline_surface shall not self-intersect
*)
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND
(surf\b_spline_surface.self_intersect = FALSE) OR
(surf\b_spline_surface.self_intersect = UNKNOWN)) THEN
RETURN(TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN(FALSE);
END_FUNCTION;
FUNCTION nmsf_curve_check
(cv: representation_item) : BOOLEAN;
IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1
THEN RETURN(FALSE);
ELSE
(* b_spline_curves shall not self-intersect
*)
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (cv)) AND
(cv\b_spline_curve.self_intersect = FALSE) OR
(cv\b_spline_curve.self_intersect = UNKNOWN))
THEN RETURN(TRUE);
ELSE
(* conics and lines are valid curve types
*)
IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE'] * TYPEOF (cv)) = 1 THEN
RETURN(TRUE);
ELSE
(* a curve_replica shall reference a valid curve
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN
RETURN (nmsf_curve_check(cv\curve_replica.parent_curve));
ELSE
(* an offset_curve_3d shall not self-intersect and
shall reference a valid curve; a polyline is not a
valid basis_curve
*)
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (cv))
AND
((cv\offset_curve_3d.self_intersect = FALSE) OR
(cv\offset_curve_3d.self_intersect = UNKNOWN))
AND
(NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF
(cv\offset_curve_3d.basis_curve)))) THEN
RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve));
ELSE
(* a pcurve shall reference a valid curve and a valid
basis_surface
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN
RETURN ((nmsf_curve_check
(cv\pcurve.reference_to_curve\representation.items[1]))
AND
(nmsf_surface_check(cv\pcurve.basis_surface)));
ELSE
(* a surface_curve references a curve_3d and one or
two pcurves or one or two surfaces or one of
each; all of these references shall be valid
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
(* if the curve reference is correct, check also the rest
*)
IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN
REPEAT i := 1 TO SIZEOF
(cv\surface_curve.associated_geometry);
(* do for one or two associated_geometrys:
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN
TYPEOF (cv\surface_curve.associated_geometry[i]) THEN
IF NOT nmsf_surface_check
(cv\surface_curve.associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF
(cv\surface_curve.associated_geometry[i]) THEN
IF NOT nmsf_curve_check
(cv\surface_curve.associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
END_IF;
END_IF;
END_REPEAT;
RETURN(TRUE);
END_IF;
ELSE
(* a polyline shall have at least 3 points
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN
IF (SIZEOF (cv\polyline.points) >= 3) THEN RETURN (TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
(* FALSE is returned if the input parameter cv is not a valid curve.
*)
RETURN (FALSE);
END_FUNCTION;
FUNCTION nmsf_surface_check
(surf: surface) : BOOLEAN;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN
RETURN(TRUE);
ELSE
(* a swept_surface shall have a valid sweeping curve
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (surf) THEN
RETURN (nmsf_curve_check(surf\swept_surface.swept_curve));
ELSE
(* an offset_surface shall not self-intersect and shall
reference a valid surface
*)
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF (surf)) AND
(surf\offset_surface.self_intersect = FALSE) OR
(surf\offset_surface.self_intersect = UNKNOWN)) THEN
RETURN (nmsf_surface_check(surf\offset_surface.basis_surface));
ELSE
(* a surface_replica shall have a valid parent surface
*)
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) THEN
RETURN(nmsf_surface_check(surf\surface_replica.parent_surface));
ELSE
(* a b_spline_surface shall not self-intersect
*)
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf))
AND
(surf\b_spline_surface.self_intersect = FALSE) OR
(surf\b_spline_surface.self_intersect = UNKNOWN)) THEN
RETURN(TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN(FALSE);
END_FUNCTION;
FUNCTION normalise
(arg: vector_or_direction) : vector_or_direction;
LOCAL
ndim : INTEGER;
v : direction;
result : vector_or_direction;
vec : vector;
mag : REAL;
END_LOCAL;
IF NOT EXISTS (arg) THEN
result := ?;
(* When function is called with invalid data a NULL result is returned *)
ELSE
ndim := arg.dim;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg) THEN
BEGIN
v := dummy_gri || direction(arg\vector.orientation.direction_ratios);
IF arg.magnitude = 0.0 THEN
RETURN(?);
ELSE
vec := dummy_gri || vector (v, 1.0);
END_IF;
END;
ELSE
v := dummy_gri || direction (arg.direction_ratios);
END_IF;
mag := 0.0;
REPEAT i := 1 TO ndim;
mag := mag + v.direction_ratios[i]*v.direction_ratios[i];
END_REPEAT;
IF mag > 0.0 THEN
mag := SQRT(mag);
REPEAT i := 1 TO ndim;
v.direction_ratios[i] := v.direction_ratios[i]/mag;
END_REPEAT;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg) THEN
vec.orientation := v;
result := vec;
ELSE
result := v;
END_IF;
ELSE
RETURN(?);
END_IF;
END_IF;
RETURN (result);
END_FUNCTION;
FUNCTION open_shell_reversed
(a_shell: open_shell) : oriented_open_shell;
LOCAL
the_reverse : oriented_open_shell;
END_LOCAL;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_OPEN_SHELL' IN TYPEOF (a_shell) ) THEN
the_reverse := dummy_tri ||
connected_face_set (
a_shell\connected_face_set.cfs_faces) ||
open_shell () || oriented_open_shell(
a_shell\oriented_open_shell.open_shell_element,
(NOT (a_shell\oriented_open_shell.orientation)));
ELSE
the_reverse := dummy_tri ||
connected_face_set (
a_shell\connected_face_set.cfs_faces) ||
open_shell () || oriented_open_shell (a_shell, FALSE);
END_IF;
RETURN (the_reverse);
END_FUNCTION;
FUNCTION orthogonal_complement
(vec: direction) : direction;
LOCAL
result : direction ;
END_LOCAL;
IF (vec.dim <> 2) OR NOT EXISTS (vec) THEN
RETURN(?);
ELSE
result := dummy_gri || direction([-vec.direction_ratios[2],
vec.direction_ratios[1]]);
RETURN(result);
END_IF;
END_FUNCTION;
FUNCTION path_head_to_tail
(a_path: path) : LOGICAL;
LOCAL
n : INTEGER;
p : LOGICAL := TRUE;
END_LOCAL;
n := SIZEOF (a_path.edge_list);
REPEAT i := 2 TO n;
p := p AND (a_path.edge_list[i-1].edge_end :=:
a_path.edge_list[i].edge_start);
END_REPEAT;
RETURN (p);
END_FUNCTION;
FUNCTION path_reversed
(a_path: path) : oriented_path;
LOCAL
the_reverse : oriented_path ;
END_LOCAL;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (a_path) ) THEN
the_reverse := dummy_tri ||
path(list_of_topology_reversed (a_path.edge_list)) ||
oriented_path(a_path\oriented_path.path_element,
NOT(a_path\oriented_path.orientation)) ;
ELSE
the_reverse := dummy_tri ||
path(list_of_topology_reversed (a_path.edge_list)) ||
oriented_path(a_path, FALSE);
END_IF;
RETURN (the_reverse);
END_FUNCTION;
FUNCTION scalar_times_vector
(scalar: REAL; vec: vector_or_direction) : vector;
LOCAL
v : direction;
mag : REAL;
result : vector;
END_LOCAL;
IF NOT EXISTS (scalar) OR NOT EXISTS (vec) THEN
RETURN (?) ;
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF (vec) THEN
v := dummy_gri || direction(vec\vector.orientation.direction_ratios);
mag := scalar * vec.magnitude;
ELSE
v := dummy_gri || direction(vec.direction_ratios);
mag := scalar;
END_IF;
IF (mag < 0.0 ) THEN
REPEAT i := 1 TO SIZEOF(v.direction_ratios);
v.direction_ratios[i] := -v.direction_ratios[i];
END_REPEAT;
mag := -mag;
END_IF;
result := dummy_gri || vector(normalise(v), mag);
END_IF;
RETURN (result);
END_FUNCTION;
FUNCTION second_proj_axis
(z_axis: direction; x_axis: direction; arg: direction) : direction;
LOCAL
y_axis : vector;
v : direction;
temp : vector;
END_LOCAL;
IF NOT EXISTS(arg) THEN
v := dummy_gri || direction([0.0,1.0,0.0]);
ELSE
v := arg;
END_IF;
temp := scalar_times_vector(dot_product(v, z_axis), z_axis);
y_axis := vector_difference(v, temp);
temp := scalar_times_vector(dot_product(v, x_axis), x_axis);
y_axis := vector_difference(y_axis, temp);
y_axis := normalise(y_axis);
RETURN(y_axis.orientation);
END_FUNCTION;
FUNCTION set_of_topology_reversed
(a_set: set_of_reversible_topology_item) : set_of_reversible_topology_item;
LOCAL
the_reverse : set_of_reversible_topology_item;
END_LOCAL;
the_reverse := [];
REPEAT i := 1 TO SIZEOF (a_set);
the_reverse := the_reverse + topology_reversed (a_set [i]);
END_REPEAT;
RETURN (the_reverse);
END_FUNCTION;
FUNCTION shell_reversed
(a_shell: shell) : shell;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN TYPEOF (a_shell) ) THEN
RETURN (open_shell_reversed (a_shell));
ELSE
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL' IN TYPEOF (a_shell) ) THEN
RETURN (closed_shell_reversed (a_shell));
ELSE
RETURN (?);
END_IF;
END_IF;
END_FUNCTION;
FUNCTION surface_condition_correlation
(pd: property_definition; rep: representation) : LOGICAL;
CASE pd.name OF
'visual appearance', 'tactile appearance', 'contact ratio', 'hardness', 'treatment result', 'surface texture' :
RETURN(pd.name = rep.name);
OTHERWISE : RETURN(UNKNOWN);
END_CASE;
END_FUNCTION;
FUNCTION surface_weights_positive
(b: rational_b_spline_surface) : BOOLEAN;
LOCAL
result : BOOLEAN := TRUE;
END_LOCAL;
REPEAT i := 0 TO b.u_upper;
REPEAT j := 0 TO b.v_upper;
IF (b.weights[i][j] <= 0.0) THEN
result := FALSE;
RETURN(result);
END_IF;
END_REPEAT;
END_REPEAT;
RETURN(result);
END_FUNCTION;
FUNCTION topology_reversed
(an_item: reversible_topology) : reversible_topology;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE' IN TYPEOF (an_item)) THEN
RETURN (edge_reversed (an_item));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PATH' IN TYPEOF (an_item)) THEN
RETURN (path_reversed (an_item));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BOUND' IN TYPEOF (an_item)) THEN
RETURN (face_bound_reversed (an_item));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE' IN TYPEOF (an_item)) THEN
RETURN (face_reversed (an_item));
END_IF;
IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL' IN TYPEOF (an_item)) THEN
RETURN (shell_reversed (an_item));
END_IF;
IF ('SET' IN TYPEOF (an_item)) THEN
RETURN (set_of_topology_reversed (an_item));
END_IF;
IF ('LIST' IN TYPEOF (an_item)) THEN
RETURN (list_of_topology_reversed (an_item));
END_IF;
RETURN (?);
END_FUNCTION;
FUNCTION type_check_function
(the_type: GENERIC; sub_names: SET [0:?] OF STRING; criterion: INTEGER) : LOGICAL;
IF ((NOT EXISTS(the_type)) OR (NOT ({0 <= criterion <= 3})) OR (SIZEOF(sub_names) = 0)) THEN
RETURN (UNKNOWN);
ELSE
CASE criterion OF
0:
RETURN (SIZEOF(sub_names * TYPEOF(the_type)) > 0);
1:
RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 0);
2:
RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 1);
3:
RETURN (SIZEOF(sub_names * TYPEOF(the_type)) <= 1);
END_CASE;
END_IF;
END_FUNCTION;
FUNCTION using_items
(item: founded_item_select; checked_items: SET [0:?] OF founded_item_select) : SET [0:?] OF founded_item_select;
LOCAL
new_check_items : SET OF founded_item_select;
result_items : SET OF founded_item_select;
next_items : SET OF founded_item_select;
END_LOCAL;
result_items := [];
new_check_items := checked_items + item;
-- Find the set of representation_items or founded_items
-- in which item is used directly.
next_items := QUERY(z <* bag_to_set( USEDIN(item , '')) |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)) OR
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FOUNDED_ITEM' IN TYPEOF(z)));
-- If the set of next_items is not empty;
IF SIZEOF(next_items) > 0 THEN
-- For each element in the set, find the using_items recursively
REPEAT i := 1 TO HIINDEX(next_items);
-- Check for loop in data model, i.e. one of the next_items
-- occurred earlier in the set of check_items;
IF NOT(next_items[i] IN new_check_items) THEN
result_items := result_items + next_items[i] +
using_items(next_items[i],new_check_items);
END_IF;
END_REPEAT;
END_IF;
-- return the set of representation_items or founded_items
-- in which the input item is used directly and indirectly.
RETURN (result_items);
END_FUNCTION;
FUNCTION using_representations
(item: founded_item_select) : SET [0:?] OF representation;
LOCAL
results : SET OF representation;
result_bag : BAG OF representation;
intermediate_items : SET OF founded_item_select;
END_LOCAL;
-- Find the representations in which the item is used and add to the
-- results set.
results := [];
result_bag := USEDIN(item,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS');
IF SIZEOF(result_bag) > 0 THEN
REPEAT i := 1 TO HIINDEX(result_bag);
results := results + result_bag[i];
END_REPEAT;
END_IF;
-- Find all representation_items or founded_items
-- by which item is referenced directly or indirectly.
intermediate_items := using_items(item,[]);
-- If the set of intermediate items is not empty;
IF SIZEOF(intermediate_items) > 0 THEN
-- For each element in the set, add the
-- representations of that element.
REPEAT i := 1 TO HIINDEX(intermediate_items);
result_bag := USEDIN(intermediate_items[i],
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS');
IF SIZEOF(result_bag) > 0 THEN
REPEAT j := 1 TO HIINDEX(result_bag);
results := results + result_bag[j];
END_REPEAT;
END_IF;
END_REPEAT;
END_IF;
-- Return the set of representation in which the input item is
-- used directly and indirectly (through intervening
-- representation_items or founded items).
RETURN (results);
END_FUNCTION;
FUNCTION valid_basis_curve_in_2d_wireframe
(crv: curve) : BOOLEAN;
IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE'] *
TYPEOF (crv)) = 1
THEN RETURN (TRUE);
ELSE
-- if the curve is a trimmed_curve
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE')
IN TYPEOF (crv)) THEN
-- if a line, parabola, or hyperbola is being trimmed, then valid
IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARABOLA',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.HYPERBOLA'] *
TYPEOF(crv\trimmed_curve.basis_curve)) = 1
THEN RETURN (TRUE);
-- otherwise, recursively check basis_curve
ELSE RETURN (valid_basis_curve_in_2d_wireframe
(crv\trimmed_curve.basis_curve));
END_IF;
ELSE
-- recursively check the offset_curve basis curve
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_2D')
IN TYPEOF (crv))
THEN RETURN (valid_basis_curve_in_2d_wireframe
(crv\offset_curve_2d.basis_curve));
ELSE
-- recursively check the curve_replica parent curve
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA')
IN TYPEOF (crv))
THEN RETURN (valid_basis_curve_in_2d_wireframe
(crv\curve_replica.parent_curve));
ELSE
-- recursively check the composite_curve segments
IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE')
IN TYPEOF (crv)) THEN
RETURN (SIZEOF (QUERY (ccs <* crv\composite_curve.segments |
NOT (valid_basis_curve_in_2d_wireframe
(ccs.parent_curve)))) = 0);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN (FALSE);
END_FUNCTION;
FUNCTION valid_calendar_date
(date: calendar_date) : LOGICAL;
CASE date.month_component OF
1 : RETURN({ 1 <= date.day_component <= 31 });
2 : BEGIN
IF (leap_year(date.year_component)) THEN
RETURN({ 1 <= date.day_component <= 29 });
ELSE
RETURN({ 1 <= date.day_component <= 28 });
END_IF;
END;
3 : RETURN({ 1 <= date.day_component <= 31 });
4 : RETURN({ 1 <= date.day_component <= 30 });
5 : RETURN({ 1 <= date.day_component <= 31 });
6 : RETURN({ 1 <= date.day_component <= 30 });
7 : RETURN({ 1 <= date.day_component <= 31 });
8 : RETURN({ 1 <= date.day_component <= 31 });
9 : RETURN({ 1 <= date.day_component <= 30 });
10 : RETURN({ 1 <= date.day_component <= 31 });
11 : RETURN({ 1 <= date.day_component <= 30 });
12 : RETURN({ 1 <= date.day_component <= 31 });
END_CASE;
RETURN (FALSE);
END_FUNCTION;
FUNCTION valid_datum_target_parameters
(pdf: placed_datum_target_feature) : BOOLEAN;
LOCAL
rep_set : SET OF representation := [] ;
parameter_representations: SET OF representation;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(pdf.representation_associations);
rep_set := rep_set + pdf.representation_associations[i].used_representation;
END_REPEAT;
parameter_representations := QUERY(rep <* rep_set |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN
TYPEOF(rep)));
IF (SIZEOF( QUERY( srwp <* parameter_representations |
(SIZEOF( QUERY( i <* srwp.items |
(i.name='orientation') AND
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLACEMENT' IN TYPEOF(i)))) = 1))) <> 1) THEN
RETURN(FALSE);
END_IF;
CASE pdf\shape_aspect.description OF
'point': RETURN(SIZEOF(QUERY( srwp <* parameter_representations |
(SIZEOF(srwp.items) = 1))) = 1);
'circle': RETURN((SIZEOF( QUERY( srwp <* parameter_representations |
(SIZEOF(srwp.items) = 2))) = 1) AND
(SIZEOF( QUERY( srwp <* parameter_representations |
(SIZEOF( QUERY( i <* srwp.items |
(i.name='target diameter') AND
(SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i)
) = 2) )) = 1))) = 1));
'line': RETURN(SIZEOF( QUERY( srwp <* parameter_representations |
(SIZEOF( QUERY( i <* srwp.items |
(i.name='target length') AND
(SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i)
) = 2) )) = 1))) = 1);
'rectangle': RETURN((SIZEOF( QUERY( srwp <* parameter_representations |
(SIZEOF(srwp.items)= 3))) = 1) AND
(SIZEOF( QUERY( srwp <* parameter_representations |
(SIZEOF( QUERY( i <* srwp.items |
(i.name='target length') AND
(SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i)
) = 2))) = 1))) = 1) AND
(SIZEOF( QUERY( srwp <* parameter_representations |
(SIZEOF( QUERY( i <* srwp.items |
(i.name='target width') AND
(SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i)
) = 2))) = 1) )) = 1));
OTHERWISE : RETURN(FALSE);
END_CASE;
END_FUNCTION;
FUNCTION valid_geometrically_bounded_wf_curve
(crv: curve) : BOOLEAN;
IF SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' ] * TYPEOF (crv)) = 1 THEN
RETURN (TRUE);
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE' IN TYPEOF (crv) THEN
IF SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARABOLA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.HYPERBOLA' ] * TYPEOF (crv\trimmed_curve.basis_curve)) = 1 THEN
RETURN (TRUE);
ELSE
RETURN (valid_geometrically_bounded_wf_curve(crv\trimmed_curve.basis_curve));
END_IF ;
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (crv) THEN
RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN
RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (crv) THEN
RETURN ( SIZEOF (
QUERY ( ccs <* crv\composite_curve.segments| NOT valid_geometrically_bounded_wf_curve(ccs.parent_curve) )) = 0);
END_IF ;
END_IF ;
END_IF ;
END_IF ;
END_IF ;
RETURN (FALSE);
END_FUNCTION;
FUNCTION valid_geometrically_bounded_wf_point
(pnt: point) : BOOLEAN;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN
RETURN (TRUE);
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE' IN TYPEOF (pnt) THEN
RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA' IN TYPEOF (pnt) THEN
RETURN (valid_geometrically_bounded_wf_point(pnt\point_replica.parent_pt));
END_IF ;
END_IF ;
END_IF ;
RETURN (FALSE);
END_FUNCTION;
FUNCTION valid_measure_value
(m: measure_value) : BOOLEAN;
IF ('REAL' IN TYPEOF (m)) THEN
RETURN (m > 0.0);
ELSE
IF ('INTEGER' IN TYPEOF (m)) THEN
RETURN (m > 0);
ELSE
RETURN (TRUE);
END_IF;
END_IF;
END_FUNCTION;
FUNCTION valid_selected_instance_representation
(pd: product_definition_or_assembly_relationship) : LOGICAL;
LOCAL
properties: SET OF property_definition := bag_to_set(QUERY( prd<* USEDIN ( pd ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) |
(prd.name = 'occurrence selection' )));
property_definition_representations: SET OF property_definition_representation := bag_to_set(QUERY ( pdr <* USEDIN ( properties[1] , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') |
( pdr.used_representation.name = 'selection criteria' )));
selected_representation: representation;
END_LOCAL;
IF (SIZEOF( properties)<>1) THEN
RETURN(FALSE);
END_IF;
IF (SIZEOF(property_definition_representations)<>1) THEN
RETURN(FALSE);
END_IF;
selected_representation := property_definition_representations[1]\property_definition_representation.used_representation;
IF (SIZEOF(selected_representation\representation.items) <1) OR (SIZEOF(selected_representation\representation.items) >2) THEN
RETURN(FALSE);
END_IF;
IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items |
( SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_RANGE']* TYPEOF ( i ) ) = 1) AND
( i.name = 'selection quantity' ))) <> 1 ) THEN
RETURN(FALSE);
END_IF;
IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND
( i.name = 'selection control' )))> 1) THEN
RETURN(FALSE);
END_IF; --the selection control is not specified then the quantity shall be a qualified_representation_item or a value_range
IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items |
( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND
( i.name = 'selection control' ) ))= 0) AND
(SIZEOF ( QUERY ( i <* selected_representation\representation.items |
( i.name = 'selection quantity' ) AND
( SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUALIFIED_REPRESENTATION_ITEM' ,
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_RANGE']* TYPEOF ( i ) ) =0 ))) > 0 ) THEN
RETURN(FALSE);
END_IF;
RETURN(TRUE);
END_FUNCTION;
FUNCTION valid_time
(time: local_time) : BOOLEAN;
IF EXISTS(time.second_component) THEN
RETURN (EXISTS(time.minute_component));
ELSE
RETURN (TRUE);
END_IF;
END_FUNCTION;
FUNCTION valid_units
(m: measure_with_unit) : BOOLEAN;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TIME_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VOLUME_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACCELERATION_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( -2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CHARGE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( -2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ENERGY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORCE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FREQUENCY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ILLUMINANCE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( -2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESSURE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( -1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RESISTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VELOCITY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents( 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIOACTIVITY_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABSORBED_DOSE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
RETURN (FALSE);
END_IF;
END_IF;
RETURN (TRUE);
END_FUNCTION;
FUNCTION valid_wireframe_edge_curve
(crv: curve) : BOOLEAN;
IF SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' ] * TYPEOF (crv)) = 1 THEN
RETURN (TRUE);
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN
RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve));
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (crv) THEN
RETURN (valid_wireframe_edge_curve(crv\offset_curve_3d.basis_curve));
END_IF ;
END_IF ;
END_IF ;
RETURN (FALSE);
END_FUNCTION;
FUNCTION valid_wireframe_vertex_point
(pnt: point) : BOOLEAN;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN
RETURN (TRUE);
ELSE
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA' IN TYPEOF (pnt) THEN
RETURN (valid_wireframe_vertex_point(pnt\point_replica.parent_pt));
END_IF ;
END_IF ;
RETURN (FALSE);
END_FUNCTION;
FUNCTION validate_countersink_radii
(cskhole: solid_with_stepped_round_hole_and_conical_transitions) : BOOLEAN;
LOCAL
i,j : INTEGER;
n : INTEGER := 1 +
cskhole\solid_with_stepped_round_hole.segments;
smaller, larger : positive_length_measure;
END_LOCAL;
REPEAT i := 1 TO SIZEOF(cskhole.conical_transitions);
-- First check whether transition i applies to the entry of the hole or
-- the exit of a through hole - those cases only need to be checked for
-- the sign of the cone apex angle.
IF (((cskhole.conical_transitions[i].transition_number = 1)
AND (cskhole.conical_transitions[i].cone_apex_angle < 0))
XOR ((cskhole.conical_transitions[i].transition_number = n)
AND (cskhole.conical_transitions[i].cone_apex_angle > 0)))
THEN RETURN(FALSE);
ELSE
IF ((cskhole.conical_transitions[i].transition_number <> 1)
AND (cskhole.conical_transitions[i].transition_number <> n))
THEN
-- For all remaining transitions, check that the cone base radius
-- lies in the range of validity.
BEGIN
j := cskhole.conical_transitions[i].transition_number;
IF cskhole\solid_with_stepped_round_hole.segment_radii[j]
> cskhole\solid_with_stepped_round_hole.segment_radii[j-1]
THEN
BEGIN
IF (cskhole.conical_transitions[i].cone_apex_angle > 0)
THEN RETURN(FALSE);
END_IF;
larger
:= cskhole\solid_with_stepped_round_hole.segment_radii[j];
smaller
:= cskhole\solid_with_stepped_round_hole.segment_radii[j-1];
END;
ELSE
BEGIN
IF (cskhole.conical_transitions[i].cone_apex_angle < 0)
THEN RETURN(FALSE);
END_IF;
larger
:= cskhole\solid_with_stepped_round_hole.segment_radii[j-1];
smaller
:= cskhole\solid_with_stepped_round_hole.segment_radii[j];
END;
END_IF;
IF ((cskhole.conical_transitions[i].cone_base_radius > larger)
OR (cskhole.conical_transitions[i].cone_base_radius < smaller))
THEN RETURN(FALSE);
END_IF;
END;
END_IF;
END_IF;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
FUNCTION value_range_aggregate_rep_item
(agg: AGGREGATE OF representation_item) : BOOLEAN;
BEGIN
IF (SIZEOF(QUERY(i1 <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) )) = 6) THEN
RETURN (TRUE);
ELSE
RETURN (FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION value_range_wr1
(agg: compound_item_definition) : BOOLEAN;
BEGIN
IF (SIZEOF(agg) = 2) AND ((SIZEOF(QUERY (i1 <* agg | (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF
(i1)))) = 2) OR
(SIZEOF(QUERY (i2 <* agg | (
'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF
(i2)))) = 2))
THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION value_range_wr2
(agg: compound_item_definition) : BOOLEAN;
BEGIN
IF ((SIZEOF(QUERY (i <* agg | (i\representation_item.name = 'upper limit'))) = 1)
AND (SIZEOF(QUERY (i <* agg | (i\representation_item.name = 'lower limit'))) = 1))
THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION value_range_wr3
(agg: compound_item_definition) : BOOLEAN;
BEGIN
IF (SIZEOF(QUERY(i1 <* agg |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND
(SIZEOF (QUERY (i2 <* agg |
('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i2)) AND
(i1 :<>: i2) AND (i1\measure_with_unit.unit_component :=: i2\measure_with_unit.unit_component))) = 1))) = 2)
THEN
RETURN (TRUE);
ELSE
RETURN (FALSE);
END_IF;
END;
END_FUNCTION;
FUNCTION vector_difference
(arg1: vector_or_direction; arg2: vector_or_direction) : vector;
LOCAL
result : vector;
res, vec1, vec2 : direction;
mag, mag1, mag2 : REAL;
ndim : INTEGER;
END_LOCAL;
IF ((NOT EXISTS (arg1)) OR (NOT EXISTS (arg2))) OR (arg1.dim <> arg2.dim)
THEN
RETURN (?) ;
ELSE
BEGIN
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg1) THEN
mag1 := arg1.magnitude;
vec1 := arg1\vector.orientation;
ELSE
mag1 := 1.0;
vec1 := arg1;
END_IF;
IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg2) THEN
mag2 := arg2.magnitude;
vec2 := arg2\vector.orientation;
ELSE
mag2 := 1.0;
vec2 := arg2;
END_IF;
vec1 := normalise (vec1);
vec2 := normalise (vec2);
ndim := SIZEOF(vec1.direction_ratios);
mag := 0.0;
res := dummy_gri || direction(vec1.direction_ratios);
REPEAT i := 1 TO ndim;
res.direction_ratios[i] := mag1*vec1.direction_ratios[i] -
mag2*vec2.direction_ratios[i];
mag := mag + (res.direction_ratios[i]*res.direction_ratios[i]);
END_REPEAT;
IF (mag > 0.0 ) THEN
result := dummy_gri || vector( res, SQRT(mag));
ELSE
result := dummy_gri || vector( vec1, 0.0);
END_IF;
END;
END_IF;
RETURN (result);
END_FUNCTION;
END_SCHEMA;