34842 lines
1.7 MiB
34842 lines
1.7 MiB
SCHEMA step_merged_cad_schema;
|
|
|
|
(* this is a MODIFIED version of the merged schema
|
|
* original is at http://www.steptools.com/support/stdev_docs/stpcad/step_merged_cad_schema.exp
|
|
*
|
|
* modified to eliminate exp2cxx errors. To view changes, use one of
|
|
* - `git log -p data/STEPTools_merged_schema/step_merged_cad_schema.exp`
|
|
* - http://github.com/stepcode/stepcode/commits/master/data/STEPTools_merged_schema
|
|
*)
|
|
|
|
|
|
(* Constructed by merging:
|
|
* - AP242 (wg12n8324_ap242dis.exp)
|
|
* - AP214 (wg3n2628_ap214e3.exp)
|
|
* - AP203e2 (wg3n2635_ap203e2.exp)
|
|
* - Deprecated AP203e1 (ap203e1_types.exp)
|
|
* - AP242 DIS Fixes (ap242_fixes.exp)
|
|
*)
|
|
|
|
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', 'product_category_relationship', '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' ];
|
|
schema_date_stamp : STRING := 'Feb 19 18:28:57 2013';
|
|
schema_prefix : STRING := 'STEP_MERGED_CAD_SCHEMA.';
|
|
the_binarys : elementary_space := make_elementary_space(es_binarys);
|
|
the_booleans : elementary_space := make_elementary_space(es_booleans);
|
|
the_complex_numbers : elementary_space := make_elementary_space(es_complex_numbers);
|
|
the_complex_tuples : extended_tuple_space := make_extended_tuple_space(the_zero_tuple_space, the_complex_numbers);
|
|
the_empty_maths_tuple : maths_tuple := [];
|
|
the_empty_space : finite_space := make_finite_space([]);
|
|
the_generics : elementary_space := make_elementary_space(es_generics);
|
|
the_integer_tuples : extended_tuple_space := make_extended_tuple_space(the_zero_tuple_space, the_integers);
|
|
the_integers : elementary_space := make_elementary_space(es_integers);
|
|
the_logicals : elementary_space := make_elementary_space(es_logicals);
|
|
the_maths_spaces : elementary_space := make_elementary_space(es_maths_spaces);
|
|
the_neg1_one_interval : finite_real_interval := make_finite_real_interval(-1, closed, 1, closed);
|
|
the_neghalfpi_halfpi_interval : finite_real_interval := make_finite_real_interval(-0.500000 * 3.14159, closed, 0.500000 * 3.14159, closed);
|
|
the_negpi_pi_interval : finite_real_interval := make_finite_real_interval(-3.14159, open, 3.14159, closed);
|
|
the_nonnegative_reals : real_interval_from_min := make_real_interval_from_min(0, closed);
|
|
the_numbers : elementary_space := make_elementary_space(es_numbers);
|
|
the_real_tuples : extended_tuple_space := make_extended_tuple_space(the_zero_tuple_space, the_reals);
|
|
the_reals : elementary_space := make_elementary_space(es_reals);
|
|
the_strings : elementary_space := make_elementary_space(es_strings);
|
|
the_tuples : extended_tuple_space := make_extended_tuple_space(the_zero_tuple_space, the_generics);
|
|
the_zero_pi_interval : finite_real_interval := make_finite_real_interval(0, closed, 3.14159, closed);
|
|
the_zero_tuple_space : listed_product_space := make_listed_product_space([]);
|
|
END_CONSTANT;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE absorbed_dose_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE acceleration_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE action_item = SELECT
|
|
(action, -- AP214/AP242
|
|
action_directive, -- Common
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
action_request_solution, -- AP214/AP242
|
|
alternate_product_relationship, -- AP214/AP242
|
|
applied_action_assignment, -- AP214/AP242
|
|
applied_classification_assignment, -- AP214/AP242
|
|
applied_person_and_organization_assignment, -- AP214/AP242
|
|
approval_status, -- AP214/AP242
|
|
assembly_component_usage_substitute, -- AP214/AP242
|
|
certification, -- AP214/AP242
|
|
certification_item, -- AP203e2/AP242
|
|
characterized_object, -- AP203e2/AP242
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
classification_item, -- AP203e2/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_effectivity, -- Common
|
|
configuration_item, -- AP214/AP242
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
contract, -- AP214/AP242
|
|
document_file, -- AP214/AP242
|
|
document_reference_item, -- AP203e2/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
evaluated_characteristic, -- AP242
|
|
executed_action, -- AP214/AP242
|
|
general_property, -- AP214/AP242
|
|
identification_item, -- AP203e2/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organization, -- AP203e2/AP242
|
|
organization_relationship, -- AP214/AP242
|
|
organizational_project, -- AP214/AP242
|
|
person_and_organization, -- Common
|
|
presentation_area, -- AP214/AP242
|
|
product, -- AP214/AP242
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- Common
|
|
product_definition_relationship, -- Common
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- AP214/AP242
|
|
requirement_assigned_item, -- AP203e2/AP242
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
security_classification, -- AP214/AP242
|
|
security_classification_level, -- AP214/AP242
|
|
shape_aspect, -- AP214/AP242
|
|
shape_representation, -- AP214/AP242
|
|
versioned_action_request); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
TYPE action_method_items = SELECT
|
|
(action, -- AP242
|
|
action_method, -- AP242
|
|
action_property, -- AP242
|
|
applied_action_assignment, -- AP242
|
|
configuration_design, -- AP242
|
|
contract, -- AP242
|
|
document_file, -- AP242
|
|
event_occurrence, -- AP242
|
|
organization, -- AP242
|
|
organizational_project, -- AP242
|
|
person, -- AP242
|
|
person_and_organization, -- AP242
|
|
product, -- Common
|
|
product_concept, -- AP242
|
|
product_definition, -- AP242
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- AP242
|
|
product_definition_relationship, -- AP242
|
|
property_definition); -- AP242
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE action_request_item = SELECT
|
|
(action, -- AP214/AP242
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
alternate_product_relationship, -- AP214/AP242
|
|
assembly_component_usage_substitute, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_effectivity, -- AP214/AP242
|
|
configuration_item, -- AP214/AP242
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
document_file, -- AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
general_property, -- AP214/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organizational_project, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- AP214/AP242
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- AP203e2/AP242
|
|
product_definition_relationship, -- Common
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- Common
|
|
resource_property, -- AP214/AP242
|
|
shape_aspect, -- AP214/AP242
|
|
shape_representation, -- AP214/AP242
|
|
versioned_action_request); -- AP203e2/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE actuated_direction = ENUMERATION OF
|
|
(bidirectional,
|
|
positive_only,
|
|
negative_only,
|
|
not_actuated);
|
|
END_TYPE;
|
|
|
|
TYPE ahead_or_behind = ENUMERATION OF
|
|
(ahead,
|
|
exact,
|
|
behind);
|
|
END_TYPE;
|
|
|
|
TYPE amount_of_substance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE angle_direction_reference_select = SELECT
|
|
(direction,
|
|
curve,
|
|
point_path);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
TYPE annotation_representation_select = SELECT
|
|
(draughting_model, -- AP242
|
|
presentation_area, -- Common
|
|
presentation_view, -- Common
|
|
symbol_representation); -- Common
|
|
END_TYPE;
|
|
|
|
TYPE annotation_symbol_occurrence_item = SELECT
|
|
(annotation_symbol,
|
|
defined_symbol);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
TYPE annotation_text_occurrence_item = SELECT
|
|
(annotation_text, -- Common
|
|
annotation_text_character, -- Common
|
|
composite_text, -- Common
|
|
defined_character_glyph, -- AP214/AP242
|
|
text_literal); -- Common
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
-- DIFF IN Deprecated AP203e1
|
|
TYPE approval_item = SELECT
|
|
(action, -- AP203e2/AP214/AP242
|
|
action_directive, -- AP203e2/AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_request_solution, -- AP214/AP242
|
|
alternate_product_relationship, -- AP203e2/AP214/AP242
|
|
applied_action_assignment, -- AP203e2/AP214/AP242
|
|
applied_classification_assignment, -- AP214/AP242
|
|
applied_usage_right, -- AP203e2/AP242
|
|
assembly_component_usage_substitute, -- AP203e2/AP214/AP242
|
|
certification, -- Common
|
|
change, -- Deprecated AP203e1
|
|
change_request, -- Deprecated AP203e1
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_effectivity, -- Common
|
|
configuration_item, -- AP203e2/AP242/Deprecated AP203e1
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
contract, -- Common
|
|
date, -- AP203e2/AP242
|
|
directed_action, -- AP203e2/AP242
|
|
document, -- AP203e2/AP242
|
|
document_file, -- AP203e2/AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
effectivity, -- AP203e2/AP242
|
|
executed_action, -- AP203e2/AP214/AP242
|
|
frozen_assignment, -- AP242
|
|
general_property, -- AP214/AP242
|
|
general_property_relationship, -- AP203e2/AP242
|
|
group, -- AP203e2/AP242
|
|
group_relationship, -- AP203e2/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organizational_project, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- Common
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- AP203e2/AP214/AP242
|
|
product_definition_formation, -- AP203e2/AP214/AP242
|
|
product_definition_formation_relationship, -- AP203e2/AP242
|
|
product_definition_relationship, -- AP203e2/AP214/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- AP214/AP242
|
|
representation, -- AP203e2/AP242
|
|
requirement_assignment, -- AP203e2/AP242
|
|
resource_property, -- AP214/AP242
|
|
security_classification, -- AP203e2/AP242/Deprecated AP203e1
|
|
shape_aspect_relationship, -- AP203e2/AP242
|
|
shape_representation, -- AP214/AP242
|
|
start_request, -- Deprecated AP203e1
|
|
start_work, -- Deprecated AP203e1
|
|
versioned_action_request); -- AP203e2/AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE approximation_method = ENUMERATION OF
|
|
(chordal_deviation,
|
|
chordal_length);
|
|
END_TYPE;
|
|
|
|
TYPE area_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE area_or_view = SELECT
|
|
(presentation_area,
|
|
presentation_view);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE area_unit_type = ENUMERATION OF
|
|
(circular,
|
|
rectangular,
|
|
square);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE atom_based_tuple = LIST [0:?] OF atom_based_value;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE atom_based_value = SELECT
|
|
(maths_atom,
|
|
atom_based_tuple);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE attribute_identifier = identifier;
|
|
WHERE
|
|
WR1:
|
|
validate_attribute_id(SELF);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE attribute_language_item = SELECT
|
|
(action, -- AP214/AP242
|
|
action_directive, -- AP214
|
|
action_method, -- AP214
|
|
action_property, -- AP214
|
|
action_relationship, -- AP214
|
|
actuated_kinematic_pair, -- AP242
|
|
alternate_product_relationship, -- Common
|
|
application_context, -- Common
|
|
applied_certification_assignment, -- AP203e2/AP242
|
|
applied_document_reference, -- AP203e2/AP242
|
|
applied_document_usage_constraint_assignment, -- AP203e2/AP242
|
|
applied_external_identification_assignment, -- AP203e2/AP242
|
|
applied_identification_assignment, -- AP203e2/AP242
|
|
applied_organizational_project_assignment, -- AP203e2/AP242
|
|
applied_security_classification_assignment, -- AP203e2/AP242
|
|
approval, -- AP203e2/AP242
|
|
approval_relationship, -- Common
|
|
approval_status, -- AP203e2/AP242
|
|
assembly_component_usage_substitute, -- Common
|
|
attribute_value_assignment, -- Common
|
|
certification, -- Common
|
|
certification_type, -- AP203e2/AP242
|
|
configuration_design, -- Common
|
|
configuration_item, -- Common
|
|
contract, -- Common
|
|
data_environment, -- AP214/AP242
|
|
date_role, -- Common
|
|
date_time_role, -- Common
|
|
descriptive_representation_item, -- Common
|
|
document_relationship, -- Common
|
|
document_usage_role, -- AP203e2/AP242
|
|
draughting_title, -- AP214/AP242
|
|
effectivity, -- Common
|
|
effectivity_relationship, -- Common
|
|
event_occurrence, -- Common
|
|
external_source, -- Common
|
|
general_property, -- Common
|
|
general_property_relationship, -- Common
|
|
geometric_representation_item, -- Common
|
|
geometric_tolerance, -- Common
|
|
group, -- AP214/AP242
|
|
group_relationship, -- AP214/AP242
|
|
identification_role, -- Common
|
|
information_right, -- AP203e2/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
kinematic_pair, -- AP214/AP242
|
|
make_from_usage_option, -- AP203e2/AP242
|
|
mapped_item, -- Common
|
|
multi_language_attribute_assignment, -- AP203e2/AP242
|
|
name_assignment, -- AP214/AP242
|
|
object_role, -- AP203e2/AP242
|
|
organization_relationship, -- Common
|
|
organization_role, -- Common
|
|
organizational_project, -- Common
|
|
organizational_project_relationship, -- Common
|
|
organizational_project_role, -- AP203e2/AP242
|
|
pair_actuator, -- AP214
|
|
person_and_organization, -- AP203e2/AP242
|
|
person_and_organization_role, -- Common
|
|
presentation_layer_assignment, -- AP214/AP242
|
|
process_product_association, -- AP214/AP242
|
|
product, -- Common
|
|
product_concept, -- Common
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_relationship, -- Common
|
|
product_definition, -- Common
|
|
product_definition_context, -- AP203e2/AP242
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- Common
|
|
product_definition_relationship, -- Common
|
|
product_definition_shape, -- AP203e2/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
product_related_product_category, -- Common
|
|
property_definition, -- Common
|
|
property_definition_relationship, -- AP214/AP242
|
|
representation, -- Common
|
|
representation_relationship, -- AP214/AP242
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
resource_requirement_type, -- AP214/AP242
|
|
security_classification, -- Common
|
|
security_classification_assignment, -- AP203e2/AP242
|
|
shape_aspect, -- Common
|
|
shape_aspect_relationship, -- Common
|
|
shape_representation, -- AP203e2/AP242
|
|
styled_item, -- AP214/AP242
|
|
time_interval_role, -- Common
|
|
topological_representation_item, -- Common
|
|
uncertainty_measure_with_unit, -- Common
|
|
uncertainty_qualifier, -- Common
|
|
usage_association, -- AP203e2/AP242
|
|
versioned_action_request, -- AP214/AP242
|
|
versioned_action_request_relationship); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
TYPE attribute_type = SELECT
|
|
(label,
|
|
text);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE axial_geometry_constraint_element = SELECT
|
|
(point,
|
|
line,
|
|
circle,
|
|
plane,
|
|
cylindrical_surface,
|
|
conical_surface,
|
|
spherical_surface,
|
|
toroidal_surface,
|
|
surface_of_revolution,
|
|
sphere,
|
|
right_circular_cone,
|
|
right_circular_cylinder,
|
|
torus,
|
|
revolved_face_solid,
|
|
revolved_area_solid);
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE b_spline_or_composite_curve_select = SELECT
|
|
(b_spline_curve,
|
|
composite_curve);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE b_spline_or_rectangular_composite_surface_select = SELECT
|
|
(b_spline_surface,
|
|
rectangular_composite_surface);
|
|
END_TYPE;
|
|
|
|
TYPE b_spline_surface_form = ENUMERATION OF
|
|
(plane_surf,
|
|
cylindrical_surf,
|
|
conical_surf,
|
|
spherical_surf,
|
|
toroidal_surf,
|
|
surf_of_revolution,
|
|
ruled_surf,
|
|
generalised_cone,
|
|
quadric_surf,
|
|
surf_of_linear_extrusion,
|
|
unspecified);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE base_solid_select = SELECT
|
|
(solid_model,
|
|
csg_primitive,
|
|
boolean_result);
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.PRIMITIVE_2D' IN TYPEOF(SELF));
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE blend_end_condition_select = SELECT
|
|
(point_on_curve,
|
|
edge_curve,
|
|
vertex);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE blend_radius_variation_type = ENUMERATION OF
|
|
(linear_blend,
|
|
cubic_blend,
|
|
unspecified_blend);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE boolean_operand = SELECT
|
|
(boolean_result, -- Common
|
|
csg_primitive, -- Common
|
|
half_space_2d, -- AP242
|
|
half_space_solid, -- Common
|
|
solid_model); -- Common
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE boolean_operand_2d = SELECT
|
|
(bounded_primitive_2d,
|
|
boolean_result_2d);
|
|
END_TYPE;
|
|
|
|
TYPE boolean_operator = ENUMERATION OF
|
|
(union,
|
|
intersection,
|
|
difference);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE boolean_value = BOOLEAN;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE bounded_primitive_2d = SELECT
|
|
(area_with_outer_boundary,
|
|
circular_area,
|
|
elliptic_area,
|
|
path_area_with_parameters,
|
|
polygonal_area,
|
|
rectangular_area);
|
|
END_TYPE;
|
|
|
|
TYPE box_characteristic_select = SELECT
|
|
(box_height,
|
|
box_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;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE camera_model_d3_multi_clipping_interection_select = SELECT
|
|
(camera_model_d3_multi_clipping_union,
|
|
plane);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE camera_model_d3_multi_clipping_union_select = SELECT
|
|
(camera_model_d3_multi_clipping_intersection,
|
|
plane);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE capacitance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE category_usage_item = SELECT
|
|
(product_class);
|
|
END_TYPE;
|
|
|
|
TYPE celsius_temperature_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE central_or_parallel = ENUMERATION OF
|
|
(central,
|
|
parallel);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
-- DIFF IN Deprecated AP203e1
|
|
TYPE certification_item = SELECT
|
|
(alternate_product_relationship, -- AP203e2/AP242
|
|
make_from_usage_option, -- AP203e2/AP242
|
|
product_definition, -- AP214/AP242
|
|
product_definition_formation, -- AP203e2/AP214/AP242
|
|
product_definition_formation_relationship, -- AP203e2/AP214/AP242
|
|
product_definition_relationship, -- AP214/AP242
|
|
supplied_part_relationship); -- Deprecated AP203e1
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE chained_representation_link = SELECT
|
|
(mapped_item,
|
|
representation_context,
|
|
representation_relationship);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE change_management_object = SELECT
|
|
(action,
|
|
action_item,
|
|
action_relationship,
|
|
class,
|
|
event_occurrence,
|
|
project_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE change_relationship_select = SELECT
|
|
(action_relationship,
|
|
product_definition_formation_relationship,
|
|
product_definition_relationship,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE character_style_select = SELECT
|
|
(character_glyph_style_outline, -- AP203e2/AP242
|
|
character_glyph_style_stroke, -- AP203e2/AP242
|
|
text_style_for_defined_font); -- Common
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE characterized_material_property = SELECT
|
|
(material_property_representation, -- Common
|
|
product_material_composition_relationship); -- AP203e2/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE characterized_product_composition_value = SELECT
|
|
(measure_with_unit);
|
|
END_TYPE;
|
|
|
|
TYPE characterized_product_definition = SELECT
|
|
(product_definition,
|
|
product_definition_relationship);
|
|
END_TYPE;
|
|
|
|
-- IN AP214/AP242
|
|
TYPE characterized_resource_definition = SELECT
|
|
(action_resource,
|
|
action_resource_requirement);
|
|
END_TYPE;
|
|
|
|
TYPE class_usage_effectivity_context_item = SELECT
|
|
(product_definition);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE classification_item = SELECT
|
|
(action, -- Common
|
|
action_directive, -- Common
|
|
action_method, -- Common
|
|
action_property, -- Common
|
|
action_relationship, -- Common
|
|
action_request_solution, -- AP203e2/AP242
|
|
action_request_status, -- AP203e2/AP242
|
|
address, -- AP203e2/AP242
|
|
alternate_product_relationship, -- AP203e2/AP242
|
|
applied_action_assignment, -- AP203e2/AP242
|
|
applied_action_request_assignment, -- AP203e2/AP242
|
|
applied_approval_assignment, -- AP203e2/AP242
|
|
applied_certification_assignment, -- AP203e2/AP242
|
|
applied_contract_assignment, -- AP203e2/AP242
|
|
applied_date_and_time_assignment, -- AP203e2/AP242
|
|
applied_date_assignment, -- AP203e2/AP242
|
|
applied_document_reference, -- AP203e2/AP242
|
|
applied_document_usage_constraint_assignment, -- AP203e2/AP242
|
|
applied_effectivity_assignment, -- AP203e2/AP242
|
|
applied_event_occurrence_assignment, -- AP203e2/AP242
|
|
applied_external_identification_assignment, -- AP203e2/AP242
|
|
applied_identification_assignment, -- AP203e2/AP242
|
|
applied_organization_assignment, -- AP203e2/AP242
|
|
applied_organizational_project_assignment, -- AP203e2/AP242
|
|
applied_person_and_organization_assignment, -- AP203e2/AP242
|
|
applied_security_classification_assignment, -- AP203e2/AP242
|
|
approval, -- AP203e2/AP242
|
|
approval_person_organization, -- AP203e2/AP242
|
|
approval_relationship, -- AP203e2/AP242
|
|
approval_status, -- Common
|
|
assembly_component_usage_substitute, -- AP203e2/AP242
|
|
calendar_date, -- AP203e2/AP242
|
|
certification, -- AP203e2/AP242
|
|
characterized_class, -- AP203e2/AP242
|
|
characterized_object, -- AP203e2/AP242
|
|
class, -- Common
|
|
classified_item, -- AP203e2/AP242
|
|
configuration_item, -- Common
|
|
context_dependent_unit, -- AP203e2/AP242
|
|
contract, -- Common
|
|
conversion_based_unit, -- AP203e2/AP242
|
|
date_and_time, -- AP203e2/AP242
|
|
date_and_time_assignment, -- AP203e2/AP242
|
|
date_assignment, -- AP203e2/AP242
|
|
derived_unit, -- AP203e2/AP242
|
|
descriptive_representation_item, -- Common
|
|
directed_action, -- AP203e2/AP242
|
|
document_file, -- Common
|
|
document_relationship, -- AP203e2/AP242
|
|
document_type, -- AP214/AP242
|
|
effectivity, -- Common
|
|
event_occurrence, -- AP203e2/AP242
|
|
executed_action, -- Common
|
|
feature_definition, -- AP214/AP242
|
|
general_feature, -- AP214/AP242
|
|
general_property, -- Common
|
|
general_property_relationship, -- AP203e2/AP242
|
|
group, -- AP203e2/AP242
|
|
identification_assignment, -- AP203e2/AP242
|
|
information_right, -- AP203e2/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
language, -- AP203e2/AP242
|
|
material_designation, -- AP214/AP242
|
|
measure_representation_item, -- AP203e2/AP242
|
|
measure_with_unit, -- AP203e2/AP242
|
|
multi_language_attribute_assignment, -- AP203e2/AP242
|
|
named_unit, -- AP203e2/AP242
|
|
organization, -- AP203e2/AP242
|
|
organization_relationship, -- AP203e2/AP242
|
|
organizational_address, -- AP203e2/AP242
|
|
organizational_project, -- Common
|
|
organizational_project_relationship, -- AP203e2/AP242
|
|
person, -- AP203e2/AP242
|
|
person_and_organization_address, -- AP203e2/AP242
|
|
plus_minus_tolerance, -- AP214/AP242
|
|
process_operation, -- AP214/AP242
|
|
product, -- Common
|
|
product_concept, -- Common
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_context, -- AP203e2/AP242
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- AP203e2/AP242
|
|
product_definition_relationship, -- Common
|
|
property_definition, -- Common
|
|
property_definition_representation, -- AP203e2/AP242
|
|
representation, -- AP203e2/AP242
|
|
representation_context, -- AP203e2/AP242
|
|
representation_item, -- AP203e2/AP242
|
|
resource_property, -- AP214/AP242
|
|
security_classification, -- AP203e2/AP242
|
|
security_classification_level, -- AP214/AP242
|
|
shape_aspect, -- AP214/AP242
|
|
uncertainty_measure_with_unit, -- AP203e2/AP242
|
|
usage_association, -- AP203e2/AP242
|
|
versioned_action_request); -- Common
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE classified_item = SELECT
|
|
(product,
|
|
product_definition,
|
|
product_definition_formation);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE closed_or_open_shell_select = SELECT
|
|
(closed_shell,
|
|
open_shell);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE common_datum_list = LIST [2:?] OF datum_reference_element;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (dre <* SELF| (dre\shape_aspect.of_shape <> SELF[1]\shape_aspect.of_shape))) = 0;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE compound_inner_area_boundary = SELECT
|
|
(set_inner_area_boundary);
|
|
END_TYPE;
|
|
|
|
TYPE compound_item_definition = SELECT
|
|
(list_representation_item,
|
|
set_representation_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP203e2
|
|
TYPE configured_effectivity_item = SELECT
|
|
(action_relationship, -- AP214/AP242
|
|
process_plan, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_process_plan); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE constraint_group_member = SELECT
|
|
(explicit_constraint,
|
|
simultaneous_constraint_group);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE constructive_geometry_representation_or_shape_represenation = SELECT
|
|
(constructive_geometry_representation,
|
|
shape_representation);
|
|
END_TYPE;
|
|
|
|
TYPE context_dependent_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
-- DIFF IN Deprecated AP203e1
|
|
TYPE contract_item = SELECT
|
|
(action_directive, -- AP203e2/AP242
|
|
alternate_product_relationship, -- AP203e2/AP242
|
|
directed_action, -- AP203e2/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
executed_action, -- AP203e2/AP214/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
organization, -- AP203e2/AP242
|
|
person_and_organization, -- AP203e2/AP242
|
|
product, -- AP203e2/AP242
|
|
product_definition_formation); -- Common
|
|
END_TYPE;
|
|
|
|
TYPE count_measure = NUMBER;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE csg_2d_area_select = SELECT
|
|
(axis2_placement_2d,
|
|
csg_primitive_solid_2d);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE csg_2d_shape_select = SELECT
|
|
(mapped_item,
|
|
axis2_placement_2d,
|
|
csg_solid_2d);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE csg_primitive = SELECT
|
|
(block, -- Common
|
|
bounded_primitive_2d, -- AP242
|
|
right_angular_wedge, -- Common
|
|
right_circular_cone, -- Common
|
|
right_circular_cylinder, -- Common
|
|
sphere, -- Common
|
|
torus); -- Common
|
|
END_TYPE;
|
|
|
|
TYPE csg_select = SELECT
|
|
(boolean_result,
|
|
csg_primitive);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE csg_select_2d = SELECT
|
|
(bounded_primitive_2d,
|
|
boolean_result_2d);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE current_element_assignment_select = SELECT
|
|
(modify_element,
|
|
add_element);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE curve_font_or_scaled_curve_font_select = SELECT
|
|
(curve_style_font_and_scaling, -- AP203e2/AP242
|
|
curve_style_font_select); -- Common
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE curve_on_surface = SELECT
|
|
(composite_curve_on_surface,
|
|
pcurve,
|
|
surface_curve);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE curve_or_annotation_curve_occurrence = SELECT
|
|
(curve,
|
|
annotation_curve_occurrence);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE curve_or_curve_set = SELECT
|
|
(curve,
|
|
geometric_curve_set);
|
|
END_TYPE;
|
|
|
|
TYPE curve_or_render = SELECT
|
|
(curve_style,
|
|
curve_style_rendering);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE curve_or_surface_constraint_element = SELECT
|
|
(curve,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
TYPE curve_style_font_select = SELECT
|
|
(curve_style_font,
|
|
pre_defined_curve_font,
|
|
externally_defined_curve_font);
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE curve_tolerance_deviation = positive_length_measure;
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE curve_tolerance_parameter = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE curves_or_area = ENUMERATION OF
|
|
(curves,
|
|
area);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
-- DIFF IN Deprecated AP203e1
|
|
TYPE date_and_time_item = SELECT
|
|
(action, -- AP203e2/AP214/AP242
|
|
action_directive, -- AP203e2/AP214/AP242
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
action_request_solution, -- AP214/AP242
|
|
alternate_product_relationship, -- AP214/AP242
|
|
applied_action_assignment, -- AP203e2/AP214/AP242
|
|
applied_classification_assignment, -- AP214/AP242
|
|
applied_organization_assignment, -- AP203e2/AP214/AP242
|
|
applied_person_and_organization_assignment, -- AP203e2/AP214/AP242
|
|
applied_security_classification_assignment, -- AP203e2/AP242
|
|
approval_person_organization, -- Common
|
|
approval_status, -- AP214/AP242
|
|
assembly_component_usage_substitute, -- AP214/AP242
|
|
certification, -- Common
|
|
change, -- Deprecated AP203e1
|
|
change_request, -- Deprecated AP203e1
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_item, -- AP214/AP242
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
contract, -- Common
|
|
data_quality_definition, -- AP242
|
|
directed_action, -- AP203e2/AP242
|
|
document, -- AP203e2/AP242
|
|
document_file, -- AP203e2/AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
effectivity, -- AP214/AP242
|
|
event_occurrence, -- AP203e2/AP214/AP242
|
|
executed_action, -- AP203e2/AP214/AP242
|
|
general_property, -- AP214/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organization_relationship, -- AP214/AP242
|
|
organizational_project, -- AP203e2/AP214/AP242
|
|
person_and_organization, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- AP214/AP242
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_formation, -- AP203e2/AP214/AP242
|
|
product_definition_formation_relationship, -- AP214/AP242
|
|
product_definition_relationship, -- AP203e2/AP214/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- AP214/AP242
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
rule_action, -- AP203e2/AP242
|
|
security_classification, -- Common
|
|
security_classification_level, -- AP214/AP242
|
|
shape_representation, -- AP214/AP242
|
|
start_request, -- Deprecated AP203e1
|
|
start_work, -- Deprecated AP203e1
|
|
versioned_action_request); -- AP203e2/AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE date_item = SELECT
|
|
(action, -- Common
|
|
action_directive, -- Common
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
action_request_solution, -- AP214/AP242
|
|
alternate_product_relationship, -- AP214/AP242
|
|
applied_action_assignment, -- Common
|
|
applied_classification_assignment, -- AP214/AP242
|
|
applied_organization_assignment, -- Common
|
|
applied_person_and_organization_assignment, -- Common
|
|
applied_security_classification_assignment, -- AP203e2/AP242
|
|
approval_person_organization, -- Common
|
|
approval_status, -- AP214/AP242
|
|
assembly_component_usage_substitute, -- AP214/AP242
|
|
certification, -- Common
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_item, -- AP214/AP242
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
contract, -- Common
|
|
data_quality_definition, -- AP242
|
|
directed_action, -- AP203e2/AP242
|
|
document, -- AP203e2/AP242
|
|
document_file, -- Common
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
effectivity, -- AP214/AP242
|
|
event_occurrence, -- Common
|
|
executed_action, -- Common
|
|
general_property, -- AP214/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organization_relationship, -- AP214/AP242
|
|
organizational_project, -- Common
|
|
person_and_organization, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- AP214/AP242
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- AP214/AP242
|
|
product_definition_relationship, -- Common
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- AP214/AP242
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
security_classification, -- Common
|
|
security_classification_level, -- AP214/AP242
|
|
shape_representation, -- AP214/AP242
|
|
versioned_action_request); -- Common
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE datum_or_common_datum = SELECT
|
|
(common_datum_list,
|
|
datum);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE datum_reference_modifier = SELECT
|
|
(datum_reference_modifier_with_value,
|
|
simple_datum_reference_modifier);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE datum_reference_modifier_type = ENUMERATION OF
|
|
(circular_or_cylindrical,
|
|
distance,
|
|
projected,
|
|
spherical);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE datum_system_or_reference = SELECT
|
|
(datum_reference,
|
|
datum_system);
|
|
END_TYPE;
|
|
|
|
TYPE day_in_month_number = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(1 <= SELF) AND (SELF <= 31);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE day_in_week_number = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(1 <= SELF) AND (SELF <= 7);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE day_in_year_number = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(1 <= SELF) AND (SELF <= 366);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
TYPE defined_glyph_select = SELECT
|
|
(externally_defined_character_glyph, -- Common
|
|
pre_defined_character_glyph); -- AP242
|
|
END_TYPE;
|
|
|
|
TYPE defined_symbol_select = SELECT
|
|
(pre_defined_symbol,
|
|
externally_defined_symbol);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
TYPE derived_property_select = SELECT
|
|
(action_property, -- Common
|
|
property_definition, -- Common
|
|
resource_property); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE description_attribute_select = SELECT
|
|
(action_request_solution, -- Common
|
|
application_context, -- Common
|
|
approval_role, -- Common
|
|
configuration_design, -- Common
|
|
context_dependent_shape_representation, -- Common
|
|
date_role, -- Common
|
|
date_time_role, -- Common
|
|
effectivity, -- Common
|
|
external_source, -- Common
|
|
organization_role, -- Common
|
|
organizational_project, -- AP242
|
|
person_and_organization, -- Common
|
|
person_and_organization_role, -- Common
|
|
property_definition_representation, -- Common
|
|
representation); -- Common
|
|
END_TYPE;
|
|
|
|
TYPE descriptive_measure = STRING;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE detailed_report_type = ENUMERATION OF
|
|
(measured_element,
|
|
inferior_quality_element);
|
|
END_TYPE;
|
|
|
|
TYPE dimension_count = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SELF > 0;
|
|
END_TYPE;
|
|
|
|
TYPE dimension_extent_usage = ENUMERATION OF
|
|
(origin,
|
|
target);
|
|
END_TYPE;
|
|
|
|
TYPE dimensional_characteristic = SELECT
|
|
(dimensional_location,
|
|
dimensional_size);
|
|
END_TYPE;
|
|
|
|
TYPE direction_count_select = SELECT
|
|
(u_direction_count,
|
|
v_direction_count);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE document_identifier_assigned_item = SELECT
|
|
(document);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
-- DIFF IN Deprecated AP203e1
|
|
TYPE document_reference_item = SELECT
|
|
(action_directive, -- AP214/AP242
|
|
action_method, -- AP203e2/AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
applied_action_assignment, -- AP214/AP242
|
|
applied_external_identification_assignment, -- AP203e2/AP242
|
|
approval, -- AP214/AP242
|
|
assembly_component_usage, -- AP203e2/AP242
|
|
certification, -- AP214/AP242
|
|
characterized_class, -- AP203e2/AP242
|
|
characterized_object, -- AP203e2/AP242
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_item, -- AP203e2/AP214/AP242
|
|
contract, -- AP214/AP242
|
|
descriptive_representation_item, -- AP203e2/AP214/AP242
|
|
dimensional_size, -- AP203e2/AP242
|
|
executed_action, -- AP203e2/AP214/AP242
|
|
externally_conditioned_data_quality_criterion, -- AP242
|
|
externally_defined_dimension_definition, -- AP203e2/AP214/AP242
|
|
externally_defined_item, -- AP203e2/AP242
|
|
feature_definition, -- AP214/AP242
|
|
general_property, -- AP214/AP242
|
|
group, -- AP203e2/AP242
|
|
group_relationship, -- AP203e2/AP242
|
|
information_right, -- AP203e2/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
material_designation, -- AP203e2/AP214/AP242
|
|
measure_representation_item, -- AP203e2/AP242
|
|
organization, -- AP214/AP242
|
|
organizational_project, -- AP214/AP242
|
|
person, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
process_plan, -- AP214/AP242
|
|
product, -- AP203e2/AP214/AP242
|
|
product_category, -- AP203e2/AP242
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_context, -- AP242
|
|
product_definition_formation, -- AP203e2/AP214/AP242
|
|
product_definition_formation_relationship, -- AP203e2/AP214/AP242
|
|
product_definition_process, -- AP214/AP242
|
|
product_definition_relationship, -- AP203e2/AP214/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
product_related_product_category, -- AP214/AP242
|
|
property_definition, -- AP203e2/AP214/AP242
|
|
representation, -- AP203e2/AP214/AP242
|
|
representation_item, -- AP203e2/AP242
|
|
resource_requirement_type, -- AP214/AP242
|
|
retention, -- AP214/AP242
|
|
rule_set, -- AP203e2/AP242
|
|
security_classification, -- AP214/AP242
|
|
shape_aspect, -- Common
|
|
shape_aspect_relationship, -- AP203e2/AP214/AP242
|
|
usage_association, -- AP203e2/AP242
|
|
versioned_action_request); -- AP203e2/AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE dose_equivalent_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE draughting_callout_element = SELECT
|
|
(annotation_curve_occurrence, -- Common
|
|
annotation_fill_area_occurrence, -- AP242
|
|
annotation_symbol_occurrence, -- Common
|
|
annotation_text_occurrence, -- Common
|
|
tessellated_annotation_occurrence); -- AP242
|
|
END_TYPE;
|
|
|
|
TYPE draughting_model_item_association_select = SELECT
|
|
(annotation_occurrence,
|
|
draughting_callout);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE draughting_model_item_definition = SELECT
|
|
(applied_action_assignment,
|
|
applied_action_method_assignment,
|
|
applied_action_request_assignment,
|
|
applied_approval_assignment,
|
|
applied_certification_assignment,
|
|
applied_classification_assignment,
|
|
applied_contract_assignment,
|
|
applied_date_and_time_assignment,
|
|
applied_date_assignment,
|
|
applied_document_reference,
|
|
applied_document_usage_constraint_assignment,
|
|
applied_effectivity_assignment,
|
|
applied_event_occurrence_assignment,
|
|
applied_external_identification_assignment,
|
|
applied_group_assignment,
|
|
applied_identification_assignment,
|
|
applied_ineffectivity_assignment,
|
|
applied_name_assignment,
|
|
applied_organization_assignment,
|
|
applied_organizational_project_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
applied_time_interval_assignment,
|
|
applied_usage_right,
|
|
dimensional_size,
|
|
geometric_tolerance,
|
|
product_definition_relationship,
|
|
product_definition_shape,
|
|
property_definition,
|
|
shape_aspect,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE draughting_model_item_select = SELECT
|
|
(mapped_item,
|
|
styled_item,
|
|
axis2_placement,
|
|
camera_model,
|
|
draughting_callout);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE draughting_subfigure_representation_item = SELECT
|
|
(annotation_occurrence,
|
|
draughting_callout,
|
|
axis2_placement);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE draughting_symbol_representation_item = SELECT
|
|
(annotation_curve_occurrence,
|
|
annotation_symbol_occurrence,
|
|
annotation_fill_area_occurrence,
|
|
annotation_text_occurrence,
|
|
axis2_placement);
|
|
END_TYPE;
|
|
|
|
TYPE draughting_titled_item = SELECT
|
|
(drawing_revision,
|
|
drawing_sheet_revision);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE edge_or_curve = SELECT
|
|
(curve,
|
|
edge);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
TYPE effectivity_item = SELECT
|
|
(action, -- AP214/AP242
|
|
action_method, -- AP214/AP242
|
|
action_method_relationship, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
assembly_component_usage_substitute, -- Common
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_item, -- AP214/AP242
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
document_file, -- AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
general_property, -- AP214/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- Common
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- AP214/AP242
|
|
product_definition_relationship, -- Common
|
|
product_definition_substitute, -- Common
|
|
property_definition, -- AP214/AP242
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
security_classification, -- AP214/AP242
|
|
shape_aspect, -- AP214/AP242
|
|
shape_representation); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE electric_charge_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE electric_current_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE electric_potential_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE elementary_function_enumerators = ENUMERATION OF
|
|
(ef_and,
|
|
ef_or,
|
|
ef_not,
|
|
ef_xor,
|
|
ef_negate_i,
|
|
ef_add_i,
|
|
ef_subtract_i,
|
|
ef_multiply_i,
|
|
ef_divide_i,
|
|
ef_mod_i,
|
|
ef_exponentiate_i,
|
|
ef_eq_i,
|
|
ef_ne_i,
|
|
ef_gt_i,
|
|
ef_lt_i,
|
|
ef_ge_i,
|
|
ef_le_i,
|
|
ef_abs_i,
|
|
ef_max_i,
|
|
ef_min_i,
|
|
ef_if_i,
|
|
ef_negate_r,
|
|
ef_reciprocal_r,
|
|
ef_add_r,
|
|
ef_subtract_r,
|
|
ef_multiply_r,
|
|
ef_divide_r,
|
|
ef_mod_r,
|
|
ef_exponentiate_r,
|
|
ef_exponentiate_ri,
|
|
ef_eq_r,
|
|
ef_ne_r,
|
|
ef_gt_r,
|
|
ef_lt_r,
|
|
ef_ge_r,
|
|
ef_le_r,
|
|
ef_abs_r,
|
|
ef_max_r,
|
|
ef_min_r,
|
|
ef_acos_r,
|
|
ef_asin_r,
|
|
ef_atan2_r,
|
|
ef_cos_r,
|
|
ef_exp_r,
|
|
ef_ln_r,
|
|
ef_log2_r,
|
|
ef_log10_r,
|
|
ef_sin_r,
|
|
ef_sqrt_r,
|
|
ef_tan_r,
|
|
ef_if_r,
|
|
ef_form_c,
|
|
ef_rpart_c,
|
|
ef_ipart_c,
|
|
ef_negate_c,
|
|
ef_reciprocal_c,
|
|
ef_add_c,
|
|
ef_subtract_c,
|
|
ef_multiply_c,
|
|
ef_divide_c,
|
|
ef_exponentiate_c,
|
|
ef_exponentiate_ci,
|
|
ef_eq_c,
|
|
ef_ne_c,
|
|
ef_conjugate_c,
|
|
ef_abs_c,
|
|
ef_arg_c,
|
|
ef_cos_c,
|
|
ef_exp_c,
|
|
ef_ln_c,
|
|
ef_sin_c,
|
|
ef_sqrt_c,
|
|
ef_tan_c,
|
|
ef_if_c,
|
|
ef_subscript_s,
|
|
ef_eq_s,
|
|
ef_ne_s,
|
|
ef_gt_s,
|
|
ef_lt_s,
|
|
ef_ge_s,
|
|
ef_le_s,
|
|
ef_subsequence_s,
|
|
ef_concat_s,
|
|
ef_size_s,
|
|
ef_format,
|
|
ef_value,
|
|
ef_like,
|
|
ef_if_s,
|
|
ef_subscript_b,
|
|
ef_eq_b,
|
|
ef_ne_b,
|
|
ef_gt_b,
|
|
ef_lt_b,
|
|
ef_ge_b,
|
|
ef_le_b,
|
|
ef_subsequence_b,
|
|
ef_concat_b,
|
|
ef_size_b,
|
|
ef_if_b,
|
|
ef_subscript_t,
|
|
ef_eq_t,
|
|
ef_ne_t,
|
|
ef_concat_t,
|
|
ef_size_t,
|
|
ef_entuple,
|
|
ef_detuple,
|
|
ef_insert,
|
|
ef_remove,
|
|
ef_if_t,
|
|
ef_sum_it,
|
|
ef_product_it,
|
|
ef_add_it,
|
|
ef_subtract_it,
|
|
ef_scalar_mult_it,
|
|
ef_dot_prod_it,
|
|
ef_sum_rt,
|
|
ef_product_rt,
|
|
ef_add_rt,
|
|
ef_subtract_rt,
|
|
ef_scalar_mult_rt,
|
|
ef_dot_prod_rt,
|
|
ef_norm_rt,
|
|
ef_sum_ct,
|
|
ef_product_ct,
|
|
ef_add_ct,
|
|
ef_subtract_ct,
|
|
ef_scalar_mult_ct,
|
|
ef_dot_prod_ct,
|
|
ef_norm_ct,
|
|
ef_if,
|
|
ef_ensemble,
|
|
ef_member_of);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE elementary_space_enumerators = ENUMERATION OF
|
|
(es_numbers,
|
|
es_complex_numbers,
|
|
es_reals,
|
|
es_integers,
|
|
es_logicals,
|
|
es_booleans,
|
|
es_strings,
|
|
es_binarys,
|
|
es_maths_spaces,
|
|
es_maths_functions,
|
|
es_generics);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE energy_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE event_occurrence_item = SELECT
|
|
(action, -- AP214/AP242
|
|
action_directive, -- AP214/AP242
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214
|
|
action_request_solution, -- AP214/AP242
|
|
alternate_product_relationship, -- AP214/AP242
|
|
applied_action_assignment, -- AP214/AP242
|
|
applied_classification_assignment, -- AP214/AP242
|
|
applied_person_and_organization_assignment, -- AP214
|
|
approval_status, -- AP214
|
|
assembly_component_usage_substitute, -- AP214/AP242
|
|
certification, -- AP214/AP242
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_effectivity, -- AP214/AP242
|
|
configuration_item, -- AP214/AP242
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
contract, -- AP214/AP242
|
|
document_file, -- AP214
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
executed_action, -- AP214/AP242
|
|
general_property, -- AP214/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organization_relationship, -- AP214/AP242
|
|
organizational_project, -- Common
|
|
person_and_organization, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- AP214/AP242
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- AP214
|
|
product_definition_formation, -- AP214/AP242
|
|
product_definition_formation_relationship, -- AP214/AP242
|
|
product_definition_relationship, -- AP214/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- AP214/AP242
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
security_classification, -- AP214
|
|
security_classification_level, -- AP214/AP242
|
|
shape_representation, -- AP214/AP242
|
|
versioned_action_request); -- AP214
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE expression_extension_select = SELECT
|
|
(expression_extension_string,
|
|
expression_extension_numeric);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE extension_options = ENUMERATION OF
|
|
(eo_none,
|
|
eo_cont,
|
|
eo_cont_right,
|
|
eo_cont_left);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE external_identification_item = SELECT
|
|
(action_relationship, -- AP203e2/AP242
|
|
action_request_status, -- AP203e2/AP242
|
|
applied_organization_assignment, -- AP203e2/AP242
|
|
applied_person_and_organization_assignment, -- AP203e2/AP242
|
|
approval, -- AP203e2/AP242
|
|
approval_status, -- AP203e2/AP242
|
|
assembly_bond_definition, -- AP242
|
|
date_and_time_assignment, -- AP203e2/AP242
|
|
date_assignment, -- AP203e2/AP242
|
|
document_file, -- Common
|
|
external_source, -- AP203e2/AP242
|
|
externally_defined_class, -- Common
|
|
externally_defined_context_dependent_unit, -- AP203e2/AP242
|
|
externally_defined_conversion_based_unit, -- AP203e2/AP242
|
|
externally_defined_general_property, -- Common
|
|
externally_defined_picture_representation_item, -- AP203e2/AP242
|
|
externally_defined_representation_item, -- AP203e2/AP242
|
|
generic_product_definition_reference, -- AP242
|
|
organizational_address, -- AP203e2/AP242
|
|
product_definition, -- Common
|
|
security_classification, -- AP203e2/AP242
|
|
trimmed_curve, -- AP203e2/AP242
|
|
versioned_action_request); -- AP203e2/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE face_or_surface = SELECT
|
|
(face,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE fill_area_style_tile_shape_select = SELECT
|
|
(externally_defined_tile, -- AP203e2/AP242
|
|
fill_area_style_tile_coloured_region, -- AP203e2/AP242
|
|
fill_area_style_tile_curve_with_style, -- AP203e2/AP242
|
|
fill_area_style_tile_symbol_with_style, -- Common
|
|
pre_defined_tile); -- AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE font_select = SELECT
|
|
(externally_defined_text_font, -- Common
|
|
pre_defined_text_font, -- Common
|
|
text_font); -- AP203e2/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE force_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE founded_item_select = SELECT
|
|
(founded_item,
|
|
representation_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE frequency_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE generalized_surface_select = SELECT
|
|
(surface,
|
|
face_surface,
|
|
surfaced_open_shell);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE geometric_constraint_element = SELECT
|
|
(point,
|
|
curve,
|
|
surface,
|
|
vector,
|
|
direction);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE geometric_item_specific_usage_select = SELECT
|
|
(shape_aspect,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE geometric_model_item = SELECT
|
|
(connected_face_set,
|
|
edge_loop,
|
|
geometric_representation_item);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE geometric_set_select = SELECT
|
|
(curve,
|
|
point,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE geometric_tolerance_modifier = ENUMERATION OF
|
|
(any_cross_section,
|
|
common_zone,
|
|
each_radial_element,
|
|
free_state,
|
|
least_material_requirement,
|
|
line_element,
|
|
major_diameter,
|
|
maximum_material_requirement,
|
|
minor_diameter,
|
|
not_convex,
|
|
pitch_diameter,
|
|
reciprocity_requirement,
|
|
separate_requirement,
|
|
statistical_tolerance,
|
|
tangent_plane);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE geometric_tolerance_target = SELECT
|
|
(dimensional_location,
|
|
dimensional_size,
|
|
product_definition_shape,
|
|
shape_aspect);
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE group_item = SELECT
|
|
(geometric_representation_item,
|
|
mapped_item,
|
|
product_concept_feature,
|
|
shape_aspect,
|
|
styled_item,
|
|
topological_representation_item);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
TYPE groupable_item = SELECT
|
|
(applied_identification_assignment,
|
|
applied_name_assignment,
|
|
component_feature,
|
|
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 ('STEP_MERGED_CAD_SCHEMA.GROUP' IN TYPEOF(SELF));
|
|
END_TYPE;
|
|
|
|
TYPE hour_in_day = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(0 <= SELF) AND (SELF < 24);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE id_attribute_select = SELECT
|
|
(action, -- Common
|
|
address, -- Common
|
|
application_context, -- Common
|
|
dimensional_size, -- AP242
|
|
geometric_tolerance, -- AP242
|
|
group, -- Common
|
|
organizational_project, -- Common
|
|
product_category, -- Common
|
|
property_definition, -- Common
|
|
representation, -- Common
|
|
shape_aspect, -- Common
|
|
shape_aspect_relationship); -- Common
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE identification_item = SELECT
|
|
(action, -- AP214/AP242
|
|
action_directive, -- AP214/AP242
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
applied_identification_assignment, -- AP214/AP242
|
|
approval_status, -- Common
|
|
characterized_class, -- AP203e2/AP242
|
|
class, -- Common
|
|
class_system, -- AP214/AP242
|
|
configuration_item, -- Common
|
|
contract, -- AP203e2/AP242
|
|
dimensional_size, -- Common
|
|
document_file, -- Common
|
|
document_type, -- AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
effectivity, -- AP214/AP242
|
|
general_property, -- Common
|
|
group, -- AP203e2/AP242
|
|
group_relationship, -- AP203e2/AP242
|
|
information_right, -- AP203e2/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
material_designation, -- AP203e2/AP242
|
|
measure_representation_item, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organization, -- Common
|
|
organizational_project, -- AP214/AP242
|
|
person_and_organization, -- Common
|
|
presentation_area, -- AP214/AP242
|
|
product, -- Common
|
|
product_category, -- AP203e2/AP242
|
|
product_class, -- AP203e2/AP242
|
|
product_concept, -- Common
|
|
product_concept_feature, -- Common
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_formation, -- Common
|
|
product_definition_relationship, -- AP214/AP242
|
|
product_identification, -- AP203e2/AP242
|
|
property_definition, -- AP214/AP242
|
|
property_definition_relationship, -- AP214/AP242
|
|
representation, -- AP203e2/AP242
|
|
rule_set, -- AP203e2/AP242
|
|
security_classification, -- AP203e2/AP242
|
|
security_classification_level, -- Common
|
|
shape_aspect_relationship, -- Common
|
|
shape_representation, -- Common
|
|
usage_association, -- AP203e2/AP242
|
|
versioned_action_request); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
TYPE identifier = STRING;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE illuminance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE inductance_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE input_selector = positive_integer;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE inspected_ecdq_element_select = inspected_element_select;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE inspected_element_select = SELECT
|
|
(assembly_component_usage,
|
|
axis2_placement_3d,
|
|
b_spline_or_composite_curve_select,
|
|
b_spline_or_rectangular_composite_surface_select,
|
|
cartesian_transformation_operator_3d,
|
|
closed_or_open_shell_select,
|
|
connected_face_set,
|
|
curve,
|
|
direction,
|
|
edge_curve,
|
|
edge_loop,
|
|
face_surface,
|
|
global_uncertainty_assigned_context,
|
|
global_unit_assigned_context,
|
|
group,
|
|
manifold_solid_brep,
|
|
placement,
|
|
point,
|
|
presentation_layer_assignment,
|
|
representation_item,
|
|
styled_item,
|
|
surface,
|
|
vertex_point);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE inspected_shape_element_select = inspected_element_select;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE instance_usage_context_select = SELECT
|
|
(product_definition_relationship,
|
|
product_definition_usage);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE internal_or_reflected_shape_aspect = SELECT
|
|
(shape_aspect,
|
|
identifier);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
TYPE interpolation_type = ENUMERATION OF
|
|
(undefined_interpolation_type,
|
|
discontinuous_interpolation_type,
|
|
synchronous_interpolation_type,
|
|
linear_interpolation_type);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE invisibility_context = SELECT
|
|
(draughting_model, -- AP203e2/AP242
|
|
presentation_representation, -- Common
|
|
presentation_set); -- Common
|
|
END_TYPE;
|
|
|
|
TYPE invisible_item = SELECT
|
|
(draughting_callout,
|
|
presentation_layer_assignment,
|
|
representation,
|
|
styled_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE ir_usage_item = action_item;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE item_identified_representation_usage_definition = SELECT
|
|
(applied_action_assignment,
|
|
applied_action_method_assignment,
|
|
applied_action_request_assignment,
|
|
applied_approval_assignment,
|
|
applied_certification_assignment,
|
|
applied_classification_assignment,
|
|
applied_contract_assignment,
|
|
applied_date_and_time_assignment,
|
|
applied_date_assignment,
|
|
applied_document_reference,
|
|
applied_document_usage_constraint_assignment,
|
|
applied_effectivity_assignment,
|
|
applied_event_occurrence_assignment,
|
|
applied_external_identification_assignment,
|
|
applied_group_assignment,
|
|
applied_identification_assignment,
|
|
applied_ineffectivity_assignment,
|
|
applied_name_assignment,
|
|
applied_organization_assignment,
|
|
applied_organizational_project_assignment,
|
|
applied_person_and_organization_assignment,
|
|
applied_security_classification_assignment,
|
|
applied_time_interval_assignment,
|
|
applied_usage_right,
|
|
dimensional_size,
|
|
geometric_tolerance,
|
|
product_definition_relationship,
|
|
property_definition,
|
|
represented_definition);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE item_identified_representation_usage_select = SELECT
|
|
(representation_item,
|
|
list_representation_item,
|
|
set_representation_item);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
TYPE kinematic_analysis_definition = SELECT
|
|
(interpolated_configuration_sequence, -- Common
|
|
prescribed_path); -- AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE kinematic_frame_background = SELECT
|
|
(point,
|
|
curve,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE kinematic_link_representation_items = SELECT
|
|
(curve,
|
|
point,
|
|
rigid_placement,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
-- IN AP214/AP242
|
|
TYPE kinematic_result = SELECT
|
|
(interpolated_configuration_sequence,
|
|
resulting_path);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE kinematic_topology_representation_select = SELECT
|
|
(kinematic_topology_structure,
|
|
kinematic_topology_directed_structure,
|
|
kinematic_topology_network_structure);
|
|
END_TYPE;
|
|
|
|
TYPE knot_type = ENUMERATION OF
|
|
(uniform_knots,
|
|
quasi_uniform_knots,
|
|
piecewise_bezier_knots,
|
|
unspecified);
|
|
END_TYPE;
|
|
|
|
TYPE label = STRING;
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE language_item = SELECT
|
|
(representation);
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE linear_geometry_constraint_element = SELECT
|
|
(line,
|
|
plane,
|
|
direction,
|
|
vector);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE link_or_shape_representation = SELECT
|
|
(kinematic_link_representation,
|
|
shape_representation);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE location_in_aggregate_item = LIST [1:?] OF integer_representation_item;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE location_of_extreme_value_select = SELECT
|
|
(inspected_shape_element_select,
|
|
b_spline_surface_knot_locator,
|
|
b_spline_curve_knot_locator,
|
|
b_spline_curve_segment,
|
|
b_spline_surface_strip,
|
|
b_spline_surface_patch,
|
|
composite_curve_transition_locator,
|
|
rectangular_composite_surface_transition_locator,
|
|
boundary_curve_of_b_spline_or_rectangular_composite_surface,
|
|
oriented_edge,
|
|
face_bound,
|
|
point_on_edge_curve,
|
|
point_on_face_surface,
|
|
subedge,
|
|
subface);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE luminous_flux_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE luminous_intensity_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE magnetic_flux_density_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE maths_atom = SELECT
|
|
(maths_simple_atom,
|
|
maths_enum_atom);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_binary = BINARY;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_boolean = BOOLEAN;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_enum_atom = SELECT
|
|
(elementary_space_enumerators,
|
|
ordering_type,
|
|
elementary_function_enumerators,
|
|
open_closed,
|
|
space_constraint_type,
|
|
repackage_options,
|
|
extension_options);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_expression = SELECT
|
|
(atom_based_value,
|
|
maths_tuple,
|
|
generic_expression);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_function_select = SELECT
|
|
(maths_function,
|
|
elementary_function_enumerators);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_integer = INTEGER;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_logical = LOGICAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_number = NUMBER;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_real = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_simple_atom = SELECT
|
|
(maths_number,
|
|
maths_real,
|
|
maths_integer,
|
|
maths_logical,
|
|
maths_boolean,
|
|
maths_string,
|
|
maths_binary);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_space_or_function = SELECT
|
|
(maths_space,
|
|
maths_function);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_string = STRING;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_tuple = LIST [0:?] OF maths_value;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE maths_value = SELECT
|
|
(atom_based_value,
|
|
maths_tuple,
|
|
generic_expression);
|
|
WHERE
|
|
constancy:
|
|
NOT ('GENERIC_EXPRESSION' IN stripped_typeof(SELF)) OR expression_is_constant(SELF);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE measure_value = SELECT
|
|
(absorbed_dose_measure, -- AP203e2/AP242
|
|
acceleration_measure, -- AP203e2/AP242
|
|
amount_of_substance_measure, -- Common
|
|
area_measure, -- Common
|
|
capacitance_measure, -- AP203e2/AP242
|
|
celsius_temperature_measure, -- Common
|
|
conductance_measure, -- AP203e2/AP242
|
|
context_dependent_measure, -- Common
|
|
count_measure, -- Common
|
|
descriptive_measure, -- Common
|
|
dose_equivalent_measure, -- AP203e2/AP242
|
|
electric_charge_measure, -- AP203e2/AP242
|
|
electric_current_measure, -- Common
|
|
electric_potential_measure, -- AP203e2/AP242
|
|
energy_measure, -- AP203e2/AP242
|
|
force_measure, -- AP203e2/AP242
|
|
frequency_measure, -- AP203e2/AP242
|
|
illuminance_measure, -- AP203e2/AP242
|
|
inductance_measure, -- AP203e2/AP242
|
|
length_measure, -- Common
|
|
luminous_flux_measure, -- AP203e2/AP242
|
|
luminous_intensity_measure, -- Common
|
|
magnetic_flux_density_measure, -- AP203e2/AP242
|
|
magnetic_flux_measure, -- AP203e2/AP242
|
|
mass_measure, -- Common
|
|
non_negative_length_measure, -- Common
|
|
numeric_measure, -- Common
|
|
parameter_value, -- Common
|
|
plane_angle_measure, -- Common
|
|
positive_length_measure, -- Common
|
|
positive_plane_angle_measure, -- Common
|
|
positive_ratio_measure, -- Common
|
|
power_measure, -- AP203e2/AP242
|
|
pressure_measure, -- AP203e2/AP242
|
|
radioactivity_measure, -- AP203e2/AP242
|
|
ratio_measure, -- Common
|
|
resistance_measure, -- AP203e2/AP242
|
|
solid_angle_measure, -- Common
|
|
thermodynamic_temperature_measure, -- Common
|
|
time_measure, -- Common
|
|
velocity_measure, -- AP203e2/AP242
|
|
volume_measure); -- Common
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE measured_value_select = SELECT
|
|
(boolean_value,
|
|
measure_value,
|
|
plane_angle_and_ratio_pair,
|
|
plane_angle_and_length_pair);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE mechanical_design_geometric_presentation_area_items = SELECT
|
|
(axis2_placement,
|
|
mapped_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE mechanical_design_geometric_presentation_representation_items = SELECT
|
|
(axis2_placement,
|
|
camera_model_d3,
|
|
mapped_item,
|
|
styled_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE mechanical_design_shaded_presentation_area_items = SELECT
|
|
(axis2_placement,
|
|
mapped_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE mechanical_design_shaded_presentation_representation_items = SELECT
|
|
(axis2_placement,
|
|
camera_model_d3,
|
|
mapped_item,
|
|
styled_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE message = STRING;
|
|
END_TYPE;
|
|
|
|
TYPE minute_in_hour = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(0 <= SELF) AND (SELF <= 59);
|
|
END_TYPE;
|
|
|
|
TYPE month_in_year_number = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(1 <= SELF) AND (SELF <= 12);
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE motion_parameter_measure = SELECT
|
|
(parameter_value,
|
|
measure_with_unit);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE multi_language_attribute_item = SELECT
|
|
(action, -- AP214/AP242
|
|
action_directive, -- AP214/AP242
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
actuated_kinematic_pair, -- AP242
|
|
alternate_product_relationship, -- Common
|
|
application_context, -- Common
|
|
applied_certification_assignment, -- AP203e2/AP242
|
|
applied_document_reference, -- AP203e2/AP242
|
|
applied_document_usage_constraint_assignment, -- AP203e2/AP242
|
|
applied_external_identification_assignment, -- AP203e2/AP242
|
|
applied_identification_assignment, -- AP203e2/AP242
|
|
applied_organizational_project_assignment, -- AP203e2/AP242
|
|
approval, -- AP203e2/AP242
|
|
approval_relationship, -- Common
|
|
approval_status, -- AP203e2/AP242
|
|
assembly_component_usage_substitute, -- Common
|
|
attribute_value_assignment, -- AP203e2/AP242
|
|
certification, -- Common
|
|
certification_type, -- AP203e2/AP242
|
|
colour, -- AP203e2/AP242
|
|
configuration_design, -- Common
|
|
configuration_item, -- Common
|
|
contract, -- Common
|
|
data_environment, -- AP214/AP242
|
|
date_role, -- Common
|
|
date_time_role, -- Common
|
|
descriptive_representation_item, -- Common
|
|
document_relationship, -- Common
|
|
document_usage_role, -- AP203e2/AP242
|
|
draughting_title, -- AP214/AP242
|
|
effectivity, -- Common
|
|
effectivity_relationship, -- Common
|
|
event_occurrence, -- Common
|
|
external_source, -- Common
|
|
general_property, -- Common
|
|
general_property_relationship, -- Common
|
|
geometric_representation_item, -- Common
|
|
geometric_tolerance, -- Common
|
|
group, -- AP214/AP242
|
|
group_relationship, -- AP214/AP242
|
|
identification_role, -- Common
|
|
information_right, -- AP203e2/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
kinematic_pair, -- AP214/AP242
|
|
make_from_usage_option, -- AP203e2/AP242
|
|
mapped_item, -- Common
|
|
name_assignment, -- AP214/AP242
|
|
object_role, -- AP203e2/AP242
|
|
organization_relationship, -- Common
|
|
organization_role, -- Common
|
|
organizational_project, -- Common
|
|
organizational_project_relationship, -- Common
|
|
organizational_project_role, -- AP203e2/AP242
|
|
pair_actuator, -- AP214
|
|
person_and_organization, -- AP203e2/AP242
|
|
person_and_organization_role, -- Common
|
|
presentation_layer_assignment, -- AP214/AP242
|
|
process_product_association, -- AP214/AP242
|
|
product, -- Common
|
|
product_concept, -- Common
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_relationship, -- Common
|
|
product_definition, -- Common
|
|
product_definition_context, -- AP203e2/AP242
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- Common
|
|
product_definition_relationship, -- Common
|
|
product_definition_shape, -- AP203e2/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
product_related_product_category, -- Common
|
|
property_definition, -- Common
|
|
property_definition_relationship, -- AP214/AP242
|
|
representation, -- Common
|
|
representation_relationship, -- Common
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
resource_requirement_type, -- AP214/AP242
|
|
security_classification, -- Common
|
|
security_classification_assignment, -- AP203e2/AP242
|
|
shape_aspect, -- Common
|
|
shape_aspect_relationship, -- Common
|
|
shape_representation, -- AP203e2/AP242
|
|
styled_item, -- AP214/AP242
|
|
time_interval_role, -- Common
|
|
topological_representation_item, -- Common
|
|
uncertainty_measure_with_unit, -- Common
|
|
uncertainty_qualifier, -- AP214/AP242
|
|
usage_association, -- AP203e2/AP242
|
|
versioned_action_request, -- AP214/AP242
|
|
versioned_action_request_relationship); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE multi_or_next_assembly_usage_occurrence = SELECT
|
|
(multi_level_reference_designator,
|
|
next_assembly_usage_occurrence);
|
|
END_TYPE;
|
|
|
|
TYPE name_attribute_select = SELECT
|
|
(action_request_solution,
|
|
address,
|
|
configuration_design,
|
|
context_dependent_shape_representation,
|
|
derived_unit,
|
|
effectivity,
|
|
person_and_organization,
|
|
product_definition,
|
|
product_definition_substitute,
|
|
property_definition_representation);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE name_item = SELECT
|
|
(assembly_component_usage, -- AP203e2/AP242
|
|
external_class_library, -- AP203e2/AP242
|
|
group, -- AP203e2/AP242
|
|
group_relationship, -- AP203e2/AP242
|
|
kinematic_joint, -- AP214
|
|
kinematic_link, -- AP214
|
|
kinematic_structure, -- AP214
|
|
product, -- AP203e2/AP242
|
|
product_definition); -- AP203e2/AP242
|
|
END_TYPE;
|
|
|
|
TYPE non_negative_length_measure = length_measure;
|
|
WHERE
|
|
WR1:
|
|
SELF >= 0.0;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE nonnegative_integer = INTEGER;
|
|
WHERE
|
|
nonnegativity:
|
|
SELF >= 0;
|
|
END_TYPE;
|
|
|
|
TYPE null_style = ENUMERATION OF
|
|
(null);
|
|
END_TYPE;
|
|
|
|
TYPE numeric_measure = NUMBER;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE one_or_two = positive_integer;
|
|
WHERE
|
|
in_range:
|
|
(SELF = 1) OR (SELF = 2);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE open_closed = ENUMERATION OF
|
|
(open,
|
|
closed);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE ordering_type = ENUMERATION OF
|
|
(by_rows,
|
|
by_columns);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE organization_item = SELECT
|
|
(action, -- Common
|
|
action_directive, -- Common
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
action_request_solution, -- AP214/AP242
|
|
alternate_product_relationship, -- Common
|
|
applied_action_assignment, -- Common
|
|
applied_classification_assignment, -- Common
|
|
applied_identification_assignment, -- Common
|
|
applied_organization_assignment, -- AP214/AP242
|
|
applied_person_and_organization_assignment, -- AP214/AP242
|
|
applied_security_classification_assignment, -- AP203e2/AP242
|
|
approval, -- Common
|
|
approval_status, -- AP214/AP242
|
|
assembly_component_usage_substitute, -- Common
|
|
certification, -- Common
|
|
class, -- Common
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_effectivity, -- AP214/AP242
|
|
configuration_item, -- Common
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
contract, -- Common
|
|
data_quality_definition, -- AP242
|
|
document_file, -- Common
|
|
document_type, -- AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
effectivity, -- AP214/AP242
|
|
event_occurrence, -- AP214/AP242
|
|
executed_action, -- Common
|
|
general_property, -- Common
|
|
information_usage_right, -- AP203e2/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organization, -- AP214/AP242
|
|
organization_relationship, -- AP214/AP242
|
|
organizational_project, -- Common
|
|
person_and_organization, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- Common
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- Common
|
|
product_definition_relationship, -- AP214/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- Common
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
rule_action, -- AP203e2/AP242
|
|
security_classification, -- Common
|
|
security_classification_level, -- AP214/AP242
|
|
shape_representation, -- Common
|
|
versioned_action_request); -- Common
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE orientation_basis_select = SELECT
|
|
(axis2_placement_3d,
|
|
min_and_major_ply_orientation_basis);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE parallel_offset_type = ENUMERATION OF
|
|
(curve_2d_offset,
|
|
curve_3d_offset,
|
|
surface_offset);
|
|
END_TYPE;
|
|
|
|
TYPE parameter_value = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE path_or_composite_curve = SELECT
|
|
(composite_curve,
|
|
path);
|
|
END_TYPE;
|
|
|
|
TYPE pcurve_or_surface = SELECT
|
|
(pcurve,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
-- DIFF IN Deprecated AP203e1
|
|
TYPE person_and_organization_item = SELECT
|
|
(action, -- AP203e2/AP214/AP242
|
|
action_directive, -- AP203e2/AP214/AP242
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
action_request_solution, -- AP214/AP242
|
|
alternate_product_relationship, -- AP203e2/AP214/AP242
|
|
applied_action_assignment, -- AP203e2/AP214/AP242
|
|
applied_classification_assignment, -- AP203e2/AP214/AP242
|
|
applied_identification_assignment, -- AP203e2/AP242
|
|
applied_organization_assignment, -- AP214/AP242
|
|
applied_person_and_organization_assignment, -- AP214/AP242
|
|
applied_security_classification_assignment, -- AP203e2/AP242
|
|
approval, -- AP203e2/AP242
|
|
approval_status, -- AP214/AP242
|
|
assembly_component_usage_substitute, -- AP203e2/AP214/AP242
|
|
certification, -- AP203e2/AP214/AP242
|
|
change, -- Deprecated AP203e1
|
|
change_request, -- Deprecated AP203e1
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_effectivity, -- AP214/AP242
|
|
configuration_item, -- Common
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
contract, -- Common
|
|
data_quality_definition, -- AP242
|
|
document_file, -- AP203e2/AP214/AP242
|
|
document_type, -- AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
event_occurrence, -- AP214/AP242
|
|
executed_action, -- AP203e2/AP214/AP242
|
|
general_property, -- AP203e2/AP214/AP242
|
|
information_usage_right, -- AP203e2/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organization, -- AP214/AP242
|
|
organization_relationship, -- AP214/AP242
|
|
organizational_project, -- AP203e2/AP214/AP242
|
|
person_and_organization, -- AP203e2/AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- Common
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- Common
|
|
product_definition_formation, -- Common
|
|
product_definition_formation_relationship, -- AP203e2/AP214/AP242
|
|
product_definition_relationship, -- AP214/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- AP203e2/AP214/AP242
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
rule_action, -- AP203e2/AP242
|
|
security_classification, -- Common
|
|
security_classification_level, -- AP214/AP242
|
|
shape_representation, -- AP203e2/AP214/AP242
|
|
start_request, -- Deprecated AP203e1
|
|
start_work, -- Deprecated AP203e1
|
|
versioned_action_request); -- AP203e2/AP214/AP242
|
|
END_TYPE;
|
|
|
|
TYPE person_organization_select = SELECT
|
|
(person,
|
|
organization,
|
|
person_and_organization);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE picture_representation_item_select = SELECT
|
|
(styled_item,
|
|
planar_box,
|
|
axis2_placement_2d);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE planar_curve_select = SELECT
|
|
(line,
|
|
conic,
|
|
trimmed_curve,
|
|
pcurve,
|
|
surface_curve);
|
|
WHERE
|
|
WR1:
|
|
SELF\geometric_representation_item.dim = 3;
|
|
WR2:
|
|
check_curve_planarity(SELF);
|
|
END_TYPE;
|
|
|
|
TYPE plane_angle_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE plane_or_planar_box = SELECT
|
|
(plane,
|
|
planar_box);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE point_and_vector_member = SELECT
|
|
(point,
|
|
direction);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE point_and_vector_members = LIST [2:3] OF point_and_vector_member;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE point_curve_or_surface_constraint_element = SELECT
|
|
(point,
|
|
curve,
|
|
surface);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE point_path_members = LIST [1:?] OF point_and_vector;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE point_placement_shape_representation_item = SELECT
|
|
(compound_representation_item,
|
|
mapped_item,
|
|
axis2_placement_3d);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE power_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE preferred_ordering = ENUMERATION OF
|
|
(extremity_order,
|
|
detected_order);
|
|
END_TYPE;
|
|
|
|
TYPE preferred_surface_curve_representation = ENUMERATION OF
|
|
(curve_3d,
|
|
pcurve_s1,
|
|
pcurve_s2);
|
|
END_TYPE;
|
|
|
|
TYPE presentable_text = STRING;
|
|
WHERE
|
|
WR1:
|
|
control_characters_free(SELF);
|
|
END_TYPE;
|
|
|
|
TYPE presentation_representation_select = SELECT
|
|
(presentation_representation,
|
|
presentation_set);
|
|
END_TYPE;
|
|
|
|
TYPE presentation_size_assignment_select = SELECT
|
|
(presentation_view,
|
|
presentation_area,
|
|
area_in_set);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE presentation_style_select = SELECT
|
|
(approximation_tolerance, -- AP214
|
|
curve_style, -- Common
|
|
externally_defined_style, -- AP214/AP242
|
|
fill_area_style, -- Common
|
|
null_style, -- Common
|
|
point_style, -- Common
|
|
pre_defined_presentation_style, -- AP214
|
|
surface_style_usage, -- Common
|
|
symbol_style, -- Common
|
|
text_style); -- Common
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE pressure_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE previous_element_assignment_select = SELECT
|
|
(modify_element,
|
|
delete_element);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE product_definition_or_assembly_relationship = SELECT
|
|
(assembly_component_usage,
|
|
product_definition);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE product_definition_or_breakdown_element_usage = SELECT
|
|
(product_definition,
|
|
product_definition_usage);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE product_definition_or_product_definition_relationship = SELECT
|
|
(product_definition,
|
|
product_definition_usage);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE product_definition_or_reference = SELECT
|
|
(product_definition,
|
|
generic_product_definition_reference);
|
|
END_TYPE;
|
|
|
|
TYPE product_or_formation_or_definition = SELECT
|
|
(product,
|
|
product_definition_formation,
|
|
product_definition);
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE product_or_presentation_space = ENUMERATION OF
|
|
(product_shape_space,
|
|
presentation_area_space);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE product_space = SELECT
|
|
(uniform_product_space,
|
|
listed_product_space);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
TYPE project_item = SELECT
|
|
(assembly_component_usage, -- AP214/AP242
|
|
configuration_item, -- AP214/AP242
|
|
executed_action, -- Common
|
|
product, -- AP214/AP242
|
|
product_concept, -- Common
|
|
product_definition, -- AP214/AP242
|
|
product_definition_formation); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP214/AP242
|
|
TYPE property_or_shape_select = SELECT
|
|
(property_definition,
|
|
shape_definition);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE property_variable_rep_select = SELECT
|
|
(dimensional_size,
|
|
representation);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE radial_geometry_constraint_element = SELECT
|
|
(circle,
|
|
cylindrical_surface,
|
|
conical_surface,
|
|
spherical_surface,
|
|
right_circular_cylinder,
|
|
right_circular_cone,
|
|
sphere);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE radioactivity_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE ratio_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE real_interval = SELECT
|
|
(real_interval_from_min,
|
|
real_interval_to_max,
|
|
finite_real_interval,
|
|
elementary_space);
|
|
WHERE
|
|
WR1:
|
|
NOT ('ELEMENTARY_SPACE' IN stripped_typeof(SELF)) OR (SELF\elementary_space.space_id = es_reals);
|
|
END_TYPE;
|
|
|
|
TYPE rendering_properties_select = SELECT
|
|
(surface_style_reflectance_ambient,
|
|
surface_style_transparent);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE repackage_options = ENUMERATION OF
|
|
(ro_nochange,
|
|
ro_wrap_as_tuple,
|
|
ro_unwrap_tuple);
|
|
END_TYPE;
|
|
|
|
TYPE represented_definition = SELECT
|
|
(general_property,
|
|
property_definition,
|
|
property_definition_relationship,
|
|
shape_aspect,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
TYPE requirement_assigned_item = SELECT
|
|
(assembly_joint, -- AP242
|
|
configuration_item, -- Common
|
|
descriptive_representation_item, -- Common
|
|
product, -- Common
|
|
product_class, -- Common
|
|
product_definition, -- Common
|
|
product_definition_formation, -- Common
|
|
product_definition_relationship, -- Common
|
|
representation, -- Common
|
|
shape_aspect); -- Common
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE requirement_satisfaction_item = SELECT
|
|
(requirement_assigned_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE requirement_source_item = SELECT
|
|
(characterized_object,
|
|
group,
|
|
group_relationship,
|
|
product,
|
|
product_definition,
|
|
product_definition_formation,
|
|
product_definition_relationship,
|
|
shape_aspect);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
TYPE rigid_placement = SELECT
|
|
(axis2_placement_3d, -- Common
|
|
su_parameters); -- AP242
|
|
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;
|
|
|
|
-- IN AP214
|
|
TYPE rotational_range_measure = SELECT
|
|
(plane_angle_measure,
|
|
unlimited_range);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE rule_superseded_item = SELECT
|
|
(product_definition_formation);
|
|
END_TYPE;
|
|
|
|
TYPE second_in_minute = REAL;
|
|
WHERE
|
|
WR1:
|
|
(0 <= SELF) AND (SELF <= 60.0);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
-- DIFF IN Deprecated AP203e1
|
|
TYPE security_classification_item = SELECT
|
|
(action, -- AP214/AP242
|
|
action_directive, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
applied_action_assignment, -- AP214/AP242
|
|
assembly_component_usage, -- AP203e2/AP242/Deprecated AP203e1
|
|
assembly_component_usage_substitute, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_effectivity, -- AP214/AP242
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
document, -- AP203e2/AP242
|
|
document_file, -- AP203e2/AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
executed_action, -- AP214/AP242
|
|
general_property, -- AP214/AP242
|
|
make_from_usage_option, -- AP203e2/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organizational_project, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- AP203e2/AP214/AP242
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_definition, -- AP203e2/AP214/AP242
|
|
product_definition_formation, -- Common
|
|
product_definition_relationship, -- AP214/AP242
|
|
product_definition_usage, -- AP203e2/AP242
|
|
property_definition, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
shape_representation, -- AP214/AP242
|
|
versioned_action_request); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE set_inner_area_boundary = SET [1:?] OF bounded_primitive_2d;
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE shape_data_quality_assessment_specification_select = SELECT
|
|
(shape_data_quality_assessment_by_logical_test,
|
|
shape_data_quality_assessment_by_numerical_test);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE shape_data_quality_value_limit_type_select = SELECT
|
|
(shape_data_quality_value_range,
|
|
shape_data_quality_value_limit);
|
|
END_TYPE;
|
|
|
|
TYPE shape_definition = SELECT
|
|
(product_definition_shape,
|
|
shape_aspect,
|
|
shape_aspect_relationship);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE shape_dimension_representation_item = SELECT
|
|
(compound_representation_item,
|
|
descriptive_representation_item,
|
|
measure_representation_item,
|
|
placement);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE shape_model = SELECT
|
|
(constructive_geometry_representation,
|
|
shape_representation);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE shape_representation_item = SELECT
|
|
(geometric_representation_item,
|
|
topological_representation_item);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE shape_representation_with_parameters_items = SELECT
|
|
(descriptive_representation_item,
|
|
direction,
|
|
measure_representation_item,
|
|
placement);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE shell = SELECT
|
|
(closed_shell, -- Common
|
|
open_shell, -- Common
|
|
vertex_shell, -- AP203e2/AP242
|
|
wire_shell); -- AP203e2/AP242
|
|
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;
|
|
|
|
-- CASE DIFF IN AP214
|
|
-- CASE DIFF IN AP203e2
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE simple_datum_reference_modifier = ENUMERATION OF
|
|
(any_cross_section,
|
|
any_longitudinal_section,
|
|
basic,
|
|
contacting_feature,
|
|
degree_of_freedom_constraint_u,
|
|
degree_of_freedom_constraint_v,
|
|
degree_of_freedom_constraint_w,
|
|
degree_of_freedom_constraint_x,
|
|
degree_of_freedom_constraint_y,
|
|
degree_of_freedom_constraint_z,
|
|
distance_variable,
|
|
free_state,
|
|
least_material_requirement,
|
|
line,
|
|
major_diameter,
|
|
maximum_material_requirement,
|
|
minor_diameter,
|
|
orientation,
|
|
pitch_diameter,
|
|
plane,
|
|
point,
|
|
translation);
|
|
END_TYPE;
|
|
|
|
TYPE size_select = SELECT
|
|
(positive_length_measure,
|
|
measure_with_unit,
|
|
descriptive_measure);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
TYPE sketch_basis_select = SELECT
|
|
(curve_bounded_surface, -- Common
|
|
face_surface, -- Common
|
|
planar_curve_select); -- AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE sketch_element_select = SELECT
|
|
(curve,
|
|
point);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE sketch_type_select = SELECT
|
|
(neutral_sketch_representation,
|
|
positioned_sketch,
|
|
subsketch);
|
|
END_TYPE;
|
|
|
|
TYPE solid_angle_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE source = ENUMERATION OF
|
|
(made,
|
|
bought,
|
|
not_known);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE source_item = SELECT
|
|
(identifier, -- Common
|
|
message); -- AP203e2/AP242
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE space_constraint_type = ENUMERATION OF
|
|
(sc_equal,
|
|
sc_subspace,
|
|
sc_member);
|
|
END_TYPE;
|
|
|
|
-- IN AP214/AP242
|
|
TYPE spatial_rotation = SELECT
|
|
(ypr_rotation,
|
|
rotation_about_direction);
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE specified_item = SELECT
|
|
(drawing_revision);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE spherical_pair_select = SELECT
|
|
(spherical_pair,
|
|
spherical_pair_with_pin);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE start_request_item = SELECT
|
|
(product_definition_formation);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE statistical_value_type = ENUMERATION OF
|
|
(number_of_inspected_instances,
|
|
number_of_quality_defects_detected);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE string_representation_item_select = SELECT
|
|
(descriptive_representation_item,
|
|
included_text_block,
|
|
structured_text_composition);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE style_context_select = SELECT
|
|
(group, -- Common
|
|
presentation_layer_assignment, -- Common
|
|
presentation_set, -- Common
|
|
representation, -- Common
|
|
representation_item, -- Common
|
|
representation_relationship, -- AP203e2/AP242
|
|
shape_representation_relationship); -- AP214
|
|
END_TYPE;
|
|
|
|
-- IN AP242 DIS Fixes
|
|
TYPE styled_item_target = SELECT
|
|
(representation_item, -- relax select to allow existing topology usage
|
|
representation);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE summary_report_type = ENUMERATION OF
|
|
(unspecified,
|
|
conclusion_only,
|
|
number_of_quality_defects,
|
|
number_of_inspections_and_conclusion,
|
|
full_statistics);
|
|
END_TYPE;
|
|
|
|
-- IN AP214/AP242
|
|
TYPE supported_item = SELECT
|
|
(action_directive,
|
|
action,
|
|
action_method);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE surface_boundary_type = ENUMERATION OF
|
|
(u_parameter_min,
|
|
v_parameter_min,
|
|
u_parameter_max,
|
|
v_parameter_max);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE surface_model = SELECT
|
|
(face_based_surface_model,
|
|
shell_based_surface_model);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE surface_or_solid_model = SELECT
|
|
(surface_model,
|
|
solid_model);
|
|
END_TYPE;
|
|
|
|
TYPE surface_side = ENUMERATION OF
|
|
(positive,
|
|
negative,
|
|
both);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
TYPE surface_side_style_select = SELECT
|
|
(pre_defined_surface_side_style, -- AP203e2/AP242
|
|
surface_side_style); -- Common
|
|
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;
|
|
|
|
-- IN AP214
|
|
TYPE surface_tolerance_deviation = positive_length_measure;
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE surface_tolerance_parameter = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE swept_surface_or_solid = SELECT
|
|
(swept_surface,
|
|
swept_face_solid,
|
|
swept_area_solid);
|
|
END_TYPE;
|
|
|
|
TYPE symbol_style_select = SELECT
|
|
(symbol_colour);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE tangent_contact_type = ENUMERATION OF
|
|
(point_contact,
|
|
curve_contact,
|
|
surface_contact);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE tessellated_edge_or_vertex = SELECT
|
|
(tessellated_edge,
|
|
tessellated_vertex);
|
|
END_TYPE;
|
|
|
|
TYPE text = STRING;
|
|
END_TYPE;
|
|
|
|
TYPE text_alignment = label;
|
|
END_TYPE;
|
|
|
|
TYPE text_delineation = label;
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
TYPE text_or_character = SELECT
|
|
(annotation_text, -- Common
|
|
annotation_text_character, -- Common
|
|
composite_text, -- Common
|
|
defined_character_glyph, -- AP214/AP242
|
|
text_literal); -- Common
|
|
END_TYPE;
|
|
|
|
TYPE text_path = ENUMERATION OF
|
|
(left,
|
|
right,
|
|
up,
|
|
down);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP203e2
|
|
TYPE text_string_representation_item = SELECT
|
|
(annotation_text, -- Common
|
|
annotation_text_character, -- Common
|
|
axis2_placement, -- Common
|
|
composite_text, -- Common
|
|
defined_character_glyph, -- AP214/AP242
|
|
text_literal); -- Common
|
|
END_TYPE;
|
|
|
|
TYPE thermodynamic_temperature_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE time_interval_item = SELECT
|
|
(action, -- Common
|
|
action_directive, -- AP214/AP242
|
|
action_method, -- AP214/AP242
|
|
action_property, -- AP214/AP242
|
|
action_relationship, -- AP214/AP242
|
|
action_request_solution, -- AP214/AP242
|
|
alternate_product_relationship, -- AP214/AP242
|
|
applied_action_assignment, -- AP214/AP242
|
|
applied_classification_assignment, -- AP214/AP242
|
|
applied_person_and_organization_assignment, -- AP214/AP242
|
|
approval_status, -- AP214/AP242
|
|
assembly_component_usage_substitute, -- AP214/AP242
|
|
certification, -- AP214/AP242
|
|
class, -- AP214/AP242
|
|
class_system, -- AP214/AP242
|
|
configuration_design, -- AP214/AP242
|
|
configuration_effectivity, -- AP214/AP242
|
|
configuration_item, -- AP214/AP242
|
|
configured_effectivity_assignment, -- AP214/AP242
|
|
contract, -- AP214/AP242
|
|
document_file, -- AP214/AP242
|
|
draughting_model, -- AP214/AP242
|
|
drawing_revision, -- AP214/AP242
|
|
executed_action, -- AP214/AP242
|
|
general_property, -- AP214/AP242
|
|
material_designation, -- AP214/AP242
|
|
mechanical_design_geometric_presentation_representation, -- AP214/AP242
|
|
organization_relationship, -- AP214/AP242
|
|
organizational_project, -- AP214/AP242
|
|
person_and_organization, -- AP214/AP242
|
|
presentation_area, -- AP214/AP242
|
|
product, -- AP214/AP242
|
|
product_concept, -- AP214/AP242
|
|
product_concept_feature, -- AP214/AP242
|
|
product_concept_feature_association, -- AP214/AP242
|
|
product_concept_feature_category, -- AP214/AP242
|
|
product_concept_feature_category_usage, -- AP214/AP242
|
|
product_definition, -- AP214/AP242
|
|
product_definition_formation, -- AP214/AP242
|
|
product_definition_formation_relationship, -- AP214/AP242
|
|
product_definition_relationship, -- AP214/AP242
|
|
product_definition_substitute, -- AP214/AP242
|
|
property_definition, -- AP214/AP242
|
|
requirement_for_action_resource, -- AP214/AP242
|
|
resource_property, -- AP214/AP242
|
|
security_classification, -- AP214/AP242
|
|
security_classification_level, -- AP214/AP242
|
|
shape_representation, -- AP214/AP242
|
|
time_interval_based_effectivity, -- AP203e2/AP242
|
|
versioned_action_request); -- AP214/AP242
|
|
END_TYPE;
|
|
|
|
TYPE time_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE tolerance_deviation_select = SELECT
|
|
(curve_tolerance_deviation,
|
|
surface_tolerance_deviation);
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE tolerance_method_definition = SELECT
|
|
(limits_and_fits,
|
|
tolerance_value);
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE tolerance_parameter_select = SELECT
|
|
(curve_tolerance_parameter,
|
|
surface_tolerance_parameter);
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE tolerance_select = SELECT
|
|
(approximation_tolerance_deviation,
|
|
approximation_tolerance_parameter);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE tolerance_zone_target = SELECT
|
|
(dimensional_location,
|
|
dimensional_size,
|
|
geometric_tolerance,
|
|
general_datum_reference);
|
|
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;
|
|
|
|
-- IN AP214
|
|
TYPE translational_range_measure = SELECT
|
|
(length_measure,
|
|
unlimited_range);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE trim_condition_select = SELECT
|
|
(length_measure,
|
|
plane_angle_measure,
|
|
generalized_surface_select,
|
|
solid_model);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
TYPE tuple_space = SELECT
|
|
(product_space,
|
|
extended_tuple_space);
|
|
END_TYPE;
|
|
|
|
TYPE u_direction_count = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SELF > 1;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE u_or_v_parameter = ENUMERATION OF
|
|
(u_parameter,
|
|
v_parameter);
|
|
END_TYPE;
|
|
|
|
TYPE unit = SELECT
|
|
(derived_unit,
|
|
named_unit);
|
|
END_TYPE;
|
|
|
|
-- IN AP214
|
|
TYPE unlimited_range = ENUMERATION OF
|
|
(unlimited);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE used_quality_representation_select = SELECT
|
|
(data_quality_criteria_representation,
|
|
data_quality_inspection_result_representation);
|
|
END_TYPE;
|
|
|
|
TYPE v_direction_count = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SELF > 1;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE value_format_type = identifier;
|
|
WHERE
|
|
WR1:
|
|
LENGTH(SELF) <= 80;
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE value_qualifier = SELECT
|
|
(precision_qualifier, -- Common
|
|
type_qualifier, -- Common
|
|
uncertainty_qualifier, -- Common
|
|
value_format_type_qualifier); -- AP242
|
|
END_TYPE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
TYPE vector_or_direction = SELECT
|
|
(direction,
|
|
vector);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE velocity_measure = REAL;
|
|
END_TYPE;
|
|
|
|
TYPE volume_measure = REAL;
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE week_in_year_number = INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(1 <= SELF) AND (SELF <= 53);
|
|
END_TYPE;
|
|
|
|
-- IN AP203e2/AP242
|
|
TYPE work_item = SELECT
|
|
(product_definition_formation);
|
|
END_TYPE;
|
|
|
|
TYPE year_number = INTEGER;
|
|
END_TYPE;
|
|
|
|
-- IN AP214/AP242
|
|
TYPE ypr_enumeration = ENUMERATION OF
|
|
(yaw,
|
|
pitch,
|
|
roll);
|
|
END_TYPE;
|
|
|
|
-- IN AP214/AP242
|
|
TYPE ypr_rotation = ARRAY [ypr_index(yaw):ypr_index(roll)] OF plane_angle_measure;
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
TYPE zero_or_one = nonnegative_integer;
|
|
WHERE
|
|
in_range:
|
|
(SELF = 0) OR (SELF = 1);
|
|
END_TYPE;
|
|
|
|
-- IN AP242
|
|
ENTITY abrupt_change_of_surface_normal
|
|
SUBTYPE OF (geometry_with_local_irregularity);
|
|
small_vector_tolerance : length_measure;
|
|
test_point_distance_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY abs_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY absorbed_dose_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY absorbed_dose_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.gray);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY abstract_variable
|
|
SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY abstracted_expression_function
|
|
SUBTYPE OF (maths_function, quantifier_expression);
|
|
DERIVE
|
|
expr : generic_expression := SELF\multiple_arity_generic_expression.operands[1];
|
|
SELF\quantifier_expression.variables : LIST [1:?] OF UNIQUE generic_variable := remove_first(SELF\multiple_arity_generic_expression.operands);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (operand <* SELF\multiple_arity_generic_expression.operands| NOT has_values_space(operand))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY acceleration_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.ACCELERATION_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY acos_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY action;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
chosen_method : action_method;
|
|
DERIVE
|
|
id : identifier := get_id_value(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_request_status;
|
|
status : label;
|
|
assigned_request : versioned_action_request;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY action_resource;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
usage : SET [1:?] OF supported_item;
|
|
kind : action_resource_type;
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY action_resource_requirement;
|
|
name : label;
|
|
description : text;
|
|
kind : resource_requirement_type;
|
|
operations : SET [1:?] OF characterized_action_definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY action_resource_type;
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY action_status;
|
|
status : label;
|
|
assigned_action : executed_action;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY actuated_kinematic_pair
|
|
SUBTYPE OF (kinematic_pair);
|
|
t_x : OPTIONAL actuated_direction;
|
|
t_y : OPTIONAL actuated_direction;
|
|
t_z : OPTIONAL actuated_direction;
|
|
r_x : OPTIONAL actuated_direction;
|
|
r_y : OPTIONAL actuated_direction;
|
|
r_z : OPTIONAL actuated_direction;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY add_element
|
|
SUBTYPE OF (change_element);
|
|
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([ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.FACETED_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (csh <* msb_shells(msb)| NOT (SIZEOF(QUERY (fcs <* csh\connected_face_set.cfs_faces| NOT ('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fcs)))) = 0))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| ('STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\manifold_solid_brep.outer)))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (brv <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.ELEMENTARY_SURFACE', 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.SWEPT_SURFACE' ] * TYPEOF(face_geometry)) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT ('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(oe\oriented_edge.edge_element)))) = 0))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.POLYLINE', 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE', 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ] * TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT ((('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe\edge.edge_start)) AND ('STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe\edge.edge_end)) AND ('STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_end\vertex_point.vertex_geometry)))))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| ('STEP_MERGED_CAD_SCHEMA.ORIENTED_PATH' IN TYPEOF(elp_fbnds.bound)))) = 0;
|
|
WR6:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.POLYLINE', 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ] * TYPEOF(face_geometry\swept_surface.swept_curve)) = 1);
|
|
WR7:
|
|
SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* bounds| ('STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP', 'STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' ] * TYPEOF(bnd.bound)) = 1))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(sc_ag)))) = 0))) = 0))) = 0;
|
|
WR10:
|
|
(NOT ('STEP_MERGED_CAD_SCHEMA.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR (NOT ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY agc_with_dimension
|
|
SUBTYPE OF (angle_geometric_constraint);
|
|
angle_value : plane_angle_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY all_around_shape_aspect
|
|
SUBTYPE OF (continuous_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY and_expression
|
|
SUBTYPE OF (multiple_arity_boolean_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY angle_assembly_constraint_with_dimension
|
|
SUBTYPE OF (binary_assembly_constraint, agc_with_dimension);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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:
|
|
('STEP_MERGED_CAD_SCHEMA.POINT_PATH' IN TYPEOF(related_representation_item)) AND ('STEP_MERGED_CAD_SCHEMA.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF(relating_representation_item)) OR NOT ('STEP_MERGED_CAD_SCHEMA.POINT_PATH' IN TYPEOF(related_representation_item)) AND ('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(relating_representation_item));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY angle_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF linear_geometry_constraint_element;
|
|
SELF\explicit_constraint.reference_elements : SET [0:1] OF linear_geometry_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR ('STEP_MERGED_CAD_SCHEMA.AGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2);
|
|
END_ENTITY;
|
|
|
|
ENTITY angular_dimension
|
|
SUBTYPE OF (dimension_curve_directed_callout);
|
|
END_ENTITY;
|
|
|
|
ENTITY angular_location
|
|
SUBTYPE OF (dimensional_location);
|
|
angle_selection : angle_relator;
|
|
END_ENTITY;
|
|
|
|
ENTITY angular_size
|
|
SUBTYPE OF (dimensional_size);
|
|
angle_selection : angle_relator;
|
|
END_ENTITY;
|
|
|
|
ENTITY angularity_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY annotation_curve_occurrence
|
|
SUPERTYPE OF (ONEOF(dimension_curve, leader_curve, projection_curve))
|
|
SUBTYPE OF (annotation_occurrence);
|
|
SELF\styled_item.item : curve_or_curve_set;
|
|
END_ENTITY;
|
|
|
|
ENTITY annotation_fill_area
|
|
SUBTYPE OF (geometric_representation_item);
|
|
boundaries : SET [1:?] OF curve;
|
|
WHERE
|
|
WR1:
|
|
(SELF\geometric_representation_item.dim = 3) OR (SIZEOF(QUERY (curve <* SELF.boundaries| NOT ((((('STEP_MERGED_CAD_SCHEMA.CIRCLE' IN TYPEOF(curve)) OR ('STEP_MERGED_CAD_SCHEMA.ELLIPSE' IN TYPEOF(curve))) OR ('STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(curve)) AND (curve\b_spline_curve.closed_curve = TRUE)) OR ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE' IN TYPEOF(curve)) AND (curve\composite_curve.closed_curve = TRUE)) OR ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY annotation_occurrence
|
|
SUPERTYPE OF (ONEOF(annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, annotation_symbol_occurrence) ANDOR ONEOF(annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_plane, annotation_symbol_occurrence, annotation_text_occurrence, tessellated_annotation_occurrence))
|
|
SUBTYPE OF (styled_item);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF);
|
|
WR2:
|
|
SIZEOF(QUERY (reps <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.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) * [ 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE', 'STEP_MERGED_CAD_SCHEMA.PROJECTION_CURVE', 'STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.' + 'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) OR ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\styled_item.item\planar_box.placement));
|
|
WR3:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'CURVE_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1])) OR ('STEP_MERGED_CAD_SCHEMA.' + 'PLANE' IN TYPEOF(SELF\styled_item.item)) AND ('STEP_MERGED_CAD_SCHEMA.' + '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 ('STEP_MERGED_CAD_SCHEMA.NULL_STYLE' IN TYPEOF(sty.styles[1])))) = 0;
|
|
WR3:
|
|
'STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item);
|
|
WR4:
|
|
'STEP_MERGED_CAD_SCHEMA.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:
|
|
'STEP_MERGED_CAD_SCHEMA.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:
|
|
'STEP_MERGED_CAD_SCHEMA.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation);
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.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:
|
|
'STEP_MERGED_CAD_SCHEMA.CHARACTER_GLYPH_SYMBOL' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation);
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP214
|
|
ENTITY application_context_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_context : application_context;
|
|
related_context : application_context;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY application_defined_function
|
|
SUBTYPE OF (maths_function);
|
|
explicit_domain : tuple_space;
|
|
explicit_range : tuple_space;
|
|
parameters : LIST [0:?] OF maths_value;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(explicit_domain);
|
|
WR2:
|
|
expression_is_constant(explicit_range);
|
|
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_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY applied_area
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT ((2 <= SIZEOF(impl_rep.used_representation.items)) AND (SIZEOF(impl_rep.used_representation.items) <= 3)))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| NOT (srwp_i.name IN [ 'orientation', 'effective length', 'maximum length' ]))) > 0))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'effective length'))) = 1))) = 0))) <= 1;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'maximum length'))) <= 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY applied_ineffectivity_assignment
|
|
SUBTYPE OF (effectivity_assignment);
|
|
items : SET [1:?] OF effectivity_item;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.LOT_EFFECTIVITY', 'STEP_MERGED_CAD_SCHEMA.SERIAL_NUMBERED_EFFECTIVITY', 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_EFFECTIVITY' ] * TYPEOF(SELF.assigned_effectivity)) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP214
|
|
ENTITY applied_time_interval_assignment
|
|
SUBTYPE OF (time_interval_assignment);
|
|
items : SET [1:?] OF time_interval_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY approval_status;
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY approximation_tolerance
|
|
SUBTYPE OF (founded_item);
|
|
tolerance : tolerance_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY approximation_tolerance_deviation
|
|
SUBTYPE OF (founded_item);
|
|
tessellation_type : approximation_method;
|
|
tolerances : SET [1:2] OF tolerance_deviation_select;
|
|
definition_space : product_or_presentation_space;
|
|
WHERE
|
|
wr1:
|
|
(HIINDEX(SELF.tolerances) = 1) XOR (TYPEOF(SELF.tolerances[1]) <> TYPEOF(SELF.tolerances[2]));
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY approximation_tolerance_parameter
|
|
SUBTYPE OF (founded_item);
|
|
tolerances : SET [1:2] OF tolerance_parameter_select;
|
|
WHERE
|
|
wr1:
|
|
(HIINDEX(SELF.tolerances) = 1) XOR (TYPEOF(SELF.tolerances[1]) <> TYPEOF(SELF.tolerances[2]));
|
|
END_ENTITY;
|
|
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY area_with_outer_boundary
|
|
SUBTYPE OF (half_space_2d);
|
|
SELF\half_space_2d.base_curve : composite_curve;
|
|
WHERE
|
|
WR1:
|
|
base_curve\composite_curve.closed_curve = TRUE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY array_placement_group
|
|
SUPERTYPE OF (ONEOF(linear_array_placement_group_component, rectangular_array_placement_group_component))
|
|
SUBTYPE OF (assembly_group_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY asin_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY assembly_bond_definition
|
|
SUBTYPE OF (shape_aspect);
|
|
UNIQUE
|
|
UR1 : SELF\shape_aspect.name;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY assembly_component
|
|
SUBTYPE OF (component_definition, product_definition_shape);
|
|
DERIVE
|
|
SELF\property_definition.definition : assembly_component := SELF;
|
|
WHERE
|
|
WR1:
|
|
NOT EXISTS(SELF\property_definition.description);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY assembly_component_usage
|
|
SUPERTYPE OF (quantified_assembly_component_usage ANDOR ONEOF(multi_level_reference_designator, next_assembly_usage_occurrence, promissory_usage_occurrence, specified_higher_usage_occurrence))
|
|
SUBTYPE OF (product_definition_usage);
|
|
reference_designator : OPTIONAL identifier;
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY assembly_geometric_constraint
|
|
ABSTRACT SUPERTYPE OF (ONEOF(binary_assembly_constraint, fixed_constituent_assembly_constraint))
|
|
SUBTYPE OF (explicit_constraint);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY assembly_group_component
|
|
SUBTYPE OF (assembly_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY assembly_group_component_definition_placement_link
|
|
SUBTYPE OF (product_definition, product_definition_relationship);
|
|
SELF\product_definition_relationship.related_product_definition : assembly_component;
|
|
SELF\product_definition_relationship.relating_product_definition : assembly_component;
|
|
WHERE
|
|
WR1:
|
|
SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship.relating_product_definition;
|
|
WR2:
|
|
acyclic_product_definition_relationship(SELF, [ SELF\product_definition_relationship.related_product_definition ], 'STEP_MERGED_CAD_SCHEMA.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK');
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY assembly_joint
|
|
SUBTYPE OF (component_feature_joint);
|
|
WHERE
|
|
WR1:
|
|
acyclic_shape_aspect_relationship(SELF, [ SELF\shape_aspect_relationship.related_shape_aspect ], 'STEP_MERGED_CAD_SCHEMA.' + 'ASSEMBLY_JOINT');
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY assigned_requirement
|
|
SUBTYPE OF (group_assignment);
|
|
items : SET [1:1] OF product_definition;
|
|
SELF\group_assignment.assigned_group : requirement_assignment;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY atan_function
|
|
SUBTYPE OF (binary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY atom_based_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : atom_based_value;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY atomic_formula
|
|
SUBTYPE OF (compound_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY b_spline_basis
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
degree : nonnegative_integer;
|
|
repeated_knots : LIST [2:?] OF REAL;
|
|
DERIVE
|
|
num_basis : positive_integer := SIZEOF(repeated_knots) - order;
|
|
order : positive_integer := degree + 1;
|
|
WHERE
|
|
WR1:
|
|
num_basis >= order;
|
|
WR2:
|
|
nondecreasing(repeated_knots);
|
|
WR3:
|
|
repeated_knots[order] < repeated_knots[(num_basis + 1)];
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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:
|
|
((('STEP_MERGED_CAD_SCHEMA.UNIFORM_CURVE' IN TYPEOF(SELF)) OR ('STEP_MERGED_CAD_SCHEMA.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF))) OR ('STEP_MERGED_CAD_SCHEMA.BEZIER_CURVE' IN TYPEOF(SELF))) OR ('STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY b_spline_curve_knot_locator
|
|
SUBTYPE OF (founded_item);
|
|
basis_curve : b_spline_curve;
|
|
knot_index : INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY b_spline_curve_segment
|
|
SUBTYPE OF (founded_item);
|
|
basis_curve : b_spline_curve;
|
|
start_knot_index : INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY b_spline_curve_with_knots
|
|
SUBTYPE OF (b_spline_curve);
|
|
knot_multiplicities : LIST [2:?] OF INTEGER;
|
|
knots : LIST [2:?] OF parameter_value;
|
|
knot_spec : knot_type;
|
|
DERIVE
|
|
upper_index_on_knots : INTEGER := SIZEOF(knots);
|
|
WHERE
|
|
WR1:
|
|
constraints_param_b_spline(degree, upper_index_on_knots, upper_index_on_control_points, knot_multiplicities, knots);
|
|
WR2:
|
|
SIZEOF(knot_multiplicities) = upper_index_on_knots;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY b_spline_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
basis : LIST [1:?] OF b_spline_basis;
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
DERIVE
|
|
coef : maths_function := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
function_is_table(coef);
|
|
WR2:
|
|
(space_dimension(coef.range) = 1) AND (number_superspace_of(factor1(coef.range)) = the_reals);
|
|
WR3:
|
|
SIZEOF(basis) <= SIZEOF(shape_of_array(coef));
|
|
WR4:
|
|
compare_basis_and_coef(basis, coef);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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:
|
|
((('STEP_MERGED_CAD_SCHEMA.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('STEP_MERGED_CAD_SCHEMA.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF))) OR ('STEP_MERGED_CAD_SCHEMA.BEZIER_SURFACE' IN TYPEOF(SELF))) OR ('STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY b_spline_surface_knot_locator
|
|
SUBTYPE OF (founded_item);
|
|
basis_surface : b_spline_surface;
|
|
knot_index : INTEGER;
|
|
surface_parameter : u_or_v_parameter;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY b_spline_surface_patch
|
|
SUBTYPE OF (founded_item);
|
|
basis_surface : b_spline_surface;
|
|
u_start_knot_index : INTEGER;
|
|
v_start_knot_index : INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY b_spline_surface_strip
|
|
SUBTYPE OF (founded_item);
|
|
basis_surface : b_spline_surface;
|
|
start_knot_index : INTEGER;
|
|
surface_parameter : u_or_v_parameter;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY b_spline_surface_with_knots
|
|
SUBTYPE OF (b_spline_surface);
|
|
u_multiplicities : LIST [2:?] OF INTEGER;
|
|
v_multiplicities : LIST [2:?] OF INTEGER;
|
|
u_knots : LIST [2:?] OF parameter_value;
|
|
v_knots : LIST [2:?] OF parameter_value;
|
|
knot_spec : knot_type;
|
|
DERIVE
|
|
knot_u_upper : INTEGER := SIZEOF(u_knots);
|
|
knot_v_upper : INTEGER := SIZEOF(v_knots);
|
|
WHERE
|
|
WR1:
|
|
constraints_param_b_spline(SELF\b_spline_surface.u_degree, knot_u_upper, SELF\b_spline_surface.u_upper, u_multiplicities, u_knots);
|
|
WR2:
|
|
constraints_param_b_spline(SELF\b_spline_surface.v_degree, knot_v_upper, SELF\b_spline_surface.v_upper, v_multiplicities, v_knots);
|
|
WR3:
|
|
SIZEOF(u_multiplicities) = knot_u_upper;
|
|
WR4:
|
|
SIZEOF(v_multiplicities) = knot_v_upper;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY back_chaining_rule
|
|
SUBTYPE OF (rule_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY back_chaining_rule_body
|
|
SUBTYPE OF (property_definition, property_definition_representation, representation);
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
ENTITY background_colour
|
|
SUBTYPE OF (colour);
|
|
presentation : area_or_view;
|
|
UNIQUE
|
|
UR1 : presentation;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY barring_hole
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'hole profile') AND (sa.description = 'closed profile occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage')) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'barring profile') AND (sa.description = 'closed profile occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage'))) = 1))) = 1;
|
|
WR3:
|
|
(SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1) AND (SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((1 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 2)))) = 1);
|
|
WR4:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| NOT (i.name IN [ 'orientation', 'base radius' ]))) > 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'base radius') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) <> 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY basic_sparse_matrix
|
|
SUBTYPE OF (explicit_table_function, multiple_arity_generic_expression);
|
|
default_entry : maths_value;
|
|
order : ordering_type;
|
|
SELF\multiple_arity_generic_expression.operands : LIST [3:3] OF maths_function;
|
|
DERIVE
|
|
index : maths_function := SELF\multiple_arity_generic_expression.operands[1];
|
|
loc : maths_function := SELF\multiple_arity_generic_expression.operands[2];
|
|
val : maths_function := SELF\multiple_arity_generic_expression.operands[3];
|
|
WHERE
|
|
WR1:
|
|
function_is_1d_table(index);
|
|
WR2:
|
|
function_is_1d_table(loc);
|
|
WR3:
|
|
function_is_1d_table(val);
|
|
WR4:
|
|
check_sparse_index_domain(index.domain, index_base, shape, order);
|
|
WR5:
|
|
check_sparse_index_to_loc(index.range, loc.domain);
|
|
WR6:
|
|
loc.domain = val.domain;
|
|
WR7:
|
|
check_sparse_loc_range(loc.range, index_base, shape, order);
|
|
WR8:
|
|
member_of(default_entry, val.range);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY bead
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) <= 1) AND (SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) > 2))) = 0);
|
|
WR2:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| NOT (i.name IN [ 'orientation', 'base radius' ]))) > 0))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'base radius') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) > 1))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'sweep path') AND (sa.description = 'path feature component occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'path feature component usage')) AND ('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'bead profile') AND (sa.description = 'open profile occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage')) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.OPEN_PATH_PROFILE', 'STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'STEP_MERGED_CAD_SCHEMA.ROUNDED_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.SQUARE_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.TEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.VEE_PROFILE' ] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = 1;
|
|
WR6:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'end condition') AND (sa.description = 'bead end occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage')) AND (sar.description = 'starting')) AND ('STEP_MERGED_CAD_SCHEMA.BEAD_END' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1;
|
|
WR7:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'end condition') AND (sa.description = 'bead end occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage')) AND (sar.description = 'ending')) AND ('STEP_MERGED_CAD_SCHEMA.BEAD_END' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY bead_end
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'linear', 'open', 'radiused' ];
|
|
WR3:
|
|
(SELF.description <> 'linear') XOR (SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) > 0);
|
|
WR4:
|
|
(SELF.description <> 'linear') OR (SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1);
|
|
WR5:
|
|
(SELF.description <> 'linear') OR (SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'end length') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1);
|
|
WR6:
|
|
(SELF.description <> 'linear') OR (SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| ((i.name = 'end shape') AND (i\descriptive_representation_item.description IN [ 'straight', 'tapered' ])) AND ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1))) = 1);
|
|
WR7:
|
|
SIZEOF(QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ((((('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage')) AND (sar.description IN [ 'starting', 'ending' ])) AND ('STEP_MERGED_CAD_SCHEMA.BEAD' IN TYPEOF(sar.related_shape_aspect.of_shape.definition))) AND (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'end condition')) AND (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'bead end occurrence'))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY between_shape_aspect
|
|
SUBTYPE OF (continuous_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY binary_assembly_constraint
|
|
ABSTRACT SUPERTYPE OF (ONEOF(parallel_assembly_constraint, surface_distance_assembly_constraint_with_dimension, angle_assembly_constraint_with_dimension, perpendicular_assembly_constraint, incidence_assembly_constraint, coaxial_assembly_constraint, tangent_assembly_constraint))
|
|
SUBTYPE OF (assembly_geometric_constraint, representation_relationship_with_transformation);
|
|
SELF\representation_relationship.rep_1 : representative_shape_representation;
|
|
SELF\representation_relationship.rep_2 : representative_shape_representation;
|
|
WHERE
|
|
WR1:
|
|
(SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3) AND (SELF\explicit_constraint.reference_elements[1]\geometric_representation_item.dim = 3);
|
|
WR2:
|
|
(SELF\representation_relationship.rep_1 IN using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) + using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1)) AND (SELF\representation_relationship.rep_2 IN using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) + using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2));
|
|
WR3:
|
|
(SIZEOF(SELF\explicit_constraint.constrained_elements) = 1) AND (SIZEOF(SELF\explicit_constraint.reference_elements) = 1);
|
|
WR4:
|
|
(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1 = SELF\explicit_constraint.reference_elements[1]) AND (SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2 = SELF\explicit_constraint.constrained_elements[1]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY binary_boolean_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(xor_expression, equals_expression))
|
|
SUBTYPE OF (boolean_expression, binary_generic_expression);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY binary_function_call
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY binary_generic_expression
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (generic_expression);
|
|
operands : LIST [2:2] OF generic_expression;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY binary_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : BINARY;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY binary_numeric_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(minus_expression, div_expression, mod_expression, slash_expression, power_expression, binary_function_call))
|
|
SUBTYPE OF (numeric_expression, binary_generic_expression);
|
|
SELF\binary_generic_expression.operands : LIST [2:2] OF numeric_expression;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY boolean_defined_function
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (defined_function, boolean_expression);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY boolean_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(simple_boolean_expression, unary_boolean_expression, binary_boolean_expression, multiple_arity_boolean_expression, comparison_expression, interval_expression, boolean_defined_function))
|
|
SUBTYPE OF (expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY boolean_literal
|
|
SUBTYPE OF (simple_boolean_expression, generic_literal);
|
|
the_value : BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY boolean_result_2d
|
|
SUBTYPE OF (boolean_result);
|
|
SELF\boolean_result.first_operand : boolean_operand_2d;
|
|
SELF\boolean_result.second_operand : boolean_operand_2d;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY boolean_variable
|
|
SUBTYPE OF (simple_boolean_expression, variable);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY boss
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SELF\characterized_object.description IN [ 'circular', 'complex', 'rectangular' ];
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'boss height occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear')) AND (sdr.name = 'boss height'))) = 1))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((1 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 2)))) = 1))) = 1;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (srwp_i.name = 'orientation') OR (srwp_i.name = 'fillet radius'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) = 0))) = 0;
|
|
WR6:
|
|
NOT (SELF\characterized_object.description = 'circular') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'circular profile occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR7:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'top condition occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'boss top usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.BOSS_TOP' IN TYPEOF(fcr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
WR8:
|
|
NOT (SELF\characterized_object.description = 'circular') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'change in diameter occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.TAPER' IN TYPEOF(fcr.related_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.BOSS' IN TYPEOF(fcr.relating_shape_aspect)))) = 1))) <= 1))) = 0);
|
|
WR9:
|
|
NOT (SELF\characterized_object.description = 'complex') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'enclosed boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sdr.relating_shape_aspect)) = 1))) = 1))) = 1))) = 0);
|
|
WR10:
|
|
NOT (SELF\characterized_object.description IN [ 'complex', 'rectangular' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'change in boundary occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.TAPER' IN TYPEOF(fcr.related_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.BOSS' IN TYPEOF(fcr.relating_shape_aspect))) AND (fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper' ]))) = 1))) <= 1))) = 0);
|
|
WR11:
|
|
NOT (SELF\characterized_object.description = 'rectangular') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'rectangular profile occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR12:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY boss_top
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'planar', 'complex' ];
|
|
WR3:
|
|
NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR4:
|
|
NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR5:
|
|
NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR6:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ((sar.description = 'boss top usage') AND (sar.name IN [ 'boss height start', 'boss height end' ])) AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'top condition occurrence') AND ('STEP_MERGED_CAD_SCHEMA.BOSS' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('STEP_MERGED_CAD_SCHEMA.BOSS_TOP' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) <= 1))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'top radius'))) <= 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY bound_parameter_environment
|
|
SUBTYPE OF (environment);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(SELF\environment.syntactic_representation)) AND ('STEP_MERGED_CAD_SCHEMA.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF(SELF\environment.semantics));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY bound_variational_parameter
|
|
SUBTYPE OF (variational_parameter);
|
|
DERIVE
|
|
SELF\variational_parameter.parameter_current_value : maths_value := ?;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.BOUND_PARAMETER_ENVIRONMENT' IN TYPEOF(SELF\generic_variable.interpretation);
|
|
END_ENTITY;
|
|
|
|
ENTITY boundary_curve
|
|
SUBTYPE OF (composite_curve_on_surface);
|
|
WHERE
|
|
WR1:
|
|
SELF\composite_curve.closed_curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY boundary_curve_of_b_spline_or_rectangular_composite_surface
|
|
SUBTYPE OF (founded_item);
|
|
basis_surface : b_spline_or_rectangular_composite_surface_select;
|
|
boundary_type : surface_boundary_type;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY bounded_curve
|
|
SUPERTYPE OF (ONEOF(polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve))
|
|
SUBTYPE OF (curve);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP214
|
|
ENTITY bounded_pcurve
|
|
SUBTYPE OF (pcurve, bounded_curve);
|
|
WHERE
|
|
wr1:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP214
|
|
ENTITY bounded_surface_curve
|
|
SUBTYPE OF (surface_curve, bounded_curve);
|
|
WHERE
|
|
wr1:
|
|
'STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.BOXED_HALF_SPACE' IN TYPEOF(item)))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY boxed_half_space
|
|
SUBTYPE OF (half_space_solid);
|
|
enclosure : box_domain;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY breakdown_context
|
|
SUBTYPE OF (product_definition_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY breakdown_element_realization
|
|
SUBTYPE OF (characterized_object, product_definition_element_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY breakdown_element_usage
|
|
SUBTYPE OF (product_definition_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY camera_image
|
|
SUPERTYPE OF (ONEOF(camera_image_2d_with_scale, camera_image_3d_with_scale))
|
|
SUBTYPE OF (mapped_item);
|
|
SELF\mapped_item.mapping_source : camera_usage;
|
|
SELF\mapped_item.mapping_target : planar_box;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY camera_image_2d_with_scale
|
|
SUBTYPE OF (camera_image);
|
|
DERIVE
|
|
scale : positive_ratio_measure := SELF\mapped_item.mapping_target\planar_extent.size_in_x / SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window\planar_extent.size_in_x;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.CAMERA_MODEL_D2' IN TYPEOF(SELF\mapped_item.mapping_source.mapping_origin);
|
|
WR2:
|
|
aspect_ratio(SELF\mapped_item.mapping_target) = aspect_ratio(SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window);
|
|
WR3:
|
|
SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping;
|
|
END_ENTITY;
|
|
|
|
ENTITY camera_image_3d_with_scale
|
|
SUBTYPE OF (camera_image);
|
|
DERIVE
|
|
scale : positive_ratio_measure := SELF\mapped_item.mapping_target\planar_extent.size_in_x / SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.perspective_of_volume.view_window.size_in_x;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.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:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\mapped_item.mapping_target\planar_box.placement)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\mapped_item.mapping_target\planar_box.placement));
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY camera_model
|
|
ABSTRACT SUPERTYPE OF (ONEOF(camera_model_d2, camera_model_d3))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ITEM_DEFINED_TRANSFORMATION.' + 'TRANSFORM_ITEM_1')) + SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_MAP.MAPPING_ORIGIN')) > 0;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM.ITEM')) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY camera_model_d2
|
|
SUBTYPE OF (camera_model);
|
|
view_window : planar_box;
|
|
view_window_clipping : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
SELF\geometric_representation_item.dim = 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY camera_model_d3
|
|
SUBTYPE OF (camera_model);
|
|
view_reference_system : axis2_placement_3d;
|
|
perspective_of_volume : view_volume;
|
|
WHERE
|
|
WR1:
|
|
SELF\geometric_representation_item.dim = 3;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\representation_map.mapped_representation));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY capacitance_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.CAPACITANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY capacitance_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.farad);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY cartesian_complex_number_region
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
real_constraint : real_interval;
|
|
imag_constraint : real_interval;
|
|
WHERE
|
|
WR1:
|
|
((min_exists(real_constraint) OR max_exists(real_constraint)) OR min_exists(imag_constraint)) OR max_exists(imag_constraint);
|
|
END_ENTITY;
|
|
|
|
ENTITY cartesian_point
|
|
SUBTYPE OF (point);
|
|
coordinates : LIST [1:3] OF length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP214
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY cdgc_with_dimension
|
|
SUBTYPE OF (curve_distance_geometric_constraint);
|
|
distance_value : non_negative_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY celsius_temperature_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
ENTITY centre_of_symmetry
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
ENTITY certification;
|
|
name : label;
|
|
purpose : text;
|
|
kind : certification_type;
|
|
END_ENTITY;
|
|
|
|
ENTITY certification_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_certification : certification;
|
|
DERIVE
|
|
role : object_role := get_role(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY certification_type;
|
|
description : label;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY chain_based_geometric_item_specific_usage
|
|
SUBTYPE OF (geometric_item_specific_usage, chain_based_item_identified_representation_usage);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY chain_based_item_identified_representation_usage
|
|
SUBTYPE OF (item_identified_representation_usage);
|
|
nodes : LIST [2:?] OF UNIQUE representation;
|
|
undirected_link : LIST [1:?] OF chained_representation_link;
|
|
DERIVE
|
|
directed_link : LIST [1:?] OF representation_relationship := get_directed_link(nodes, undirected_link);
|
|
leaf : representation := SELF\item_identified_representation_usage.used_representation;
|
|
root : representation := nodes[1];
|
|
SELF\item_identified_representation_usage.used_representation : representation := nodes[HIINDEX(nodes)];
|
|
WHERE
|
|
WR1:
|
|
EXISTS(directed_link);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY chamfer
|
|
SUBTYPE OF (transition_feature);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'chamfer face'))) <= 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(fcr.related_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.CHAMFER' IN TYPEOF(fcr.relating_shape_aspect))) AND (fcr.related_shape_aspect.description = 'first offset'))) = 1;
|
|
WR3:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(fcr.related_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.CHAMFER' IN TYPEOF(fcr.relating_shape_aspect))) AND (fcr.related_shape_aspect.description = 'second offset'))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY chamfer_offset
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SELF.description IN [ 'first offset', 'second offset' ];
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR4:
|
|
NOT (SELF.description = 'first offset') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'offset amount'))) = 1))) = 0))) = 0);
|
|
WR5:
|
|
NOT (SELF.description = 'first offset') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) <= 1))) = 0);
|
|
WR6:
|
|
NOT (SELF.description = 'second offset') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'offset amount') OR (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'offset angle'))) = 1))) = 0))) = 0);
|
|
WR7:
|
|
NOT (SELF.description = 'second offset') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) <= 1))) = 0);
|
|
WR8:
|
|
SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.CHAMFER' IN TYPEOF(sdr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(sdr.related_shape_aspect)))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY change
|
|
SUBTYPE OF (action_assignment);
|
|
items : SET [1:?] OF work_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY change_composition_relationship
|
|
SUBTYPE OF (group_relationship);
|
|
SELF\group_relationship.related_group : change_element;
|
|
SELF\group_relationship.relating_group : change_group;
|
|
DERIVE
|
|
composition : change_group := SELF\group_relationship.relating_group;
|
|
element : change_element := SELF\group_relationship.related_group;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY change_element
|
|
ABSTRACT SUPERTYPE OF (ONEOF(modify_element, delete_element, add_element))
|
|
SUBTYPE OF (group, characterized_object);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY change_element_sequence
|
|
SUBTYPE OF (group_relationship);
|
|
SELF\group_relationship.related_group : change_element;
|
|
SELF\group_relationship.relating_group : change_element;
|
|
DERIVE
|
|
next : change_element := SELF\group_relationship.related_group;
|
|
previous : change_element := SELF\group_relationship.relating_group;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY change_group
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY change_group_assignment
|
|
SUBTYPE OF (group_assignment);
|
|
item : change_relationship_select;
|
|
SELF\group_assignment.assigned_group : change_group;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY change_request
|
|
SUBTYPE OF (action_request_assignment);
|
|
items : SET [1:?] OF change_request_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY character_glyph_font_usage;
|
|
character : generic_character_glyph_symbol;
|
|
font : text_font;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY character_glyph_style_outline
|
|
SUBTYPE OF (founded_item);
|
|
outline_style : curve_style;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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) AND (baseline_ratio <= 1.0);
|
|
WR2:
|
|
item_in_context(SELF.character_box, SELF\representation.context_of_items);
|
|
WR3:
|
|
'STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(SELF.box_height);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY character_glyph_symbol_stroke
|
|
SUBTYPE OF (character_glyph_symbol);
|
|
strokes : SET [1:?] OF curve;
|
|
WHERE
|
|
WR1:
|
|
SELF.strokes <= SELF\representation.items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY characteristic_data_column_header
|
|
SUBTYPE OF (general_property);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY characteristic_data_column_header_link
|
|
SUBTYPE OF (general_property_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY characteristic_data_table_header
|
|
SUBTYPE OF (general_property);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY characteristic_data_table_header_decomposition
|
|
SUBTYPE OF (general_property_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY characteristic_type
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY characterized_chain_based_item_within_representation
|
|
SUBTYPE OF (characterized_item_within_representation);
|
|
nodes : LIST [2:?] OF UNIQUE representation;
|
|
undirected_link : LIST [1:?] OF chained_representation_link;
|
|
DERIVE
|
|
directed_link : LIST [1:?] OF representation_relationship := get_directed_link(nodes, undirected_link);
|
|
leaf : representation := SELF\characterized_item_within_representation.rep;
|
|
SELF\characterized_item_within_representation.rep : representation := nodes[HIINDEX(nodes)];
|
|
root : representation := nodes[1];
|
|
WHERE
|
|
WR1:
|
|
EXISTS(directed_link);
|
|
END_ENTITY;
|
|
|
|
ENTITY characterized_class
|
|
SUBTYPE OF (characterized_object, class);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY characterized_item_within_representation
|
|
SUBTYPE OF (characterized_object);
|
|
item : representation_item;
|
|
rep : representation;
|
|
UNIQUE
|
|
WR1 : item, rep;
|
|
WHERE
|
|
WR2:
|
|
rep IN using_representations(item);
|
|
END_ENTITY;
|
|
|
|
ENTITY characterized_object;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY characterized_representation
|
|
SUBTYPE OF (representation, characterized_object);
|
|
DERIVE
|
|
SELF\characterized_object.description : text := SELF\representation.description;
|
|
SELF\characterized_object.name : label := SELF\representation.name;
|
|
END_ENTITY;
|
|
|
|
ENTITY circle
|
|
SUBTYPE OF (conic);
|
|
radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY circular_area
|
|
SUBTYPE OF (primitive_2d);
|
|
centre : cartesian_point;
|
|
radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY circular_closed_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 2))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'diameter'))) = 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY circular_path
|
|
SUBTYPE OF (path_node);
|
|
via_point : cartesian_point;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY circular_pattern
|
|
SUBTYPE OF (replicate_feature);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.related_shape_aspect)))) = 1))) <= 3))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT ((SIZEOF(impl_rep.used_representation.items) >= 3) AND (SIZEOF(impl_rep.used_representation.items) <= 5)))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'diameter'))) <= 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'base feature rotation'))) <= 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of features'))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'angular spacing'))) = 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY circular_runout_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY class
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY class_by_extension
|
|
SUBTYPE OF (class);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(i)))) = 0;
|
|
WR3:
|
|
((('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY clgc_with_dimension
|
|
SUBTYPE OF (curve_length_geometric_constraint);
|
|
length_value : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY closed_curve_style_parameters
|
|
SUBTYPE OF (curve_style_parameters_representation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY closed_path_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY closed_shell
|
|
SUBTYPE OF (connected_face_set);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY coaxial_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint, coaxial_geometric_constraint);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY coaxial_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF axial_geometry_constraint_element;
|
|
SELF\explicit_constraint.reference_elements : SET [0:1] OF axial_geometry_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\explicit_constraint.reference_elements| (SIZEOF(TYPEOF(q) * [ 'STEP_MERGED_CAD_SCHEMA.POINT', 'STEP_MERGED_CAD_SCHEMA.PLANE', 'STEP_MERGED_CAD_SCHEMA.SPHERICAL_SURFACE', 'STEP_MERGED_CAD_SCHEMA.SPHERE' ]) > 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY coaxiality_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY colour;
|
|
END_ENTITY;
|
|
|
|
ENTITY colour_rgb
|
|
SUBTYPE OF (colour_specification);
|
|
red : REAL;
|
|
green : REAL;
|
|
blue : REAL;
|
|
WHERE
|
|
WR1:
|
|
(0.0 <= red) AND (red <= 1.0);
|
|
WR2:
|
|
(0.0 <= green) AND (green <= 1.0);
|
|
WR3:
|
|
(0.0 <= blue) AND (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 (('STEP_MERGED_CAD_SCHEMA.DATUM' IN TYPEOF(sar.related_shape_aspect)) AND NOT ('STEP_MERGED_CAD_SCHEMA.COMMON_DATUM' IN TYPEOF(sar.related_shape_aspect))))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY comparison_equal
|
|
SUBTYPE OF (comparison_expression);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY comparison_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(comparison_equal, comparison_greater, comparison_greater_equal, comparison_less, comparison_less_equal, comparison_not_equal, like_expression))
|
|
SUBTYPE OF (boolean_expression, binary_generic_expression);
|
|
SELF\binary_generic_expression.operands : LIST [2:2] OF expression;
|
|
WHERE
|
|
WR1:
|
|
(('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2])) OR ('STEP_MERGED_CAD_SCHEMA.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('STEP_MERGED_CAD_SCHEMA.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2]))) OR ('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2]));
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY comparison_greater
|
|
SUBTYPE OF (comparison_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY comparison_greater_equal
|
|
SUBTYPE OF (comparison_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY comparison_less
|
|
SUBTYPE OF (comparison_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY comparison_less_equal
|
|
SUBTYPE OF (comparison_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY comparison_not_equal
|
|
SUBTYPE OF (comparison_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY complex_area
|
|
ABSTRACT SUPERTYPE OF (path_area_with_parameters ANDOR primitive_2d_with_inner_boundary)
|
|
SUBTYPE OF (primitive_2d);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY complex_clause
|
|
SUBTYPE OF (compound_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY complex_conjunctive_clause
|
|
SUBTYPE OF (complex_clause);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY complex_disjunctive_clause
|
|
SUBTYPE OF (complex_clause);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY complex_number_literal
|
|
SUBTYPE OF (generic_literal);
|
|
real_part : REAL;
|
|
imag_part : REAL;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY complex_number_literal_polar
|
|
SUBTYPE OF (complex_number_literal);
|
|
modulus : REAL;
|
|
argument : REAL;
|
|
DERIVE
|
|
SELF\complex_number_literal.imag_part : REAL := modulus * sin(argument);
|
|
SELF\complex_number_literal.real_part : REAL := modulus * cos(argument);
|
|
WHERE
|
|
WR1:
|
|
modulus >= 0;
|
|
WR2:
|
|
(0 <= argument) AND (argument <= 2 * 3.14159);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY complex_triangulated_face
|
|
SUBTYPE OF (tessellated_face);
|
|
pnindex : LIST [0:?] OF INTEGER;
|
|
triangle_strips : LIST [0:?] OF LIST [3:?] OF INTEGER;
|
|
triangle_fans : LIST [0:?] OF LIST [3:?] OF INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax);
|
|
WR2:
|
|
NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints));
|
|
WR3:
|
|
NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY complex_triangulated_surface_set
|
|
SUBTYPE OF (tessellated_surface_set);
|
|
pnindex : LIST [0:?] OF INTEGER;
|
|
triangle_strips : LIST [0:?] OF LIST [3:?] OF INTEGER;
|
|
triangle_fans : LIST [0:?] OF LIST [3:?] OF INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax);
|
|
WR2:
|
|
NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints));
|
|
WR3:
|
|
NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY component_definition
|
|
SUBTYPE OF (product_definition, product_definition_relationship);
|
|
DERIVE
|
|
SELF\product_definition_relationship.related_product_definition : component_definition := SELF;
|
|
WHERE
|
|
WR1:
|
|
NOT EXISTS(SELF\product_definition_relationship.description);
|
|
WR2:
|
|
NOT EXISTS(SELF\property_definition.description);
|
|
WR3:
|
|
SELF\product_definition_relationship.id = SELF\product_definition.id;
|
|
WR4:
|
|
SELF\product_definition_relationship.name = 'definition usage';
|
|
WR5:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY component_feature
|
|
SUBTYPE OF (shape_aspect);
|
|
SELF\shape_aspect.of_shape : assembly_component;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY component_feature_joint
|
|
SUBTYPE OF (shape_aspect_relationship, shape_aspect);
|
|
SELF\shape_aspect_relationship.related_shape_aspect : component_feature;
|
|
SELF\shape_aspect_relationship.relating_shape_aspect : component_feature;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY component_feature_relationship
|
|
SUBTYPE OF (shape_aspect_relationship);
|
|
SELF\shape_aspect_relationship.related_shape_aspect : component_feature;
|
|
SELF\shape_aspect_relationship.relating_shape_aspect : component_feature;
|
|
WHERE
|
|
WR1:
|
|
SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY component_mating_constraint_condition
|
|
SUBTYPE OF (shape_aspect);
|
|
UNIQUE
|
|
UR1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY component_path_shape_aspect
|
|
SUBTYPE OF (shape_aspect);
|
|
location : multi_or_next_assembly_usage_occurrence;
|
|
component_shape_aspect : internal_or_reflected_shape_aspect;
|
|
UNIQUE
|
|
UR1 : location, component_shape_aspect;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY component_terminal
|
|
SUBTYPE OF (component_feature);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2
|
|
ENTITY composite_assembly_definition
|
|
SUBTYPE OF (product_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr)))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY composite_assembly_sequence_definition
|
|
SUBTYPE OF (product_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr)))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY composite_assembly_table
|
|
SUBTYPE OF (part_laminate_table);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.BOUNDED_CURVE' IN TYPEOF(parent_curve);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY composite_curve_transition_locator
|
|
SUBTYPE OF (founded_item);
|
|
basis_curve : composite_curve;
|
|
transition_index : INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY composite_group_shape_aspect
|
|
SUBTYPE OF (composite_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY composite_hole
|
|
SUBTYPE OF (compound_feature);
|
|
WHERE
|
|
WR1:
|
|
SELF\characterized_object.description IN [ 'counterbore', 'countersunk' ];
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' IN TYPEOF(sar.related_shape_aspect)))) = 2))) = 1))) = 1;
|
|
WR3:
|
|
NOT (SELF\characterized_object.description = 'countersunk') OR (SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ('STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' IN TYPEOF(sar.related_shape_aspect)) AND NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(sar.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'change in diameter occurrence') AND (SIZEOF(QUERY (fcr2 <* QUERY (sar2 <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar2.description = 'taper usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar2)))| ('STEP_MERGED_CAD_SCHEMA.TAPER' IN TYPEOF(fcr2.related_shape_aspect)))) = 1))) = 0))) = 0))) = 1))) = 1))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY composite_material_designation
|
|
SUBTYPE OF (material_designation);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY composite_shape_aspect
|
|
SUPERTYPE OF (ONEOF(continuous_shape_aspect, common_datum, composite_group_shape_aspect))
|
|
SUBTYPE OF (shape_aspect);
|
|
INVERSE
|
|
component_relationships : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY composite_sheet_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY composite_unit_shape_aspect
|
|
SUBTYPE OF (composite_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY compound_feature
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (csa.name = 'compound feature in solid') AND ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)))) = 1))) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)))) = 1))) = 1;
|
|
WR3:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY (fcr <* csa.component_relationships| NOT ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(fcr)))) = 0))) = 1))) = 1;
|
|
WR4:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ('STEP_MERGED_CAD_SCHEMA.THREAD' IN TYPEOF(sar.related_shape_aspect)))) = 0))) = 1))) = 1;
|
|
WR6:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ('STEP_MERGED_CAD_SCHEMA.COMPOUND_FEATURE' IN TYPEOF(sar.related_shape_aspect)) AND (sar.related_shape_aspect\characterized_object.name <> SELF\characterized_object.name))) = 0))) = 1))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY compound_representation_item
|
|
SUPERTYPE OF (ONEOF(point_and_vector, point_path) ANDOR ONEOF(row_representation_item, table_representation_item))
|
|
SUBTYPE OF (representation_item);
|
|
item_element : compound_item_definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY compound_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + '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([ ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE_BASED_WIREFRAME_MODEL'), ('STEP_MERGED_CAD_SCHEMA.' + 'FACE_BASED_SURFACE_MODEL'), ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_3D') ] * TYPEOF(cbsr_i)) <> 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (cbsr_i <* SELF.items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE_BASED_WIREFRAME_MODEL'), ('STEP_MERGED_CAD_SCHEMA.' + 'FACE_BASED_SURFACE_MODEL'), ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM') ] * TYPEOF(cbsr_i)) = 1))) > 0;
|
|
WR4:
|
|
SIZEOF(QUERY (cbsr_i <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM' IN TYPEOF(cbsr_i)) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'COMPOUND_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION') ] * TYPEOF(cbsr_i\mapped_item.mapping_source)) <> 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY concat_expression
|
|
SUBTYPE OF (string_expression, multiple_arity_generic_expression);
|
|
SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF string_expression;
|
|
END_ENTITY;
|
|
|
|
ENTITY concentricity_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY concept_feature_operator;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY concept_feature_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_product_concept_feature : product_concept_feature;
|
|
related_product_concept_feature : product_concept_feature;
|
|
END_ENTITY;
|
|
|
|
ENTITY concept_feature_relationship_with_condition
|
|
SUBTYPE OF (concept_feature_relationship);
|
|
conditional_operator : concept_feature_operator;
|
|
END_ENTITY;
|
|
|
|
ENTITY conditional_concept_feature
|
|
SUBTYPE OF (product_concept_feature);
|
|
condition : concept_feature_relationship_with_condition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY conductance_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.CONDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214
|
|
ENTITY configuration_definition;
|
|
pair_values : SET [1:?] OF pair_value;
|
|
t_parameter : motion_parameter_measure;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
ENTITY configuration_effectivity
|
|
SUBTYPE OF (product_definition_effectivity);
|
|
configuration : configuration_design;
|
|
UNIQUE
|
|
UR1 : configuration, SELF\product_definition_effectivity.usage, SELF\effectivity.id;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF\product_definition_effectivity.usage);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY configuration_interpolation;
|
|
previous_configuration_definition : configuration_definition;
|
|
next_configuration_definition : configuration_definition;
|
|
interpolation : interpolation_type;
|
|
END_ENTITY;
|
|
|
|
ENTITY configuration_item;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
item_concept : product_concept;
|
|
purpose : OPTIONAL label;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY configuration_item_hierarchical_relationship
|
|
SUBTYPE OF (configuration_item_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY configuration_item_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_configuration_item : configuration_item;
|
|
related_configuration_item : configuration_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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([ 'STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.' + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT')| ('STEP_MERGED_CAD_SCHEMA.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(x)))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY connection_zone_based_assembly_joint
|
|
SUBTYPE OF (assembly_joint);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY connection_zone_interface_plane_relationship
|
|
SUBTYPE OF (shape_aspect, shape_aspect_relationship);
|
|
UNIQUE
|
|
UR1 : SELF\shape_aspect.name;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY constant_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
sole_output : maths_value;
|
|
source_of_domain : maths_space_or_function;
|
|
WHERE
|
|
WR1:
|
|
no_cyclic_domain_reference(source_of_domain, [ SELF ]);
|
|
WR2:
|
|
expression_is_constant(domain_from(source_of_domain));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY constrained_kinematic_motion_representation
|
|
SUBTYPE OF (representation_relationship_with_transformation);
|
|
SELF\representation_relationship.rep_1 : representative_shape_representation;
|
|
SELF\representation_relationship.rep_2 : representative_shape_representation;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1)) AND ('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2));
|
|
WR2:
|
|
(dimension_of(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) = 3) AND (dimension_of(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) = 3);
|
|
WR3:
|
|
(SELF\representation_relationship.rep_1 IN using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) + using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1)) AND (SELF\representation_relationship.rep_2 IN using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) + using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2));
|
|
WR4:
|
|
'STEP_MERGED_CAD_SCHEMA.KINEMATIC_PAIR' IN TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator);
|
|
END_ENTITY;
|
|
|
|
ENTITY constructive_geometry_representation
|
|
SUBTYPE OF (representation);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND ((2 <= SELF.context_of_items\geometric_representation_context.coordinate_space_dimension) AND (SELF.context_of_items\geometric_representation_context.coordinate_space_dimension <= 3));
|
|
WR2:
|
|
SIZEOF(QUERY (cgr_i <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PLACEMENT', 'STEP_MERGED_CAD_SCHEMA.CURVE', 'STEP_MERGED_CAD_SCHEMA.EDGE', 'STEP_MERGED_CAD_SCHEMA.FACE', 'STEP_MERGED_CAD_SCHEMA.POINT', 'STEP_MERGED_CAD_SCHEMA.SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' ] * TYPEOF(cgr_i)) <> 1))) = 0;
|
|
WR3:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.REP_2')) > 0;
|
|
WR4:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION')) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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 ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items));
|
|
WR2:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + '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([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE') ] * TYPEOF(i)) = 1) AND (i.name = 'ratio value'))) = 1);
|
|
WR2:
|
|
(SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')| (pdr\property_definition_representation.name = 'contact ratio reference'))) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')| (pdr\property_definition_representation.name = 'contact ratio reference') AND ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION' IN TYPEOF(pdr\property_definition_representation.definition\property_definition.definition)))) = 1);
|
|
WR3:
|
|
(SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')| (SIZEOF(QUERY (gpa <* USEDIN(pdr.definition, 'STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa\general_property_association.base_definition)) AND (gpa\general_property_association.base_definition\general_property.name = 'surface_condition'))) = 1))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY contacting_feature
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SELF\shape_aspect.product_definitional = FALSE;
|
|
END_ENTITY;
|
|
|
|
ENTITY context_dependent_invisibility
|
|
SUBTYPE OF (invisibility);
|
|
presentation_context : invisibility_context;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY context_dependent_kinematic_link_representation;
|
|
representation_relation : kinematic_link_representation_association;
|
|
represented_product_relation : product_definition_relationship_kinematics;
|
|
END_ENTITY;
|
|
|
|
ENTITY context_dependent_over_riding_styled_item
|
|
SUBTYPE OF (over_riding_styled_item);
|
|
style_context : LIST [1:?] OF style_context_select;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(QUERY (sc <* SELF.style_context| ('STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(sc)))) = 1) OR (SIZEOF(QUERY (sc <* SELF.style_context| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(sc)) OR ('STEP_MERGED_CAD_SCHEMA.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:
|
|
'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF.represented_product_relation.definition);
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
WR3:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY context_dependent_unit
|
|
SUBTYPE OF (named_unit);
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY continuous_shape_aspect
|
|
SUPERTYPE OF (ONEOF(between_shape_aspect, all_around_shape_aspect))
|
|
SUBTYPE OF (composite_shape_aspect);
|
|
END_ENTITY;
|
|
|
|
ENTITY contract;
|
|
name : label;
|
|
purpose : text;
|
|
kind : contract_type;
|
|
END_ENTITY;
|
|
|
|
ENTITY contract_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_contract : contract;
|
|
DERIVE
|
|
role : object_role := get_role(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
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) AND (hour_offset < 24);
|
|
WR2:
|
|
(0 <= actual_minute_offset) AND (actual_minute_offset <= 59);
|
|
WR3:
|
|
NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = exact));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY coordinates_list
|
|
SUBTYPE OF (tessellated_item);
|
|
npoints : INTEGER;
|
|
position_coords : LIST [1:?] OF LIST [3:3] OF REAL;
|
|
WHERE
|
|
WR1:
|
|
npoints = SIZEOF(position_coords);
|
|
WR2:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.REPOSITIONED_TESSELLATED_ITEM' ] * TYPEOF(SELF)) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY cos_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY csg_2d_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
SELF\representation.items : SET [1:?] OF csg_2d_shape_select;
|
|
WHERE
|
|
WR1:
|
|
SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CSG_SOLID' ] * TYPEOF(it)) = 1) OR ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'CSG_2D_SHAPE_REPRESENTATION' IN TYPEOF(it\mapped_item.mapping_source.mapped_representation)))) >= 1;
|
|
WR3:
|
|
SIZEOF(QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CSG_2D_SHAPE_REPRESENTATION' IN TYPEOF(it\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY csg_primitive_solid_2d
|
|
SUBTYPE OF (csg_solid_2d);
|
|
SELF\csg_solid.tree_root_expression : bounded_primitive_2d;
|
|
END_ENTITY;
|
|
|
|
ENTITY csg_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CSG_SOLID', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D', 'STEP_MERGED_CAD_SCHEMA.SOLID_REPLICA', 'STEP_MERGED_CAD_SCHEMA.REVOLVED_FACE_SOLID', 'STEP_MERGED_CAD_SCHEMA.EXTRUDED_FACE_SOLID' ] * TYPEOF(it)) <> 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.CSG_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (sr <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.SOLID_REPLICA' IN TYPEOF(it)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CSG_SOLID', 'STEP_MERGED_CAD_SCHEMA.REVOLVED_FACE_SOLID', 'STEP_MERGED_CAD_SCHEMA.EXTRUDED_FACE_SOLID' ] * TYPEOF(sr\solid_replica.parent_solid)) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT ('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(it)))) > 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY csg_solid
|
|
SUBTYPE OF (solid_model);
|
|
tree_root_expression : csg_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY csg_solid_2d
|
|
SUBTYPE OF (csg_solid);
|
|
SELF\csg_solid.tree_root_expression : csg_select_2d;
|
|
WHERE
|
|
WR1:
|
|
valid_csg_2d_primitives(SELF);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY currency_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
SELF\measure_with_unit.unit_component : currency;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY current_change_element_assignment
|
|
SUBTYPE OF (group_assignment);
|
|
items : SET [1:?] OF change_management_object;
|
|
SELF\group_assignment.assigned_group : current_element_assignment_select;
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_based_path
|
|
SUBTYPE OF (path_node);
|
|
path_curve : curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_based_path_with_orientation
|
|
SUBTYPE OF (kinematic_path_segment);
|
|
position_curve : bounded_curve;
|
|
orientation_curve : bounded_curve;
|
|
WHERE
|
|
WR1:
|
|
TYPEOF(position_curve) = TYPEOF(orientation_curve);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_based_path_with_orientation_and_parameters
|
|
SUBTYPE OF (curve_based_path_with_orientation);
|
|
parameters : path_parameter_representation;
|
|
END_ENTITY;
|
|
|
|
ENTITY curve_bounded_surface
|
|
SUBTYPE OF (bounded_surface);
|
|
basis_surface : surface;
|
|
boundaries : SET [1:?] OF boundary_curve;
|
|
implicit_outer : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
NOT implicit_outer OR (SIZEOF(QUERY (temp <* boundaries| ('STEP_MERGED_CAD_SCHEMA.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp)))) = 0);
|
|
WR2:
|
|
NOT implicit_outer OR ('STEP_MERGED_CAD_SCHEMA.BOUNDED_SURFACE' IN TYPEOF(basis_surface));
|
|
WR3:
|
|
SIZEOF(QUERY (temp <* boundaries| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_distance_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
near_points : SET [0:4] OF near_point_relationship;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:2] OF curve;
|
|
SELF\explicit_constraint.reference_elements : SET [0:4] OF point_curve_or_surface_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR ('STEP_MERGED_CAD_SCHEMA.CDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2);
|
|
WR2:
|
|
SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements);
|
|
WR3:
|
|
SIZEOF(QUERY (q <* near_points| NOT (q\representation_item_relationship.relating_representation_item IN SELF\explicit_constraint.reference_elements))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_length_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF bounded_curve;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\explicit_constraint.reference_elements) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY curve_replica
|
|
SUBTYPE OF (curve);
|
|
parent_curve : curve;
|
|
transformation : cartesian_transformation_operator;
|
|
WHERE
|
|
WR1:
|
|
transformation.dim = parent_curve.dim;
|
|
WR2:
|
|
acyclic_curve_replica(SELF, parent_curve);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_segment_set
|
|
SUBTYPE OF (geometric_representation_item);
|
|
segments : SET [1:?] OF composite_curve_segment;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_smoothness_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
smoothness : transition_code;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:1] OF curve_segment_set;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\explicit_constraint.reference_elements) = 0;
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_style_parameters_representation
|
|
SUBTYPE OF (representation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_style_parameters_with_ends
|
|
SUBTYPE OF (curve_style_parameters_representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY curve_style_rendering;
|
|
rendering_method : shading_curve_method;
|
|
rendering_properties : surface_rendering_properties;
|
|
END_ENTITY;
|
|
|
|
ENTITY curve_swept_solid_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SWEPT_AREA_SOLID', 'STEP_MERGED_CAD_SCHEMA.SWEPT_DISK_SOLID', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SWEPT_AREA_SOLID', 'STEP_MERGED_CAD_SCHEMA.SWEPT_DISK_SOLID', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (mi <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (scsas <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF(it)))| NOT (('STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(scsas\surface_curve_swept_area_solid.directrix)) OR ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(scsas\surface_curve_swept_area_solid.directrix))))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_with_excessive_segments
|
|
SUBTYPE OF (overcomplex_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_OR_COMPOSITE_CURVE_SELECT' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY curve_with_small_curvature_radius
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY cylindrical_pair
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY cylindrical_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : cylindrical_pair;
|
|
lower_limit_actual_translation : translational_range_measure;
|
|
upper_limit_actual_translation : translational_range_measure;
|
|
lower_limit_actual_rotation : rotational_range_measure;
|
|
upper_limit_actual_rotation : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_translation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_translation))) XOR (lower_limit_actual_translation < upper_limit_actual_translation);
|
|
wr2:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_rotation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation))) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY cylindrical_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_translation : length_measure;
|
|
actual_rotation : plane_angle_measure;
|
|
SELF\pair_value.applies_to_pair : cylindrical_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY cylindrical_pair_with_range
|
|
SUBTYPE OF (cylindrical_pair);
|
|
lower_limit_actual_translation : OPTIONAL length_measure;
|
|
upper_limit_actual_translation : OPTIONAL length_measure;
|
|
lower_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS(upper_limit_actual_translation)) XOR (lower_limit_actual_translation < upper_limit_actual_translation);
|
|
WR2:
|
|
(NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
END_ENTITY;
|
|
|
|
ENTITY cylindrical_surface
|
|
SUBTYPE OF (elementary_surface);
|
|
radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY cylindricity_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_assessment_measurement_association;
|
|
assessment_specification : data_quality_criterion_assessment_association;
|
|
measurement_requirement : data_quality_criterion_measurement_association;
|
|
WHERE
|
|
WR1:
|
|
SELF.measurement_requirement\representation_item_relationship.relating_representation_item :=: SELF.assessment_specification.criterion;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_assessment_specification;
|
|
description : text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_criteria_representation
|
|
SUBTYPE OF (representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION' IN TYPEOF(q)))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_criterion
|
|
SUBTYPE OF (representation_item);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN TYPEOF(q)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_criterion_assessment_association;
|
|
criterion : data_quality_criterion;
|
|
assessment_specification : data_quality_assessment_specification;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_criterion_measurement_association
|
|
SUBTYPE OF (representation_item_relationship);
|
|
SELF\representation_item_relationship.related_representation_item : data_quality_measurement_requirement;
|
|
SELF\representation_item_relationship.relating_representation_item : data_quality_criterion;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_definition;
|
|
description : text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_definition_relationship;
|
|
description : text;
|
|
relating_data_quality_definition : data_quality_definition;
|
|
related_data_quality_definition : data_quality_definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_definition_representation_relationship;
|
|
description : text;
|
|
definition : data_quality_definition;
|
|
used_representation : used_quality_representation_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_inspection_criterion_report
|
|
SUBTYPE OF (data_quality_inspection_report);
|
|
statistical_values : SET [1:2] OF data_quality_inspection_criterion_report_item;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (i1 <* bag_to_set(USEDIN(SELF\data_quality_inspection_report.inspection_result.criterion_inspected, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SUMMARY_REPORT_REQUEST' IN TYPEOF(i1)))) > 0;
|
|
WR2:
|
|
(SIZEOF(SELF.statistical_values) = 1) OR (SELF.statistical_values[1].value_type <> SELF.statistical_values[2].value_type);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_inspection_criterion_report_item
|
|
SUBTYPE OF (representation_item);
|
|
statistical_value : INTEGER;
|
|
value_type : statistical_value_type;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' IN TYPEOF(q)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_inspection_instance_report
|
|
SUBTYPE OF (data_quality_inspection_report);
|
|
inspected_instances : LIST [1:?] OF data_quality_inspection_instance_report_item;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (i1 <* bag_to_set(USEDIN(SELF\data_quality_inspection_report.inspection_result.criterion_inspected, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DETAILED_REPORT_REQUEST' IN TYPEOF(i1)))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_inspection_instance_report_item
|
|
SUBTYPE OF (representation_item);
|
|
inspected_elements : SET [1:?] OF inspected_element_select;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' IN TYPEOF(q)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_inspection_report
|
|
SUPERTYPE OF (ONEOF(data_quality_inspection_criterion_report, data_quality_inspection_instance_report))
|
|
SUBTYPE OF (representation_item);
|
|
inspection_result : data_quality_inspection_result;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' IN TYPEOF(q)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_inspection_result
|
|
SUBTYPE OF (representation_item);
|
|
criterion_inspected : data_quality_criterion;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERIA_REPRESENTATION' IN TYPEOF(q)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_inspection_result_representation
|
|
SUBTYPE OF (representation);
|
|
criteria_inspected : data_quality_criteria_representation;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)))) > 0;
|
|
WR2:
|
|
SIZEOF(inspected_product_definition(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_inspection_result_with_judgement
|
|
SUBTYPE OF (data_quality_inspection_result);
|
|
judgement : BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_measurement_requirement
|
|
SUBTYPE OF (representation_item);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN TYPEOF(q)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_report_measurement_association
|
|
SUBTYPE OF (representation_item_relationship);
|
|
SELF\representation_item_relationship.related_representation_item : data_quality_inspection_report;
|
|
SELF\representation_item_relationship.relating_representation_item : data_quality_measurement_requirement;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY data_quality_report_request
|
|
ABSTRACT SUPERTYPE OF (ONEOF(summary_report_request, detailed_report_request));
|
|
description : text;
|
|
criterion_of_report_request : data_quality_criterion;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY dated_effectivity
|
|
SUBTYPE OF (effectivity);
|
|
effectivity_end_date : OPTIONAL date_time_or_event_occurrence;
|
|
effectivity_start_date : OPTIONAL date_time_or_event_occurrence;
|
|
WHERE
|
|
WR1:
|
|
EXISTS(effectivity_end_date) OR EXISTS(effectivity_start_date);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY datum
|
|
SUBTYPE OF (shape_aspect);
|
|
identification : identifier;
|
|
INVERSE
|
|
established_by_relationships : SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect;
|
|
UNIQUE
|
|
UR1 : identification, SELF\shape_aspect.of_shape;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.COMMON_DATUM' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY (x <* SELF\datum.established_by_relationships| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.DATUM_FEATURE', 'STEP_MERGED_CAD_SCHEMA.DATUM_TARGET' ] * TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)) = 1))) >= 1);
|
|
WR2:
|
|
SIZEOF(QUERY (x <* SELF\datum.established_by_relationships| ('STEP_MERGED_CAD_SCHEMA.DATUM_FEATURE' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) <= 1;
|
|
WR3:
|
|
SELF\shape_aspect.product_definitional = FALSE;
|
|
WR4:
|
|
SELF\shape_aspect.name = '';
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY datum_feature
|
|
SUPERTYPE OF (ONEOF(dimensional_location_with_datum_feature, dimensional_size_with_datum_feature))
|
|
SUBTYPE OF (shape_aspect);
|
|
INVERSE
|
|
feature_basis_relationship : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (sar <* SELF\datum_feature.feature_basis_relationship| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY datum_reference_compartment
|
|
SUBTYPE OF (general_datum_reference);
|
|
INVERSE
|
|
owner : datum_system FOR constituents;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY datum_reference_element
|
|
SUBTYPE OF (general_datum_reference);
|
|
DERIVE
|
|
owner : general_datum_reference := sts_get_general_datum_reference(SELF);
|
|
WHERE
|
|
WR1:
|
|
SELF <> owner;
|
|
WR2:
|
|
EXISTS(owner);
|
|
WR3:
|
|
SELF\shape_aspect.of_shape = owner\shape_aspect.of_shape;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY datum_reference_modifier_with_value;
|
|
modifier_type : datum_reference_modifier_type;
|
|
modifier_value : length_measure_with_unit;
|
|
WHERE
|
|
WR1:
|
|
modifier_value\measure_with_unit.value_component > 0.0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY datum_system
|
|
SUBTYPE OF (shape_aspect);
|
|
constituents : LIST [1:3] OF UNIQUE datum_reference_compartment;
|
|
UNIQUE
|
|
UR1 : SELF\shape_aspect.of_shape, SELF\shape_aspect.name;
|
|
WHERE
|
|
WR1:
|
|
SELF\shape_aspect.product_definitional = FALSE;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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| ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)))) = 0;
|
|
WR2:
|
|
((SIZEOF(QUERY (rr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.REP_1')| (rr.name < 'general tolerance definition'))) = 0) AND (SIZEOF(QUERY (rr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.REP_1')| (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance'))) = 0)) AND (SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.REP_2')) = 0);
|
|
END_ENTITY;
|
|
|
|
ENTITY default_tolerance_table_cell
|
|
SUBTYPE OF (compound_representation_item);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (x <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION.ITEMS')| ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY defined_character_glyph
|
|
SUBTYPE OF (geometric_representation_item);
|
|
definition : defined_glyph_select;
|
|
placement : axis2_placement;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY defined_constraint
|
|
ABSTRACT SUPERTYPE OF (equal_parameter_constraint)
|
|
SUBTYPE OF (explicit_constraint);
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY defined_function
|
|
ABSTRACT SUPERTYPE OF (ONEOF(numeric_defined_function, string_defined_function, boolean_defined_function) ANDOR SQL_mappable_defined_function);
|
|
END_ENTITY;
|
|
|
|
ENTITY defined_symbol
|
|
SUBTYPE OF (geometric_representation_item);
|
|
definition : defined_symbol_select;
|
|
target : symbol_target;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY definite_integral_expression
|
|
SUBTYPE OF (quantifier_expression);
|
|
lower_limit_neg_infinity : BOOLEAN;
|
|
upper_limit_pos_infinity : BOOLEAN;
|
|
DERIVE
|
|
integrand : generic_expression := SELF\multiple_arity_generic_expression.operands[1];
|
|
variable_of_integration : maths_variable := SELF\multiple_arity_generic_expression.operands[2];
|
|
SELF\quantifier_expression.variables : LIST [1:1] OF UNIQUE generic_variable := [ variable_of_integration ];
|
|
WHERE
|
|
WR1:
|
|
has_values_space(integrand);
|
|
WR2:
|
|
space_is_continuum(values_space_of(integrand));
|
|
WR3:
|
|
definite_integral_expr_check(SELF\multiple_arity_generic_expression.operands, lower_limit_neg_infinity, upper_limit_pos_infinity);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY definite_integral_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
variable_of_integration : input_selector;
|
|
lower_limit_neg_infinity : BOOLEAN;
|
|
upper_limit_pos_infinity : BOOLEAN;
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
DERIVE
|
|
integrand : maths_function := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
space_is_continuum(integrand.range);
|
|
WR2:
|
|
definite_integral_check(integrand.domain, variable_of_integration, lower_limit_neg_infinity, upper_limit_pos_infinity);
|
|
END_ENTITY;
|
|
|
|
ENTITY definitional_representation
|
|
SUBTYPE OF (representation);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY definitional_representation_relationship
|
|
SUBTYPE OF (representation_relationship);
|
|
WHERE
|
|
WR1:
|
|
acyclic_representation_relationship(SELF, [ SELF\representation_relationship.rep_2 ], 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION');
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY delete_element
|
|
SUBTYPE OF (change_element);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY derived_shape_aspect
|
|
SUPERTYPE OF (ONEOF(apex, centre_of_symmetry, geometric_alignment, geometric_contact, geometric_intersection, parallel_offset, perpendicular_to, extension, tangent))
|
|
SUBTYPE OF (shape_aspect);
|
|
INVERSE
|
|
deriving_relationships : SET [1:?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY derived_unit_element;
|
|
unit : named_unit;
|
|
exponent : REAL;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY derived_unit_variable
|
|
SUBTYPE OF (derived_unit, variable_semantics);
|
|
INVERSE
|
|
associated_variable_environment : environment FOR semantics;
|
|
END_ENTITY;
|
|
|
|
ENTITY description_attribute;
|
|
attribute_value : text;
|
|
described_item : description_attribute_select;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
ENTITY descriptive_representation_item
|
|
SUPERTYPE OF (ONEOF(tagged_text_item, uniform_resource_identifier))
|
|
SUBTYPE OF (representation_item);
|
|
description : text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY design_make_from_relationship
|
|
SUBTYPE OF (product_definition_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY detailed_report_request
|
|
SUBTYPE OF (data_quality_report_request);
|
|
detailed_report_request_type : detailed_report_type;
|
|
report_sequence : preferred_ordering;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY detailed_report_request_with_number_of_data
|
|
SUBTYPE OF (detailed_report_request);
|
|
number_of_data : INTEGER;
|
|
DERIVE
|
|
SELF\detailed_report_request.detailed_report_request_type : detailed_report_type := measured_element;
|
|
END_ENTITY;
|
|
|
|
ENTITY diameter_dimension
|
|
SUBTYPE OF (dimension_curve_directed_callout);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY dielectric_constant_measure_with_unit
|
|
SUBTYPE OF (ratio_measure_with_unit);
|
|
END_ENTITY;
|
|
|
|
ENTITY dimension_callout
|
|
SUBTYPE OF (draughting_callout);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.LEADER_DIRECTED_CALLOUT' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY (dce_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.LEADER_CURVE' IN TYPEOF(dce_1)))) = 0);
|
|
WR2:
|
|
('STEP_MERGED_CAD_SCHEMA.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY (dce_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.PROJECTION_CURVE' IN TYPEOF(dce_1)))) = 0);
|
|
WR3:
|
|
('STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY (dce_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.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:
|
|
'STEP_MERGED_CAD_SCHEMA.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF.relating_draughting_callout);
|
|
WR3:
|
|
SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'STEP_MERGED_CAD_SCHEMA.LEADER_DIRECTED_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.PROJECTION_DIRECTED_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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) * [ 'STEP_MERGED_CAD_SCHEMA.ANGULAR_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.CURVE_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.DIAMETER_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.LEADER_DIRECTED_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.LINEAR_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.ORDINATE_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.RADIUS_DIMENSION' ]) >= 1;
|
|
WR3:
|
|
SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.PROJECTION_DIRECTED_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct)))) <= 2;
|
|
WR2:
|
|
SIZEOF(QUERY (dcdc <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc)))) >= 1;
|
|
WR3:
|
|
(SIZEOF(QUERY (dct1 <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1)) AND (dct1\dimension_curve_terminator.role = dimension_extent_usage.origin))) <= 1) AND (SIZEOF(QUERY (dct2 <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')| ('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE' IN TYPEOF(d_c)))) <= 2;
|
|
WR2:
|
|
SIZEOF(SELF\draughting_callout.contents) >= 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY dimension_curve_terminator
|
|
SUBTYPE OF (terminator_symbol);
|
|
role : dimension_extent_usage;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE' IN TYPEOF(SELF\terminator_symbol.annotated_curve);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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) * [ 'STEP_MERGED_CAD_SCHEMA.ANGULAR_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.CURVE_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.DIAMETER_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.LINEAR_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.ORDINATE_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.RADIUS_DIMENSION' ]) = 1;
|
|
WR3:
|
|
SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'STEP_MERGED_CAD_SCHEMA.ANGULAR_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.CURVE_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.DIAMETER_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.LINEAR_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.ORDINATE_DIMENSION', 'STEP_MERGED_CAD_SCHEMA.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:
|
|
'STEP_MERGED_CAD_SCHEMA.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation);
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT' IN TYPEOF(SELF\mapped_item.mapping_target);
|
|
WR3:
|
|
SIZEOF(QUERY (ato <* QUERY (si <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.STYLED_ITEM.ITEM')| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(si)))| NOT (SIZEOF(QUERY (dc <* USEDIN(ato, ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS'))| ('STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT' IN TYPEOF(dc))) * [ SELF\mapped_item.mapping_target ]) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY dimensional_characteristic_representation;
|
|
dimension : dimensional_characteristic;
|
|
representation : shape_dimension_representation;
|
|
END_ENTITY;
|
|
|
|
ENTITY dimensional_exponents;
|
|
length_exponent : REAL;
|
|
mass_exponent : REAL;
|
|
time_exponent : REAL;
|
|
electric_current_exponent : REAL;
|
|
thermodynamic_temperature_exponent : REAL;
|
|
amount_of_substance_exponent : REAL;
|
|
luminous_intensity_exponent : REAL;
|
|
END_ENTITY;
|
|
|
|
ENTITY dimensional_location
|
|
SUPERTYPE OF (ONEOF(angular_location, dimensional_location_with_path))
|
|
SUBTYPE OF (shape_aspect_relationship);
|
|
WHERE
|
|
WR1:
|
|
SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect;
|
|
WR2:
|
|
SELF\shape_aspect_relationship.relating_shape_aspect.of_shape :=: SELF\shape_aspect_relationship.related_shape_aspect.of_shape;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY dimensional_location_with_datum_feature
|
|
SUBTYPE OF (datum_feature, dimensional_location);
|
|
END_ENTITY;
|
|
|
|
ENTITY dimensional_location_with_path
|
|
SUBTYPE OF (dimensional_location);
|
|
path : shape_aspect;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY dimensional_size
|
|
SUPERTYPE OF (ONEOF(angular_size, dimensional_size_with_path));
|
|
applies_to : shape_aspect;
|
|
name : label;
|
|
DERIVE
|
|
id : identifier := get_id_value(SELF);
|
|
UNIQUE
|
|
UR1 : id, applies_to;
|
|
WHERE
|
|
WR1:
|
|
applies_to.product_definitional = TRUE;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY dimensional_size_with_datum_feature
|
|
SUBTYPE OF (datum_feature, dimensional_size);
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY directed_angle
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1;
|
|
WR3:
|
|
SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1;
|
|
WR4:
|
|
SELF.description IN [ 'punch direction', 'profile normal', 'surface normal' ];
|
|
WR5:
|
|
SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'angle') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY direction_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF.items) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT ('STEP_MERGED_CAD_SCHEMA.DIRECTION' IN TYPEOF(it)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY disallowed_assembly_relationship_usage
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ASSEMBLY_COMPONENT_USAGE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY disconnected_face_set
|
|
SUBTYPE OF (erroneous_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY discontinuous_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(g1_discontinuous_curve, g2_discontinuous_curve, g1_discontinuous_surface, g2_discontinuous_surface))
|
|
SUBTYPE OF (inapt_geometry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY div_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY document_identifier
|
|
SUBTYPE OF (group);
|
|
UNIQUE
|
|
UR1 : SELF\group.name, SELF\group.description;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY document_product_association
|
|
ABSTRACT SUPERTYPE;
|
|
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 ('STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'document'))) = 1);
|
|
WR3:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'document'))) = 1);
|
|
WR4:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN Deprecated AP203e1
|
|
ENTITY document_with_class
|
|
SUBTYPE OF (document);
|
|
class : identifier;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY dose_equivalent_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY dose_equivalent_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.sievert);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY double_offset_shelled_solid
|
|
SUBTYPE OF (shelled_solid);
|
|
thickness2 : length_measure;
|
|
WHERE
|
|
WR1:
|
|
thickness2 <> 0;
|
|
WR2:
|
|
SELF\shelled_solid.thickness <> thickness2;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY draped_defined_transformation
|
|
SUBTYPE OF (transformation_with_derived_angle);
|
|
END_ENTITY;
|
|
|
|
ENTITY draughting_annotation_occurrence
|
|
SUBTYPE OF (annotation_occurrence);
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (sty <* SELF.styles| NOT ((SIZEOF(sty.styles) = 1) AND ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sty.styles[1]))))) = 0);
|
|
WR2:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (sty <* SELF.styles| NOT ((SIZEOF(sty.styles) = 1) AND ('STEP_MERGED_CAD_SCHEMA.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1]))))) = 0);
|
|
WR3:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (bound <* SELF.item\annotation_fill_area.boundaries| NOT (SIZEOF(QUERY (si <* USEDIN(bound, 'STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM.ITEM')| ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)))) > 0))) = 0);
|
|
WR4:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (sty <* SELF.styles| NOT ((SIZEOF(sty.styles) = 1) AND (SIZEOF(TYPEOF(sty.styles[1]) * [ 'STEP_MERGED_CAD_SCHEMA.SYMBOL_STYLE', 'STEP_MERGED_CAD_SCHEMA.NULL_STYLE' ]) = 1)))) = 0);
|
|
WR5:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item))) OR (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_SYMBOL_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION') ] * TYPEOF(SELF.item\mapped_item.mapping_source.mapped_representation)) = 1);
|
|
WR6:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (sty <* SELF.styles| NOT ((SIZEOF(sty.styles) = 1) AND ('STEP_MERGED_CAD_SCHEMA.TEXT_STYLE' IN TYPEOF(sty.styles[1]))))) = 0);
|
|
WR7:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(TYPEOF(SELF.item) * [ 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_TEXT', 'STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL' ]) = 1);
|
|
WR8:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY (tl <* SELF.item\composite_text.collected_text| NOT ('STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL' IN TYPEOF(tl)))) = 0);
|
|
WR9:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL' IN TYPEOF(SELF.item))) OR (SELF.item\text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right' ]);
|
|
WR10:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY (tl <* QUERY (text <* SELF.item\composite_text.collected_text| ('STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL' IN TYPEOF(text)))| NOT (tl\text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right' ]))) = 0);
|
|
WR11:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR check_text_alignment(SELF.item);
|
|
WR12:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR check_text_font(SELF.item);
|
|
WR13:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY (tl <* QUERY (text <* SELF.item\composite_text.collected_text| ('STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL' IN TYPEOF(text)))| NOT (SIZEOF(TYPEOF(tl) * [ ('STEP_MERGED_CAD_SCHEMA.' + 'TEXT_LITERAL_WITH_BLANKING_BOX'), ('STEP_MERGED_CAD_SCHEMA.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES') ]) = 0))) = 0);
|
|
WR14:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.STYLED_ITEM.ITEM')| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)))) > 0))) = 0);
|
|
WR15:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.STYLED_ITEM.ITEM')| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)))) > 0))) = 0);
|
|
WR16:
|
|
SIZEOF(QUERY (cs <* QUERY (sty <* SELF.styles| ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sty.styles[1])))| NOT (('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(cs.styles[1]\curve_style.curve_width)) AND ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1])))| NOT ((SIZEOF(QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles| ('STEP_MERGED_CAD_SCHEMA.FILL_AREA_STYLE_TILES' IN TYPEOF(fs)))) <= 1) AND (SIZEOF(QUERY (fst <* QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1])))| NOT (SIZEOF(QUERY (fsh <* QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.TEXT_STYLE' IN TYPEOF(sty.styles[1])))| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(ts.styles[1])))) = 0;
|
|
WR20:
|
|
SIZEOF(QUERY (ts <* QUERY (sty <* SELF.styles| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY draughting_callout
|
|
SUBTYPE OF (geometric_representation_item);
|
|
contents : SET [1:?] OF draughting_callout_element;
|
|
WHERE
|
|
WR1:
|
|
(((SIZEOF(QUERY (l_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.LEADER_CURVE' IN TYPEOF(l_1)))) = 0) OR ('STEP_MERGED_CAD_SCHEMA.LEADER_DIRECTED_CALLOUT' IN TYPEOF(SELF)) AND (SIZEOF(QUERY (l_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.PROJECTION_CURVE' IN TYPEOF(l_1)))) = 0)) OR ('STEP_MERGED_CAD_SCHEMA.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF(SELF)) AND (SIZEOF(QUERY (l_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE' IN TYPEOF(l_1)))) = 0)) OR ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.LEADER_CURVE' IN TYPEOF(con)))| NOT (SIZEOF(QUERY (ldc <* USEDIN(l_c, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')| ('STEP_MERGED_CAD_SCHEMA.LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc)))) <= 1))) = 0;
|
|
WR2:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (con <* SELF.contents| ('STEP_MERGED_CAD_SCHEMA.PROJECTION_CURVE' IN TYPEOF(con)))) <= 2);
|
|
WR3:
|
|
SIZEOF(QUERY (rc <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'primary'))) <= 1;
|
|
WR4:
|
|
SIZEOF(QUERY (rc <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'secondary'))) <= 1;
|
|
WR5:
|
|
SIZEOF(QUERY (sec <* QUERY (rc <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'secondary'))| NOT (SIZEOF(QUERY (prim <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(prim)) AND (prim.name = 'primary'))) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_MODEL' ] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(si\styled_item.item)))| NOT (('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(psa)))) = 1))) = 1)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY draughting_model_item_association
|
|
SUBTYPE OF (item_identified_representation_usage);
|
|
SELF\item_identified_representation_usage.definition : draughting_model_item_definition;
|
|
SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select;
|
|
SELF\item_identified_representation_usage.used_representation : annotation_representation_select;
|
|
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;
|
|
|
|
-- IN AP214
|
|
ENTITY draughting_specification_reference
|
|
SUBTYPE OF (document_reference);
|
|
specified_items : SET [1:?] OF specified_item;
|
|
WHERE
|
|
wr1:
|
|
SELF.assigned_document.kind.product_data_type = 'draughting specification';
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY draughting_subfigure_representation
|
|
SUBTYPE OF (symbol_representation);
|
|
SELF\representation.items : SET [1:?] OF draughting_subfigure_representation_item;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (item <* SELF\representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_OCCURRENCE', 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT' ] * TYPEOF(item)) = 1))) >= 1;
|
|
WR2:
|
|
SIZEOF(QUERY (srm <* QUERY (rm <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION')| ('STEP_MERGED_CAD_SCHEMA.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)))| NOT (SIZEOF(QUERY (a_s <* QUERY (mi <* srm.map_usage| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(mi)))| NOT (SIZEOF(QUERY (aso <* USEDIN(a_s, 'STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM.ITEM')| NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0;
|
|
WR3:
|
|
SIZEOF(SELF.context_of_items.representations_in_context) = 1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY draughting_symbol_representation
|
|
SUBTYPE OF (symbol_representation);
|
|
SELF\representation.items : SET [1:?] OF draughting_symbol_representation_item;
|
|
UNIQUE
|
|
UR1 : SELF\representation.name;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (item <* SELF\representation.items| (SIZEOF(TYPEOF(item) * [ 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_CURVE_OCCURRENCE', 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL_OCCURRENCE', 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_FILL_AREA_OCCURRENCE', 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' ]) = 1))) >= 1;
|
|
WR2:
|
|
SIZEOF(QUERY (item <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(item)))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (rm <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION')| NOT ('STEP_MERGED_CAD_SCHEMA.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)))) = 0;
|
|
WR4:
|
|
SIZEOF(SELF.context_of_items.representations_in_context) = 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY draughting_text_literal_with_delineation
|
|
SUBTYPE OF (text_literal_with_delineation);
|
|
WHERE
|
|
WR1:
|
|
SELF.delineation IN [ 'underline', 'overline' ];
|
|
END_ENTITY;
|
|
|
|
ENTITY draughting_title;
|
|
items : SET [1:?] OF draughting_titled_item;
|
|
language : label;
|
|
contents : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY drawing_definition;
|
|
drawing_number : identifier;
|
|
drawing_type : OPTIONAL label;
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY drawing_sheet_layout
|
|
SUBTYPE OF (draughting_symbol_representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY drawing_sheet_revision
|
|
SUBTYPE OF (presentation_area);
|
|
revision_identifier : identifier;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (item <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(item)) AND ('STEP_MERGED_CAD_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(item\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY drawing_sheet_revision_sequence
|
|
SUBTYPE OF (representation_relationship);
|
|
WHERE
|
|
WR1:
|
|
SELF\representation_relationship.rep_1 :<>: SELF\representation_relationship.rep_2;
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\representation_relationship.rep_1);
|
|
WR3:
|
|
'STEP_MERGED_CAD_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\representation_relationship.rep_2);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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:
|
|
('STEP_MERGED_CAD_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\area_in_set.area)) AND ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.EDGE_BASED_WIREFRAME_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EDGE_BASED_WIREFRAME_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) >= 1;
|
|
WR3:
|
|
SIZEOF(QUERY (ebwm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(edges)))) = 0))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (ebwm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(edges.edge_start)) AND ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(edges.edge_end))))) = 0))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (ebwm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
ENTITY edge_blended_solid
|
|
ABSTRACT SUPERTYPE OF (track_blended_solid ANDOR ONEOF(solid_with_constant_radius_edge_blend, solid_with_chamfered_edges))
|
|
SUBTYPE OF (modified_solid);
|
|
blended_edges : LIST [1:?] OF UNIQUE edge_curve;
|
|
END_ENTITY;
|
|
|
|
ENTITY edge_curve
|
|
SUBTYPE OF (edge, geometric_representation_item);
|
|
edge_geometry : curve;
|
|
same_sense : BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
ENTITY edge_loop
|
|
SUBTYPE OF (loop, path);
|
|
DERIVE
|
|
ne : INTEGER := SIZEOF(SELF\path.edge_list);
|
|
WHERE
|
|
WR1:
|
|
SELF\path.edge_list[1].edge_start :=: SELF\path.edge_list[ne].edge_end;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY edge_round
|
|
SUBTYPE OF (transition_feature);
|
|
WHERE
|
|
WR1:
|
|
NOT (SELF\shape_aspect.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR2:
|
|
NOT (SELF\shape_aspect.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 3))) = 0))) = 0);
|
|
WR3:
|
|
NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0);
|
|
WR4:
|
|
NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first offset'))) <= 1))) = 0))) = 0);
|
|
WR5:
|
|
NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second offset'))) <= 1))) = 0))) = 0);
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'edge round face'))) <= 1))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) <= 1))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) <= 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY edge_with_excessive_segments
|
|
SUBTYPE OF (overcomplex_topology_and_geometry_relationship);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY electric_charge_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY electric_potential_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY electric_potential_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.volt);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY element_delivery
|
|
SUBTYPE OF (action);
|
|
WHERE
|
|
wr1:
|
|
(SIZEOF(QUERY (aa <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_ASSIGNMENT.ASSIGNED_ACTION')| ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa)))) = 1) AND (SIZEOF(QUERY (aaa <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_ASSIGNMENT.ASSIGNED_ACTION')| ((('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aaa)) AND (aaa.role.name = 'deliverable element')) AND (SIZEOF(aaa.items) = 1)) AND (SIZEOF(QUERY (i <* aaa.items| (('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(i)) AND (SIZEOF(i\applied_action_assignment.items) = 1)) AND (SIZEOF(QUERY (i1 <* aaa\applied_action_assignment.items| (('STEP_MERGED_CAD_SCHEMA.' + 'CONFIGURATION_ITEM' IN TYPEOF(i1)) OR ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION' IN TYPEOF(i1)) AND (i1\product_definition.frame_of_reference.name = 'physical occurrence')) OR ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF(i1)) AND (SIZEOF(QUERY (prpc <* USEDIN(i1, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc\product_category.name IN [ 'part', 'raw material', 'tool' ]))) = 1))) = 1))) = 1))) = 1);
|
|
wr2:
|
|
(SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')) = 1) AND (SIZEOF(QUERY (aoa <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')| (aoa.role.name = 'destination'))) = 1);
|
|
wr3:
|
|
((SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY.DEFINITION')) = 1) AND (SIZEOF(QUERY (ap <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY.DEFINITION')| (SIZEOF(USEDIN(ap, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')) = 1))) = 1)) AND (SIZEOF(QUERY (ap <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY.DEFINITION')| (SIZEOF(QUERY (apr <* USEDIN(ap, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| ((apr.representation.name = 'delivery quantity') AND (SIZEOF(apr.representation.items) = 1)) AND (SIZEOF(QUERY (i <* apr.representation.items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE') ] * TYPEOF(i)) = 1))) = 1))) = 1))) = 1);
|
|
wr4:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_RELATIONSHIP.RELATED_ACTION')) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY elementary_brep_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.FACETED_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (csh <* msb_shells(msb)| NOT (SIZEOF(QUERY (fcs <* csh.cfs_faces| NOT ('STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(fcs)))) = 0))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (csh <* msb_shells(msb)| NOT (SIZEOF(QUERY (fcs <* csh\connected_face_set.cfs_faces| NOT ('STEP_MERGED_CAD_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(fcs\face_surface.face_geometry)))) = 0))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT ('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(oe.edge_element)))) = 0))) = 0))) = 0))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.POLYLINE' ] * TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0))) = 0))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe.edge_start)) AND ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe.edge_end))))) = 0))) = 0))) = 0))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| ('STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\manifold_solid_brep.outer)))) = 0;
|
|
WR10:
|
|
SIZEOF(QUERY (brv <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ('STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\vertex_point.vertex_geometry))))) = 0))) = 0))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY elementary_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
func_id : elementary_function_enumerators;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY elementary_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
space_id : elementary_space_enumerators;
|
|
END_ENTITY;
|
|
|
|
ENTITY elementary_surface
|
|
SUPERTYPE OF (ONEOF(plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface))
|
|
SUBTYPE OF (surface);
|
|
position : axis2_placement_3d;
|
|
END_ENTITY;
|
|
|
|
ENTITY ellipse
|
|
SUBTYPE OF (conic);
|
|
semi_axis_1 : positive_length_measure;
|
|
semi_axis_2 : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY elliptic_area
|
|
SUBTYPE OF (primitive_2d);
|
|
position : axis2_placement_2d;
|
|
semi_axis_1 : positive_length_measure;
|
|
semi_axis_2 : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY energy_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY energy_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.joule);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY entirely_narrow_face
|
|
SUBTYPE OF (topology_related_to_nearly_degenerate_geometry);
|
|
width_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY entirely_narrow_solid
|
|
SUBTYPE OF (inapt_manifold_solid_brep);
|
|
width_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY entirely_narrow_surface
|
|
SUBTYPE OF (nearly_degenerate_geometry);
|
|
width_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BOUNDED_SURFACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY entity_assertion
|
|
SUBTYPE OF (fact_type);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY enum_reference_prefix
|
|
SUBTYPE OF (descriptive_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY environment;
|
|
syntactic_representation : generic_variable;
|
|
semantics : variable_semantics;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY equal_parameter_constraint
|
|
SUBTYPE OF (defined_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF variational_parameter;
|
|
SELF\explicit_constraint.reference_elements : SET [0:1] OF variational_parameter;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements) >= 2;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY equals_expression
|
|
SUBTYPE OF (binary_boolean_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY erroneous_b_spline_curve_definition
|
|
SUBTYPE OF (erroneous_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY erroneous_b_spline_surface_definition
|
|
SUBTYPE OF (erroneous_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY erroneous_data
|
|
ABSTRACT SUPERTYPE OF (ONEOF(erroneous_topology, erroneous_geometry, erroneous_topology_and_geometry_relationship, erroneous_manifold_solid_brep))
|
|
SUBTYPE OF (shape_data_quality_criterion);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY erroneous_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(inconsistent_curve_transition_code, erroneous_b_spline_curve_definition, inconsistent_surface_transition_code, erroneous_b_spline_surface_definition))
|
|
SUBTYPE OF (erroneous_data);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY erroneous_manifold_solid_brep
|
|
ABSTRACT SUPERTYPE OF (ONEOF(wrongly_oriented_void, wrongly_placed_void, intersecting_shells_in_solid, solid_with_wrong_number_of_voids))
|
|
SUBTYPE OF (erroneous_data);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY erroneous_topology
|
|
ABSTRACT SUPERTYPE OF (ONEOF(open_edge_loop, open_closed_shell, inconsistent_adjacent_face_normals, disconnected_face_set))
|
|
SUBTYPE OF (erroneous_data);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY erroneous_topology_and_geometry_relationship
|
|
ABSTRACT SUPERTYPE OF (ONEOF(inconsistent_edge_and_curve_directions, inconsistent_face_and_surface_normals, inconsistent_face_and_closed_shell_normals, intersecting_loops_in_face, wrongly_placed_loop))
|
|
SUBTYPE OF (erroneous_data);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY evaluated_characteristic_of_product_as_individual_test_result
|
|
SUBTYPE OF (evaluated_characteristic);
|
|
END_ENTITY;
|
|
|
|
ENTITY evaluated_degenerate_pcurve
|
|
SUBTYPE OF (degenerate_pcurve);
|
|
equivalent_point : cartesian_point;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214
|
|
ENTITY event_occurrence_context_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_event_occurrence_assignment : event_occurrence_assignment;
|
|
role : event_occurrence_context_role;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY event_occurrence_context_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY excessive_use_of_groups
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.GROUP' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY excessive_use_of_layers
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_LAYER_ASSIGNMENT' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY excessively_high_degree_curve
|
|
SUBTYPE OF (overcomplex_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY excessively_high_degree_surface
|
|
SUBTYPE OF (overcomplex_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
ENTITY exclusive_product_concept_feature_category
|
|
SUBTYPE OF (product_concept_feature_category);
|
|
END_ENTITY;
|
|
|
|
ENTITY executed_action
|
|
SUBTYPE OF (action);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY exp_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY expanded_uncertainty
|
|
SUBTYPE OF (standard_uncertainty);
|
|
coverage_factor : REAL;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY explicit_constraint
|
|
ABSTRACT SUPERTYPE OF (ONEOF(defined_constraint, free_form_constraint))
|
|
SUBTYPE OF (variational_representation_item);
|
|
description : OPTIONAL text;
|
|
constrained_elements : SET [1:?] OF representation_item;
|
|
reference_elements : SET [0:?] OF representation_item;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(constrained_elements * reference_elements) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY explicit_geometric_constraint
|
|
ABSTRACT SUPERTYPE OF (ONEOF(fixed_element_geometric_constraint, parallel_geometric_constraint, point_distance_geometric_constraint, skew_line_distance_geometric_constraint, curve_distance_geometric_constraint, surface_distance_geometric_constraint, radius_geometric_constraint, curve_length_geometric_constraint, parallel_offset_geometric_constraint, angle_geometric_constraint, perpendicular_geometric_constraint, incidence_geometric_constraint, coaxial_geometric_constraint, tangent_geometric_constraint, symmetry_geometric_constraint, swept_point_curve_geometric_constraint, swept_curve_surface_geometric_constraint, curve_smoothness_geometric_constraint, surface_smoothness_geometric_constraint))
|
|
SUBTYPE OF (defined_constraint, geometric_representation_item);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF geometric_representation_item;
|
|
SELF\explicit_constraint.reference_elements : SET [0:?] OF geometric_representation_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE' IN TYPEOF(SELF\representation_item_relationship.related_representation_item));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY explicit_procedural_representation_item_relationship
|
|
SUBTYPE OF (representation_item_relationship);
|
|
SELF\representation_item_relationship.relating_representation_item : procedural_representation_sequence;
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY explicit_procedural_representation_relationship
|
|
SUBTYPE OF (representation_relationship);
|
|
SELF\representation_relationship.rep_1 : procedural_representation;
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.PROCEDURAL_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_2)) AND NOT ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY explicit_table_function
|
|
ABSTRACT SUPERTYPE OF (ONEOF(listed_data, externally_listed_data, linearized_table_function, basic_sparse_matrix))
|
|
SUBTYPE OF (maths_function);
|
|
index_base : zero_or_one;
|
|
shape : LIST [1:?] OF positive_integer;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(numeric_expression, boolean_expression, string_expression))
|
|
SUBTYPE OF (generic_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY expression_conversion_based_unit
|
|
SUBTYPE OF (context_dependent_unit, variable_semantics);
|
|
INVERSE
|
|
associated_variable_environment : environment FOR semantics;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY expression_denoted_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
DERIVE
|
|
expr : generic_expression := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
schema_prefix + 'FUNCTION_SPACE' IN TYPEOF(values_space_of(expr));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY expression_extension_numeric
|
|
SUBTYPE OF (measure_with_unit, numeric_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY expression_extension_string
|
|
SUBTYPE OF (measure_with_unit, string_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY expression_extension_to_select;
|
|
type_expression_associated : expression_extension_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY extended_tuple_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
base : product_space;
|
|
extender : maths_space;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(base) AND expression_is_constant(extender);
|
|
WR2:
|
|
no_cyclic_space_reference(SELF, []);
|
|
WR3:
|
|
extender <> the_empty_space;
|
|
END_ENTITY;
|
|
|
|
ENTITY extension
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY extent
|
|
SUBTYPE OF (characterized_object);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY external_source_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_source : external_source;
|
|
related_source : external_source;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY externally_conditioned_data_quality_criteria_representation
|
|
SUBTYPE OF (data_quality_criteria_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF(q)))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY externally_conditioned_data_quality_criterion
|
|
SUBTYPE OF (data_quality_criterion, data_quality_measurement_requirement);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION')) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (i1 <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN TYPEOF(i1)))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (i1 <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN TYPEOF(i1)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY externally_conditioned_data_quality_inspection_instance_report_item
|
|
SUBTYPE OF (data_quality_inspection_instance_report_item);
|
|
SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1:?] OF inspected_ecdq_element_select;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (i1 <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES'))| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(i1.inspection_result)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY externally_conditioned_data_quality_inspection_result
|
|
SUBTYPE OF (data_quality_inspection_result);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF(SELF\data_quality_inspection_result.criterion_inspected);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY externally_conditioned_data_quality_inspection_result_representation
|
|
SUBTYPE OF (data_quality_inspection_result_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY externally_defined_character_glyph
|
|
SUBTYPE OF (externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_class
|
|
SUBTYPE OF (class, externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY externally_defined_colour
|
|
SUBTYPE OF (colour_specification, externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY externally_defined_context_dependent_unit
|
|
SUBTYPE OF (context_dependent_unit, externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY externally_defined_conversion_based_unit
|
|
SUBTYPE OF (conversion_based_unit, externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'external size dimension specification')));
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY externally_defined_feature_definition
|
|
SUBTYPE OF (feature_definition, externally_defined_item);
|
|
WHERE
|
|
WR1:
|
|
((((SELF\characterized_object.description = 'thread') AND (SELF\externally_defined_item.item_id = 'external thread')) AND (SELF\externally_defined_item.source.source_id = 'external feature specification') OR ((SELF\characterized_object.description = 'gear') AND (SELF\externally_defined_item.item_id = 'external gear')) AND (SELF\externally_defined_item.source.source_id = 'external feature specification')) OR ((SELF\characterized_object.description = 'marking') AND (SELF\externally_defined_item.item_id = 'external marking')) AND (SELF\externally_defined_item.source.source_id = 'external feature specification')) OR ((SELF\characterized_object.description = 'knurl') AND (SELF\externally_defined_item.item_id = 'external knurl')) AND (SELF\externally_defined_item.source.source_id = 'external feature specification');
|
|
WR2:
|
|
NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((5 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 10)))) = 1))) = 1);
|
|
WR3:
|
|
NOT (SELF\characterized_object.description = 'marking') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1))) = 1);
|
|
WR4:
|
|
NOT (SELF\characterized_object.description = 'knurl') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1))) = 1);
|
|
WR5:
|
|
NOT (SELF\characterized_object.description IN [ 'knurl', 'thread' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'partial area occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied area usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) <= 1))) = 0);
|
|
WR6:
|
|
NOT (SELF\characterized_object.description = 'marking') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'marking text'))) = 1))) = 0))) = 0);
|
|
WR7:
|
|
NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'removal direction')) AND ((it.description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0);
|
|
WR8:
|
|
NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'qualifier'))) <= 1))) = 0))) = 0);
|
|
WR9:
|
|
NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'hand'))) = 1))) = 0))) = 0);
|
|
WR10:
|
|
NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class'))) = 1))) = 0))) = 0);
|
|
WR11:
|
|
NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'form'))) = 1))) = 0))) = 0);
|
|
WR12:
|
|
NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'major diameter'))) <= 1))) = 0))) = 0);
|
|
WR13:
|
|
NOT (SELF\characterized_object.description = 'thread') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'number of threads'))) = 1))) = 0))) = 0);
|
|
WR14:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class 2'))) <= 1))) = 0))) = 0;
|
|
WR15:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'nominal size'))) <= 1))) = 0))) = 0;
|
|
WR16:
|
|
NOT (SELF\characterized_object.description IN [ 'knurl', 'gear', 'thread' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) <= 1))) = 0);
|
|
WR17:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (10 <= SIZEOF(pdr.used_representation.items))) AND (SIZEOF(pdr.used_representation.items) >= 11))) = 1))) = 1);
|
|
WR18:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'number of teeth'))) = 1))) = 0))) = 0);
|
|
WR19:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle'))) = 1))) = 0))) = 0);
|
|
WR20:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'rake shift factor'))) = 1))) = 0))) = 0);
|
|
WR21:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'nominal tooth depth'))) = 1))) = 0))) = 0);
|
|
WR22:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'face width'))) = 1))) = 0))) = 0);
|
|
WR23:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tip diameter'))) = 1))) = 0))) = 0);
|
|
WR24:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'module or diametral pitch')) AND ((it.description = 'module') OR (it.description = 'diametral pitch')))) = 1))) = 0))) = 0);
|
|
WR25:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'normal attribute'))) = 1))) = 0))) = 0);
|
|
WR26:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'internal or external gear')) AND ((it.description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0);
|
|
WR27:
|
|
NOT (SELF\characterized_object.description IN [ 'gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'root fillet radius'))) <= 1))) = 0))) = 0);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_general_property
|
|
SUBTYPE OF (general_property, externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_hatch_style
|
|
SUBTYPE OF (externally_defined_item, geometric_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_item;
|
|
item_id : source_item;
|
|
source : external_source;
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_item_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_item : externally_defined_item;
|
|
related_item : externally_defined_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY externally_defined_item_with_multiple_references
|
|
SUBTYPE OF (externally_defined_item);
|
|
references : LIST [1:?] OF UNIQUE source_item;
|
|
UNIQUE
|
|
UR1 : references;
|
|
WHERE
|
|
WR1:
|
|
NOT (SELF\externally_defined_item.item_id IN references);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY externally_defined_marker
|
|
SUBTYPE OF (externally_defined_symbol, pre_defined_marker);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY externally_defined_representation
|
|
SUBTYPE OF (representation, externally_defined_item);
|
|
SELF\representation.items : SET [1:?] OF externally_defined_representation_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY externally_defined_representation_item
|
|
SUBTYPE OF (representation_item, externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY externally_defined_string
|
|
SUBTYPE OF (externally_defined_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY externally_defined_style
|
|
SUBTYPE OF (externally_defined_item, founded_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_symbol
|
|
SUBTYPE OF (externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY externally_defined_terminator_symbol
|
|
SUBTYPE OF (externally_defined_symbol);
|
|
END_ENTITY;
|
|
|
|
ENTITY externally_defined_text_font
|
|
SUBTYPE OF (externally_defined_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY externally_listed_data
|
|
SUBTYPE OF (explicit_table_function, generic_literal, externally_defined_item);
|
|
value_range : maths_space;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(value_range);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY extreme_instance;
|
|
locations_of_extreme_value : SET [1:?] OF location_of_extreme_value_select;
|
|
measured_value : measured_value_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY extreme_patch_width_variation
|
|
SUBTYPE OF (geometry_with_local_irregularity);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
ENTITY extruded_area_solid
|
|
SUBTYPE OF (swept_area_solid);
|
|
extruded_direction : direction;
|
|
depth : positive_length_measure;
|
|
WHERE
|
|
WR1:
|
|
dot_product(SELF\swept_area_solid.swept_area.basis_surface\elementary_surface.position.p[3], extruded_direction) <> 0.0;
|
|
END_ENTITY;
|
|
|
|
ENTITY extruded_face_solid
|
|
SUBTYPE OF (swept_face_solid);
|
|
extruded_direction : direction;
|
|
depth : positive_length_measure;
|
|
WHERE
|
|
WR1:
|
|
dot_product(SELF\swept_face_solid.swept_face.face_geometry\elementary_surface.position.p[3], extruded_direction) <> 0.0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 (('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(first_trim_condition)) OR ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(second_trim_condition)));
|
|
WR2:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND ((first_trim_intent = trim_intent.offset) OR (first_trim_intent = trim_intent.up_to_next)) OR ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND ((first_trim_intent = trim_intent.blind) OR (first_trim_intent = trim_intent.through_all)) OR NOT ('STEP_MERGED_CAD_SCHEMA.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 ((('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY face_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF.items) >= 1;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT (('STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(it)) OR ('STEP_MERGED_CAD_SCHEMA.ORIENTED_FACE' IN TYPEOF(it))))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY face_shape_representation_relationship
|
|
SUBTYPE OF (representation_relationship);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_1);
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_2);
|
|
END_ENTITY;
|
|
|
|
ENTITY face_surface
|
|
SUBTYPE OF (face, geometric_representation_item);
|
|
face_geometry : surface;
|
|
same_sense : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.ORIENTED_SURFACE' IN TYPEOF(face_geometry));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY face_surface_with_excessive_patches_in_one_direction
|
|
SUBTYPE OF (overcomplex_topology_and_geometry_relationship);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
ENTITY faceted_brep
|
|
SUBTYPE OF (manifold_solid_brep);
|
|
END_ENTITY;
|
|
|
|
ENTITY faceted_brep_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it <* items| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.FACETED_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.FACETED_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (fbrep <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.FACETED_BREP' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (csh <* msb_shells(fbrep)| NOT (SIZEOF(QUERY (fcs <* csh\connected_face_set.cfs_faces| NOT (('STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(fcs)) AND (('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(fcs\face_surface.face_geometry)) AND ('STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(fcs\face_surface.face_geometry\elementary_surface.position.location)))))) = 0))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (fbrep <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(bnds)))) = 1))) = 0))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (msb <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)))| ('STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\manifold_solid_brep.outer)))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (brv <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY fact_type
|
|
SUBTYPE OF (property_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY feature_component_definition
|
|
SUBTYPE OF (characterized_object);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY feature_component_relationship
|
|
SUPERTYPE OF (ONEOF(pattern_omit_membership, pattern_offset_membership))
|
|
SUBTYPE OF (shape_aspect_relationship);
|
|
WHERE
|
|
WR1:
|
|
((SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT', 'STEP_MERGED_CAD_SCHEMA.REPLICATE_FEATURE', 'STEP_MERGED_CAD_SCHEMA.TRANSITION_FEATURE', 'STEP_MERGED_CAD_SCHEMA.MODIFIED_PATTERN' ] * TYPEOF(SELF.relating_shape_aspect)) = 1) OR ('STEP_MERGED_CAD_SCHEMA.MACHINING_FEATURE_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition));
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY feature_definition
|
|
SUPERTYPE OF (ONEOF(boss, compound_feature, externally_defined_feature_definition, flat_face, gear, marking, outer_round, outside_profile, pocket, protrusion, removal_volume, replicate_feature, revolved_profile, rib_top, round_hole, rounded_end, spherical_cap, step, slot, thread, turned_knurl))
|
|
SUBTYPE OF (characterized_object);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY feature_definition_with_connection_area
|
|
SUBTYPE OF (shape_feature_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY feature_for_datum_target_relationship
|
|
SUBTYPE OF (shape_aspect_relationship);
|
|
SELF\shape_aspect_relationship.related_shape_aspect : datum_target;
|
|
UNIQUE
|
|
UR1 : related_shape_aspect;
|
|
WHERE
|
|
WR1:
|
|
relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape;
|
|
WR2:
|
|
relating_shape_aspect\shape_aspect.product_definitional = TRUE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY feature_in_panel
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SELF.description IN [ 'pocket', 'boss', 'stairstep' ];
|
|
WR2:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ((2 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 3)))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| NOT (i.name IN [ 'orientation', 'base radius', 'target radius' ]))) > 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'base radius') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'target radius') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
WR6:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.name = 'base boundary') AND (sa.description IN [ 'directed angle occurrence', 'closed profile occurrence' ]))) = 1;
|
|
WR7:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.name = 'target boundary') AND (sa.description IN [ 'directed angle occurrence', 'closed profile occurrence' ]))) = 1;
|
|
WR8:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'directed angle occurrence'))) <= 1;
|
|
WR9:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'directed angle occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'directed angle usage')) AND ('STEP_MERGED_CAD_SCHEMA.DIRECTED_ANGLE' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'directed angle occurrence')));
|
|
WR10:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'closed profile occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage')) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'closed profile occurrence')));
|
|
WR11:
|
|
(SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) <= 1) AND (SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND NOT (pdr.used_representation.name = 'target face'))) = 0);
|
|
WR12:
|
|
(SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.name = 'target boundary') AND (sa.description = 'directed angle occurrence'))) = 0) OR (SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY feature_pattern
|
|
SUBTYPE OF (replicate_feature);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| NOT ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(srwp_i)))) > 0))) > 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'base feature placement'))) > 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY featured_shape
|
|
SUBTYPE OF (product_definition_shape);
|
|
WHERE
|
|
wr1:
|
|
'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION' IN TYPEOF(SELF.definition);
|
|
wr2:
|
|
(SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION')) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION')| ((pdr.name = 'featured shape sequence') AND ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr.relating_property_definition))) AND (pdr.relating_property_definition :<>: SELF))) = 1);
|
|
wr3:
|
|
SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION')| (SELF.definition :=: pdr.relating_property_definition.definition))) = 1;
|
|
wr4:
|
|
SIZEOF(QUERY (sa <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'PLACED_FEATURE'), ('STEP_MERGED_CAD_SCHEMA.' + 'INSTANCED_FEATURE') ] * TYPEOF(sa)) = 1))) >= 1;
|
|
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| ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(closed_curve)) OR ('STEP_MERGED_CAD_SCHEMA.CIRCLE' IN TYPEOF(closed_curve))) OR ('STEP_MERGED_CAD_SCHEMA.ELLIPSE' IN TYPEOF(closed_curve))) OR ('STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(closed_curve)) AND (closed_curve\b_spline_curve.closed_curve = TRUE)) OR ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE' IN TYPEOF(closed_curve)) AND (closed_curve\composite_curve.closed_curve = TRUE)) OR ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY fillet
|
|
SUBTYPE OF (transition_feature);
|
|
WHERE
|
|
WR1:
|
|
NOT (SELF\shape_aspect.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR2:
|
|
NOT (SELF\shape_aspect.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 3))) = 0))) = 0);
|
|
WR3:
|
|
NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0);
|
|
WR4:
|
|
NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first offset'))) <= 1))) = 0))) = 0);
|
|
WR5:
|
|
NOT (SELF.description = 'constant radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second offset'))) <= 1))) = 0))) = 0);
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'fillet face'))) = 1))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) = 1))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY finite_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
pairs : SET [1:?] OF LIST [2:2] OF maths_value;
|
|
WHERE
|
|
WR1:
|
|
VALUE_UNIQUE(list_selected_components(pairs, 1));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY finite_integer_interval
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
min : INTEGER;
|
|
max : INTEGER;
|
|
DERIVE
|
|
size : positive_integer := max - min + 1;
|
|
WHERE
|
|
WR1:
|
|
min <= max;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY finite_real_interval
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
min : REAL;
|
|
min_closure : open_closed;
|
|
max : REAL;
|
|
max_closure : open_closed;
|
|
WHERE
|
|
WR1:
|
|
min < max;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY finite_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
members : SET [0:?] OF maths_value;
|
|
WHERE
|
|
WR1:
|
|
VALUE_UNIQUE(members);
|
|
WR2:
|
|
SIZEOF(QUERY (expr <* QUERY (member <* members| ('STEP_MERGED_CAD_SCHEMA.GENERIC_EXPRESSION' IN TYPEOF(member)))| NOT expression_is_constant(expr))) = 0;
|
|
WR3:
|
|
no_cyclic_space_reference(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY fixed_constituent_assembly_constraint
|
|
SUBTYPE OF (assembly_geometric_constraint, fixed_element_geometric_constraint);
|
|
fixed_constituent : representative_shape_representation;
|
|
WHERE
|
|
WR1:
|
|
SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3;
|
|
WR2:
|
|
assembly_leaf(using_product_definition_of_shape_representation(fixed_constituent)[1]);
|
|
WR3:
|
|
(SIZEOF(SELF\explicit_constraint.constrained_elements) = 1) AND (SIZEOF(SELF\explicit_constraint.reference_elements) = 0);
|
|
WR4:
|
|
fixed_constituent IN using_representations(SELF\explicit_constraint.constrained_elements[1]) + using_representation_with_mapping(SELF\explicit_constraint.constrained_elements[1]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY fixed_element_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF geometric_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\explicit_constraint.reference_elements) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY fixed_instance_attribute_set
|
|
SUBTYPE OF (variational_representation_item);
|
|
fixed_attributes : SET [1:?] OF instance_attribute_reference;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* using_representations(SELF)| (SIZEOF(QUERY (r <* q.items| ('STEP_MERGED_CAD_SCHEMA.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF(r)))) > 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY flat_face
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'removal direction'))) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear')) AND (sdr.name = 'course of travel'))) = 1))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'removal boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.LINEAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'removal boundary'))) = 1))) = 1))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'enclosed boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect.description = 'boundary'))) = 1))) <= 1))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut volume')) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.BOSS', 'STEP_MERGED_CAD_SCHEMA.PROTRUSION' ] * TYPEOF(sar.related_shape_aspect)) = 1))) = 1))) <= 1))) = 1;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'removal depth'))) <= 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY flat_pattern_ply_representation_relationship
|
|
SUBTYPE OF (shape_representation_relationship);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY force_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY force_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.newton);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY format_function
|
|
SUBTYPE OF (string_expression, binary_generic_expression);
|
|
DERIVE
|
|
format_string : generic_expression := SELF\binary_generic_expression.operands[2];
|
|
value_to_format : generic_expression := SELF\binary_generic_expression.operands[1];
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(value_to_format)) AND ('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(format_string));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY forward_chaining_rule
|
|
SUBTYPE OF (rule_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY forward_chaining_rule_premise
|
|
SUBTYPE OF (property_definition, property_definition_representation, representation);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY founded_item
|
|
SUPERTYPE OF (ONEOF(b_spline_curve_knot_locator, b_spline_curve_segment, b_spline_surface_knot_locator, b_spline_surface_patch, b_spline_surface_strip, boundary_curve_of_b_spline_or_rectangular_composite_surface, box_domain, character_glyph_style_outline, character_glyph_style_stroke, composite_curve_segment, composite_curve_transition_locator, curve_style, curve_style_font, curve_style_font_and_scaling, curve_style_font_pattern, externally_defined_style, fill_area_style, interpolated_configuration_segment, kinematic_path_segment, plane_angle_and_length_pair, plane_angle_and_ratio_pair, point_style, presentation_style_assignment, rectangular_composite_surface_transition_locator, surface_patch, surface_side_style, surface_style_boundary, surface_style_control_grid, surface_style_fill_area, surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, surface_style_usage, symbol_style, text_style, view_volume) ANDOR ONEOF(character_glyph_style_outline, character_glyph_style_stroke, curve_style, curve_style_font, curve_style_font_and_scaling, curve_style_font_pattern, externally_defined_style, fill_area_style, point_style, presentation_style_assignment, surface_side_style, surface_style_boundary, surface_style_control_grid, surface_style_fill_area, surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, surface_style_usage, symbol_style, text_style));
|
|
DERIVE
|
|
users : SET [0:?] OF founded_item_select := using_items(SELF, []);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(users) > 0;
|
|
WR2:
|
|
NOT (SELF IN users);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY founded_kinematic_path
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET [1:?] OF kinematic_path;
|
|
SELF\representation.context_of_items : geometric_representation_context;
|
|
DERIVE
|
|
paths : SET [1:?] OF kinematic_path := SELF\representation.items;
|
|
founding : geometric_representation_context := SELF\representation.context_of_items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY free_edge
|
|
SUBTYPE OF (inapt_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
WR5:
|
|
SIZEOF(QUERY (sdqr <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(sdqr)) AND (SIZEOF(QUERY (sdqiir <* bag_to_set(USEDIN(sdqr, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(sdqiir)) AND (SIZEOF(QUERY (sdqiri <* sdqiir.inspected_instances| ('STEP_MERGED_CAD_SCHEMA.CLOSED_SHELL' IN TYPEOF(sdqiri.inspected_elements[1])))) = 0))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY free_form_assignment
|
|
SUBTYPE OF (free_form_constraint);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\free_form_constraint.constrained_elements| (q IN used_variables(SELF\free_form_constraint.constraining_expression)))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (q <* SELF\free_form_constraint.reference_elements| NOT (q IN used_variables(SELF\free_form_constraint.constraining_expression)))) = 0;
|
|
WR3:
|
|
SIZEOF(SELF\free_form_constraint.reference_elements) >= 1;
|
|
WR4:
|
|
SIZEOF(QUERY (q <* SELF\free_form_constraint.constrained_elements| NOT compatible_spaces(values_space_of(SELF\free_form_constraint.constraining_expression), q\maths_variable.values_space))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY free_form_constraint
|
|
ABSTRACT SUPERTYPE OF (ONEOF(free_form_assignment, free_form_relation))
|
|
SUBTYPE OF (explicit_constraint);
|
|
constraining_expression : expression;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF variational_parameter;
|
|
SELF\explicit_constraint.reference_elements : SET [0:?] OF variational_parameter;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY free_form_relation
|
|
SUBTYPE OF (free_form_constraint);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\free_form_constraint.constraining_expression);
|
|
WR2:
|
|
SIZEOF(QUERY (q <* SELF\free_form_constraint.constrained_elements + SELF\free_form_constraint.reference_elements| NOT (q IN used_variables(SELF\free_form_constraint.constraining_expression)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY free_kinematic_motion_representation
|
|
SUBTYPE OF (representation_relationship_with_transformation);
|
|
motion : kinematic_path;
|
|
SELF\representation_relationship.rep_1 : representative_shape_representation;
|
|
SELF\representation_relationship.rep_2 : representative_shape_representation;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator);
|
|
WR2:
|
|
('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1)) AND ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2));
|
|
WR3:
|
|
(dimension_of(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) = 3) AND (dimension_of(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) = 3);
|
|
WR4:
|
|
(SELF\representation_relationship.rep_1 IN using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1) + using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_1)) AND (SELF\representation_relationship.rep_2 IN using_representations(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2) + using_representation_with_mapping(SELF\representation_relationship_with_transformation.transformation_operator\item_defined_transformation.transform_item_2));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY frequency_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FREQUENCY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY frequency_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.hertz);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY frozen_assignment
|
|
SUBTYPE OF (approval_assignment);
|
|
items : SET [1:?] OF change_management_object;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY fully_constrained_pair
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY func
|
|
SUBTYPE OF (compound_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY function_application
|
|
SUBTYPE OF (multiple_arity_generic_expression);
|
|
func : maths_function_select;
|
|
arguments : LIST [1:?] OF maths_expression;
|
|
DERIVE
|
|
SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF generic_expression := [ convert_to_maths_function(func) ] + convert_to_operands(arguments);
|
|
WHERE
|
|
WR1:
|
|
function_applicability(func, arguments);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY function_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
domain_constraint : space_constraint_type;
|
|
domain_argument : maths_space;
|
|
range_constraint : space_constraint_type;
|
|
range_argument : maths_space;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(domain_argument) AND expression_is_constant(range_argument);
|
|
WR2:
|
|
(domain_argument <> the_empty_space) AND (range_argument <> the_empty_space);
|
|
WR3:
|
|
(domain_constraint <> sc_member) OR NOT member_of(the_empty_space, domain_argument);
|
|
WR4:
|
|
(range_constraint <> sc_member) OR NOT member_of(the_empty_space, range_argument);
|
|
WR5:
|
|
NOT (any_space_satisfies(domain_constraint, domain_argument) AND any_space_satisfies(range_constraint, range_argument));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY functional_breakdown_context
|
|
SUBTYPE OF (breakdown_context);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY functional_element_usage
|
|
SUBTYPE OF (breakdown_element_usage);
|
|
END_ENTITY;
|
|
|
|
ENTITY functionally_defined_transformation;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY g1_discontinuity_between_adjacent_faces
|
|
SUBTYPE OF (non_smooth_geometry_transition_across_edge);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY g1_discontinuous_curve
|
|
SUBTYPE OF (discontinuous_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY g1_discontinuous_surface
|
|
SUBTYPE OF (discontinuous_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY g2_discontinuity_between_adjacent_faces
|
|
SUBTYPE OF (non_smooth_geometry_transition_across_edge);
|
|
assessment_specification_2 : shape_data_quality_assessment_by_numerical_test;
|
|
flat_curvature_radius_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR3:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_AND_RATIO_PAIR');
|
|
WR4:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR5:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]);
|
|
WR6:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY g2_discontinuous_curve
|
|
SUBTYPE OF (discontinuous_geometry);
|
|
assessment_specification_2 : shape_data_quality_assessment_by_numerical_test;
|
|
flat_curvature_radius_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR3:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_AND_RATIO_PAIR');
|
|
WR4:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]);
|
|
WR5:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ]);
|
|
WR6:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY g2_discontinuous_surface
|
|
SUBTYPE OF (discontinuous_geometry);
|
|
assessment_specification_2 : shape_data_quality_assessment_by_numerical_test;
|
|
flat_curvature_radius_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR3:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_AND_RATIO_PAIR');
|
|
WR4:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR5:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ]);
|
|
WR6:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY gap_between_adjacent_edges_in_loop
|
|
SUBTYPE OF (geometric_gap_in_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY gap_between_edge_and_base_surface
|
|
SUBTYPE OF (geometric_gap_in_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY gap_between_faces_related_to_an_edge
|
|
SUBTYPE OF (geometric_gap_in_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY gap_between_pcurves_related_to_an_edge
|
|
SUBTYPE OF (geometric_gap_in_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY gap_between_vertex_and_base_surface
|
|
SUBTYPE OF (geometric_gap_in_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY gap_between_vertex_and_edge
|
|
SUBTYPE OF (geometric_gap_in_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY gear
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (10 <= SIZEOF(pdr.used_representation.items))) AND (SIZEOF(pdr.used_representation.items) <= 13))) = 1))) = 1;
|
|
WR2:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'number of teeth'))) = 1))) = 0))) = 0);
|
|
WR3:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle'))) = 1))) = 0))) = 0);
|
|
WR4:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'rake shift factor'))) = 1))) = 0))) = 0);
|
|
WR5:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'nominal tooth depth'))) = 1))) = 0))) = 0);
|
|
WR6:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'face width'))) = 1))) = 0))) = 0);
|
|
WR7:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tip diameter'))) = 1))) = 0))) = 0);
|
|
WR8:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'module or diametral pitch')) AND ((it.description = 'module') OR (it.description = 'diametral pitch')))) = 1))) = 0))) = 0);
|
|
WR9:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'internal or external gear')) AND ((it.description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0);
|
|
WR10:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'normal attribute'))) = 1))) = 0))) = 0);
|
|
WR11:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear', 'spur gear', 'helical gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'root fillet radius'))) <= 1))) = 0))) = 0);
|
|
WR12:
|
|
NOT (SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'reference helix angle'))) = 1))) = 0))) = 0);
|
|
WR13:
|
|
NOT (SELF\characterized_object.description IN [ 'helix gear', 'helical bevel gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'gear tooth')) AND ((it.description = 'left hand tooth') OR (it.description = 'right hand tooth')))) = 1))) = 0))) = 0);
|
|
WR14:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tip angle'))) = 1))) = 0))) = 0);
|
|
WR15:
|
|
NOT (SELF\characterized_object.description IN [ 'straight bevel gear', 'helical bevel gear' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'root angle'))) = 1))) = 0))) = 0);
|
|
WR16:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY gear_pair
|
|
SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling);
|
|
radius_first_link : length_measure;
|
|
radius_second_link : length_measure;
|
|
bevel : plane_angle_measure;
|
|
helical_angle : plane_angle_measure;
|
|
gear_ratio : REAL;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY gear_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : gear_pair;
|
|
lower_limit_actual_rotation_1 : rotational_range_measure;
|
|
upper_limit_actual_rotation_1 : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_rotation_1)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation_1))) XOR (lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY gear_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_rotation_1 : plane_angle_measure;
|
|
SELF\pair_value.applies_to_pair : gear_pair;
|
|
DERIVE
|
|
actual_rotation_2 : plane_angle_measure := -actual_rotation_1 * SELF\pair_value.applies_to_pair\gear_pair.gear_ratio;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY gear_pair_with_range
|
|
SUBTYPE OF (gear_pair);
|
|
lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_actual_rotation_1) OR NOT EXISTS(upper_limit_actual_rotation_1)) XOR (lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY general_datum_reference
|
|
ABSTRACT SUPERTYPE OF (ONEOF(datum_reference_compartment, datum_reference_element))
|
|
SUBTYPE OF (shape_aspect);
|
|
base : datum_or_common_datum;
|
|
modifiers : OPTIONAL SET [1:?] OF datum_reference_modifier;
|
|
WHERE
|
|
WR1:
|
|
SELF\shape_aspect.name = '';
|
|
WR2:
|
|
NOT EXISTS(SELF\shape_aspect.description);
|
|
WR3:
|
|
NOT EXISTS(SELF\shape_aspect.id);
|
|
WR4:
|
|
SELF\shape_aspect.product_definitional = FALSE;
|
|
WR5:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.DATUM' IN TYPEOF(base)) OR (SELF\shape_aspect.of_shape = base\shape_aspect.of_shape);
|
|
WR6:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.COMMON_DATUM_LIST' IN TYPEOF(base)) OR (SELF\shape_aspect.of_shape = base[1]\shape_aspect.of_shape);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY general_feature
|
|
SUBTYPE OF (shape_feature_definition);
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(get_property_definition_representations(SELF)) <= 1) AND (SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) <= 1);
|
|
WR2:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence'))) = SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel'))) = 1)));
|
|
WR3:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence'))) = SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND ('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)))) = 1)));
|
|
WR4:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'boundary occurrence'))) = SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'boundary occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage'))) = 1)));
|
|
WR5:
|
|
(SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)))) <= 1) AND (SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'general compound feature')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('STEP_MERGED_CAD_SCHEMA.INSTANCED_FEATURE' IN TYPEOF(sar.related_shape_aspect)))) >= 2))) <= 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY general_linear_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
sum_index : one_or_two;
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
DERIVE
|
|
mat : maths_function := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
function_is_2d_table(mat);
|
|
WR2:
|
|
(space_dimension(mat.range) = 1) AND subspace_of_es(factor1(mat.range), es_numbers);
|
|
END_ENTITY;
|
|
|
|
ENTITY general_material_property
|
|
SUBTYPE OF (general_property);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (gpa <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION')| NOT ('STEP_MERGED_CAD_SCHEMA.MATERIAL_PROPERTY' IN TYPEOF(gpa\general_property_association.derived_definition)))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY general_property;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY general_property_association;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
base_definition : general_property;
|
|
derived_definition : derived_property_select;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(derived_definition, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP242
|
|
ENTITY generated_finite_numeric_space
|
|
SUBTYPE OF (finite_space);
|
|
start_value : maths_number;
|
|
increment_value : maths_number;
|
|
increment_number : positive_integer;
|
|
DERIVE
|
|
SELF\finite_space.members : SET [2:?] OF maths_number := make_numeric_set(start_value, increment_value, increment_number);
|
|
WHERE
|
|
WR1:
|
|
increment_value <> 0.0;
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY generic_product_definition_reference
|
|
ABSTRACT SUPERTYPE OF (ONEOF(product_definition_reference, product_definition_reference_with_local_representation));
|
|
source : external_source;
|
|
END_ENTITY;
|
|
|
|
ENTITY generic_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;
|
|
|
|
-- IN AP242
|
|
ENTITY geometric_contact
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_curve_set
|
|
SUBTYPE OF (geometric_set);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (temp <* SELF\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(temp)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY geometric_gap_in_topology
|
|
ABSTRACT SUPERTYPE OF (ONEOF(gap_between_adjacent_edges_in_loop, gap_between_vertex_and_base_surface, gap_between_vertex_and_edge, gap_between_edge_and_base_surface, gap_between_pcurves_related_to_an_edge, gap_between_faces_related_to_an_edge))
|
|
SUBTYPE OF (inapt_topology_and_geometry_relationship);
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_intersection
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
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_model_item;
|
|
SELF\item_identified_representation_usage.used_representation : shape_model;
|
|
UNIQUE
|
|
UR1 : definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY geometric_representation_context
|
|
SUPERTYPE OF (ONEOF(geometric_representation_context_with_parameter, path_parameter_representation_context))
|
|
SUBTYPE OF (representation_context);
|
|
coordinate_space_dimension : dimension_count;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY geometric_representation_context_with_parameter
|
|
SUBTYPE OF (geometric_representation_context);
|
|
parameter_unit : OPTIONAL unit;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY geometric_representation_item
|
|
SUPERTYPE OF ((((((ONEOF(point, direction, vector, placement, cartesian_transformation_operator, curve, surface, edge_curve, face_surface, poly_loop, vertex_point, solid_model, boolean_result, sphere, right_circular_cone, right_circular_cylinder, torus, block, primitive_2d, right_angular_wedge, volume, half_space_solid, shell_based_surface_model, face_based_surface_model, shell_based_wireframe_model, edge_based_wireframe_model, geometric_set, tessellated_item) ANDOR ONEOF(camera_model, camera_model_d3_multi_clipping_intersection, camera_model_d3_multi_clipping_union, curve, direction, light_source)) ANDOR ONEOF(annotation_fill_area, composite_text, curve, defined_character_glyph, defined_symbol, point, symbol_target, text_literal)) ANDOR ONEOF(kinematic_path, placement)) ANDOR ONEOF(curve, externally_defined_hatch_style, externally_defined_tile_style, fill_area_style_hatching, fill_area_style_tile_coloured_region, fill_area_style_tile_curve_with_style, fill_area_style_tile_symbol_with_style, fill_area_style_tiles, one_direction_repeat_factor, point, vector)) ANDOR ONEOF(curve, planar_extent)) ANDOR ONEOF(rotation_about_direction, su_parameters))
|
|
SUBTYPE OF (representation_item);
|
|
DERIVE
|
|
dim : dimension_count := dimension_of(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (using_rep <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep.context_of_items)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
ENTITY geometric_set
|
|
SUBTYPE OF (geometric_representation_item);
|
|
elements : SET [1:?] OF geometric_set_select;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY geometric_tolerance
|
|
ABSTRACT SUPERTYPE OF ((((geometric_tolerance_with_datum_reference ANDOR geometric_tolerance_with_defined_unit) ANDOR ONEOF(geometric_tolerance_with_modifiers, modified_geometric_tolerance)) ANDOR unequally_disposed_geometric_tolerance) ANDOR ONEOF(cylindricity_tolerance, flatness_tolerance, line_profile_tolerance, position_tolerance, roundness_tolerance, straightness_tolerance, surface_profile_tolerance));
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
magnitude : OPTIONAL length_measure_with_unit;
|
|
toleranced_shape_aspect : geometric_tolerance_target;
|
|
DERIVE
|
|
controlling_shape : product_definition_shape := sts_get_product_definition_shape(toleranced_shape_aspect);
|
|
id : identifier := get_id_value(SELF);
|
|
UNIQUE
|
|
UR1 : id, controlling_shape;
|
|
WHERE
|
|
WR1:
|
|
magnitude\measure_with_unit.value_component >= 0.0;
|
|
WR2:
|
|
EXISTS(controlling_shape);
|
|
WR3:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF(toleranced_shape_aspect)) OR (toleranced_shape_aspect\shape_aspect_relationship.relating_shape_aspect.of_shape :=: toleranced_shape_aspect\shape_aspect_relationship.related_shape_aspect.of_shape);
|
|
WR4:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY geometric_tolerance_relationship;
|
|
name : label;
|
|
description : text;
|
|
relating_geometric_tolerance : geometric_tolerance;
|
|
related_geometric_tolerance : geometric_tolerance;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY geometric_tolerance_with_datum_reference
|
|
SUPERTYPE OF (ONEOF(angularity_tolerance, circular_runout_tolerance, coaxiality_tolerance, concentricity_tolerance, parallelism_tolerance, perpendicularity_tolerance, symmetry_tolerance, total_runout_tolerance))
|
|
SUBTYPE OF (geometric_tolerance);
|
|
datum_system : SET [1:?] OF datum_system_or_reference;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(QUERY (ds <* datum_system| ('STEP_MERGED_CAD_SCHEMA.' + 'DATUM_SYSTEM' IN TYPEOF(ds)))) = 0) OR (SIZEOF(datum_system) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY geometric_tolerance_with_defined_area_unit
|
|
SUBTYPE OF (geometric_tolerance_with_defined_unit);
|
|
area_type : area_unit_type;
|
|
second_unit_size : OPTIONAL length_measure_with_unit;
|
|
WHERE
|
|
WR1:
|
|
NOT (EXISTS(second_unit_size) XOR (area_type = area_unit_type.rectangular));
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY geometric_tolerance_with_defined_unit
|
|
SUBTYPE OF (geometric_tolerance);
|
|
unit_size : length_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;
|
|
|
|
-- IN AP242
|
|
ENTITY geometric_tolerance_with_maximum_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_modifiers);
|
|
maximum_upper_tolerance : length_measure_with_unit;
|
|
WHERE
|
|
WR1:
|
|
(geometric_tolerance_modifier.maximum_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers) OR (geometric_tolerance_modifier.least_material_requirement IN SELF\geometric_tolerance_with_modifiers.modifiers);
|
|
WR2:
|
|
(maximum_upper_tolerance\measure_with_unit.unit_component = SELF\geometric_tolerance.magnitude\measure_with_unit.unit_component) AND (maximum_upper_tolerance\measure_with_unit.value_component > SELF\geometric_tolerance.magnitude\measure_with_unit.value_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY geometric_tolerance_with_modifiers
|
|
SUBTYPE OF (geometric_tolerance);
|
|
modifiers : SET [1:?] OF geometric_tolerance_modifier;
|
|
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) * [ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_2D', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ]) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (item <* SELF.items| (SIZEOF(TYPEOF(item) * [ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ]) = 1))) >= 1;
|
|
WR4:
|
|
SIZEOF(QUERY (mi <* QUERY (item <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(item)))| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (gcs <* QUERY (item <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(item)))| NOT (SIZEOF(QUERY (elem <* gcs\geometric_set.elements| NOT (SIZEOF(TYPEOF(elem) * [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE', 'STEP_MERGED_CAD_SCHEMA.CIRCLE', 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE', 'STEP_MERGED_CAD_SCHEMA.ELLIPSE', 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_2D', 'STEP_MERGED_CAD_SCHEMA.POINT', 'STEP_MERGED_CAD_SCHEMA.POLYLINE', 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' ]) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (gcs <* QUERY (item <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(item)))| NOT (SIZEOF(QUERY (crv <* QUERY (elem <* gcs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(elem)))| NOT valid_basis_curve_in_2d_wireframe(crv))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (gcs <* QUERY (item <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(item)))| NOT (SIZEOF(QUERY (pnt <* QUERY (elem <* gcs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.POINT' IN TYPEOF(elem)))| NOT (SIZEOF(TYPEOF(pnt) * [ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_SET' IN TYPEOF(mr_it)))) > 0)))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (gs <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (pnt <* QUERY (gsel <* gs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.POINT' IN TYPEOF(gsel)))| NOT gbsf_check_point(pnt))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (gs <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (cv <* QUERY (gsel <* gs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(gsel)))| NOT gbsf_check_curve(cv))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (gs <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (sf <* QUERY (gsel <* gs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(gsel)))| NOT gbsf_check_surface(sf))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (gs <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_SET' IN TYPEOF(it)))| (SIZEOF(QUERY (gsel <* gs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.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) * [ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ]) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF(TYPEOF(it) * [ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ]) = 1))) >= 1;
|
|
WR3:
|
|
SIZEOF(QUERY (gcs <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (crv <* QUERY (elem <* gcs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(elem)))| NOT valid_geometrically_bounded_wf_curve(crv))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (gcs <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (pnts <* QUERY (elem <* gcs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.POINT' IN TYPEOF(elem)))| NOT valid_geometrically_bounded_wf_point(pnts))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (gcs <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (cnc <* QUERY (elem <* gcs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.CONIC' IN TYPEOF(elem)))| NOT ('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(cnc\conic.position)))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (gcs <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (pline <* QUERY (elem <* gcs\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(elem)))| NOT (SIZEOF(pline\polyline.points) > 2))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY geometry_with_local_irregularity
|
|
ABSTRACT SUPERTYPE OF (ONEOF(extreme_patch_width_variation, zero_surface_normal, abrupt_change_of_surface_normal))
|
|
SUBTYPE OF (inapt_geometry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY geometry_with_local_near_degeneracy
|
|
ABSTRACT SUPERTYPE OF (ONEOF(curve_with_small_curvature_radius, short_length_curve_segment, surface_with_small_curvature_radius, small_area_surface_patch, narrow_surface_patch, indistinct_surface_knots, indistinct_curve_knots, nearly_degenerate_surface_boundary, nearly_degenerate_surface_patch))
|
|
SUBTYPE OF (inapt_geometry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY ground_fact
|
|
SUBTYPE OF (atomic_formula);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY group
|
|
SUPERTYPE OF (ONEOF(change_group, change_element));
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
DERIVE
|
|
id : identifier := get_id_value(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY group_assignment
|
|
ABSTRACT SUPERTYPE OF (ONEOF(current_change_element_assignment, previous_change_element_assignment, change_group_assignment));
|
|
assigned_group : group;
|
|
DERIVE
|
|
role : object_role := get_role(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY group_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_group : group;
|
|
related_group : group;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY half_space_2d
|
|
SUBTYPE OF (primitive_2d);
|
|
base_curve : curve;
|
|
agreement_flag : BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
ENTITY half_space_solid
|
|
SUBTYPE OF (geometric_representation_item);
|
|
base_surface : surface;
|
|
agreement_flag : BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
ENTITY hardness_representation
|
|
SUBTYPE OF (representation);
|
|
WHERE
|
|
WR1:
|
|
((2 <= SIZEOF(SELF.items)) AND (SIZEOF(SELF.items) <= 4)) AND (SIZEOF(QUERY (i <* items| ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN [ 'measuring method', 'measuring position' ]))) + SIZEOF(QUERY (i <* items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')| (SIZEOF(QUERY (gpa <* USEDIN(pdr.definition, 'STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa\general_property_association.base_definition\general_property.name = 'surface_condition'))) = 1))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF(SELF.item\mapped_item.mapping_source.mapping_origin);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY high_degree_axi_symmetric_surface
|
|
SUBTYPE OF (overcomplex_geometry);
|
|
approximation_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY high_degree_conic
|
|
SUBTYPE OF (overcomplex_geometry);
|
|
approximation_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY high_degree_linear_curve
|
|
SUBTYPE OF (overcomplex_geometry);
|
|
approximation_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY high_degree_planar_surface
|
|
SUBTYPE OF (overcomplex_geometry);
|
|
approximation_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY high_order_kinematic_pair
|
|
ABSTRACT SUPERTYPE OF (ONEOF(linear_flexible_and_planar_curve_pair, point_on_surface_pair, point_on_planar_curve_pair, planar_curve_pair, surface_pair))
|
|
SUBTYPE OF (kinematic_pair);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_2| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY hole_bottom
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'through', 'flat', 'flat with radius', 'flat with taper', 'spherical', 'conical' ];
|
|
WR3:
|
|
NOT (SELF.description = 'through') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 0))) = 0);
|
|
WR4:
|
|
NOT (SELF.description IN [ 'flat with radius', 'flat with taper', 'spherical', 'conical' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR5:
|
|
NOT (SELF.description = 'flat') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 0))) = 0))) = 0);
|
|
WR6:
|
|
NOT (SELF.description IN [ 'flat with radius', 'spherical' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0);
|
|
WR7:
|
|
NOT (SELF.description = 'flat with taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 2))) = 0))) = 0);
|
|
WR8:
|
|
NOT (SELF.description = 'conical') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 2))) = 0))) = 0);
|
|
WR9:
|
|
(SELF.description = 'through') OR (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'hole bottom usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (fcr.name IN [ 'hole depth start', 'hole depth end' ]))) >= 1);
|
|
WR10:
|
|
NOT (SELF.description = 'flat with radius') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'corner radius'))) = 1))) = 0))) = 0);
|
|
WR11:
|
|
NOT (SELF.description = 'spherical') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0);
|
|
WR12:
|
|
NOT (SELF.description = 'conical') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tip radius'))) <= 1))) = 0))) = 0);
|
|
WR13:
|
|
NOT (SELF.description = 'conical') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tip angle'))) = 1))) = 0))) = 0);
|
|
WR14:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'hole bottom usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND ('STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('STEP_MERGED_CAD_SCHEMA.HOLE_BOTTOM' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1;
|
|
WR15:
|
|
NOT (SELF.description = 'flat with taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'final diameter'))) = 1))) = 0))) = 0);
|
|
WR16:
|
|
NOT (SELF.description = 'flat with taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'taper diameter'))) = 1))) = 0))) = 0);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY hole_in_panel
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'hole profile') AND (sa.description = 'closed profile occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage')) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = 1;
|
|
WR2:
|
|
SIZEOF(get_property_definition_representations(SELF)) = SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| (SIZEOF(pdr.used_representation.items) = 1)));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY homogeneous_linear_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
sum_index : one_or_two;
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
DERIVE
|
|
mat : maths_function := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
function_is_2d_table(mat);
|
|
WR2:
|
|
(space_dimension(mat.range) = 1) AND subspace_of_es(factor1(mat.range), es_numbers);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY homokinetic_pair
|
|
SUBTYPE OF (universal_pair);
|
|
WHERE
|
|
WR1:
|
|
NOT EXISTS(SELF.input_skew_angle);
|
|
END_ENTITY;
|
|
|
|
ENTITY hyperbola
|
|
SUBTYPE OF (conic);
|
|
semi_axis : positive_length_measure;
|
|
semi_imag_axis : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY id_attribute;
|
|
attribute_value : identifier;
|
|
identified_item : id_attribute_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY identification_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_id : identifier;
|
|
role : identification_role;
|
|
END_ENTITY;
|
|
|
|
ENTITY identification_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY illuminance_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.ILLUMINANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY illuminance_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.lux);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_explicit_positioned_sketch_relationship
|
|
SUBTYPE OF (representation_item_relationship);
|
|
SELF\representation_item_relationship.related_representation_item : positioned_sketch;
|
|
SELF\representation_item_relationship.relating_representation_item : repositioned_neutral_sketch;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* using_representations(SELF\representation_item_relationship.related_representation_item)| item_in_context(SELF\representation_item_relationship.relating_representation_item, q.context_of_items))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_intersection_curve
|
|
SUBTYPE OF (implicit_planar_curve);
|
|
external_surface : surface;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_model_intersection_curve
|
|
SUBTYPE OF (implicit_planar_curve);
|
|
intersected_model : surface_or_solid_model;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_planar_curve
|
|
ABSTRACT SUPERTYPE OF (ONEOF(implicit_intersection_curve, implicit_projected_curve, implicit_model_intersection_curve, implicit_silhouette_curve))
|
|
SUBTYPE OF (curve, auxiliary_geometric_representation_item);
|
|
using_sketch : positioned_sketch;
|
|
computed_representation : curve;
|
|
DERIVE
|
|
curve_plane : plane := get_plane_of_implicit_geometry(using_sketch);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(TYPEOF(computed_representation) * [ 'STEP_MERGED_CAD_SCHEMA.IMPLICIT_PLANAR_CURVE', 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' ]) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_planar_intersection_point
|
|
SUBTYPE OF (implicit_point_on_plane);
|
|
external_curve : curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_planar_projection_point
|
|
SUBTYPE OF (implicit_point_on_plane);
|
|
external_point : point;
|
|
projection_direction : direction;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_point_on_plane
|
|
ABSTRACT SUPERTYPE OF (ONEOF(implicit_planar_intersection_point, implicit_planar_projection_point))
|
|
SUBTYPE OF (point, auxiliary_geometric_representation_item);
|
|
using_sketch : positioned_sketch;
|
|
computed_representation : cartesian_point;
|
|
DERIVE
|
|
plane_of_point : plane := get_plane_of_implicit_geometry(using_sketch);
|
|
WHERE
|
|
WR1:
|
|
(plane_of_point\elementary_surface.position.location = computed_representation) XOR (dot_product(plane_of_point\elementary_surface.position.p[3], get_relative_direction_2points(plane_of_point\elementary_surface.position.location, computed_representation)) = 0);
|
|
WR2:
|
|
SIZEOF(TYPEOF(computed_representation) * [ 'STEP_MERGED_CAD_SCHEMA.IMPLICIT_POINT_ON_PLANE', 'STEP_MERGED_CAD_SCHEMA.POINT_REPLICA' ]) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_projected_curve
|
|
SUBTYPE OF (implicit_planar_curve);
|
|
external_curve : curve;
|
|
projection_direction : direction;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY implicit_silhouette_curve
|
|
SUBTYPE OF (implicit_planar_curve);
|
|
silhouetted_model : surface_or_solid_model;
|
|
view_direction : direction;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY imported_curve_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
geometry : curve;
|
|
parametric_domain : tuple_space;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(parametric_domain);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY imported_point_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
geometry : point;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY imported_surface_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
geometry : surface;
|
|
parametric_domain : tuple_space;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(parametric_domain);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY imported_volume_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
geometry : volume;
|
|
parametric_domain : tuple_space;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(parametric_domain);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inappropriate_element_visibility
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inappropriate_use_of_layer
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_LAYER_ASSIGNMENT' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inapt_data
|
|
ABSTRACT SUPERTYPE OF (ONEOF(inapt_topology, inapt_geometry, inapt_topology_and_geometry_relationship, inapt_manifold_solid_brep))
|
|
SUBTYPE OF (shape_data_quality_criterion);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inapt_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(nearly_degenerate_geometry, discontinuous_geometry, self_intersecting_geometry, geometry_with_local_near_degeneracy, overlapping_geometry, multiply_defined_geometry, geometry_with_local_irregularity, overcomplex_geometry))
|
|
SUBTYPE OF (inapt_data);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inapt_manifold_solid_brep
|
|
ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_solids, small_volume_solid, multiply_defined_solids, entirely_narrow_solid, solid_with_excessive_number_of_voids))
|
|
SUBTYPE OF (inapt_data);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inapt_topology
|
|
ABSTRACT SUPERTYPE OF (ONEOF(free_edge, non_manifold_at_edge, non_manifold_at_vertex, over_used_vertex))
|
|
SUBTYPE OF (inapt_data);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inapt_topology_and_geometry_relationship
|
|
ABSTRACT SUPERTYPE OF (ONEOF(topology_related_to_nearly_degenerate_geometry, geometric_gap_in_topology, non_smooth_geometry_transition_across_edge, topology_related_to_self_intersecting_geometry, steep_geometry_transition_across_edge, topology_related_to_overlapping_geometry, topology_related_to_multiply_defined_geometry, overcomplex_topology_and_geometry_relationship))
|
|
SUBTYPE OF (inapt_data);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY incidence_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint, incidence_geometric_constraint);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY incidence_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
near_points : SET [0:?] OF near_point_relationship;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF geometric_constraint_element;
|
|
SELF\explicit_constraint.reference_elements : SET [0:?] OF geometric_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2);
|
|
WR2:
|
|
SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements);
|
|
WR3:
|
|
SIZEOF(QUERY (q <* near_points| NOT (q\representation_item_relationship.relating_representation_item IN SELF\explicit_constraint.reference_elements))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY included_text_block
|
|
SUBTYPE OF (mapped_item);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(SELF));
|
|
WR2:
|
|
SIZEOF(QUERY (cfr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE')| ('STEP_MERGED_CAD_SCHEMA.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)))) + SIZEOF(QUERY (cfr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE')| ('STEP_MERGED_CAD_SCHEMA.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)))) = 0;
|
|
WR3:
|
|
SELF.condition.conditional_operator.name = 'implication';
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inconsistent_adjacent_face_normals
|
|
SUBTYPE OF (erroneous_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'CLOSED_OR_OPEN_SHELL_SELECT' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inconsistent_curve_transition_code
|
|
SUBTYPE OF (erroneous_geometry);
|
|
angle_tolerance : plane_angle_measure;
|
|
curvature_ratio_tolerance : ratio_measure;
|
|
distance_tolerance : length_measure;
|
|
flat_curvature_radius_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'COMPOSITE_CURVE_TRANSITION_LOCATOR' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inconsistent_edge_and_curve_directions
|
|
SUBTYPE OF (erroneous_topology_and_geometry_relationship);
|
|
distance_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inconsistent_element_reference
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inconsistent_face_and_closed_shell_normals
|
|
SUBTYPE OF (erroneous_topology_and_geometry_relationship);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inconsistent_face_and_surface_normals
|
|
SUBTYPE OF (erroneous_topology_and_geometry_relationship);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY inconsistent_surface_transition_code
|
|
SUBTYPE OF (erroneous_geometry);
|
|
angle_tolerance : plane_angle_measure;
|
|
curvature_ratio_tolerance : ratio_measure;
|
|
distance_tolerance : length_measure;
|
|
flat_curvature_radius_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_COMPOSITE_SURFACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY index_expression
|
|
SUBTYPE OF (string_expression, binary_generic_expression);
|
|
DERIVE
|
|
index : generic_expression := SELF\binary_generic_expression.operands[2];
|
|
operand : generic_expression := SELF\binary_generic_expression.operands[1];
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(operand)) AND ('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(index));
|
|
WR2:
|
|
is_int_expr(index);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY indirectly_selected_elements
|
|
SUBTYPE OF (user_selected_elements);
|
|
indirectly_picked_items : SET [1:?] OF representation_item;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
ENTITY indirectly_selected_shape_elements
|
|
SUBTYPE OF (indirectly_selected_elements, user_selected_shape_elements);
|
|
SELF\indirectly_selected_elements.indirectly_picked_items : SET [1:?] OF shape_representation_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY indistinct_curve_knots
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PARAMETER_VALUE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PARAMETER_VALUE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY indistinct_surface_knots
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PARAMETER_VALUE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PARAMETER_VALUE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY inductance_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.INDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY inductance_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.henry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY information_right
|
|
SUBTYPE OF (action_method);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY information_usage_right
|
|
SUBTYPE OF (action_method);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY initial_state;
|
|
applies_to_mechanism : mechanism;
|
|
pair_values : SET [1:?] OF pair_value;
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (joint <* applies_to_mechanism.structure_definition.joints| (SIZEOF(QUERY (init_val <* pair_values| (init_val.applies_to_pair.joint :=: joint))) <> 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY instance_attribute_reference
|
|
SUBTYPE OF (variable_semantics);
|
|
attribute_name : attribute_identifier;
|
|
owning_instance : representation_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY instance_report_item_with_extreme_instances
|
|
SUBTYPE OF (shape_data_quality_inspection_instance_report_item);
|
|
extreme_instances : LIST [1:?] OF extreme_instance;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY instance_usage_context_assignment
|
|
SUBTYPE OF (product_definition_context);
|
|
items : SET [1:?] OF instance_usage_context_select;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY instanced_feature
|
|
SUBTYPE OF (feature_definition, shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.product_definitional;
|
|
END_ENTITY;
|
|
|
|
ENTITY int_literal
|
|
SUBTYPE OF (literal_number);
|
|
SELF\literal_number.the_value : INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY int_numeric_variable
|
|
SUBTYPE OF (numeric_variable);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY int_value_function
|
|
SUBTYPE OF (value_function);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY integer_defined_function
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (numeric_defined_function);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY integer_interval_from_min
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
min : INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY integer_interval_to_max
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
max : INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY integer_representation_item
|
|
SUBTYPE OF (representation_item, int_literal);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY integer_tuple_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : LIST [1:?] OF INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY interfaced_group_component
|
|
SUBTYPE OF (assembly_group_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY interpolated_configuration_representation
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.context_of_items : geometric_representation_context_with_parameter;
|
|
SELF\representation.items : SET [1:?] OF interpolated_configuration_sequence;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY interpolated_configuration_segment
|
|
SUBTYPE OF (founded_item);
|
|
state : mechanism_state_representation;
|
|
t_parameter : parameter_value;
|
|
interpolation : interpolation_type;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY interpolated_configuration_sequence
|
|
SUBTYPE OF (representation_item);
|
|
segments : LIST [2:?] OF interpolated_configuration_segment;
|
|
DERIVE
|
|
closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type;
|
|
configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism;
|
|
n_segments : INTEGER := SIZEOF(segments);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (ics <* segments| (ics.state.represented_mechanism :<>: configured_mechanism))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY intersecting_connected_face_sets
|
|
SUBTYPE OF (topology_related_to_self_intersecting_geometry);
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET', 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY intersecting_loops_in_face
|
|
SUBTYPE OF (erroneous_topology_and_geometry_relationship);
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY intersecting_shells_in_solid
|
|
SUBTYPE OF (erroneous_manifold_solid_brep);
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BREP_WITH_VOIDS' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
ENTITY intersection_curve
|
|
SUBTYPE OF (surface_curve);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\surface_curve.associated_geometry) = 2;
|
|
WR2:
|
|
associated_surface(SELF\surface_curve.associated_geometry[1]) <> associated_surface(SELF\surface_curve.associated_geometry[2]);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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:
|
|
(('STEP_MERGED_CAD_SCHEMA.EXPRESSION' IN TYPEOF(interval_low)) AND ('STEP_MERGED_CAD_SCHEMA.EXPRESSION' IN TYPEOF(interval_item))) AND ('STEP_MERGED_CAD_SCHEMA.EXPRESSION' IN TYPEOF(interval_high));
|
|
WR2:
|
|
(('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(SELF.interval_high))) AND ('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(SELF.interval_item)) OR (('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_item))) AND ('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_high));
|
|
END_ENTITY;
|
|
|
|
ENTITY invisibility;
|
|
invisible_items : SET [1:?] OF invisible_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY item_identified_representation_usage;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
definition : item_identified_representation_usage_definition;
|
|
used_representation : representation;
|
|
identified_item : item_identified_representation_usage_select;
|
|
WHERE
|
|
WR1:
|
|
SELF.used_representation IN using_representations(SELF.identified_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY item_link_motion_relationship
|
|
SUBTYPE OF (link_motion_relationship);
|
|
item : geometric_representation_item;
|
|
SELF\representation_relationship.rep_1 : shape_representation;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY joggle
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ((5 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 10)))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| NOT (i.name IN [ 'orientation', 'base radius 1', 'base radius 2', 'direction angle 1', 'direction angle 2', 'height', 'slope angle 1', 'slope angle 2', 'top radius 1', 'top radius 2' ]))) > 0))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'direction angle 1') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
WR4:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'direction angle 2') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'height') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
WR6:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'slope angle 1') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
WR7:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'slope angle 2') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
WR8:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'defining path') AND (sa.description = 'path feature component occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'path feature component usage')) AND ('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect))) AND (sar.relating_shape_aspect.description = 'linear'))) = 1))) = 1;
|
|
WR9:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| ((sa.name = 'termination') AND (sa.description = 'joggle termination occurrence')) AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'joggle termination usage')) AND ('STEP_MERGED_CAD_SCHEMA.JOGGLE_TERMINATION' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1;
|
|
WR10:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'base radius 1') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
WR11:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'base radius 2') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
WR12:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'top radius 1') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
WR13:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'top radius 2') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY joggle_termination
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'value termination', 'face termination' ];
|
|
WR3:
|
|
(SELF.description = 'value termination') XOR (SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 0);
|
|
WR4:
|
|
(SELF.description <> 'value termination') OR (SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1);
|
|
WR5:
|
|
(SELF.description <> 'value termination') OR (SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'depth') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1);
|
|
WR6:
|
|
(SELF.description <> 'value termination') OR (SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'angle') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1);
|
|
WR7:
|
|
SIZEOF(QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (((('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'joggle termination usage')) AND ('STEP_MERGED_CAD_SCHEMA.JOGGLE' IN TYPEOF(sar.related_shape_aspect.of_shape.definition))) AND (sar.related_shape_aspect.of_shape.definition\characterized_object.name = 'termination')) AND (sar.related_shape_aspect.of_shape.definition\characterized_object.description = 'joggle termination occurrence'))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_analysis_consistency;
|
|
control : kinematic_control;
|
|
result : kinematic_analysis_result;
|
|
WHERE
|
|
WR1:
|
|
control.controlled_mechanism :=: result.analysed_mechanism;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_analysis_result;
|
|
analysed_mechanism : mechanism_representation;
|
|
result : kinematic_result;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_control;
|
|
controlled_mechanism : mechanism_representation;
|
|
contained_kinematic_programs : kinematic_analysis_definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY kinematic_frame_background_representation
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET [1:?] OF kinematic_frame_background;
|
|
SELF\representation.context_of_items : geometric_representation_context;
|
|
WHERE
|
|
wr1:
|
|
SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY kinematic_frame_background_representation_association
|
|
SUBTYPE OF (representation_relationship_with_transformation);
|
|
SELF\representation_relationship_with_transformation.transformation_operator : kinematic_frame_based_transformation;
|
|
WHERE
|
|
wr1:
|
|
'STEP_MERGED_CAD_SCHEMA.KINEMATIC_LINK_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_1);
|
|
wr2:
|
|
'STEP_MERGED_CAD_SCHEMA.KINEMATIC_FRAME_BACKGROUND_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_2);
|
|
wr3:
|
|
SELF\representation_relationship_with_transformation.transformation_operator\kinematic_frame_based_transformation.transformator IN SELF\representation_relationship.rep_1.items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY kinematic_frame_based_transformation
|
|
SUBTYPE OF (geometric_representation_item, functionally_defined_transformation);
|
|
transformator : rigid_placement;
|
|
WHERE
|
|
wr1:
|
|
SELF\geometric_representation_item.dim = 3;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY kinematic_ground_representation
|
|
SUBTYPE OF (representation);
|
|
INVERSE
|
|
property : kinematic_property_representation_relation FOR used_representation;
|
|
WHERE
|
|
wr1:
|
|
'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_joint
|
|
SUBTYPE OF (edge);
|
|
SELF\edge.edge_end : kinematic_link;
|
|
SELF\edge.edge_start : kinematic_link;
|
|
UNIQUE
|
|
UR1 : edge_start, edge_end;
|
|
WHERE
|
|
WR1:
|
|
edge_start :<>: edge_end;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_link
|
|
SUBTYPE OF (vertex);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_link_representation
|
|
ABSTRACT SUPERTYPE OF (ONEOF(linear_flexible_link_representation, rigid_link_representation))
|
|
SUBTYPE OF (representation);
|
|
represented_link : kinematic_link;
|
|
SELF\representation.context_of_items : geometric_representation_context;
|
|
SELF\representation.items : SET [1:?] OF kinematic_link_representation_items;
|
|
INVERSE
|
|
associated_shape_representation : SET [0:1] OF kinematic_link_representation_association FOR rep_1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_link_representation_association
|
|
SUBTYPE OF (representation_relationship);
|
|
SELF\representation_relationship.rep_1 : kinematic_link_representation;
|
|
SELF\representation_relationship.rep_2 : shape_representation;
|
|
WHERE
|
|
WR1:
|
|
(SELF\representation_relationship.rep_2.context_of_items :=: SELF\representation_relationship.rep_1.context_of_items) OR ('STEP_MERGED_CAD_SCHEMA.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY kinematic_link_representation_relation;
|
|
topological_aspects : kinematic_link;
|
|
geometric_aspects : kinematic_link_representation;
|
|
UNIQUE
|
|
ur1 : topological_aspects;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_loop
|
|
SUBTYPE OF (edge_loop);
|
|
SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_joint;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_pair
|
|
ABSTRACT SUPERTYPE OF (ONEOF(high_order_kinematic_pair, low_order_kinematic_pair_with_motion_coupling, low_order_kinematic_pair) ANDOR actuated_kinematic_pair)
|
|
SUBTYPE OF (geometric_representation_item, item_defined_transformation);
|
|
joint : kinematic_joint;
|
|
SELF\item_defined_transformation.transform_item_1 : rigid_placement;
|
|
SELF\item_defined_transformation.transform_item_2 : rigid_placement;
|
|
DERIVE
|
|
associated_link_representations_1 : SET [1:?] OF kinematic_link_representation := sort_link_associations(link_representation_associations, TRUE);
|
|
associated_link_representations_2 : SET [1:?] OF kinematic_link_representation := sort_link_associations(link_representation_associations, FALSE);
|
|
SELF\item_defined_transformation.name : label := SELF\representation_item.name;
|
|
INVERSE
|
|
link_representation_associations : SET [1:?] OF pair_representation_relationship FOR transformation_operator;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY kinematic_path
|
|
ABSTRACT SUPERTYPE OF (ONEOF(kinematic_path_defined_by_nodes, kinematic_path_defined_by_curves))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
segments : LIST [1:?] OF kinematic_path_segment;
|
|
t_start : parameter_value;
|
|
DERIVE
|
|
closed_path : LOGICAL := segments[n_segments].transition <> discontinuous;
|
|
n_segments : INTEGER := SIZEOF(segments);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (using_rep <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF(using_rep.context_of_items)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_path_defined_by_curves
|
|
SUBTYPE OF (kinematic_path);
|
|
SELF\kinematic_path.segments : LIST [1:?] OF curve_based_path_with_orientation;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_path_defined_by_nodes
|
|
SUBTYPE OF (kinematic_path);
|
|
placement_start : placement;
|
|
SELF\kinematic_path.segments : LIST [1:?] OF path_node;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_path_segment
|
|
ABSTRACT SUPERTYPE OF (ONEOF(path_node, curve_based_path_with_orientation))
|
|
SUBTYPE OF (founded_item);
|
|
t_end : parameter_value;
|
|
transition : transition_code;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY kinematic_property_definition
|
|
SUBTYPE OF (property_definition);
|
|
ground_definition : characterized_definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_property_definition_representation
|
|
ABSTRACT SUPERTYPE OF (ONEOF(kinematic_property_topology_representation, kinematic_property_mechanism_representation))
|
|
SUBTYPE OF (property_definition_representation);
|
|
SELF\property_definition_representation.definition : product_definition_kinematics;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_property_mechanism_representation
|
|
SUBTYPE OF (kinematic_property_definition_representation);
|
|
base : kinematic_link_representation;
|
|
SELF\property_definition_representation.used_representation : mechanism_representation;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (i <* used_representation.items| (base :=: i\representation_relationship.rep_1) OR (base :=: i\representation_relationship.rep_2))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY kinematic_property_representation_relation
|
|
SUBTYPE OF (property_definition_representation);
|
|
UNIQUE
|
|
ur1 : SELF\property_definition_representation.definition;
|
|
WHERE
|
|
wr1:
|
|
'STEP_MERGED_CAD_SCHEMA.KINEMATIC_PROPERTY_DEFINITION' IN TYPEOF(SELF\property_definition_representation.definition);
|
|
wr2:
|
|
'STEP_MERGED_CAD_SCHEMA.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(SELF\property_definition_representation.used_representation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_property_topology_representation
|
|
SUBTYPE OF (kinematic_property_definition_representation);
|
|
base : kinematic_link;
|
|
SELF\property_definition_representation.used_representation : kinematic_topology_representation_select;
|
|
WHERE
|
|
WR1:
|
|
used_representation IN using_representations(base);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY kinematic_structure;
|
|
joints : SET [1:?] OF kinematic_joint;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_topology_directed_structure
|
|
SUBTYPE OF (representation);
|
|
parent : kinematic_topology_structure;
|
|
SELF\representation.items : SET [1:?] OF oriented_joint;
|
|
WHERE
|
|
WR1:
|
|
context_of_items :=: parent.context_of_items;
|
|
WR2:
|
|
get_kinematic_joints_from_oriented_joints(items) <= parent.items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_topology_network_structure
|
|
SUBTYPE OF (representation);
|
|
parent : kinematic_topology_structure;
|
|
SELF\representation.items : SET [1:?] OF kinematic_loop;
|
|
WHERE
|
|
WR1:
|
|
context_of_items :=: parent.context_of_items;
|
|
WR2:
|
|
get_kinematic_joints_from_kinematic_loops(items) <= parent.items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_topology_structure
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET [1:?] OF kinematic_joint;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (item <* items| ('STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' IN TYPEOF(item)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_topology_substructure
|
|
SUBTYPE OF (kinematic_topology_structure);
|
|
parent : kinematic_topology_structure;
|
|
WHERE
|
|
WR1:
|
|
context_of_items :=: parent.context_of_items;
|
|
WR2:
|
|
SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY kinematic_topology_tree_structure
|
|
SUBTYPE OF (kinematic_topology_directed_structure);
|
|
END_ENTITY;
|
|
|
|
ENTITY known_source
|
|
SUBTYPE OF (external_source, pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY laid_defined_transformation
|
|
SUBTYPE OF (transformation_with_derived_angle);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214
|
|
ENTITY language_assignment
|
|
SUBTYPE OF (classification_assignment);
|
|
items : SET [1:?] OF language_item;
|
|
WHERE
|
|
wr1:
|
|
'STEP_MERGED_CAD_SCHEMA.' + 'LANGUAGE' IN TYPEOF(SELF.assigned_class);
|
|
wr2:
|
|
SELF.role.name = 'language';
|
|
wr3:
|
|
SIZEOF(SELF.items) = SIZEOF(QUERY (i <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION' IN TYPEOF(i)) AND (i\representation.name = 'document content')));
|
|
END_ENTITY;
|
|
|
|
ENTITY leader_curve
|
|
SUBTYPE OF (annotation_curve_occurrence);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (ldc <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')| ('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.LEADER_CURVE' IN TYPEOF(con)))) = 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY leader_terminator
|
|
SUBTYPE OF (terminator_symbol);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.LEADER_CURVE' IN TYPEOF(SELF\terminator_symbol.annotated_curve);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY length_function
|
|
SUBTYPE OF (numeric_expression, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand : string_expression;
|
|
END_ENTITY;
|
|
|
|
ENTITY length_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY like_expression
|
|
SUBTYPE OF (comparison_expression);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2]));
|
|
END_ENTITY;
|
|
|
|
ENTITY limits_and_fits;
|
|
form_variance : label;
|
|
zone_variance : label;
|
|
grade : label;
|
|
source : text;
|
|
END_ENTITY;
|
|
|
|
ENTITY line
|
|
SUBTYPE OF (curve);
|
|
pnt : cartesian_point;
|
|
dir : vector;
|
|
WHERE
|
|
WR1:
|
|
dir.dim = pnt.dim;
|
|
END_ENTITY;
|
|
|
|
ENTITY line_profile_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY linear_array_component_definition_link
|
|
SUBTYPE OF (product_definition, product_definition_relationship);
|
|
SELF\product_definition_relationship.related_product_definition : linear_array_placement_group_component;
|
|
SELF\product_definition_relationship.relating_product_definition : linear_array_placement_group_component;
|
|
WHERE
|
|
WR1:
|
|
SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship.relating_product_definition;
|
|
WR2:
|
|
acyclic_product_definition_relationship(SELF, [ SELF\product_definition_relationship.related_product_definition ], 'STEP_MERGED_CAD_SCHEMA.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK');
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY linear_array_placement_group_component
|
|
SUBTYPE OF (array_placement_group);
|
|
END_ENTITY;
|
|
|
|
ENTITY linear_dimension
|
|
SUBTYPE OF (dimension_curve_directed_callout);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY linear_flexible_and_pinion_pair
|
|
SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling);
|
|
pinion_radius : length_measure;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY linear_flexible_and_planar_curve_pair
|
|
SUBTYPE OF (high_order_kinematic_pair);
|
|
pair_curve : curve;
|
|
orientation : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (pair_curve IN r.items))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY linear_flexible_link_representation
|
|
SUBTYPE OF (kinematic_link_representation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY linear_path
|
|
SUBTYPE OF (path_node);
|
|
DERIVE
|
|
SELF\kinematic_path_segment.transition : transition_code := continuous;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY linear_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 2))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'profile length'))) = 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY linearized_table_function
|
|
SUBTYPE OF (explicit_table_function, unary_generic_expression);
|
|
first : INTEGER;
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
DERIVE
|
|
source : maths_function := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
function_is_1d_array(source);
|
|
WR2:
|
|
member_of(first, source\maths_function.domain);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY link_motion_relationship
|
|
SUBTYPE OF (definitional_representation_relationship, representation_relationship_with_transformation);
|
|
SELF\representation_relationship.rep_1 : link_or_shape_representation;
|
|
SELF\representation_relationship.rep_2 : link_motion_representation_along_path;
|
|
SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation;
|
|
WHERE
|
|
WR1:
|
|
transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items;
|
|
WR2:
|
|
transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY link_motion_representation_along_path
|
|
SUPERTYPE OF (ONEOF(prescribed_path, resulting_path))
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.context_of_items : geometric_representation_context_with_parameter;
|
|
SELF\representation.items : SET [1:?] OF kinematic_path;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY link_motion_transformation
|
|
SUBTYPE OF (item_defined_transformation);
|
|
SELF\item_defined_transformation.transform_item_1 : rigid_placement;
|
|
SELF\item_defined_transformation.transform_item_2 : kinematic_path;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY listed_data
|
|
SUBTYPE OF (explicit_table_function, generic_literal);
|
|
values : LIST [1:?] OF maths_value;
|
|
value_range : maths_space;
|
|
DERIVE
|
|
SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values) ];
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(value_range);
|
|
WR2:
|
|
SIZEOF(QUERY (val <* values| NOT member_of(val, value_range))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY listed_product_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
factors : LIST [0:?] OF maths_space;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (space <* factors| NOT expression_is_constant(space))) = 0;
|
|
WR2:
|
|
no_cyclic_space_reference(SELF, []);
|
|
WR3:
|
|
NOT (the_empty_space IN factors);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY literal_conjunction
|
|
SUBTYPE OF (simple_clause);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY location_in_aggregate_representation_item
|
|
SUBTYPE OF (compound_representation_item);
|
|
SELF\compound_representation_item.item_element : location_in_aggregate_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY location_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF.items) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT ('STEP_MERGED_CAD_SCHEMA.POINT' IN TYPEOF(it)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY locator
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ((2 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 5)))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'diameter') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
WR3:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'tip radius') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
WR4:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'tip angle') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'base radius') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY log10_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY log2_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY log_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY logical_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : LOGICAL;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY low_order_kinematic_pair
|
|
SUPERTYPE OF (ONEOF(revolute_pair, cylindrical_pair, spherical_pair, spherical_pair_with_pin, planar_pair, unconstrained_pair, fully_constrained_pair, prismatic_pair, universal_pair, low_order_kinematic_pair_with_range))
|
|
SUBTYPE OF (kinematic_pair);
|
|
t_x : BOOLEAN;
|
|
t_y : BOOLEAN;
|
|
t_z : BOOLEAN;
|
|
r_x : BOOLEAN;
|
|
r_y : BOOLEAN;
|
|
r_z : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_2| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY low_order_kinematic_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_translation_x : length_measure;
|
|
actual_translation_y : length_measure;
|
|
actual_translation_z : length_measure;
|
|
actual_rotation_x : plane_angle_measure;
|
|
actual_rotation_y : plane_angle_measure;
|
|
actual_rotation_z : plane_angle_measure;
|
|
SELF\pair_value.applies_to_pair : low_order_kinematic_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY low_order_kinematic_pair_with_motion_coupling
|
|
ABSTRACT SUPERTYPE OF (ONEOF(gear_pair, linear_flexible_and_pinion_pair, rack_and_pinion_pair, screw_pair))
|
|
SUBTYPE OF (kinematic_pair);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_2| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY low_order_kinematic_pair_with_range
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
lower_limit_actual_rotation_x : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation_x : OPTIONAL plane_angle_measure;
|
|
lower_limit_actual_rotation_y : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation_y : OPTIONAL plane_angle_measure;
|
|
lower_limit_actual_rotation_z : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation_z : OPTIONAL plane_angle_measure;
|
|
lower_limit_actual_translation_x : OPTIONAL length_measure;
|
|
upper_limit_actual_translation_x : OPTIONAL length_measure;
|
|
lower_limit_actual_translation_y : OPTIONAL length_measure;
|
|
upper_limit_actual_translation_y : OPTIONAL length_measure;
|
|
lower_limit_actual_translation_z : OPTIONAL length_measure;
|
|
upper_limit_actual_translation_z : OPTIONAL length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY luminous_flux_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY magnetic_flux_density_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY magnetic_flux_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY magnetic_flux_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.weber);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY make_from_feature_relationship
|
|
SUBTYPE OF (component_feature_relationship);
|
|
END_ENTITY;
|
|
|
|
ENTITY make_from_usage_option
|
|
SUBTYPE OF (product_definition_usage);
|
|
ranking : INTEGER;
|
|
ranking_rationale : text;
|
|
quantity : measure_with_unit;
|
|
WHERE
|
|
WR1:
|
|
NOT ('NUMBER' IN TYPEOF(quantity.value_component)) OR (quantity.value_component > 0);
|
|
END_ENTITY;
|
|
|
|
ENTITY manifold_solid_brep
|
|
SUBTYPE OF (solid_model);
|
|
outer : closed_shell;
|
|
END_ENTITY;
|
|
|
|
ENTITY manifold_subsurface_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (mi <* QUERY (it <* items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (cfss <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.OPEN_SHELL' IN TYPEOF(cfss)))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (cfss <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)))| NOT (('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fac)))) = 0)))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (cfss <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (fcs <* cfss\connected_face_set.cfs_faces| ('STEP_MERGED_CAD_SCHEMA.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT (('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(oe.edge_element)) OR ('STEP_MERGED_CAD_SCHEMA.SUBEDGE' IN TYPEOF(oe.edge_element))))) = 0))) = 0))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (cfss <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (fcs <* cfss\connected_face_set.cfs_faces| ('STEP_MERGED_CAD_SCHEMA.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe.edge_start)) AND ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe.edge_end))))) = 0))) = 0))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (cfss <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (fcs <* cfss\connected_face_set.cfs_faces| ('STEP_MERGED_CAD_SCHEMA.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY (bnds <* fcs.bounds| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP', 'STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' ] * TYPEOF(bnds.bound)) = 1))) = 0))) = 0))) = 0;
|
|
WR10:
|
|
SIZEOF(QUERY (cfss <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (fcs <* cfss\connected_face_set.cfs_faces| ('STEP_MERGED_CAD_SCHEMA.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.POLYLINE', 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE', 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ] * TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0))) = 0))) = 0;
|
|
WR11:
|
|
SIZEOF(QUERY (cfss <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (fcs <* cfss\connected_face_set.cfs_faces| ('STEP_MERGED_CAD_SCHEMA.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(sc_ag)))) = 0))) = 0))) = 0))) = 0))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (cfss <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (fcs <* cfss\connected_face_set.cfs_faces| ('STEP_MERGED_CAD_SCHEMA.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.SHELL_BASED_SURFACE_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SHELL_BASED_SURFACE_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(mr_it)))) > 0)))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (sh <* sbsm\shell_based_surface_model.sbsm_boundary| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.OPEN_SHELL', 'STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL', 'STEP_MERGED_CAD_SCHEMA.CLOSED_SHELL' ] * TYPEOF(sh)) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(fa)))) = 0))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (bnds <* fa.bounds| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP', 'STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' ] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT ('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe_cv <* QUERY (oe <* elp_fbnds\path.edge_list| ('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(oe.edge_element)))| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA', 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D', 'STEP_MERGED_CAD_SCHEMA.PCURVE', 'STEP_MERGED_CAD_SCHEMA.POLYLINE', 'STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_start)) AND ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT ((SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.DEGENERATE_PCURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.DEGENERATE_PCURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE', 'STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0;
|
|
WR14:
|
|
SIZEOF(QUERY (sbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.DEGENERATE_PCURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE', 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY marking
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((2 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 6)))) = 1))) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'marking text'))) = 1))) = 0))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'special instructions'))) <= 1))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'font name'))) <= 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'character height'))) <= 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'character spacing'))) <= 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY mass_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY mated_part_relationship
|
|
SUBTYPE OF (group, group_assignment, product_definition_shape, product_definition_relationship, shape_aspect);
|
|
items : SET [0:?] OF product_definition;
|
|
DERIVE
|
|
SELF\group_assignment.assigned_group : mated_part_relationship := SELF;
|
|
SELF\property_definition.definition : mated_part_relationship := SELF;
|
|
SELF\shape_aspect.of_shape : mated_part_relationship := SELF;
|
|
END_ENTITY;
|
|
|
|
ENTITY material_designation;
|
|
name : label;
|
|
definitions : SET [1:?] OF characterized_definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY material_designation_characterization;
|
|
name : label;
|
|
description : text;
|
|
designation : material_designation;
|
|
property : characterized_material_property;
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
ENTITY material_property
|
|
SUBTYPE OF (property_definition);
|
|
UNIQUE
|
|
UR1 : SELF\property_definition.name, SELF\property_definition.definition;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.CHARACTERIZED_OBJECT' IN TYPEOF(SELF\property_definition.definition)) OR (SIZEOF(bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - QUERY (temp <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'))| ('STEP_MERGED_CAD_SCHEMA.' + 'MATERIAL_PROPERTY_REPRESENTATION' IN TYPEOF(temp)))) = 0);
|
|
END_ENTITY;
|
|
|
|
ENTITY material_property_representation
|
|
SUBTYPE OF (property_definition_representation);
|
|
dependent_environment : data_environment;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY maths_enum_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : maths_enum_atom;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY maths_function
|
|
ABSTRACT SUPERTYPE OF (ONEOF(finite_function, constant_function, selector_function, elementary_function, restriction_function, repackaging_function, reindexed_array_function, series_composed_function, parallel_composed_function, explicit_table_function, homogeneous_linear_function, general_linear_function, b_spline_basis, b_spline_function, rationalize_function, partial_derivative_function, definite_integral_function, abstracted_expression_function, expression_denoted_function, imported_point_function, imported_curve_function, imported_surface_function, imported_volume_function, application_defined_function))
|
|
SUBTYPE OF (generic_expression);
|
|
DERIVE
|
|
domain : tuple_space := derive_function_domain(SELF);
|
|
range : tuple_space := derive_function_range(SELF);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY maths_space
|
|
ABSTRACT SUPERTYPE OF (ONEOF(elementary_space, finite_integer_interval, integer_interval_from_min, integer_interval_to_max, finite_real_interval, real_interval_from_min, real_interval_to_max, cartesian_complex_number_region, polar_complex_number_region, finite_space, uniform_product_space, listed_product_space, extended_tuple_space, function_space))
|
|
SUBTYPE OF (generic_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY maths_tuple_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : LIST [0:?] OF maths_value;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY maths_variable
|
|
SUBTYPE OF (generic_variable);
|
|
values_space : maths_space;
|
|
name : label;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(values_space);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY maximum_function
|
|
SUBTYPE OF (multiple_arity_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY measure_qualification;
|
|
name : label;
|
|
description : text;
|
|
qualified_measure : measure_with_unit;
|
|
qualifiers : SET [1:?] OF value_qualifier;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (temp <* qualifiers| ('STEP_MERGED_CAD_SCHEMA.PRECISION_QUALIFIER' IN TYPEOF(temp)))) < 2;
|
|
WR2:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(SELF\measure_qualification.qualified_measure));
|
|
END_ENTITY;
|
|
|
|
ENTITY measure_representation_item
|
|
SUBTYPE OF (representation_item, measure_with_unit);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR (('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
|
|
WR2:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR (('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
|
|
WR3:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR (('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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 ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)) OR ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(it1\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)))| ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(mi1\mapped_item.mapping_source.mapped_representation)))| NOT (SIZEOF(QUERY (it2 <* pv\mapped_item.mapping_source.mapped_representation\representation.items| NOT (('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(it2\mapped_item.mapping_source.mapped_representation))) OR ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(it2\mapped_item.mapping_source.mapped_representation)))) = 0))) = 0;
|
|
WR3:
|
|
(SIZEOF(QUERY (ps <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| (ps\presentation_size.size.size_in_x <= 0) OR (ps\presentation_size.size.size_in_y <= 0))) = 0) AND (SIZEOF(QUERY (ais <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'AREA_IN_SET.AREA')| (SIZEOF(QUERY (ps <* USEDIN(ais, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| (ps\presentation_size.size.size_in_x <= 0) OR (ps\presentation_size.size.size_in_y <= 0))) > 0))) = 0);
|
|
WR4:
|
|
(SIZEOF(QUERY (ps <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.placement)))) = 1) AND (SIZEOF(QUERY (ps <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement)))) = 0) OR (SIZEOF(QUERY (ais <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'AREA_IN_SET.AREA')| (SIZEOF(QUERY (ps <* USEDIN(ais, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.placement)))) = 1))) = 1) AND (SIZEOF(QUERY (ais <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'AREA_IN_SET.AREA')| (SIZEOF(QUERY (ps <* USEDIN(ais, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.placement)))) = 0))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(si\styled_item.item)))| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item.item\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (pss <* psa.styles| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.POINT_STYLE', 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE', 'STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' ] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psbc <* QUERY (psa <* si\styled_item.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)))| NOT (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_ITEM'), 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION' ] * TYPEOF(psbc\presentation_style_by_context.style_context)) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ps <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.POINT_STYLE' IN TYPEOF(pss)))| NOT (('STEP_MERGED_CAD_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(ps\point_style.marker_size)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (cs <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(pss)))| NOT (((SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(cs\curve_style.curve_colour)) = 1) AND ('STEP_MERGED_CAD_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs\curve_style.curve_width))) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_FONT', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_SIDE_STYLE' IN TYPEOF(ssu\surface_style_usage.style)))) = 0))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| NOT (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_PARAMETER_LINE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_CONTROL_GRID'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_SILHOUETTE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_SEGMENTATION_CURVE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_FILL_AREA'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_BOUNDARY') ] * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sspl <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width))) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_FONT', ('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sscg <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_width))) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_FONT', ('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sssh <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_width))) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_FONT', ('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sssc <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width))) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_FONT', ('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (ssbd <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_width))) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_FONT', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY mechanical_design_presentation_representation_with_draughting
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET [1:?] OF camera_model_d3;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
ENTITY mechanical_design_shaded_presentation_area
|
|
SUBTYPE OF (presentation_area);
|
|
SELF\representation.items : SET [1:?] OF mechanical_design_shaded_presentation_area_items;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it1 <* SELF.items| NOT (('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(it1)) OR ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)) AND ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(it1\mapped_item.mapping_source.mapped_representation))))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)))| ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(mi1\mapped_item.mapping_source.mapped_representation)))| NOT (SIZEOF(QUERY (it2 <* pv\mapped_item.mapping_source.mapped_representation\representation.items| NOT (('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(it2\mapped_item.mapping_source.mapped_representation))) OR ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(it2\mapped_item.mapping_source.mapped_representation)))) = 0))) = 0;
|
|
WR3:
|
|
(SIZEOF(QUERY (ps <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| NOT ((ps\presentation_size.size.size_in_x > 0) AND (ps\presentation_size.size.size_in_y > 0)))) = 0) AND (SIZEOF(QUERY (pset <* QUERY (ais <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'AREA_IN_SET.AREA')| ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SET' IN TYPEOF(ais.in_set)))| (SIZEOF(QUERY (ps <* USEDIN(pset, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| NOT ((ps\presentation_size.size.size_in_x > 0) AND (ps\presentation_size.size.size_in_y > 0)))) = 0))) = 0);
|
|
WR4:
|
|
(SIZEOF(QUERY (psize <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(psize.size.placement)))) = 1) AND (SIZEOF(QUERY (pset <* QUERY (ais <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'AREA_IN_SET.AREA')| ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SET' IN TYPEOF(ais.in_set)))| (SIZEOF(QUERY (psize <* USEDIN(pset, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(psize.size.placement)))) = 0))) = 0);
|
|
WR5:
|
|
SIZEOF(QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it1)))| ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(mi1\mapped_item.mapping_source.mapped_representation)))| NOT (SIZEOF(QUERY (ci <* pv\mapped_item.mapping_source.mapped_representation\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci)) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_MODEL_D3'), ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_MODEL_D3_WITH_HLHSR'), ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_MODEL_WITH_LIGHT_SOURCES') ] * TYPEOF(ci\mapped_item.mapping_source.mapping_origin)) = 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
ENTITY mechanical_design_shaded_presentation_representation
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET [1:?] OF mechanical_design_shaded_presentation_representation_items;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION') ] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(si\styled_item.item)))| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item.item\mapped_item.mapping_source.mapped_representation)))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (pss <* psa.styles| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.POINT_STYLE', 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE', 'STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' ] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psbc <* QUERY (psa <* si\styled_item.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)))| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION' ] * TYPEOF(psbc\presentation_style_by_context.style_context)) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ps <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.POINT_STYLE' IN TYPEOF(pss)))| NOT ((('STEP_MERGED_CAD_SCHEMA.MARKER_TYPE' IN TYPEOF(ps\point_style.marker)) AND ('STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ps\point_style.marker_size))) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (cs <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(pss)))| NOT (((SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(cs\curve_style.curve_colour)) = 1) AND ('STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs\curve_style.curve_width))) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'CURVE_STYLE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT ('STEP_MERGED_CAD_SCHEMA.SURFACE_SIDE_STYLE' IN TYPEOF(ssu\surface_style_usage.style)))) = 0))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| NOT (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_PARAMETER_LINE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_CONTROL_GRID'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_SILHOUETTE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_SEGMENTATION_CURVE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_BOUNDARY'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_FILL_AREA'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_RENDERING') ] * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (ssfa <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_FILL_AREA' IN TYPEOF(sses)))| NOT (SIZEOF(QUERY (fss <* ssfa\surface_style_fill_area.fill_area.fill_styles| NOT (('STEP_MERGED_CAD_SCHEMA.' + 'FILL_AREA_STYLE_COLOUR' IN TYPEOF(fss)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(fss\fill_area_style_colour.fill_colour)) = 1)))) = 0))) = 0))) = 0))) = 0))) = 0;
|
|
WR10:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sspl <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_width))) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'CURVE_STYLE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style.curve_font)) = 1) OR ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sspl\surface_style_parameter_line.style_of_parameter_lines\curve_style_rendering.rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0;
|
|
WR11:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sscg <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_width))) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'CURVE_STYLE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style.curve_font)) = 1) OR ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(sscg\surface_style_control_grid.style_of_control_grid)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sscg\surface_style_control_grid.style_of_control_grid\curve_style_rendering.rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sssh <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_width))) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'CURVE_STYLE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style.curve_font)) = 1) OR ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(sssh\surface_style_silhouette.style_of_silhouette)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssh\surface_style_silhouette.style_of_silhouette\curve_style_rendering.rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0;
|
|
WR13:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (sssc <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_width))) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'CURVE_STYLE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style.curve_font)) = 1) OR ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(sssc\surface_style_segmentation_curve.style_of_segmentation_curve\curve_style_rendering.rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0;
|
|
WR14:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (ssbd <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)))| NOT (((('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_colour)) = 1)) AND ('STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_width))) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'CURVE_STYLE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style.curve_font)) = 1) OR ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_RENDERING' IN TYPEOF(ssbd\surface_style_boundary.style_of_boundary)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ssbd\surface_style_boundary.style_of_boundary\curve_style_rendering.rendering_properties.rendered_colour)) = 1)))) = 0))) = 0))) = 0))) = 0;
|
|
WR15:
|
|
SIZEOF(QUERY (si <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (psa <* si\styled_item.styles| NOT (SIZEOF(QUERY (ssu <* QUERY (pss <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(pss)))| NOT (SIZEOF(QUERY (ssre <* QUERY (sses <* ssu\surface_style_usage.style\surface_side_style.styles| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_RENDERING' IN TYPEOF(sses)))| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COLOUR_RGB', ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ] * TYPEOF(ssre\surface_style_rendering.surface_colour)) = 1))) = 0))) = 0))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY mechanism;
|
|
structure_definition : kinematic_structure;
|
|
base : kinematic_link;
|
|
containing_property : kinematic_property_definition;
|
|
-- WHERE
|
|
-- wr1:
|
|
-- SIZEOF(QUERY (joint <* structure_definition.joints| (base :=: joint.first_link) OR (base :=: joint.second_link))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY mechanism_base_placement
|
|
SUBTYPE OF (representation_relationship_with_transformation);
|
|
base_of_mechanism : mechanism;
|
|
SELF\representation_relationship_with_transformation.transformation_operator : cartesian_transformation_operator_3d;
|
|
DERIVE
|
|
SELF\representation_relationship.rep_2 : kinematic_link_representation := representation_of_link(base_of_mechanism.base);
|
|
UNIQUE
|
|
ur1 : base_of_mechanism;
|
|
WHERE
|
|
wr1:
|
|
('STEP_MERGED_CAD_SCHEMA.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_1)) OR ('STEP_MERGED_CAD_SCHEMA.KINEMATIC_LINK_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_1));
|
|
wr2:
|
|
suitably_based_mechanism(SELF, base_of_mechanism);
|
|
wr3:
|
|
SELF\representation_relationship_with_transformation.transformation_operator IN SELF\representation_relationship.rep_1.items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY mechanism_representation
|
|
SUBTYPE OF (representation);
|
|
represented_topology : kinematic_topology_representation_select;
|
|
SELF\representation.context_of_items : geometric_representation_context;
|
|
SELF\representation.items : SET [1:?] OF pair_representation_relationship;
|
|
DERIVE
|
|
represented_joints : SET [1:?] OF kinematic_joint := collect_joints(items);
|
|
WHERE
|
|
WR1:
|
|
(('STEP_MERGED_CAD_SCHEMA.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF(represented_topology)) AND (represented_joints :=: represented_topology.items) OR ('STEP_MERGED_CAD_SCHEMA.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF(represented_topology)) AND (represented_joints :=: get_kinematic_joints_from_oriented_joints(represented_topology.items))) OR ('STEP_MERGED_CAD_SCHEMA.KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF(represented_topology)) AND (represented_joints :=: get_kinematic_joints_from_kinematic_loops(represented_topology.items));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY mechanism_state_representation
|
|
SUBTYPE OF (representation);
|
|
represented_mechanism : mechanism_representation;
|
|
SELF\representation.items : SET [1:?] OF pair_value;
|
|
DERIVE
|
|
SELF\representation.context_of_items : geometric_representation_context := represented_mechanism.context_of_items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY minimum_function
|
|
SUBTYPE OF (multiple_arity_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY minus_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY minus_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY mod_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY modified_geometric_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
modifier : limit_condition;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY modified_pattern
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.REPLICATE_FEATURE', 'STEP_MERGED_CAD_SCHEMA.INSTANCED_FEATURE' ] * TYPEOF(fcr.related_shape_aspect.of_shape.definition)) >= 1) AND (fcr.description = 'base shape'))) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(fcr.related_shape_aspect.of_shape.definition)) = 1) AND (fcr.description = 'base pattern'))) = 1;
|
|
WR3:
|
|
SIZEOF(QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (SIZEOF(QUERY (msar <* USEDIN(sar.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PATTERN_OFFSET_MEMBERSHIP', 'STEP_MERGED_CAD_SCHEMA.PATTERN_OMIT_MEMBERSHIP' ] * TYPEOF(sar)) = 1) AND (sar.description = 'modified pattern')) AND (sar :<>: msar))) >= 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY modify_element
|
|
SUBTYPE OF (change_element);
|
|
END_ENTITY;
|
|
|
|
ENTITY moments_of_inertia_representation
|
|
SUBTYPE OF (representation);
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF.items) = 1) AND (SIZEOF(QUERY (i <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'moments of inertia matrix'))) = 1);
|
|
WR2:
|
|
SIZEOF(QUERY (i <* SELF.items| (('STEP_MERGED_CAD_SCHEMA.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP214
|
|
ENTITY motion_link_relationship
|
|
SUPERTYPE OF (resulting_path)
|
|
SUBTYPE OF (representation_relationship);
|
|
SELF\representation_relationship.rep_1 : founded_kinematic_path;
|
|
SELF\representation_relationship.rep_2 : kinematic_link_representation;
|
|
related_frame : rigid_placement;
|
|
DERIVE
|
|
motion : founded_kinematic_path := SELF\representation_relationship.rep_1;
|
|
frame_link : kinematic_link_representation := SELF\representation_relationship.rep_2;
|
|
WHERE
|
|
wr1:
|
|
related_frame IN frame_link\representation.items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY mult_expression
|
|
SUBTYPE OF (multiple_arity_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY multi_level_reference_designator
|
|
SUBTYPE OF (assembly_component_usage);
|
|
location : LIST [1:?] OF UNIQUE next_assembly_usage_occurrence;
|
|
DERIVE
|
|
leaf : product_definition_or_reference := SELF\product_definition_relationship.related_product_definition;
|
|
SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX(location)]\product_definition_relationship.related_product_definition;
|
|
SELF\product_definition_relationship.relating_product_definition : product_definition := location[1]\product_definition_relationship.relating_product_definition;
|
|
root : product_definition := SELF\product_definition_relationship.relating_product_definition;
|
|
WHERE
|
|
WR1:
|
|
unambiguously_specified_multi_level_reference_designator(location);
|
|
WR2:
|
|
SIZEOF(QUERY (cp <* location| NOT EXISTS(cp\assembly_component_usage.reference_designator))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY multiple_arity_boolean_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(and_expression, or_expression))
|
|
SUBTYPE OF (boolean_expression, multiple_arity_generic_expression);
|
|
SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF boolean_expression;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY multiple_arity_function_call
|
|
ABSTRACT SUPERTYPE OF (ONEOF(maximum_function, minimum_function))
|
|
SUBTYPE OF (multiple_arity_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY multiple_arity_generic_expression
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (generic_expression);
|
|
operands : LIST [2:?] OF generic_expression;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY multiple_arity_numeric_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(plus_expression, mult_expression, multiple_arity_function_call))
|
|
SUBTYPE OF (numeric_expression, multiple_arity_generic_expression);
|
|
SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_cartesian_points
|
|
SUBTYPE OF (multiply_defined_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_curves
|
|
SUBTYPE OF (multiply_defined_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE', 'STEP_MERGED_CAD_SCHEMA.CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_directions
|
|
SUBTYPE OF (multiply_defined_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.DIRECTION', 'STEP_MERGED_CAD_SCHEMA.DIRECTION' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_edges
|
|
SUBTYPE OF (topology_related_to_multiply_defined_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_faces
|
|
SUBTYPE OF (topology_related_to_multiply_defined_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(multiply_defined_curves, multiply_defined_surfaces, multiply_defined_cartesian_points, multiply_defined_directions, multiply_defined_placements))
|
|
SUBTYPE OF (inapt_geometry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_placements
|
|
SUBTYPE OF (multiply_defined_geometry);
|
|
assessment_specification_2 : shape_data_quality_assessment_by_numerical_test;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(assessment_specification_2\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR3:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_AND_LENGTH_PAIR');
|
|
WR4:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLACEMENT', 'STEP_MERGED_CAD_SCHEMA.PLACEMENT' ]);
|
|
WR5:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR6:
|
|
validate_accuracy_types(SELF, []);
|
|
WR7:
|
|
SIZEOF(QUERY (sdqr <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(sdqr)) AND (SIZEOF(QUERY (sdqiir <* bag_to_set(USEDIN(sdqr, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(sdqiir)) AND (SIZEOF(QUERY (sdqiri <* sdqiir.inspected_instances| (TYPEOF(sdqiri.inspected_elements[1]) <> TYPEOF(sdqiri.inspected_elements[2])))) = 0))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_solids
|
|
SUBTYPE OF (inapt_manifold_solid_brep);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_surfaces
|
|
SUBTYPE OF (multiply_defined_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE', 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY multiply_defined_vertices
|
|
SUBTYPE OF (topology_related_to_multiply_defined_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT', 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
ENTITY name_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_name : label;
|
|
DERIVE
|
|
role : object_role := get_role(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY name_attribute;
|
|
attribute_value : label;
|
|
named_item : name_attribute_select;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP214
|
|
ENTITY named_unit_variable
|
|
SUBTYPE OF (named_unit, variable_semantics);
|
|
INVERSE
|
|
associated_variable_environment : environment FOR semantics;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY narrow_surface_patch
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
width_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_PATCH' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY near_point_relationship
|
|
SUBTYPE OF (representation_item_relationship);
|
|
SELF\representation_item_relationship.related_representation_item : point;
|
|
SELF\representation_item_relationship.relating_representation_item : curve_or_surface_constraint_element;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY nearly_degenerate_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(small_area_surface, short_length_curve, entirely_narrow_surface))
|
|
SUBTYPE OF (inapt_geometry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY nearly_degenerate_surface_boundary
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY nearly_degenerate_surface_patch
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_PATCH' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY neutral_sketch_representation
|
|
SUBTYPE OF (shape_representation);
|
|
neutral_sketch_semantics : curves_or_area;
|
|
SELF\representation.items : SET [1:?] OF sketch_element_select;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* items| NOT (('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(q)) AND (q\geometric_representation_item.dim = 3)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY next_assembly_usage_occurrence
|
|
SUBTYPE OF (assembly_component_usage);
|
|
UNIQUE
|
|
UR1 : SELF\assembly_component_usage.reference_designator, SELF\product_definition_relationship.relating_product_definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY ngon_closed_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT ((SIZEOF(impl_rep.used_representation.items) >= 3) AND (SIZEOF(impl_rep.used_representation.items) <= 4)))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| ((((srwp_i.name = 'orientation') OR (srwp_i.name = 'number of sides')) OR (srwp_i.name = 'circumscribed diameter')) OR (srwp_i.name = 'corner radius')) OR (srwp_i.name = 'diameter across flats'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of sides'))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name IN [ 'circumscribed diameter', 'diameter across flats' ]))) = 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'corner radius'))) <= 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY non_agreed_accuracy_parameter_usage
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY non_agreed_scale_usage
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_TRANSFORMATION_OPERATOR_3D' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY non_agreed_unit_usage
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY non_manifold_at_edge
|
|
SUBTYPE OF (inapt_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY non_manifold_at_vertex
|
|
SUBTYPE OF (inapt_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
ENTITY non_manifold_surface_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.FACE_BASED_SURFACE_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.FACE_BASED_SURFACE_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (mi <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT (('STEP_MERGED_CAD_SCHEMA.' + '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| ('STEP_MERGED_CAD_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(mr_it)))) > 0)))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.ORIENTED_FACE' ] * TYPEOF(fa)) = 1))) = 0))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(fa)))| NOT (('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.ORIENTED_FACE' IN TYPEOF(fa)))| NOT (('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (bnds <* fa.bounds| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP', 'STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' ] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT ('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe_cv <* QUERY (oe <* elp_fbnds\path.edge_list| ('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(oe.edge_element)))| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA', 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D', 'STEP_MERGED_CAD_SCHEMA.PCURVE', 'STEP_MERGED_CAD_SCHEMA.POLYLINE', 'STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_start)) AND ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds\path.edge_list| NOT ((SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.DEGENERATE_PCURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.DEGENERATE_PCURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE', 'STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0;
|
|
WR14:
|
|
SIZEOF(QUERY (fbsm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds| ('STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.DEGENERATE_PCURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ] * TYPEOF(vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) = 1))) = 0)))) = 0))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY non_referenced_coordinate_system
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY non_smooth_geometry_transition_across_edge
|
|
ABSTRACT SUPERTYPE OF (ONEOF(g1_discontinuity_between_adjacent_faces, g2_discontinuity_between_adjacent_faces))
|
|
SUBTYPE OF (inapt_topology_and_geometry_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY non_uniform_zone_definition
|
|
SUBTYPE OF (tolerance_zone_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY not_expression
|
|
SUBTYPE OF (unary_boolean_expression);
|
|
SELF\unary_generic_expression.operand : boolean_expression;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY null_representation_item
|
|
SUBTYPE OF (representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY numeric_defined_function
|
|
ABSTRACT SUPERTYPE OF (ONEOF(integer_defined_function, real_defined_function))
|
|
SUBTYPE OF (numeric_expression, defined_function);
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY numeric_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, multiple_arity_numeric_expression, length_function, value_function, numeric_defined_function))
|
|
SUBTYPE OF (expression);
|
|
DERIVE
|
|
is_int : BOOLEAN := is_int_expr(SELF);
|
|
sql_mappable : BOOLEAN := is_SQL_mappable(SELF);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY numeric_variable
|
|
SUPERTYPE OF (ONEOF(int_numeric_variable, real_numeric_variable))
|
|
SUBTYPE OF (simple_numeric_expression, variable);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.INT_NUMERIC_VARIABLE' IN TYPEOF(SELF)) OR ('STEP_MERGED_CAD_SCHEMA.REAL_NUMERIC_VARIABLE' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
ENTITY object_role;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY odd_function
|
|
SUBTYPE OF (unary_boolean_expression);
|
|
SELF\unary_generic_expression.operand : numeric_expression;
|
|
WHERE
|
|
WR1:
|
|
is_int_expr(operand);
|
|
END_ENTITY;
|
|
|
|
ENTITY offset_curve_2d
|
|
SUBTYPE OF (curve);
|
|
basis_curve : curve;
|
|
distance : length_measure;
|
|
self_intersect : LOGICAL;
|
|
WHERE
|
|
WR1:
|
|
basis_curve.dim = 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY offset_curve_3d
|
|
SUBTYPE OF (curve);
|
|
basis_curve : curve;
|
|
distance : length_measure;
|
|
self_intersect : LOGICAL;
|
|
ref_direction : direction;
|
|
WHERE
|
|
WR1:
|
|
(basis_curve.dim = 3) AND (ref_direction.dim = 3);
|
|
END_ENTITY;
|
|
|
|
ENTITY offset_surface
|
|
SUBTYPE OF (surface);
|
|
basis_surface : surface;
|
|
distance : length_measure;
|
|
self_intersect : LOGICAL;
|
|
END_ENTITY;
|
|
|
|
ENTITY one_direction_repeat_factor
|
|
SUBTYPE OF (geometric_representation_item);
|
|
repeat_factor : vector;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY open_closed_shell
|
|
SUBTYPE OF (erroneous_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CLOSED_SHELL' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY open_edge_loop
|
|
SUBTYPE OF (erroneous_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY open_path_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY open_shell
|
|
SUBTYPE OF (connected_face_set);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY or_expression
|
|
SUBTYPE OF (multiple_arity_boolean_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY ordinal_date
|
|
SUBTYPE OF (date);
|
|
day_component : day_in_year_number;
|
|
WHERE
|
|
WR1:
|
|
NOT leap_year(SELF.year_component) AND ((1 <= day_component) AND (day_component <= 365)) OR leap_year(SELF.year_component) AND ((1 <= day_component) AND (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, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + '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 ('STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(SELF.closed_shell_element));
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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 ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.ORIENTED_FACE' IN TYPEOF(SELF.face_element));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY oriented_joint
|
|
SUBTYPE OF (oriented_edge);
|
|
SELF\oriented_edge.edge_element : kinematic_joint;
|
|
END_ENTITY;
|
|
|
|
ENTITY oriented_open_shell
|
|
SUBTYPE OF (open_shell);
|
|
open_shell_element : open_shell;
|
|
orientation : BOOLEAN;
|
|
DERIVE
|
|
SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF.open_shell_element.cfs_faces);
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY outer_round
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
NOT (SELF\characterized_object.description = 'outer diameter') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 3))) = 1))) = 1);
|
|
WR2:
|
|
NOT (SELF\characterized_object.description = 'outer diameter to shoulder') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((2 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 3)))) = 1))) = 1);
|
|
WR3:
|
|
SELF\characterized_object.description IN [ 'outer diameter', 'outer diameter to shoulder' ];
|
|
WR4:
|
|
NOT (SELF\characterized_object.description = 'outer diameter') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'length'))) = 1))) = 0))) = 0);
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'diameter'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
NOT (SELF\characterized_object.description = 'outer diameter to shoulder') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'v-shape boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.VEE_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'v-shape'))) = 1))) = 1))) = 0);
|
|
WR7:
|
|
NOT (SELF\characterized_object.description = 'outer diameter') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'reduced size occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.TAPER' IN TYPEOF(sdr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.OUTER_ROUND' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition))) AND (sdr.name = 'reduced size'))) = 1))) <= 1))) = 0);
|
|
WR8:
|
|
NOT (SELF\characterized_object.description = 'outer diameter to shoulder') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'length'))) <= 1))) = 0))) = 0);
|
|
WR9:
|
|
NOT (SELF\characterized_object.description = 'outer diameter to shoulder') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'feature length'))) <= 1))) = 0))) = 0);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY outside_profile
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1))) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description IN [ 'boundary occurrence', 'non-planar boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ]))) = 1))) = 0;
|
|
WR3:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'boundary occurrence'))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE', 'STEP_MERGED_CAD_SCHEMA.SQUARE_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'STEP_MERGED_CAD_SCHEMA.ROUNDED_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.LINEAR_PROFILE', 'STEP_MERGED_CAD_SCHEMA.VEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.TEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect.description = 'outside boundary'))) = 1))) = 1))) = 0);
|
|
WR4:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description IN [ 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ]))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| NOT (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile floor usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.PROFILE_FLOOR' IN TYPEOF(sdr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.OUTSIDE_PROFILE' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition)))) = 1))) = 0))) = 0);
|
|
WR5:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description IN [ 'outside boundary', 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ]))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ((SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' ] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.name = 'profile swept shape')) AND (sdr.relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0);
|
|
WR6:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'complex boundary occurrence'))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE', 'STEP_MERGED_CAD_SCHEMA.SQUARE_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'STEP_MERGED_CAD_SCHEMA.ROUNDED_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.VEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.TEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.LINEAR_PROFILE', 'STEP_MERGED_CAD_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr.relating_shape_aspect)) = 1))) = 1))) = 1))) = 0);
|
|
WR7:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'partial circular boundary occurrence'))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR8:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'closed circular boundary occurrence'))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR9:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'open rectangular boundary occurrence'))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SQUARE_U_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR10:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'closed rectangular boundary occurrence'))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR11:
|
|
(SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description IN [ 'boundary occurrence', 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence' ]))) = 1))) = 0) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'removal direction'))) = 1))) = 0);
|
|
WR12:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY over_riding_styled_item
|
|
SUBTYPE OF (styled_item);
|
|
over_ridden_style : styled_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY over_used_vertex
|
|
SUBTYPE OF (inapt_topology);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY overcomplex_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(excessively_high_degree_curve, excessively_high_degree_surface, surface_with_excessive_patches_in_one_direction, curve_with_excessive_segments, high_degree_linear_curve, high_degree_planar_surface, high_degree_conic, high_degree_axi_symmetric_surface))
|
|
SUBTYPE OF (inapt_geometry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY overcomplex_topology_and_geometry_relationship
|
|
ABSTRACT SUPERTYPE OF (ONEOF(unused_patches, edge_with_excessive_segments, face_surface_with_excessive_patches_in_one_direction))
|
|
SUBTYPE OF (inapt_topology_and_geometry_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY overlapping_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_curves, partly_overlapping_surfaces))
|
|
SUBTYPE OF (inapt_geometry);
|
|
END_ENTITY;
|
|
|
|
ENTITY package_product_concept_feature
|
|
SUBTYPE OF (product_concept_feature);
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(SELF));
|
|
WR2:
|
|
SIZEOF(QUERY (cfr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATING_PRODUCT_CONCEPT_FEATURE')| ('STEP_MERGED_CAD_SCHEMA.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)) AND (SIZEOF(QUERY (ipcf <* USEDIN(cfr, 'STEP_MERGED_CAD_SCHEMA.' + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(ipcf)))) = 1))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY pair_actuator;
|
|
actuated_pair : kinematic_pair;
|
|
name : label;
|
|
UNIQUE
|
|
ur1 : actuated_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY pair_representation_relationship
|
|
SUBTYPE OF (geometric_representation_item, representation_relationship_with_transformation);
|
|
SELF\representation_relationship.rep_1 : kinematic_link_representation;
|
|
SELF\representation_relationship.rep_2 : kinematic_link_representation;
|
|
SELF\representation_relationship_with_transformation.transformation_operator : kinematic_pair;
|
|
WHERE
|
|
WR1:
|
|
transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items;
|
|
WR2:
|
|
transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items;
|
|
WR3:
|
|
rep_1\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_start;
|
|
WR4:
|
|
rep_2\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_end;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY pair_value
|
|
ABSTRACT SUPERTYPE OF (ONEOF(sliding_surface_pair_value, rolling_surface_pair_value, revolute_pair_value, prismatic_pair_value, screw_pair_value, cylindrical_pair_value, spherical_pair_value, sliding_curve_pair_value, rolling_curve_pair_value, gear_pair_value, rack_and_pinion_pair_value, universal_pair_value, planar_pair_value, unconstrained_pair_value, point_on_surface_pair_value, point_on_planar_curve_pair_value, low_order_kinematic_pair_value))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
applies_to_pair : kinematic_pair;
|
|
END_ENTITY;
|
|
|
|
ENTITY parabola
|
|
SUBTYPE OF (conic);
|
|
focal_dist : length_measure;
|
|
WHERE
|
|
WR1:
|
|
focal_dist <> 0.0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY parallel_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint, parallel_geometric_constraint);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY parallel_assembly_constraint_with_dimension
|
|
SUBTYPE OF (parallel_assembly_constraint, pgc_with_dimension);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY parallel_composed_function
|
|
SUBTYPE OF (maths_function, multiple_arity_generic_expression);
|
|
source_of_domain : maths_space_or_function;
|
|
prep_functions : LIST [1:?] OF maths_function;
|
|
final_function : maths_function_select;
|
|
DERIVE
|
|
SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF generic_expression := convert_to_operands_prcmfn(source_of_domain, prep_functions, final_function);
|
|
WHERE
|
|
WR1:
|
|
no_cyclic_domain_reference(source_of_domain, [ SELF ]);
|
|
WR2:
|
|
expression_is_constant(domain_from(source_of_domain));
|
|
WR3:
|
|
parallel_composed_function_domain_check(domain_from(source_of_domain), prep_functions);
|
|
WR4:
|
|
parallel_composed_function_composability_check(prep_functions, final_function);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY parallel_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF linear_geometry_constraint_element;
|
|
SELF\explicit_constraint.reference_elements : SET [0:1] OF linear_geometry_constraint_element;
|
|
END_ENTITY;
|
|
|
|
ENTITY parallel_offset
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
offset : measure_with_unit;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY parallel_offset_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
offset_type : parallel_offset_type;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF curve_or_surface_constraint_element;
|
|
SELF\explicit_constraint.reference_elements : SET [0:1] OF curve_or_surface_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
NOT (((offset_type = curve_2d_offset) OR (offset_type = curve_3d_offset)) AND (SIZEOF(QUERY (q <* SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements| ('STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(q)))) > 0));
|
|
WR2:
|
|
NOT ((offset_type = surface_offset) AND (SIZEOF(QUERY (q <* SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements| ('STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(q)))) > 0));
|
|
END_ENTITY;
|
|
|
|
ENTITY parallelism_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY parametric_representation_context
|
|
SUBTYPE OF (representation_context);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY part_laminate_table
|
|
SUPERTYPE OF (ONEOF(composite_assembly_table, ply_laminate_table))
|
|
SUBTYPE OF (laminate_table);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY partial_circular_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 3))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'sweep angle'))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY partial_derivative_expression
|
|
SUBTYPE OF (unary_generic_expression);
|
|
d_variables : LIST [1:?] OF maths_variable;
|
|
extension : extension_options;
|
|
DERIVE
|
|
derivand : generic_expression := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
has_values_space(derivand);
|
|
WR2:
|
|
space_is_continuum(values_space_of(derivand));
|
|
WR3:
|
|
SIZEOF(QUERY (vbl <* d_variables| NOT subspace_of(values_space_of(vbl), the_reals) AND NOT subspace_of(values_space_of(vbl), the_complex_numbers))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY partial_derivative_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
d_variables : LIST [1:?] OF input_selector;
|
|
extension : extension_options;
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
DERIVE
|
|
derivand : maths_function := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
space_is_continuum(derivand.range);
|
|
WR2:
|
|
partial_derivative_check(derivand.domain, d_variables);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY partial_document_with_structured_text_representation_assignment
|
|
SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY partly_overlapping_curves
|
|
SUBTYPE OF (overlapping_geometry);
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE', 'STEP_MERGED_CAD_SCHEMA.CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE', 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY partly_overlapping_edges
|
|
SUBTYPE OF (topology_related_to_overlapping_geometry);
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SUBEDGE', 'STEP_MERGED_CAD_SCHEMA.SUBEDGE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY partly_overlapping_faces
|
|
SUBTYPE OF (topology_related_to_overlapping_geometry);
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SUBFACE', 'STEP_MERGED_CAD_SCHEMA.SUBFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY partly_overlapping_solids
|
|
SUBTYPE OF (inapt_manifold_solid_brep);
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SUBFACE', 'STEP_MERGED_CAD_SCHEMA.SUBFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY partly_overlapping_surfaces
|
|
SUBTYPE OF (overlapping_geometry);
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE', 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE', 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]);
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY path_area_with_parameters
|
|
SUBTYPE OF (complex_area, mapped_item);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(SELF\mapped_item.mapping_target);
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_PARAMETERS_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source\representation_map.mapped_representation);
|
|
WR3:
|
|
SELF\mapped_item.mapping_source\representation_map.mapping_origin\representation_item.name = 'curve width';
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY path_feature_component
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'partial circular', 'complete circular', 'linear', 'complex' ];
|
|
WR3:
|
|
NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR5:
|
|
NOT (SELF.description = 'partial circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 3))) = 0))) = 0);
|
|
WR6:
|
|
NOT (SELF.description = 'partial circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0);
|
|
WR7:
|
|
NOT (SELF.description = 'partial circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'sweep angle'))) = 1))) = 0))) = 0);
|
|
WR8:
|
|
NOT (SELF.description = 'complete circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 2))) = 0))) = 0);
|
|
WR9:
|
|
NOT (SELF.description = 'complete circular') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0);
|
|
WR10:
|
|
NOT (SELF.description = 'linear') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 2))) = 0))) = 0);
|
|
WR11:
|
|
NOT (SELF.description = 'linear') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'distance'))) = 1))) = 0))) = 0);
|
|
WR12:
|
|
NOT (SELF.description = 'linear') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR13:
|
|
NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (('STEP_MERGED_CAD_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'sweep path')) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (srwp_i.name = 'profile shape'))) = 1))) = 1))) = 0);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY path_node
|
|
ABSTRACT SUPERTYPE OF (ONEOF(point_to_point_path, circular_path, linear_path, curve_based_path))
|
|
SUBTYPE OF (kinematic_path_segment);
|
|
placement_end : placement;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY path_parameter_representation
|
|
SUBTYPE OF (definitional_representation);
|
|
SELF\representation.context_of_items : path_parameter_representation_context;
|
|
SELF\representation.items : SET [1:?] OF bounded_curve;
|
|
WHERE
|
|
WR1:
|
|
SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY path_parameter_representation_context
|
|
SUBTYPE OF (geometric_representation_context, parametric_representation_context);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY path_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF.items) >= 1;
|
|
WR2:
|
|
SIZEOF(QUERY (i <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.BOUNDED_CURVE', 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.PATH' ] * TYPEOF(i)) = 1))) >= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY pattern_offset_membership
|
|
SUBTYPE OF (feature_component_relationship);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF.relating_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| (SIZEOF(QUERY (pdr <* QUERY (pd <* USEDIN(fcr.related_shape_aspect.of_shape, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(pdr.definition)) = 1))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| (fcr.description = 'modified pattern') AND ('STEP_MERGED_CAD_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1;
|
|
WR3:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| ('STEP_MERGED_CAD_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr.relating_shape_aspect)) AND NOT (SIZEOF(QUERY (modfcr <* QUERY (modsar <* USEDIN(fcr.relating_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = 1) AND (modsar :<>: fcr))| NOT (modfcr.related_shape_aspect.of_shape.definition :=: SELF.relating_shape_aspect.of_shape.definition))) = 0))) = 0;
|
|
WR4:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 2))) = 0);
|
|
WR5:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1))) = 0);
|
|
WR6:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| NOT (SIZEOF(pdr.used_representation.items) = 2))) = 0))) = 0);
|
|
WR7:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'index number'))) = 1))) = 0))) = 0);
|
|
WR8:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'offset'))) = 1))) = 0))) = 0);
|
|
WR9:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 3))) = 0))) = 0);
|
|
WR10:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'row index'))) = 1))) = 0))) = 0);
|
|
WR11:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'column index'))) = 1))) = 0))) = 0);
|
|
WR12:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'offset distance'))) = 1))) = 0))) = 0);
|
|
WR13:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'offset direction'))) = 1))) = 0);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY pattern_omit_membership
|
|
SUBTYPE OF (feature_component_relationship);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF.relating_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| (SIZEOF(QUERY (pdr <* QUERY (pd <* USEDIN(fcr.related_shape_aspect.of_shape, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(pdr.definition)) = 1))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| (fcr.description = 'modified pattern') AND ('STEP_MERGED_CAD_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1;
|
|
WR3:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))| ('STEP_MERGED_CAD_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr.relating_shape_aspect)) AND NOT (SIZEOF(QUERY (modfcr <* QUERY (modsar <* USEDIN(fcr.relating_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' ] * TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = 1) AND (modsar :<>: fcr))| NOT (modfcr.related_shape_aspect.of_shape.definition :=: SELF.relating_shape_aspect.of_shape.definition))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1))) = 0;
|
|
WR5:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| NOT (SIZEOF(pdr.used_representation.items) = 1))) = 0))) = 0);
|
|
WR6:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'index number'))) = 1))) = 0))) = 0);
|
|
WR7:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| NOT (SIZEOF(pdr.used_representation.items) = 2))) = 0))) = 0);
|
|
WR8:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'row index'))) = 1))) = 0))) = 0);
|
|
WR9:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR (SIZEOF(QUERY (pd <* USEDIN(SELF.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'column index'))) = 1))) = 0))) = 0);
|
|
END_ENTITY;
|
|
|
|
ENTITY pcurve
|
|
SUBTYPE OF (curve);
|
|
basis_surface : surface;
|
|
reference_to_curve : definitional_representation;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(reference_to_curve\representation.items) = 1;
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(reference_to_curve\representation.items[1]);
|
|
WR3:
|
|
reference_to_curve\representation.items[1]\geometric_representation_item.dim = 2;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY pdgc_with_dimension
|
|
SUBTYPE OF (point_distance_geometric_constraint);
|
|
distance_value : non_negative_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2
|
|
ENTITY percentage_laminate_definition
|
|
SUBTYPE OF (product_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr)))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY percentage_laminate_table
|
|
SUBTYPE OF (zone_structural_makeup);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2
|
|
ENTITY percentage_ply_definition
|
|
SUBTYPE OF (product_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PERCENTAGE_LAMINATE_DEFINITION' IN TYPEOF(pdr.related_product_definition)) AND (pdr.name = 'makeup and properties'))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY perpendicular_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint, perpendicular_geometric_constraint);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY perpendicular_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF linear_geometry_constraint_element;
|
|
SELF\explicit_constraint.reference_elements : SET [0:2] OF linear_geometry_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
NOT ((SIZEOF(SELF\explicit_constraint.reference_elements) = 2) AND NOT ((SIZEOF(QUERY (q <* SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements| ('STEP_MERGED_CAD_SCHEMA.LINE' IN TYPEOF(q)))) = SIZEOF(SELF\explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements)) XOR (SIZEOF(QUERY (q <* SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements| ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(q)))) = SIZEOF(SELF\explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements))));
|
|
WR2:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) IN [ 2, 3 ]);
|
|
WR3:
|
|
NOT ((SIZEOF(SELF\explicit_constraint.reference_elements) = 0) AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 3)) AND NOT ((SIZEOF(QUERY (q <* SELF\explicit_constraint.constrained_elements| ('STEP_MERGED_CAD_SCHEMA.LINE' IN TYPEOF(q)))) = 3) XOR (SIZEOF(QUERY (q <* SELF\explicit_constraint.constrained_elements| ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(q)))) = 3));
|
|
END_ENTITY;
|
|
|
|
ENTITY perpendicular_to
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY perpendicularity_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
ENTITY person;
|
|
id : identifier;
|
|
last_name : OPTIONAL label;
|
|
first_name : OPTIONAL label;
|
|
middle_names : OPTIONAL LIST [1:?] OF label;
|
|
prefix_titles : OPTIONAL LIST [1:?] OF label;
|
|
suffix_titles : OPTIONAL LIST [1:?] OF label;
|
|
WHERE
|
|
WR1:
|
|
EXISTS(last_name) OR EXISTS(first_name);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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], 'STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY personal_address
|
|
SUBTYPE OF (address);
|
|
people : SET [1:?] OF person;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY pgc_with_dimension
|
|
SUBTYPE OF (parallel_geometric_constraint);
|
|
distance_value : non_negative_length_measure;
|
|
negative_direction : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2);
|
|
WR2:
|
|
SIZEOF(QUERY (q <* SELF\explicit_constraint.reference_elements + SELF\explicit_constraint.constrained_elements| (SIZEOF(TYPEOF(q) * [ 'STEP_MERGED_CAD_SCHEMA.DIRECTION', 'STEP_MERGED_CAD_SCHEMA.VECTOR' ]) > 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY physical_breakdown_context
|
|
SUBTYPE OF (breakdown_context);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY physical_component
|
|
SUBTYPE OF (assembly_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY physical_component_feature
|
|
SUBTYPE OF (component_feature);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY physical_component_terminal
|
|
SUBTYPE OF (component_terminal, physical_component_feature);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY physical_element_usage
|
|
SUBTYPE OF (breakdown_element_usage);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY physically_modelled_product_definition
|
|
SUBTYPE OF (product_definition_with_associated_documents);
|
|
WHERE
|
|
wr1:
|
|
SELF.frame_of_reference\application_context_element.name = 'physical model occurrence';
|
|
wr2:
|
|
(SIZEOF(documentation_ids) = 1) AND (SIZEOF(QUERY (d <* documentation_ids| (SIZEOF(QUERY (drt <* d.representation_types| (drt.name = 'physical'))) = 1))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(item)))) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (se <* QUERY (item <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(item)))| NOT ('STEP_MERGED_CAD_SCHEMA.PICTURE_REPRESENTATION_ITEM' IN TYPEOF(se\styled_item.item)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY picture_representation_item
|
|
ABSTRACT SUPERTYPE OF (ONEOF(externally_defined_picture_representation_item, predefined_picture_representation_item))
|
|
SUBTYPE OF (bytes_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
ENTITY placed_datum_target_feature
|
|
SUBTYPE OF (datum_target);
|
|
DERIVE
|
|
representation_associations : SET [0:?] OF property_definition_representation := get_shape_aspect_property_definition_representations(SELF);
|
|
WHERE
|
|
WR1:
|
|
SELF.description IN [ 'point', 'line', 'rectangle', 'circle', 'circular curve' ];
|
|
WR2:
|
|
SIZEOF(QUERY (pdr <* representation_associations| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY planar_curve_pair
|
|
SUPERTYPE OF (ONEOF(sliding_curve_pair, rolling_curve_pair) ANDOR planar_curve_pair_range)
|
|
SUBTYPE OF (high_order_kinematic_pair);
|
|
curve_1 : curve;
|
|
curve_2 : curve;
|
|
orientation : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (curve_1 IN r.items))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_2| NOT (curve_2 IN r.items))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY planar_curve_pair_range
|
|
SUBTYPE OF (planar_curve_pair);
|
|
range_on_curve_1 : trimmed_curve;
|
|
range_on_curve_2 : trimmed_curve;
|
|
WHERE
|
|
WR1:
|
|
SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve;
|
|
WR2:
|
|
SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve;
|
|
WR3:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (range_on_curve_1 IN r.items))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_2| NOT (range_on_curve_2 IN r.items))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY planar_extent
|
|
SUBTYPE OF (geometric_representation_item);
|
|
size_in_x : length_measure;
|
|
size_in_y : length_measure;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY planar_pair
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY planar_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : planar_pair;
|
|
lower_limit_actual_rotation : rotational_range_measure;
|
|
upper_limit_actual_rotation : rotational_range_measure;
|
|
lower_limit_actual_translation_x : translational_range_measure;
|
|
upper_limit_actual_translation_x : translational_range_measure;
|
|
lower_limit_actual_translation_y : translational_range_measure;
|
|
upper_limit_actual_translation_y : translational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_rotation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation))) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
wr2:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_translation_x)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_translation_x))) XOR (lower_limit_actual_translation_x < upper_limit_actual_translation_x);
|
|
wr3:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_translation_y)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_translation_y))) XOR (lower_limit_actual_translation_y < upper_limit_actual_translation_y);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY planar_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_rotation : plane_angle_measure;
|
|
actual_translation_x : length_measure;
|
|
actual_translation_y : length_measure;
|
|
SELF\pair_value.applies_to_pair : planar_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY planar_pair_with_range
|
|
SUBTYPE OF (planar_pair);
|
|
lower_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
lower_limit_actual_translation_x : OPTIONAL length_measure;
|
|
upper_limit_actual_translation_x : OPTIONAL length_measure;
|
|
lower_limit_actual_translation_y : OPTIONAL length_measure;
|
|
upper_limit_actual_translation_y : OPTIONAL length_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
WR2:
|
|
(NOT EXISTS(lower_limit_actual_translation_x) OR NOT EXISTS(upper_limit_actual_translation_x)) XOR (lower_limit_actual_translation_x < upper_limit_actual_translation_x);
|
|
WR3:
|
|
(NOT EXISTS(lower_limit_actual_translation_y) OR NOT EXISTS(upper_limit_actual_translation_y)) XOR (lower_limit_actual_translation_y < upper_limit_actual_translation_y);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY planar_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF.items) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(it)))) = 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY plane
|
|
SUBTYPE OF (elementary_surface);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY plane_angle_and_length_pair
|
|
SUBTYPE OF (founded_item);
|
|
plane_angle_value : plane_angle_measure;
|
|
length_value : length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY plane_angle_and_ratio_pair
|
|
SUBTYPE OF (founded_item);
|
|
plane_angle_value : plane_angle_measure;
|
|
ratio_value : ratio_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY plane_angle_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY plus_expression
|
|
SUBTYPE OF (multiple_arity_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
ENTITY plus_minus_tolerance;
|
|
range : tolerance_method_definition;
|
|
toleranced_dimension : dimensional_characteristic;
|
|
UNIQUE
|
|
UR1 : toleranced_dimension;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2
|
|
ENTITY ply_laminate_definition
|
|
SUBTYPE OF (product_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr)))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY ply_laminate_sequence_definition
|
|
SUBTYPE OF (product_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr)))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY ply_laminate_table
|
|
SUBTYPE OF (part_laminate_table);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY pocket
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'circular cutout', 'complex cutout', 'recess' ];
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'pocket depth occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((sar.description = 'path feature component usage') AND (sar.name = 'pocket depth')) AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((1 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 2)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (srwp_i.name = 'orientation') OR (srwp_i.name = 'fillet radius'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) = 0))) = 0;
|
|
WR7:
|
|
NOT (SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE', 'STEP_MERGED_CAD_SCHEMA.SQUARE_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'STEP_MERGED_CAD_SCHEMA.ROUNDED_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.VEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.TEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr.relating_shape_aspect)) = 1))) = 1))) = 1))) = 0);
|
|
WR8:
|
|
NOT (SELF\characterized_object.description = 'closed rectangular') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'closed boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR9:
|
|
NOT (SELF\characterized_object.description = 'open rectangular') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'open boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SQUARE_U_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR10:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'bottom condition occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.POCKET' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition)))) = 1))) = 1))) = 0;
|
|
WR11:
|
|
NOT (SELF\characterized_object.description IN [ 'complex', 'non-circular cutout', 'recess' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'change in boundary occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.TAPER' IN TYPEOF(fcr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.POCKET' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND (fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper' ]))) = 1))) <= 1))) = 0);
|
|
WR12:
|
|
NOT (SELF\characterized_object.description = 'circular cutout') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'enclosed boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0);
|
|
WR13:
|
|
NOT (SELF\characterized_object.description IN [ 'circular cutout', 'complex cutout' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'bottom condition occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.POCKET' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition))) AND (sdr.relating_shape_aspect.description = 'through'))) = 1))) = 1))) = 0);
|
|
WR14:
|
|
NOT (SELF\characterized_object.description = 'recess') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'bottom condition occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.POCKET' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition))) AND (sdr.relating_shape_aspect.description IN [ 'planar', 'complex' ]))) = 1))) = 1))) = 0);
|
|
WR15:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
WR16:
|
|
NOT (SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'recess' ]) OR (SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut volume')) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.BOSS', 'STEP_MERGED_CAD_SCHEMA.PROTRUSION' ] * TYPEOF(sar.related_shape_aspect)) = 1))) = 1))) <= 1))) = 1);
|
|
WR17:
|
|
NOT (SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular' ]) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'change in boundary occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.TAPER' IN TYPEOF(fcr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.POCKET' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND (fcr.related_shape_aspect.description IN [ 'angle taper', 'directed taper' ]))) >= 1))) <= 1))) = 0);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY pocket_bottom
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'planar', 'complex', 'through' ];
|
|
WR3:
|
|
NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor normal'))) = 1))) = 0);
|
|
WR4:
|
|
NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor location'))) = 1))) = 0);
|
|
WR5:
|
|
NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor face'))) = 1))) = 0);
|
|
WR6:
|
|
NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR7:
|
|
NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) <= 1))) = 0))) = 0);
|
|
WR8:
|
|
NOT (SELF.description = 'through') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 0))) = 0);
|
|
WR9:
|
|
NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0);
|
|
WR10:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND ('STEP_MERGED_CAD_SCHEMA.POCKET' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('STEP_MERGED_CAD_SCHEMA.POCKET_BOTTOM' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1;
|
|
WR11:
|
|
NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'pocket bottom usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (fcr.related_shape_aspect.description = 'bottom condition occurrence') AND (fcr.related_shape_aspect.name IN [ 'pocket depth start', 'pocket depth end' ]))) = 0);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY pogc_with_dimension
|
|
SUBTYPE OF (parallel_offset_geometric_constraint);
|
|
offset_value : positive_length_measure;
|
|
offset_direction_constrained : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2);
|
|
WR2:
|
|
NOT (offset_direction_constrained = TRUE) AND ((offset_type = curve_2d_offset) OR (offset_type = surface_offset));
|
|
END_ENTITY;
|
|
|
|
ENTITY point
|
|
SUPERTYPE OF (ONEOF(cartesian_point, point_on_curve, point_on_surface, point_replica, degenerate_pcurve))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY point_and_vector
|
|
SUBTYPE OF (compound_representation_item, geometric_representation_item);
|
|
SELF\compound_representation_item.item_element : point_and_vector_members;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY point_distance_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF point;
|
|
SELF\explicit_constraint.reference_elements : SET [0:4] OF point_curve_or_surface_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR ('STEP_MERGED_CAD_SCHEMA.PDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2);
|
|
END_ENTITY;
|
|
|
|
ENTITY point_on_curve
|
|
SUBTYPE OF (point);
|
|
basis_curve : curve;
|
|
point_parameter : parameter_value;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY point_on_edge_curve
|
|
SUBTYPE OF (point_on_curve);
|
|
basis_edge_curve : edge_curve;
|
|
DERIVE
|
|
SELF\point_on_curve.basis_curve : curve := SELF.basis_edge_curve.edge_geometry;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_edge_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY point_on_face_surface
|
|
SUBTYPE OF (point_on_surface);
|
|
basis_face_surface : face_surface;
|
|
DERIVE
|
|
SELF\point_on_surface.basis_surface : surface := SELF.basis_face_surface.face_geometry;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_face_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY point_on_planar_curve_pair
|
|
SUBTYPE OF (high_order_kinematic_pair);
|
|
pair_curve : curve;
|
|
orientation : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (pair_curve IN r.items))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY point_on_planar_curve_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : point_on_planar_curve_pair;
|
|
range_on_pair_curve : trimmed_curve;
|
|
lower_limit_yaw : rotational_range_measure;
|
|
upper_limit_yaw : rotational_range_measure;
|
|
lower_limit_pitch : rotational_range_measure;
|
|
upper_limit_pitch : rotational_range_measure;
|
|
lower_limit_roll : rotational_range_measure;
|
|
upper_limit_roll : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
SELF\simple_pair_range.applies_to_pair\point_on_planar_curve_pair.pair_curve :=: range_on_pair_curve.basis_curve;
|
|
wr2:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_yaw)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_yaw))) XOR (lower_limit_yaw < upper_limit_yaw);
|
|
wr3:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_pitch)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_pitch))) XOR (lower_limit_pitch < upper_limit_pitch);
|
|
wr4:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_roll)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_roll))) XOR (lower_limit_roll < upper_limit_roll);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY point_on_planar_curve_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_point_on_curve : point_on_curve;
|
|
input_orientation : spatial_rotation;
|
|
SELF\pair_value.applies_to_pair : point_on_planar_curve_pair;
|
|
DERIVE
|
|
actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, input_orientation);
|
|
WHERE
|
|
WR1:
|
|
SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve :=: actual_point_on_curve.basis_curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY point_on_planar_curve_pair_with_range
|
|
SUBTYPE OF (point_on_planar_curve_pair);
|
|
range_on_pair_curve : trimmed_curve;
|
|
lower_limit_yaw : OPTIONAL plane_angle_measure;
|
|
upper_limit_yaw : OPTIONAL plane_angle_measure;
|
|
lower_limit_pitch : OPTIONAL plane_angle_measure;
|
|
upper_limit_pitch : OPTIONAL plane_angle_measure;
|
|
lower_limit_roll : OPTIONAL plane_angle_measure;
|
|
upper_limit_roll : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch);
|
|
WR2:
|
|
(NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw);
|
|
WR3:
|
|
(NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll);
|
|
WR4:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (range_on_pair_curve IN r.items))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY point_on_surface
|
|
SUBTYPE OF (point);
|
|
basis_surface : surface;
|
|
point_parameter_u : parameter_value;
|
|
point_parameter_v : parameter_value;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY point_on_surface_pair
|
|
SUBTYPE OF (high_order_kinematic_pair);
|
|
pair_surface : surface;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (pair_surface IN r.items))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY point_on_surface_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : point_on_surface_pair;
|
|
range_on_pair_surface : rectangular_trimmed_surface;
|
|
lower_limit_yaw : rotational_range_measure;
|
|
upper_limit_yaw : rotational_range_measure;
|
|
lower_limit_pitch : rotational_range_measure;
|
|
upper_limit_pitch : rotational_range_measure;
|
|
lower_limit_roll : rotational_range_measure;
|
|
upper_limit_roll : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
SELF\simple_pair_range.applies_to_pair\point_on_surface_pair.pair_surface :=: range_on_pair_surface.basis_surface;
|
|
wr2:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_yaw)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_yaw))) XOR (lower_limit_yaw < upper_limit_yaw);
|
|
wr3:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_pitch)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_pitch))) XOR (lower_limit_pitch < upper_limit_pitch);
|
|
wr4:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_roll)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_roll))) XOR (lower_limit_roll < upper_limit_roll);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY point_on_surface_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_point_on_surface : point_on_surface;
|
|
input_orientation : spatial_rotation;
|
|
SELF\pair_value.applies_to_pair : point_on_surface_pair;
|
|
DERIVE
|
|
actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, input_orientation);
|
|
WHERE
|
|
WR1:
|
|
SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: actual_point_on_surface.basis_surface;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY point_on_surface_pair_with_range
|
|
SUBTYPE OF (point_on_surface_pair);
|
|
range_on_pair_surface : rectangular_trimmed_surface;
|
|
lower_limit_yaw : OPTIONAL plane_angle_measure;
|
|
upper_limit_yaw : OPTIONAL plane_angle_measure;
|
|
lower_limit_pitch : OPTIONAL plane_angle_measure;
|
|
upper_limit_pitch : OPTIONAL plane_angle_measure;
|
|
lower_limit_roll : OPTIONAL plane_angle_measure;
|
|
upper_limit_roll : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch);
|
|
WR2:
|
|
(NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw);
|
|
WR3:
|
|
(NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll);
|
|
WR4:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (range_on_pair_surface IN r.items))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY point_path
|
|
SUBTYPE OF (compound_representation_item, geometric_representation_item);
|
|
SELF\compound_representation_item.item_element : point_path_members;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY point_placement_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
SELF\representation.items : SET [1:?] OF point_placement_shape_representation_item;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (i <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COMPOUND_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(i)) = 1))) > 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY point_replica
|
|
SUBTYPE OF (point);
|
|
parent_pt : point;
|
|
transformation : cartesian_transformation_operator;
|
|
WHERE
|
|
WR1:
|
|
transformation.dim = parent_pt.dim;
|
|
WR2:
|
|
acyclic_point_replica(SELF, parent_pt);
|
|
END_ENTITY;
|
|
|
|
ENTITY point_style
|
|
SUBTYPE OF (founded_item);
|
|
name : label;
|
|
marker : marker_select;
|
|
marker_size : size_select;
|
|
marker_colour : colour;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY point_to_point_path
|
|
SUBTYPE OF (path_node);
|
|
DERIVE
|
|
SELF\kinematic_path_segment.transition : transition_code := discontinuous;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2
|
|
ENTITY polar_complex_number_literal
|
|
SUBTYPE OF (generic_literal);
|
|
radius : REAL;
|
|
angle : REAL;
|
|
WHERE
|
|
WR1:
|
|
radius >= 0;
|
|
WR2:
|
|
(0 <= angle) AND (angle < 2 * 3.14159);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY polar_complex_number_region
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
centre : complex_number_literal;
|
|
distance_constraint : real_interval;
|
|
direction_constraint : finite_real_interval;
|
|
WHERE
|
|
WR1:
|
|
min_exists(distance_constraint) AND (real_min(distance_constraint) >= 0.0);
|
|
WR2:
|
|
(-3.14159 <= direction_constraint.min) AND (direction_constraint.min < 3.14159);
|
|
WR3:
|
|
direction_constraint.max - direction_constraint.min <= 2.0 * 3.14159;
|
|
WR4:
|
|
(direction_constraint.max - direction_constraint.min < 2.0 * 3.14159) OR (direction_constraint.min_closure = open);
|
|
WR5:
|
|
((direction_constraint.max - direction_constraint.min < 2.0 * 3.14159) OR (direction_constraint.max_closure = open)) OR (direction_constraint.min = -3.14159);
|
|
WR6:
|
|
(((real_min(distance_constraint) > 0.0) OR max_exists(distance_constraint)) OR (direction_constraint.max - direction_constraint.min < 2.0 * 3.14159)) OR (direction_constraint.max_closure = open);
|
|
END_ENTITY;
|
|
|
|
ENTITY poly_loop
|
|
SUBTYPE OF (loop, geometric_representation_item);
|
|
polygon : LIST [3:?] OF UNIQUE cartesian_point;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY polygonal_area
|
|
SUBTYPE OF (primitive_2d);
|
|
bounds : LIST [3:?] OF UNIQUE cartesian_point;
|
|
END_ENTITY;
|
|
|
|
ENTITY polyline
|
|
SUBTYPE OF (bounded_curve);
|
|
points : LIST [2:?] OF cartesian_point;
|
|
END_ENTITY;
|
|
|
|
ENTITY position_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 (('STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE' IN TYPEOF(sketch_basis)) AND NOT ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(sketch_basis\curve_bounded_surface.basis_surface)));
|
|
WR2:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(sketch_basis)) AND NOT ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(sketch_basis\face_surface.face_geometry)));
|
|
WR3:
|
|
SIZEOF(QUERY (q <* auxiliary_elements| (SIZEOF(TYPEOF(q) * [ 'STEP_MERGED_CAD_SCHEMA.POINT', 'STEP_MERGED_CAD_SCHEMA.CURVE' ]) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (q <* auxiliary_elements| (q\geometric_representation_item.dim <> 3))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY power_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY power_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY power_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.watt);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY pre_defined_character_glyph
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_colour
|
|
SUBTYPE OF (pre_defined_item, colour);
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_curve_font
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_dimension_symbol
|
|
SUBTYPE OF (pre_defined_symbol);
|
|
WHERE
|
|
WR1:
|
|
SELF.name IN [ 'arc length', 'conical taper', 'counterbore', 'countersink', 'depth', 'diameter', 'plus minus', 'radius', 'slope', 'spherical diameter', 'spherical radius', 'square' ];
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_geometrical_tolerance_symbol
|
|
SUBTYPE OF (pre_defined_symbol);
|
|
WHERE
|
|
WR1:
|
|
SELF.name IN [ 'angularity', 'basic dimension', 'blanked datum reference', 'circular runout', 'circularity', 'concentricity', 'cylindricity', 'datum target identification', 'diameter', 'filled datum reference', 'flatness', 'least material condition', 'maximum material condition', 'parallelism', 'perpendicularity', 'position', 'profile of a line', 'profile of a surface', 'projected tolerance zone', 'regardless of feature size', 'straightness', 'symmetry', 'total runout' ];
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_item;
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_marker
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY pre_defined_point_marker_symbol
|
|
SUBTYPE OF (pre_defined_marker, pre_defined_symbol);
|
|
WHERE
|
|
WR1:
|
|
SELF.name IN [ 'asterisk', 'circle', 'dot', 'plus', 'square', 'triangle', 'x' ];
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY pre_defined_presentation_style
|
|
SUBTYPE OF (founded_item, pre_defined_item);
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY pre_defined_tile
|
|
SUBTYPE OF (pre_defined_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY precision_qualifier;
|
|
precision_value : INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY predefined_picture_representation_item
|
|
SUBTYPE OF (picture_representation_item);
|
|
WHERE
|
|
WR1:
|
|
SELF\representation_item.name IN pre_defined_picture_representation_types;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY prescribed_path
|
|
SUBTYPE OF (link_motion_representation_along_path);
|
|
controlling_joints : OPTIONAL SET [1:6] OF kinematic_joint;
|
|
END_ENTITY;
|
|
|
|
ENTITY presentation_area
|
|
SUBTYPE OF (presentation_representation);
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(QUERY (ais <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'AREA_IN_SET.AREA')| (SIZEOF(USEDIN(ais, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_SIZE.UNIT')) = 1))) > 0) OR (SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + '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:
|
|
(('STEP_MERGED_CAD_SCHEMA.PRESENTATION_AREA' IN TYPEOF(SELF)) OR (SIZEOF(QUERY (prr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.REP_2')| ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_REPRESENTATION' IN TYPEOF(prr\representation_relationship.rep_1)))) > 0)) OR (SIZEOF(QUERY (rm <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION')| (SIZEOF(QUERY (mi <* USEDIN(rm, 'STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM.' + 'MAPPING_SOURCE')| (SIZEOF(QUERY (rep <* using_representations(mi)| ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- CASE DIFF IN AP214
|
|
ENTITY presentation_size;
|
|
unit : presentation_size_assignment_select;
|
|
size : planar_box;
|
|
UNIQUE
|
|
UR1 : unit;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF.unit)) AND item_in_context(SELF.size, SELF.unit\representation.context_of_items) OR ('STEP_MERGED_CAD_SCHEMA.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([ ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_STYLE_USAGE'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_STYLE') ] * TYPEOF(style1)) = 1)))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (style1 <* SELF.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(style1)))) <= 2;
|
|
WR3:
|
|
SIZEOF(QUERY (style1 <* SELF.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(style1)) AND (SIZEOF(QUERY (style2 <* SELF.styles - style1| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY pressure_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY pressure_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.pascal);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY previous_change_element_assignment
|
|
SUBTYPE OF (group_assignment);
|
|
items : SET [1:?] OF change_management_object;
|
|
SELF\group_assignment.assigned_group : previous_element_assignment_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY primitive_2d
|
|
SUPERTYPE OF (ONEOF(circular_area, elliptic_area, rectangular_area, polygonal_area, half_space_2d))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
WHERE
|
|
WR1:
|
|
SELF\geometric_representation_item.dim = 2;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY primitive_2d_with_inner_boundary
|
|
SUBTYPE OF (complex_area, compound_representation_item);
|
|
DERIVE
|
|
inner_boundary : compound_inner_area_boundary := SELF\compound_representation_item.item_element;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_AREA', 'STEP_MERGED_CAD_SCHEMA.ELLIPTIC_AREA', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_AREA', 'STEP_MERGED_CAD_SCHEMA.POLYGONAL_AREA', 'STEP_MERGED_CAD_SCHEMA.AREA_WITH_OUTER_BOUNDARY', 'STEP_MERGED_CAD_SCHEMA.PATH_AREA_WITH_PARAMETERS' ] * TYPEOF(SELF)) > 0;
|
|
WR2:
|
|
SIZEOF(QUERY (inner <* inner_boundary| ('STEP_MERGED_CAD_SCHEMA.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF(inner)))) = 0;
|
|
WR3:
|
|
open_path_based_inner_boundary(inner_boundary);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY prismatic_pair
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY prismatic_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : prismatic_pair;
|
|
lower_limit_actual_translation : translational_range_measure;
|
|
upper_limit_actual_translation : translational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_translation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_translation))) XOR (lower_limit_actual_translation < upper_limit_actual_translation);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY prismatic_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_translation : length_measure;
|
|
SELF\pair_value.applies_to_pair : prismatic_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY prismatic_pair_with_range
|
|
SUBTYPE OF (prismatic_pair);
|
|
lower_limit_actual_translation : OPTIONAL length_measure;
|
|
upper_limit_actual_translation : OPTIONAL length_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS(upper_limit_actual_translation)) XOR (lower_limit_actual_translation < upper_limit_actual_translation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY procedural_representation
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET [1:?] OF procedural_representation_sequence;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY procedural_shape_representation
|
|
SUBTYPE OF (procedural_representation, shape_representation);
|
|
SELF\representation.items : SET [1:?] OF procedural_shape_representation_sequence;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
ENTITY procedural_shape_representation_sequence
|
|
SUBTYPE OF (geometric_representation_item, procedural_representation_sequence);
|
|
SELF\procedural_representation_sequence.elements : LIST [1:?] OF shape_representation_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY process_operation
|
|
SUBTYPE OF (action_method);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (amr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_METHOD_RELATIONSHIP.' + 'RELATING_METHOD')| NOT ('STEP_MERGED_CAD_SCHEMA.PROCESS_OPERATION' IN TYPEOF(amr\action_method_relationship.related_method)) OR (SELF :=: amr\action_method_relationship.related_method))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (amr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_METHOD_RELATIONSHIP.' + 'RELATED_METHOD')| NOT ('STEP_MERGED_CAD_SCHEMA.PROCESS_OPERATION' IN TYPEOF(amr\action_method_relationship.relating_method)) OR (SELF :=: amr\action_method_relationship.relating_method))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY process_plan
|
|
SUBTYPE OF (action);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (ar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATED_ACTION')| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PROCESS_PLAN', 'STEP_MERGED_CAD_SCHEMA.PRODUCT_PROCESS_PLAN' ] * TYPEOF(ar.relating_action)) <> 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (ar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATING_ACTION')| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PROCESS_PLAN', 'STEP_MERGED_CAD_SCHEMA.PRODUCT_PROCESS_PLAN' ] * TYPEOF(ar.related_action)) = 1) OR (ar.name = 'process operation occurrence') AND ('STEP_MERGED_CAD_SCHEMA.PROCESS_OPERATION' IN TYPEOF(ar.related_action.chosen_method)))) = SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATING_ACTION'));
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY process_product_association;
|
|
name : label;
|
|
description : text;
|
|
defined_product : characterized_product_definition;
|
|
process : product_definition_process;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY process_property_association;
|
|
name : label;
|
|
description : text;
|
|
process : property_process;
|
|
property_or_shape : property_or_shape_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY product;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
frame_of_reference : SET [1:?] OF product_context;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY product_as_planned
|
|
SUBTYPE OF (product_definition_formation);
|
|
END_ENTITY;
|
|
|
|
ENTITY product_category;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
DERIVE
|
|
id : identifier := get_id_value(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY product_category_relationship;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
category : product_category;
|
|
sub_category : product_category;
|
|
WHERE
|
|
WR1:
|
|
acyclic_product_category_relationship(SELF, [ SELF.sub_category ]);
|
|
END_ENTITY;
|
|
|
|
ENTITY product_class
|
|
SUBTYPE OF (product_concept, characterized_object);
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'GROUP_ASSIGNMENT.ASSIGNED_GROUP')| ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND ((aga\group_assignment.role\object_role.name <> 'specification category member') OR (SIZEOF(QUERY (i <* aga\applied_group_assignment.items| ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CONCEPT_FEATURE' IN TYPEOF(i)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(i)))) <> SIZEOF(aga\applied_group_assignment.items))))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY product_data_and_data_quality_relationship;
|
|
description : text;
|
|
product_data : product_definition;
|
|
data_quality : data_quality_definition;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY product_definition
|
|
SUPERTYPE OF (ONEOF(composite_assembly_sequence_definition, laminate_table, ply_laminate_sequence_definition));
|
|
id : identifier;
|
|
description : OPTIONAL text;
|
|
formation : product_definition_formation;
|
|
frame_of_reference : product_definition_context;
|
|
DERIVE
|
|
name : label := get_name_value(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY product_definition_element_relationship
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY product_definition_kinematics
|
|
SUBTYPE OF (property_definition);
|
|
SELF\property_definition.definition : product_definition;
|
|
INVERSE
|
|
representation_relation : kinematic_property_definition_representation FOR definition;
|
|
UNIQUE
|
|
UR1 : definition;
|
|
END_ENTITY;
|
|
|
|
ENTITY product_definition_occurrence_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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY product_definition_process
|
|
SUBTYPE OF (action);
|
|
identification : identifier;
|
|
INVERSE
|
|
product_definitions : SET [1:?] OF process_product_association FOR process;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY product_definition_reference
|
|
SUBTYPE OF (generic_product_definition_reference);
|
|
product_id : identifier;
|
|
product_definition_formation_id : identifier;
|
|
product_definition_id : identifier;
|
|
id_owning_organization_name : OPTIONAL label;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY product_definition_reference_with_local_representation
|
|
SUBTYPE OF (generic_product_definition_reference, product_definition);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY product_definition_relationship;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_product_definition : product_definition_or_reference;
|
|
related_product_definition : product_definition_or_reference;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY product_definition_relationship_kinematics
|
|
SUBTYPE OF (property_definition);
|
|
SELF\property_definition.definition : product_definition_relationship;
|
|
UNIQUE
|
|
UR1 : definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY product_definition_resource
|
|
SUBTYPE OF (action_resource, product_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > 0;
|
|
WR2:
|
|
SELF.frame_of_reference.name IN [ 'part_definition', 'part occurrence', 'physical occurrence' ];
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
ENTITY product_definition_shape
|
|
SUBTYPE OF (property_definition);
|
|
UNIQUE
|
|
UR1 : SELF\property_definition.definition;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CHARACTERIZED_PRODUCT_DEFINITION', 'STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
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 ], 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_USAGE');
|
|
END_ENTITY;
|
|
|
|
ENTITY product_definition_with_associated_documents
|
|
SUBTYPE OF (product_definition);
|
|
documentation_ids : SET [1:?] OF document;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY product_design_to_individual
|
|
SUBTYPE OF (product_relationship);
|
|
DERIVE
|
|
individual_product : product := SELF\product_relationship.related_product;
|
|
product_design : product := SELF\product_relationship.relating_product;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY product_design_version_to_individual
|
|
SUBTYPE OF (product_definition_formation_relationship);
|
|
DERIVE
|
|
individual_product : product_definition_formation := SELF\product_definition_formation_relationship.related_product_definition_formation;
|
|
product_design_version : product_definition_formation := SELF\product_definition_formation_relationship.relating_product_definition_formation;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
ENTITY product_identification
|
|
SUBTYPE OF (configuration_item, characterized_object);
|
|
SELF\configuration_item.item_concept : product_class;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (cd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.CONFIGURATION_DESIGN.CONFIGURATION')| ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF(cd.design)) AND (SIZEOF(QUERY (prpc <* USEDIN(cd.design\product_definition_formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name IN [ 'part', 'raw material', 'tool' ]))) > 0))) <= 1;
|
|
WR2:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CONFIGURABLE_ITEM' IN TYPEOF(SELF)) XOR ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_SPECIFICATION' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY product_planned_to_realized
|
|
SUBTYPE OF (product_definition_formation_relationship);
|
|
DERIVE
|
|
planned_product : product_definition_formation := SELF\product_definition_formation_relationship.relating_product_definition_formation;
|
|
realized_product : product_definition_formation := SELF\product_definition_formation_relationship.related_product_definition_formation;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY product_process_plan
|
|
SUBTYPE OF (product_definition_process);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (ar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATED_ACTION')| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PROCESS_PLAN', 'STEP_MERGED_CAD_SCHEMA.PRODUCT_PROCESS_PLAN' ] * TYPEOF(ar.relating_action)) <> 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (ar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATING_ACTION')| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PROCESS_PLAN', 'STEP_MERGED_CAD_SCHEMA.PRODUCT_PROCESS_PLAN' ] * TYPEOF(ar.related_action)) = 1) OR (ar.name = 'process operation occurrence') AND ('STEP_MERGED_CAD_SCHEMA.PROCESS_OPERATION' IN TYPEOF(ar.related_action.chosen_method)))) = SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATING_ACTION'));
|
|
WR3:
|
|
SIZEOF(QUERY (ppa <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROCESS_PRODUCT_ASSOCIATION.PROCESS')| (ppa.name <> 'produced output') OR NOT ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(ppa.defined_product)))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY product_related_product_category
|
|
SUBTYPE OF (product_category);
|
|
products : SET [1:?] OF product;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY product_relationship;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_product : product;
|
|
related_product : product;
|
|
END_ENTITY;
|
|
|
|
ENTITY product_specification
|
|
SUBTYPE OF (product_identification, configurable_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY profile_floor
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'planar', 'complex', 'through' ];
|
|
WR3:
|
|
NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR4:
|
|
NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 2))) = 0))) = 0);
|
|
WR5:
|
|
NOT (SELF.description = 'through') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 0))) = 0);
|
|
WR6:
|
|
NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0);
|
|
WR7:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'profile floor usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.OUTSIDE_PROFILE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND ('STEP_MERGED_CAD_SCHEMA.PROFILE_FLOOR' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1;
|
|
WR8:
|
|
NOT (SELF.description IN [ 'planar', 'complex' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'shape profile floor orientation')) AND (it.description IN [ 'shape profile start', 'shape profile end' ]))) = 1))) = 0))) = 0);
|
|
WR9:
|
|
NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor'))) = 1))) = 1);
|
|
WR10:
|
|
NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor'))) = 1))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY projected_zone_definition
|
|
SUBTYPE OF (tolerance_zone_definition);
|
|
projection_end : shape_aspect;
|
|
projected_length : length_measure_with_unit;
|
|
WHERE
|
|
WR1:
|
|
('NUMBER' IN TYPEOF(projected_length\measure_with_unit.value_component)) AND (projected_length\measure_with_unit.value_component > 0.0);
|
|
WR2:
|
|
derive_dimensional_exponents(projected_length\measure_with_unit.unit_component) = dimensional_exponents(1, 0, 0, 0, 0, 0, 0);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY projected_zone_definition_with_offset
|
|
SUBTYPE OF (projected_zone_definition);
|
|
offset : length_measure_with_unit;
|
|
END_ENTITY;
|
|
|
|
ENTITY projection_curve
|
|
SUBTYPE OF (annotation_curve_occurrence);
|
|
END_ENTITY;
|
|
|
|
ENTITY projection_directed_callout
|
|
SUBTYPE OF (draughting_callout);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (p_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.PROJECTION_CURVE' IN TYPEOF(p_1)))) <= 2;
|
|
WR2:
|
|
SIZEOF(SELF\draughting_callout.contents) >= 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY promissory_usage_occurrence
|
|
SUBTYPE OF (assembly_component_usage);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY property_definition
|
|
SUPERTYPE OF (ONEOF(product_definition_kinematics, product_definition_relationship_kinematics, product_definition_shape));
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
definition : characterized_definition;
|
|
DERIVE
|
|
id : identifier := get_id_value(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY property_process
|
|
SUBTYPE OF (action);
|
|
identification : identifier;
|
|
INVERSE
|
|
properties : SET [1:?] OF process_property_association FOR process;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY protrusion
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'shape volume occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'volume shape usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (sdr.relating_shape_aspect.description = 'volume shape'))) = 1))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY qualified_representation_item
|
|
SUBTYPE OF (representation_item);
|
|
qualifiers : SET [1:?] OF value_qualifier;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (temp <* qualifiers| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY quantifier_expression
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (multiple_arity_generic_expression);
|
|
variables : LIST [1:?] OF UNIQUE generic_variable;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (vrbl <* variables| NOT (vrbl IN SELF\multiple_arity_generic_expression.operands))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (vrbl <* variables| NOT (schema_prefix + 'BOUND_VARIABLE_SEMANTICS' IN TYPEOF(vrbl.interpretation.semantics)))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY quasi_uniform_curve
|
|
SUBTYPE OF (b_spline_curve);
|
|
END_ENTITY;
|
|
|
|
ENTITY quasi_uniform_surface
|
|
SUBTYPE OF (b_spline_surface);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY rack_and_pinion_pair
|
|
SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling);
|
|
pinion_radius : length_measure;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY rack_and_pinion_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : rack_and_pinion_pair;
|
|
lower_limit_rack_displacement : translational_range_measure;
|
|
upper_limit_rack_displacement : translational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_rack_displacement)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_rack_displacement))) XOR (lower_limit_rack_displacement < upper_limit_rack_displacement);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY rack_and_pinion_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_displacement : length_measure;
|
|
SELF\pair_value.applies_to_pair : rack_and_pinion_pair;
|
|
DERIVE
|
|
actual_rotation : plane_angle_measure := 0.0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rack_and_pinion_pair_with_range
|
|
SUBTYPE OF (rack_and_pinion_pair);
|
|
lower_limit_rack_displacement : OPTIONAL length_measure;
|
|
upper_limit_rack_displacement : OPTIONAL length_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_rack_displacement) OR NOT EXISTS(upper_limit_rack_displacement)) XOR (lower_limit_rack_displacement < upper_limit_rack_displacement);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY radioactivity_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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| ('STEP_MERGED_CAD_SCHEMA.PROJECTION_CURVE' IN TYPEOF(con)))) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY radius_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF radial_geometry_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\explicit_constraint.reference_elements) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rational_representation_item
|
|
SUBTYPE OF (representation_item, slash_expression);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (operand <* SELF\binary_generic_expression.operands| NOT ('STEP_MERGED_CAD_SCHEMA.INT_LITERAL' IN TYPEOF(operand)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rationalize_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
DERIVE
|
|
fun : maths_function := SELF\unary_generic_expression.operand;
|
|
WHERE
|
|
WR1:
|
|
(space_dimension(fun.domain) = 1) AND (space_dimension(fun.range) = 1);
|
|
WR2:
|
|
number_tuple_subspace_check(factor1(fun.range));
|
|
WR3:
|
|
space_dimension(factor1(fun.range)) > 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY real_defined_function
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (numeric_defined_function);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY real_interval_from_min
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
min : REAL;
|
|
min_closure : open_closed;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY real_interval_to_max
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
max : REAL;
|
|
max_closure : open_closed;
|
|
END_ENTITY;
|
|
|
|
ENTITY real_literal
|
|
SUBTYPE OF (literal_number);
|
|
SELF\literal_number.the_value : REAL;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY real_numeric_variable
|
|
SUBTYPE OF (numeric_variable);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY real_representation_item
|
|
SUBTYPE OF (representation_item, real_literal);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY real_tuple_literal
|
|
SUBTYPE OF (generic_literal);
|
|
lit_value : LIST [1:?] OF REAL;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rectangular_area
|
|
SUBTYPE OF (primitive_2d);
|
|
position : axis2_placement_2d;
|
|
x : positive_length_measure;
|
|
y : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rectangular_array_placement_group_component
|
|
SUBTYPE OF (array_placement_group);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY rectangular_closed_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT ((SIZEOF(impl_rep.used_representation.items) >= 3) AND (SIZEOF(impl_rep.used_representation.items) <= 4)))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (((srwp_i.name = 'orientation') OR (srwp_i.name = 'length')) OR (srwp_i.name = 'width')) OR (srwp_i.name = 'corner radius'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'length'))) = 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'corner radius'))) <= 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY rectangular_composite_surface
|
|
SUBTYPE OF (bounded_surface);
|
|
segments : LIST [1:?] OF LIST [1:?] OF surface_patch;
|
|
DERIVE
|
|
n_u : INTEGER := SIZEOF(segments);
|
|
n_v : INTEGER := SIZEOF(segments[1]);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (s <* segments| (n_v <> SIZEOF(s)))) = 0;
|
|
WR2:
|
|
constraints_rectangular_composite_surface(SELF);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rectangular_composite_surface_transition_locator
|
|
SUBTYPE OF (founded_item);
|
|
basis_surface : rectangular_composite_surface;
|
|
surface_parameter : u_or_v_parameter;
|
|
u_transition_index : INTEGER;
|
|
v_transition_index : INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY rectangular_pattern
|
|
SUBTYPE OF (replicate_feature);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.related_shape_aspect)))) = 1))) <= 5))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'row layout direction'))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'column layout direction'))) = 1))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 5))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of rows'))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of columns'))) = 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'row spacing'))) = 1))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'column spacing'))) = 1))) = 0))) = 0;
|
|
WR10:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
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:
|
|
(('STEP_MERGED_CAD_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface)) AND NOT ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(basis_surface)) OR ('STEP_MERGED_CAD_SCHEMA.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface))) OR (usense = (u2 > u1));
|
|
WR4:
|
|
(('STEP_MERGED_CAD_SCHEMA.SPHERICAL_SURFACE' IN TYPEOF(basis_surface)) OR ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY reindexed_array_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
starting_indices : LIST [1:?] OF INTEGER;
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
WHERE
|
|
WR1:
|
|
function_is_array(SELF\unary_generic_expression.operand);
|
|
WR2:
|
|
SIZEOF(starting_indices) = SIZEOF(shape_of_array(SELF\unary_generic_expression.operand));
|
|
END_ENTITY;
|
|
|
|
ENTITY relative_event_occurrence
|
|
SUBTYPE OF (event_occurrence);
|
|
base_event : event_occurrence;
|
|
offset : time_measure_with_unit;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY removal_volume
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'shape volume occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'volume shape usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (sdr.relating_shape_aspect.description = 'volume shape'))) = 1))) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY rep_item_group
|
|
SUBTYPE OF (group, representation_item);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS')) > 0;
|
|
WR2:
|
|
SIZEOF(QUERY (r <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION.' + 'ITEMS')| (r.name = 'group representation'))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (ga <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP')| (ga.role.name <> 'group membership'))) = 0;
|
|
WR4:
|
|
SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'TOPOLOGICAL_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM') ] * TYPEOF(SELF)) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY repackaging_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
input_repack : repackage_options;
|
|
output_repack : repackage_options;
|
|
selected_output : nonnegative_integer;
|
|
SELF\unary_generic_expression.operand : maths_function;
|
|
WHERE
|
|
WR1:
|
|
(input_repack <> ro_wrap_as_tuple) OR (space_dimension(operand.domain) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(operand.domain)));
|
|
WR2:
|
|
(output_repack <> ro_unwrap_tuple) OR (space_dimension(operand.range) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(operand.range)));
|
|
WR3:
|
|
selected_output <= space_dimension(repackage(operand.range, output_repack));
|
|
END_ENTITY;
|
|
|
|
ENTITY reparametrised_composite_curve_segment
|
|
SUBTYPE OF (composite_curve_segment);
|
|
param_length : parameter_value;
|
|
WHERE
|
|
WR1:
|
|
param_length > 0.0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY replicate_feature
|
|
SUPERTYPE OF (ONEOF(circular_pattern, rectangular_pattern, feature_pattern))
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.REPLICATE_FEATURE', 'STEP_MERGED_CAD_SCHEMA.INSTANCED_FEATURE' ] * TYPEOF(fcr.related_shape_aspect)) >= 1) AND (fcr.name = 'pattern basis'))) = 1;
|
|
WR3:
|
|
SIZEOF(QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| NOT ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) + SIZEOF(QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| NOT ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY repositioned_neutral_sketch
|
|
SUBTYPE OF (mapped_item, geometric_representation_item);
|
|
DERIVE
|
|
map : representation_map := SELF\mapped_item.mapping_source;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF(map.mapped_representation);
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_2D' IN TYPEOF(map.mapping_origin);
|
|
WR3:
|
|
'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\mapped_item.mapping_target);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY repositioned_tessellated_item
|
|
SUBTYPE OF (tessellated_item);
|
|
location : axis2_placement_3d;
|
|
WHERE
|
|
WR1:
|
|
NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.TESSELLATED_CURVE_SET', 'STEP_MERGED_CAD_SCHEMA.TESSELLATED_GEOMETRIC_SET', 'STEP_MERGED_CAD_SCHEMA.TESSELLATED_POINT_SET', 'STEP_MERGED_CAD_SCHEMA.TESSELLATED_SURFACE_SET', 'STEP_MERGED_CAD_SCHEMA.TESSELLATED_SHELL', 'STEP_MERGED_CAD_SCHEMA.TESSELLATED_SOLID', 'STEP_MERGED_CAD_SCHEMA.TESSELLATED_WIRE' ] * TYPEOF(SELF)) = 0);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY representation
|
|
SUPERTYPE OF ((ONEOF(interpolated_configuration_representation, link_motion_representation_along_path) ANDOR ONEOF(kinematic_link_representation, kinematic_topology_structure, kinematic_topology_directed_structure, kinematic_topology_network_structure, mechanism_representation, shape_representation)) ANDOR ONEOF(kinematic_topology_structure, kinematic_topology_directed_structure, kinematic_topology_network_structure));
|
|
name : label;
|
|
items : SET [1:?] OF representation_item;
|
|
context_of_items : representation_context;
|
|
DERIVE
|
|
description : text := get_description_value(SELF);
|
|
id : identifier := get_id_value(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
|
|
WR2:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY representation_item
|
|
SUPERTYPE OF ((ONEOF(binary_representation_item, compound_representation_item, mapped_item, value_representation_item) ANDOR ONEOF(mapped_item, styled_item)) ANDOR ONEOF(boolean_representation_item, date_representation_item, date_time_representation_item, integer_representation_item, logical_representation_item, rational_representation_item, real_representation_item));
|
|
name : label;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_representations(SELF)) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY representation_proxy_item
|
|
SUBTYPE OF (representation_item);
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY representative_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
unique_in_product_definition(SELF) OR unique_in_shape_aspect(SELF);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY requirement_assignment
|
|
SUBTYPE OF (characterized_object, group);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY requirement_for_action_resource
|
|
SUBTYPE OF (action_resource_requirement);
|
|
resources : SET [1:?] OF action_resource;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY requirement_source
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2
|
|
ENTITY requirement_view_definition_relationship
|
|
SUBTYPE OF (product_definition_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY resistance_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY resistance_unit
|
|
SUBTYPE OF (derived_unit);
|
|
WHERE
|
|
WR1:
|
|
derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.ohm);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY resource_property;
|
|
name : label;
|
|
description : text;
|
|
resource : characterized_resource_definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY resource_property_representation;
|
|
name : label;
|
|
description : text;
|
|
property : resource_property;
|
|
representation : representation;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY resource_requirement_type;
|
|
name : label;
|
|
description : text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY restriction_function
|
|
SUBTYPE OF (maths_function, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand : maths_space;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY resulting_path
|
|
SUBTYPE OF (motion_link_relationship, link_motion_representation_along_path);
|
|
controlling_joints : SET [1:?] OF kinematic_joint;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY retention
|
|
SUBTYPE OF (action);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (aa <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_ASSIGNMENT.ASSIGNED_ACTION')| ('ACTIVITY.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa)) AND (aa.role.name = 'retention'))) >= 1;
|
|
WR2:
|
|
((SIZEOF(QUERY (atia <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS')| (atia.role.name = 'minimum retention period'))) = 1) AND (SIZEOF(QUERY (atia <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS')| (atia.role.name = 'maximum retention period'))) = 1)) AND (SIZEOF(QUERY (atia1 <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS')| (((atia1.role.name = 'minimum retention period') AND ('STEP_MERGED_CAD_SCHEMA.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF(atia1.assigned_time_interval))) AND (EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR EXISTS(atia1.assigned_time_interval\time_interval_with_bounds.duration))) AND (SIZEOF(QUERY (atia2 <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS')| (((atia2.role.name = 'maximum retention period') AND ('STEP_MERGED_CAD_SCHEMA.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF(atia2.assigned_time_interval))) AND (EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.secondary_bound) OR EXISTS(atia2.assigned_time_interval\time_interval_with_bounds.duration))) AND (atia1.assigned_time_interval\time_interval_with_bounds.primary_bound :=: atia2.assigned_time_interval\time_interval_with_bounds.primary_bound))) = 1))) = 1);
|
|
WR3:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATED_ACTION')) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY revolute_pair
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY revolute_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : revolute_pair;
|
|
lower_limit_actual_rotation : rotational_range_measure;
|
|
upper_limit_actual_rotation : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_rotation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation))) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY revolute_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_rotation : plane_angle_measure;
|
|
SELF\pair_value.applies_to_pair : revolute_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY revolute_pair_with_range
|
|
SUBTYPE OF (revolute_pair);
|
|
lower_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
END_ENTITY;
|
|
|
|
ENTITY revolved_area_solid
|
|
SUBTYPE OF (swept_area_solid);
|
|
axis : axis1_placement;
|
|
angle : plane_angle_measure;
|
|
DERIVE
|
|
axis_line : line := representation_item('') || geometric_representation_item() || curve() || line(axis.location, representation_item('') || geometric_representation_item() || vector(axis.z, 1.0));
|
|
END_ENTITY;
|
|
|
|
ENTITY revolved_face_solid
|
|
SUBTYPE OF (swept_face_solid);
|
|
axis : axis1_placement;
|
|
angle : plane_angle_measure;
|
|
DERIVE
|
|
axis_line : line := representation_item('') || geometric_representation_item() || curve() || line(axis.location, representation_item('') || geometric_representation_item() || vector(axis.z, 1.0));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 (('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) OR ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN TYPEOF(second_trim_condition)));
|
|
WR2:
|
|
NOT ((('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(first_trim_condition)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(second_trim_condition))) AND (first_trim_condition = second_trim_condition));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY revolved_profile
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SELF\characterized_object.description IN [ 'groove', 'flat', 'round', 'open profile' ];
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 2))) = 0))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'removal direction'))) = 1;
|
|
WR5:
|
|
NOT (SELF\characterized_object.description = 'open profile') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'outer edge shape occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.OPEN_PATH_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'outer edge shape'))) = 1))) = 1))) = 0);
|
|
WR6:
|
|
NOT (SELF\characterized_object.description = 'flat') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'flat edge shape occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.LINEAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'flat edge shape'))) = 1))) = 1))) = 0);
|
|
WR7:
|
|
NOT (SELF\characterized_object.description = 'round') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'rounded edge shape occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'rounded edge shape'))) = 1))) = 1))) = 0);
|
|
WR8:
|
|
NOT (SELF\characterized_object.description = 'groove') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'sweep occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SQUARE_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'STEP_MERGED_CAD_SCHEMA.ROUNDED_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.VEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.TEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect.description = 'sweep'))) = 1))) = 1))) = 0);
|
|
WR9:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rgc_with_dimension
|
|
SUBTYPE OF (radius_geometric_constraint);
|
|
radius_value : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY rib
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ((1 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 3)))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| NOT (i.name IN [ 'orientation', 'fillet radius', 'shoulder radius' ]))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'fillet radius') AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'LENGTH_MEASURE_WITH_UNIT') ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
wr4:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (i.name = 'shoulder radius') AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'LENGTH_MEASURE_WITH_UNIT') ] * TYPEOF(i)) = 2))) = 1))) <= 1;
|
|
wr5:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'swept shape occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage')) AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'PARTIAL_CIRCULAR_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SQUARE_U_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'ROUNDED_U_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'TEE_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'VEE_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'OPEN_PATH_PROFILE') ] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = 1;
|
|
wr6:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel')) AND ('STEP_MERGED_CAD_SCHEMA.' + 'PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1;
|
|
wr7:
|
|
SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'change in boundary occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((('STEP_MERGED_CAD_SCHEMA.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'taper usage')) AND ('STEP_MERGED_CAD_SCHEMA.' + 'TAPER' IN TYPEOF(sar.relating_shape_aspect))) AND (sar.relating_shape_aspect.description = 'directed taper'))) = 1))) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rib_top
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'rib top condition occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'rib top usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.RIB_TOP_FLOOR' IN TYPEOF(sdr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.RIB_TOP' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition)))) = 1))) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'removal direction'))) = 1))) = 1;
|
|
WR3:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rib_top_floor
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'planar', 'complex' ];
|
|
WR3:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.description = 'rib top usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'rib top condition occurrence') AND ('STEP_MERGED_CAD_SCHEMA.RIB_TOP' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('STEP_MERGED_CAD_SCHEMA.RIB_TOP_FLOOR' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1;
|
|
WR4:
|
|
NOT (SELF.description = 'complex') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'rib top face'))) = 1))) = 0);
|
|
WR5:
|
|
NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'rib top face'))) = 1))) = 0);
|
|
WR6:
|
|
NOT (SELF.description = 'planar') OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.NGON_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'STEP_MERGED_CAD_SCHEMA.CLOSED_PATH_PROFILE' ] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect.description = 'rib top floor boundary'))) = 1))) = 1))) = 0);
|
|
END_ENTITY;
|
|
|
|
ENTITY right_angular_wedge
|
|
SUBTYPE OF (geometric_representation_item);
|
|
position : axis2_placement_3d;
|
|
x : positive_length_measure;
|
|
y : positive_length_measure;
|
|
z : positive_length_measure;
|
|
ltx : length_measure;
|
|
WHERE
|
|
WR1:
|
|
(0.0 <= ltx) AND (ltx < x);
|
|
END_ENTITY;
|
|
|
|
ENTITY right_circular_cone
|
|
SUBTYPE OF (geometric_representation_item);
|
|
position : axis1_placement;
|
|
height : positive_length_measure;
|
|
radius : length_measure;
|
|
semi_angle : plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
radius >= 0.0;
|
|
END_ENTITY;
|
|
|
|
ENTITY right_circular_cylinder
|
|
SUBTYPE OF (geometric_representation_item);
|
|
position : axis1_placement;
|
|
height : positive_length_measure;
|
|
radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY rigid_link_representation
|
|
SUBTYPE OF (kinematic_link_representation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rigid_subsketch
|
|
SUBTYPE OF (subsketch);
|
|
END_ENTITY;
|
|
|
|
ENTITY role_association;
|
|
role : object_role;
|
|
item_with_role : role_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY rolling_curve_pair
|
|
SUBTYPE OF (planar_curve_pair);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY rolling_curve_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_point_on_curve_1 : point_on_curve;
|
|
SELF\pair_value.applies_to_pair : rolling_curve_pair;
|
|
WHERE
|
|
WR1:
|
|
SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY rolling_surface_pair
|
|
SUBTYPE OF (surface_pair);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY rolling_surface_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_point_on_surface : point_on_surface;
|
|
actual_rotation : plane_angle_measure;
|
|
SELF\pair_value.applies_to_pair : rolling_surface_pair;
|
|
WHERE
|
|
WR1:
|
|
SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface.basis_surface;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY rotation_about_direction
|
|
SUBTYPE OF (geometric_representation_item);
|
|
direction_of_axis : direction;
|
|
rotation_angle : plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(direction_of_axis.direction_ratios) = 3;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY round_hole
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'diameter occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'diameter'))) = 1))) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'hole depth occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'hole depth')) AND (sdr.relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'bottom condition occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'hole bottom usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.HOLE_BOTTOM' IN TYPEOF(fcr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)))) = 1))) = 1))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'change in diameter occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'taper usage') AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.TAPER' IN TYPEOF(fcr.relating_shape_aspect)) AND ('STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)))) = 1))) <= 1))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY rounded_end
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'partial circular boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY rounded_u_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 2))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (srwp_i.name = 'orientation') OR (srwp_i.name = 'depth'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'depth'))) <= 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY roundness_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY row_representation_item
|
|
SUBTYPE OF (compound_representation_item);
|
|
SELF\compound_representation_item.item_element : list_representation_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY row_value
|
|
SUBTYPE OF (compound_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY row_variable
|
|
SUBTYPE OF (abstract_variable);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rule_action
|
|
SUBTYPE OF (action);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rule_condition
|
|
SUBTYPE OF (atomic_formula);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rule_definition
|
|
SUBTYPE OF (rule_software_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rule_set
|
|
SUBTYPE OF (rule_software_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rule_set_group
|
|
SUBTYPE OF (rule_software_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rule_software_definition
|
|
SUBTYPE OF (product_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rule_superseded_assignment
|
|
SUBTYPE OF (action_assignment);
|
|
items : SET [1:?] OF rule_superseded_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY rule_supersedence
|
|
SUBTYPE OF (rule_action);
|
|
END_ENTITY;
|
|
|
|
ENTITY ruled_surface_swept_area_solid
|
|
SUBTYPE OF (surface_curve_swept_area_solid);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND (SELF.reference_surface\b_spline_surface.u_degree = 1);
|
|
WR2:
|
|
('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(SELF.directrix)) OR ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY runout_zone_orientation;
|
|
angle : plane_angle_measure_with_unit;
|
|
END_ENTITY;
|
|
|
|
ENTITY runout_zone_orientation_reference_direction
|
|
SUBTYPE OF (runout_zone_orientation);
|
|
orientation_defining_relationship : shape_aspect_relationship;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY satisfied_requirement
|
|
SUBTYPE OF (group_assignment);
|
|
items : SET [1:1] OF product_definition;
|
|
SELF\group_assignment.assigned_group : satisfies_requirement;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY satisfies_requirement
|
|
SUBTYPE OF (group);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY satisfying_item
|
|
SUBTYPE OF (group_assignment);
|
|
items : SET [1:1] OF requirement_satisfaction_item;
|
|
SELF\group_assignment.assigned_group : satisfies_requirement;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY scalar_variable
|
|
SUBTYPE OF (abstract_variable);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY screw_pair
|
|
SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling);
|
|
pitch : length_measure;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY screw_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : screw_pair;
|
|
lower_limit_actual_rotation : rotational_range_measure;
|
|
upper_limit_actual_rotation : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_rotation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation))) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY screw_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_rotation : plane_angle_measure;
|
|
SELF\pair_value.applies_to_pair : screw_pair;
|
|
DERIVE
|
|
actual_translation : length_measure := SELF\pair_value.applies_to_pair\screw_pair.pitch * plane_angle_for_pair_in_radian(SELF\pair_value.applies_to_pair, actual_rotation) / 2 * 3.14159;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY screw_pair_with_range
|
|
SUBTYPE OF (screw_pair);
|
|
lower_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY sculptured_solid
|
|
SUBTYPE OF (modified_solid);
|
|
sculpturing_element : generalized_surface_select;
|
|
positive_side : BOOLEAN;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY sdgc_with_dimension
|
|
SUBTYPE OF (surface_distance_geometric_constraint);
|
|
distance_value : non_negative_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY seam_curve
|
|
SUBTYPE OF (surface_curve);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\surface_curve.associated_geometry) = 2;
|
|
WR2:
|
|
associated_surface(SELF\surface_curve.associated_geometry[1]) = associated_surface(SELF\surface_curve.associated_geometry[2]);
|
|
WR3:
|
|
'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[1]);
|
|
WR4:
|
|
'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[2]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY seam_edge
|
|
SUBTYPE OF (oriented_edge);
|
|
pcurve_reference : pcurve;
|
|
WHERE
|
|
wr1:
|
|
('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(edge_element)) AND ('STEP_MERGED_CAD_SCHEMA.SEAM_CURVE' IN TYPEOF(edge_element\edge_curve.edge_geometry));
|
|
wr2:
|
|
pcurve_reference IN edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry;
|
|
END_ENTITY;
|
|
|
|
ENTITY security_classification;
|
|
name : label;
|
|
purpose : text;
|
|
security_level : security_classification_level;
|
|
END_ENTITY;
|
|
|
|
ENTITY security_classification_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_security_classification : security_classification;
|
|
DERIVE
|
|
role : object_role := get_role(SELF);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY security_classification_level;
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY selector_function
|
|
SUBTYPE OF (maths_function, generic_literal);
|
|
selector : input_selector;
|
|
source_of_domain : maths_space_or_function;
|
|
WHERE
|
|
WR1:
|
|
no_cyclic_domain_reference(source_of_domain, [ SELF ]);
|
|
WR2:
|
|
expression_is_constant(domain_from(source_of_domain));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY self_intersecting_curve
|
|
SUBTYPE OF (self_intersecting_geometry);
|
|
arc_length_separation_factor : REAL;
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY self_intersecting_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(self_intersecting_curve, self_intersecting_surface))
|
|
SUBTYPE OF (inapt_geometry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY self_intersecting_loop
|
|
SUBTYPE OF (topology_related_to_self_intersecting_geometry);
|
|
arc_length_distance_factor : REAL;
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY self_intersecting_shell
|
|
SUBTYPE OF (topology_related_to_self_intersecting_geometry);
|
|
geodesic_separation_factor : REAL;
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY self_intersecting_surface
|
|
SUBTYPE OF (self_intersecting_geometry);
|
|
geodesic_separation_factor : REAL;
|
|
interference_tolerance : length_measure;
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
ENTITY serial_numbered_effectivity
|
|
SUBTYPE OF (effectivity);
|
|
effectivity_start_id : identifier;
|
|
effectivity_end_id : OPTIONAL identifier;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY series_composed_function
|
|
SUBTYPE OF (maths_function, multiple_arity_generic_expression);
|
|
SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF maths_function;
|
|
WHERE
|
|
WR1:
|
|
composable_sequence(SELF\multiple_arity_generic_expression.operands);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY shape_aspect
|
|
SUPERTYPE OF (ONEOF(contacting_feature, datum, datum_feature, datum_target, datum_system, general_datum_reference));
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
of_shape : product_definition_shape;
|
|
product_definitional : LOGICAL;
|
|
DERIVE
|
|
id : identifier := get_id_value(SELF);
|
|
UNIQUE
|
|
UR1 : id, of_shape;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY shape_aspect_deriving_relationship
|
|
SUBTYPE OF (shape_aspect_relationship);
|
|
SELF\shape_aspect_relationship.relating_shape_aspect : derived_shape_aspect;
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_aspect_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, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_aspect_relationship_representation_association;
|
|
represented_shape_aspect_relationship : shape_aspect_relationship;
|
|
representing_representation_relationship : representation_relationship;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(representing_representation_relationship\representation_relationship.rep_1)) AND ('STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(representing_representation_relationship\representation_relationship.rep_2));
|
|
WR2:
|
|
(represented_shape_aspect_relationship.relating_shape_aspect IN using_shape_aspect_of_shape_representation(representing_representation_relationship.rep_1)) AND (represented_shape_aspect_relationship.related_shape_aspect IN using_shape_aspect_of_shape_representation(representing_representation_relationship.rep_2));
|
|
WR3:
|
|
(find_representative_shape_representation_of_product_definition(using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.relating_shape_aspect)).context_of_items :=: find_representative_shape_representation_of_shape_aspect(represented_shape_aspect_relationship.relating_shape_aspect).context_of_items) AND (find_representative_shape_representation_of_product_definition(using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.related_shape_aspect)).context_of_items :=: find_representative_shape_representation_of_shape_aspect(represented_shape_aspect_relationship.related_shape_aspect).context_of_items);
|
|
WR4:
|
|
using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.relating_shape_aspect) :<>: using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.related_shape_aspect);
|
|
WR5:
|
|
find_assembly_root([ using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.relating_shape_aspect) ]) :=: find_assembly_root([ using_product_definition_of_shape_aspect(represented_shape_aspect_relationship.related_shape_aspect) ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY shape_aspect_transition
|
|
SUBTYPE OF (shape_aspect_relationship);
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdr_1 <* get_shape_aspect_property_definition_representations(SELF.relating_shape_aspect)| (SIZEOF(QUERY (pdr_2 <* get_shape_aspect_property_definition_representations(SELF.related_shape_aspect)| (SIZEOF(QUERY (item_1 <* pdr_1.used_representation.items| (SIZEOF(QUERY (item_2 <* pdr_2.used_representation.items| NOT (('STEP_MERGED_CAD_SCHEMA.' + 'EDGE' IN TYPEOF(item_1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE' IN TYPEOF(item_2)) XOR ('STEP_MERGED_CAD_SCHEMA.' + 'FACE' IN TYPEOF(item_1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'FACE' IN TYPEOF(item_2))))) > 0))) > 0))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pdr_1 <* get_shape_aspect_property_definition_representations(SELF.relating_shape_aspect)| (SIZEOF(QUERY (pdr_2 <* get_shape_aspect_property_definition_representations(SELF.related_shape_aspect)| (SIZEOF(QUERY (item_1 <* pdr_1.used_representation.items| (SIZEOF(QUERY (item_2 <* pdr_2.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.' + 'EDGE' IN TYPEOF(item_1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE' IN TYPEOF(item_2))) AND NOT ((((item_1\edge.edge_start :=: item_2\edge.edge_start) OR (item_1\edge.edge_start :=: item_2\edge.edge_end)) OR (item_1\edge.edge_end :=: item_2\edge.edge_start)) OR (item_1\edge.edge_end :=: item_2\edge.edge_end)))) > 0))) > 0))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (pdr_1 <* get_shape_aspect_property_definition_representations(SELF.relating_shape_aspect)| (SIZEOF(QUERY (pdr_2 <* get_shape_aspect_property_definition_representations(SELF.related_shape_aspect)| (SIZEOF(QUERY (item_1 <* pdr_1.used_representation.items| (SIZEOF(QUERY (item_2 <* pdr_2.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.' + 'FACE' IN TYPEOF(item_1)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'FACE' IN TYPEOF(item_2))) AND (SIZEOF(QUERY (f_1 <* item_1\face.bounds| ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE_LOOP' IN TYPEOF(f_1.bound)) AND (SIZEOF(QUERY (f_2 <* item_2\face.bounds| ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE_LOOP' IN TYPEOF(f_2.bound)) AND (SIZEOF(QUERY (oe_1 <* f_1.bound\path.edge_list| (SIZEOF(QUERY (oe_2 <* f_2.bound\path.edge_list| (oe_1.edge_element :=: oe_2.edge_element))) = 0))) = 0))) = 0))) = 0))) = 0))) = 0))) = 0))) = 0;
|
|
wr4:
|
|
SELF.name IN [ 'g0', 'g1', 'g2' ];
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_criteria_representation_with_accuracy
|
|
SUBTYPE OF (shape_data_quality_criteria_representation);
|
|
required_general_accuracy : SET [1:?] OF shape_measurement_accuracy;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_assessment_by_logical_test
|
|
SUBTYPE OF (data_quality_assessment_specification);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_assessment_by_numerical_test
|
|
SUBTYPE OF (data_quality_assessment_specification);
|
|
threshold : shape_data_quality_value_limit_type_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_criteria_representation
|
|
SUBTYPE OF (data_quality_criteria_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_CRITERION' IN TYPEOF(q)))) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_criterion
|
|
SUPERTYPE OF (ONEOF(erroneous_data, inapt_data))
|
|
SUBTYPE OF (data_quality_criterion, data_quality_measurement_requirement);
|
|
assessment_specification : shape_data_quality_assessment_specification_select;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION')) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (i1 <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN TYPEOF(i1)))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (i1 <* bag_to_set(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN TYPEOF(i1)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_criterion_and_accuracy_association;
|
|
required_specific_accuracy : shape_measurement_accuracy;
|
|
shape_data_quality_criterion : shape_data_quality_criterion;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_inspected_shape_and_result_relationship
|
|
SUBTYPE OF (shape_representation_relationship);
|
|
SELF\representation_relationship.rep_1 : shape_representation;
|
|
SELF\representation_relationship.rep_2 : shape_data_quality_inspection_result_representation;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(using_product_definition_of_shape_representation(SELF.rep_1) * bag_to_set(inspected_product_definition(SELF.rep_2))) > 0;
|
|
WR2:
|
|
SELF.rep_1\representation.context_of_items :=: SELF.rep_2\representation.context_of_items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_inspection_criterion_report
|
|
SUBTYPE OF (data_quality_inspection_criterion_report);
|
|
representative_measured_value : measured_value_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_inspection_instance_report
|
|
SUBTYPE OF (data_quality_inspection_instance_report);
|
|
SELF\data_quality_inspection_instance_report.inspected_instances : LIST [1:?] OF shape_data_quality_inspection_instance_report_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_inspection_instance_report_item
|
|
SUBTYPE OF (data_quality_inspection_instance_report_item);
|
|
measured_value : measured_value_select;
|
|
SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1:?] OF inspected_shape_element_select;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_inspection_result
|
|
SUBTYPE OF (data_quality_inspection_result);
|
|
SELF\data_quality_inspection_result.criterion_inspected : shape_data_quality_criterion;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_inspection_result_representation
|
|
SUBTYPE OF (data_quality_inspection_result_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)))) > 0;
|
|
WR2:
|
|
'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items);
|
|
WR3:
|
|
SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2')) > 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_lower_value_limit
|
|
SUBTYPE OF (shape_data_quality_value_limit);
|
|
WHERE
|
|
WR1:
|
|
SELF\qualified_representation_item.qualifiers[1].name = 'minimum';
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_upper_value_limit
|
|
SUBTYPE OF (shape_data_quality_value_limit);
|
|
WHERE
|
|
WR1:
|
|
SELF\qualified_representation_item.qualifiers[1].name = 'maximum';
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_value_limit
|
|
ABSTRACT SUPERTYPE OF (ONEOF(shape_data_quality_upper_value_limit, shape_data_quality_lower_value_limit))
|
|
SUBTYPE OF (measure_representation_item, qualified_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_data_quality_value_range
|
|
SUBTYPE OF (compound_representation_item);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.SET_REPRESENTATION_ITEM' IN TYPEOF(SELF\compound_representation_item.item_element)) AND ((SIZEOF(SELF\compound_representation_item.item_element) = 2) AND ((SIZEOF(QUERY (i1 <* SELF\compound_representation_item.item_element| ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 2) OR (SIZEOF(QUERY (i2 <* SELF\compound_representation_item.item_element| ('STEP_MERGED_CAD_SCHEMA.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2)))) = 2)));
|
|
WR2:
|
|
(SIZEOF(QUERY (i <* SELF\compound_representation_item.item_element| (i.name = 'upper limit'))) = 1) AND (SIZEOF(QUERY (i <* SELF\compound_representation_item.item_element| (i.name = 'lower limit'))) = 1);
|
|
WR3:
|
|
(SIZEOF(QUERY (i1 <* SELF\compound_representation_item.item_element| ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) AND (SIZEOF(QUERY (i2 <* SELF\compound_representation_item.item_element| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i2)) AND (i1 :<>: i2)) AND (i1\measure_with_unit.unit_component :=: i2\measure_with_unit.unit_component))) = 1))) = 2) OR (SIZEOF(QUERY (i1 <* SELF\compound_representation_item.item_element| ('STEP_MERGED_CAD_SCHEMA.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i1)) AND (SIZEOF(QUERY (i2 <* SELF\compound_representation_item.item_element| (('STEP_MERGED_CAD_SCHEMA.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2)) AND (i1 :<>: i2)) AND (TYPEOF(i1\value_representation_item.value_component) = TYPEOF(i2\value_representation_item.value_component)))) = 1))) = 2);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY shape_defining_relationship
|
|
SUBTYPE OF (shape_aspect_relationship);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY shape_definition_representation
|
|
SUBTYPE OF (property_definition_representation);
|
|
SELF\property_definition_representation.definition : property_definition;
|
|
SELF\property_definition_representation.used_representation : shape_representation;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(definition)) OR ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION' IN TYPEOF(definition\property_definition.definition));
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY shape_dimension_representation
|
|
SUBTYPE OF (shape_representation);
|
|
SELF\representation.items : SET [1:?] OF shape_dimension_representation_item;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
ENTITY shape_feature_definition
|
|
SUBTYPE OF (feature_definition);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_inspection_result_accuracy_association;
|
|
applied_specific_accuracy : shape_measurement_accuracy;
|
|
shape_data_quality_result : shape_data_quality_inspection_result;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_inspection_result_representation_with_accuracy
|
|
SUBTYPE OF (shape_data_quality_inspection_result_representation);
|
|
applied_general_accuracy : SET [1:?] OF shape_measurement_accuracy;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_measurement_accuracy;
|
|
description : text;
|
|
range : shape_data_quality_value_limit_type_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_representation
|
|
SUBTYPE OF (representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY shape_representation_relationship
|
|
SUBTYPE OF (representation_relationship);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY shape_representation_with_parameters
|
|
SUBTYPE OF (shape_representation);
|
|
SELF\representation.items : SET [1:?] OF shape_representation_with_parameters_items;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY shape_summary_request_with_representative_value
|
|
SUBTYPE OF (summary_report_request);
|
|
END_ENTITY;
|
|
|
|
ENTITY shell_based_surface_model
|
|
SUBTYPE OF (geometric_representation_item);
|
|
sbsm_boundary : SET [1:?] OF shell;
|
|
WHERE
|
|
WR1:
|
|
constraints_geometry_shell_based_surface_model(SELF);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY shell_based_wireframe_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it <* SELF.items| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM', 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ] * TYPEOF(it)) = 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) >= 1;
|
|
WR3:
|
|
SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT (SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell.wire_shell_extent| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(wsb)))| NOT (SIZEOF(QUERY (el <* eloop\path.edge_list| NOT ('STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' IN TYPEOF(el.edge_element)))) = 0))) = 0))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT (SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell.wire_shell_extent| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(wsb)))| NOT (SIZEOF(QUERY (pline_el <* QUERY (el <* eloop\path.edge_list| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT (SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell.wire_shell_extent| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT (SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell.wire_shell_extent| ('STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' IN TYPEOF(wsb)))| NOT (SIZEOF(QUERY (el <* eloop\path.edge_list| NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(el.edge_element.edge_start)) AND ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(el.edge_element.edge_end))))) = 0))) = 0))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT (SIZEOF(QUERY (eloop <* QUERY (wsb <* ws\wire_shell.wire_shell_extent| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT (SIZEOF(QUERY (vloop <* QUERY (wsb <* ws\wire_shell.wire_shell_extent| ('STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' IN TYPEOF(wsb)))| NOT ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(vloop\vertex_loop.loop_vertex)))) = 0))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (ws <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.WIRE_SHELL' IN TYPEOF(sb)))| NOT (SIZEOF(QUERY (vloop <* QUERY (wsb <* ws\wire_shell.wire_shell_extent| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (vs <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.VERTEX_SHELL' IN TYPEOF(sb)))| NOT ('STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' IN TYPEOF(vs\vertex_shell.vertex_shell_extent.loop_vertex)))) = 0))) = 0;
|
|
WR11:
|
|
SIZEOF(QUERY (sbwm <* QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (vs <* QUERY (sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))| NOT ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY short_length_curve
|
|
SUBTYPE OF (nearly_degenerate_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY short_length_curve_segment
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_CURVE_SEGMENT' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY short_length_edge
|
|
SUBTYPE OF (topology_related_to_nearly_degenerate_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 (('STEP_MERGED_CAD_SCHEMA.MASS_UNIT' IN TYPEOF(SELF)) AND (SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR (prefix = si_prefix.kilo);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY simple_boolean_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(boolean_literal, boolean_variable))
|
|
SUBTYPE OF (boolean_expression, simple_generic_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP203e2
|
|
ENTITY simple_numeric_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(literal_number, numeric_variable))
|
|
SUBTYPE OF (numeric_expression, simple_generic_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY simple_pair_range;
|
|
applies_to_pair : kinematic_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY simple_string_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(string_literal, string_variable))
|
|
SUBTYPE OF (string_expression, simple_generic_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY simultaneous_constraint_group
|
|
SUBTYPE OF (variational_representation_item);
|
|
constraint_group : SET [2:?] OF constraint_group_member;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* using_representations(SELF)| (SIZEOF(QUERY (r <* q.items| ('STEP_MERGED_CAD_SCHEMA.SIMULTANEOUS_CONSTRAINT_GROUP' IN TYPEOF(r)) AND (SIZEOF(QUERY (s <* constraint_group| (s IN r\simultaneous_constraint_group.constraint_group) AND NOT (r :=: SELF))) > 0))) > 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (q <* using_representations(constraint_group[1])| (SIZEOF(QUERY (r <* constraint_group| item_in_context(r, q.context_of_items))) = SIZEOF(constraint_group)))) > 0;
|
|
WR3:
|
|
SIZEOF(QUERY (q <* constraint_group| ('STEP_MERGED_CAD_SCHEMA.EXPLICIT_CONSTRAINT' IN TYPEOF(q)) AND (SIZEOF(QUERY (r <* q.constrained_elements| (SIZEOF(QUERY (s <* constraint_group| (r IN s.reference_elements))) > 0))) > 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY sin_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY single_area_csg_2d_shape_representation
|
|
SUBTYPE OF (csg_2d_shape_representation);
|
|
SELF\representation.items : SET [1:?] OF csg_2d_area_select;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CSG_SOLID_2D' IN TYPEOF(it)))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY single_boundary_csg_2d_shape_representation
|
|
SUBTYPE OF (single_area_csg_2d_shape_representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CSG_PRIMITIVE_SOLID_2D' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF(it\csg_primitive_solid_2d.tree_root_expression)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY single_property_is_definition
|
|
SUBTYPE OF (property_definition);
|
|
SELF\property_definition.definition : product_definition;
|
|
UNIQUE
|
|
UR1 : definition;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY skew_line_distance_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
distance_value : non_negative_length_measure;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:2] OF line;
|
|
SELF\explicit_constraint.reference_elements : SET [0:1] OF line;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements) = 2;
|
|
END_ENTITY;
|
|
|
|
ENTITY slash_expression
|
|
SUBTYPE OF (binary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY sliding_curve_pair
|
|
SUBTYPE OF (planar_curve_pair);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY sliding_curve_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_point_on_curve_1 : point_on_curve;
|
|
actual_point_on_curve_2 : point_on_curve;
|
|
SELF\pair_value.applies_to_pair : sliding_curve_pair;
|
|
WHERE
|
|
WR1:
|
|
SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve;
|
|
WR2:
|
|
SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: actual_point_on_curve_2.basis_curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY sliding_surface_pair
|
|
SUBTYPE OF (surface_pair);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY sliding_surface_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_point_on_surface_1 : point_on_surface;
|
|
actual_point_on_surface_2 : point_on_surface;
|
|
actual_rotation : plane_angle_measure;
|
|
SELF\pair_value.applies_to_pair : sliding_surface_pair;
|
|
WHERE
|
|
WR1:
|
|
SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface_1.basis_surface;
|
|
WR2:
|
|
SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: actual_point_on_surface_2.basis_surface;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY slot
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'swept shape occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SQUARE_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'STEP_MERGED_CAD_SCHEMA.ROUNDED_U_PROFILE', 'STEP_MERGED_CAD_SCHEMA.VEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.TEE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.OPEN_PATH_PROFILE' ] * TYPEOF(sdr.relating_shape_aspect)) = 1))) = 1))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ((sar.name = 'course of travel') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))))| ('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT ((SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'end condition occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((sar.description = 'slot end usage') AND (sar.name IN [ 'course of travel start', 'course of travel end' ])) AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.SLOT_END' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect.description IN [ 'open', 'radiused', 'flat', 'woodruff' ])) AND ('STEP_MERGED_CAD_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)))) = 1))) = 2) OR (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'end condition occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((sar.description = 'slot end usage') AND (sar.name IN [ 'course of travel start', 'course of travel end' ])) AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.SLOT_END' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect.description IN [ 'loop' ])) AND ('STEP_MERGED_CAD_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)))) = 1))) = 1)))) = 0;
|
|
WR5:
|
|
NOT (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'end condition occurrence') AND (SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| ((sar.description = 'slot end usage') AND (sar.name IN [ 'course of travel start', 'course of travel end' ])) AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| (('STEP_MERGED_CAD_SCHEMA.SLOT_END' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect.description IN [ 'loop' ])) AND ('STEP_MERGED_CAD_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)))) = 1))) = 1))) = 0) OR (SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ((sar.name = 'course of travel') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))))| ('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description IN [ 'complex', 'complete circular' ]))) = 1))) = 1))) = 0);
|
|
WR6:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY slot_end
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'open', 'radiused', 'flat', 'woodruff', 'loop' ];
|
|
WR3:
|
|
NOT (SELF.description IN [ 'open', 'radiused', 'loop' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 0))) = 0);
|
|
WR4:
|
|
NOT (SELF.description IN [ 'flat', 'woodruff' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0);
|
|
WR5:
|
|
NOT (SELF.description IN [ 'flat' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 2))) = 0))) = 0);
|
|
WR6:
|
|
NOT (SELF.description = 'flat') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first radius'))) = 1))) = 0))) = 0);
|
|
WR7:
|
|
NOT (SELF.description = 'flat') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second radius'))) = 1))) = 0))) = 0);
|
|
WR8:
|
|
NOT (SELF.description = 'woodruff') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'radius'))) = 1))) = 0))) = 0);
|
|
WR9:
|
|
NOT (SELF.description IN [ 'woodruff' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0);
|
|
WR10:
|
|
SIZEOF(QUERY (fcr <* QUERY (sar <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ((sar.description = 'slot end usage') AND (sar.name IN [ 'course of travel start', 'course of travel end' ])) AND ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))| ((fcr.related_shape_aspect.description = 'end condition occurrence') AND ('STEP_MERGED_CAD_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('STEP_MERGED_CAD_SCHEMA.SLOT_END' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY small_area_face
|
|
SUBTYPE OF (topology_related_to_nearly_degenerate_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY small_area_surface
|
|
SUBTYPE OF (nearly_degenerate_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY small_area_surface_patch
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_PATCH' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY small_volume_solid
|
|
SUBTYPE OF (inapt_manifold_solid_brep);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.VOLUME_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.VOLUME_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VOLUME_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY smeared_material_definition
|
|
SUBTYPE OF (zone_structural_makeup);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY software_for_data_quality_check;
|
|
description : text;
|
|
software_name : text;
|
|
software_version : text;
|
|
data_quality : data_quality_definition_representation_relationship;
|
|
END_ENTITY;
|
|
|
|
ENTITY solid_angle_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_circular_protrusion
|
|
SUBTYPE OF (solid_with_protrusion);
|
|
protrusion_radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_constant_radius_edge_blend
|
|
SUBTYPE OF (edge_blended_solid);
|
|
radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_curved_slot
|
|
SUBTYPE OF (solid_with_slot);
|
|
slot_centreline : bounded_curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY solid_with_excessive_number_of_voids
|
|
SUBTYPE OF (inapt_manifold_solid_brep);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_general_pocket
|
|
SUBTYPE OF (solid_with_pocket);
|
|
profile : positioned_sketch;
|
|
reference_point : point;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ] * TYPEOF(profile.sketch_basis)) = 1;
|
|
WR2:
|
|
profile IN using_items(reference_point, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_general_protrusion
|
|
SUBTYPE OF (solid_with_protrusion);
|
|
profile : positioned_sketch;
|
|
reference_point : point;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ] * TYPEOF(profile.sketch_basis)) = 1;
|
|
WR2:
|
|
profile IN using_items(reference_point, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_hole
|
|
ABSTRACT SUPERTYPE OF (solid_with_stepped_round_hole)
|
|
SUBTYPE OF (solid_with_depression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_single_offset_chamfer
|
|
SUBTYPE OF (solid_with_chamfered_edges);
|
|
offset_distance : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 (('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 (('STEP_MERGED_CAD_SCHEMA.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF) * [ 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE', 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE' ]) <> 0));
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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:
|
|
('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_straight_slot
|
|
SUBTYPE OF (solid_with_slot);
|
|
slot_length : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_through_depression
|
|
SUBTYPE OF (solid_with_depression);
|
|
exit_faces : SET [1:?] OF face_surface;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(TYPEOF(SELF) * [ 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_HOLE', 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_POCKET', 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_SLOT' ]) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
ENTITY solid_with_variable_radius_edge_blend
|
|
SUBTYPE OF (track_blended_solid);
|
|
point_list : LIST [2:?] OF point;
|
|
radius_list : LIST [2:?] OF positive_length_measure;
|
|
edge_function_list : LIST [1:?] OF blend_radius_variation_type;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(point_list) = SIZEOF(radius_list);
|
|
WR2:
|
|
SIZEOF(edge_function_list) = SIZEOF(radius_list) - 1;
|
|
WR3:
|
|
NOT ((point_list[1] = point_list[HIINDEX(point_list)]) AND NOT (radius_list[1] = radius_list[HIINDEX(radius_list)]));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY solid_with_wrong_number_of_voids
|
|
SUBTYPE OF (erroneous_manifold_solid_brep);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BREP_WITH_VOIDS' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY sourced_requirement
|
|
SUBTYPE OF (group_assignment);
|
|
items : SET [1:1] OF product_definition;
|
|
SELF\group_assignment.assigned_group : requirement_source;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY specification_definition
|
|
SUBTYPE OF (product_definition);
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')| (pdr.relating_product_definition :=: next_usage.relating_product_definition))) = 1);
|
|
WR5:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.NEXT_ASSEMBLY_USAGE_OCCURRENCE', 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
ENTITY spherical_cap
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 3))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'internal angle'))) = 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY spherical_pair
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY spherical_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : spherical_pair;
|
|
lower_limit_yaw : rotational_range_measure;
|
|
upper_limit_yaw : rotational_range_measure;
|
|
lower_limit_pitch : rotational_range_measure;
|
|
upper_limit_pitch : rotational_range_measure;
|
|
lower_limit_roll : rotational_range_measure;
|
|
upper_limit_roll : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_yaw)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_yaw))) XOR (lower_limit_yaw < upper_limit_yaw);
|
|
wr2:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_pitch)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_pitch))) XOR (lower_limit_pitch < upper_limit_pitch);
|
|
wr3:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_roll)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_roll))) XOR (lower_limit_roll < upper_limit_roll);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY spherical_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
input_orientation : spatial_rotation;
|
|
SELF\pair_value.applies_to_pair : spherical_pair_select;
|
|
DERIVE
|
|
actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, input_orientation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY spherical_pair_with_pin
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY spherical_pair_with_pin_and_range
|
|
SUBTYPE OF (spherical_pair_with_pin);
|
|
lower_limit_yaw : OPTIONAL plane_angle_measure;
|
|
upper_limit_yaw : OPTIONAL plane_angle_measure;
|
|
lower_limit_roll : OPTIONAL plane_angle_measure;
|
|
upper_limit_roll : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw);
|
|
WR2:
|
|
(NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY spherical_pair_with_range
|
|
SUBTYPE OF (spherical_pair);
|
|
lower_limit_yaw : OPTIONAL plane_angle_measure;
|
|
upper_limit_yaw : OPTIONAL plane_angle_measure;
|
|
lower_limit_pitch : OPTIONAL plane_angle_measure;
|
|
upper_limit_pitch : OPTIONAL plane_angle_measure;
|
|
lower_limit_roll : OPTIONAL plane_angle_measure;
|
|
upper_limit_roll : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw);
|
|
WR2:
|
|
(NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch);
|
|
WR3:
|
|
(NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll);
|
|
END_ENTITY;
|
|
|
|
ENTITY spherical_surface
|
|
SUBTYPE OF (elementary_surface);
|
|
radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
-- CASE DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY SQL_mappable_defined_function
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (defined_function);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY square_root_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY square_u_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 4) AND (SIZEOF(impl_rep.used_representation.items) <= 7))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (((((((srwp_i.name = 'orientation') OR (srwp_i.name = 'width')) OR (srwp_i.name = 'first angle')) OR (srwp_i.name = 'second angle')) OR (srwp_i.name = 'first radius')) OR (srwp_i.name = 'second radius')) OR (srwp_i.name = 'profile limit')) OR (srwp_i.name = 'depth'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first radius'))) <= 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second radius'))) <= 1))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first angle'))) = 1))) = 0))) = 0;
|
|
WR10:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second angle'))) = 1))) = 0))) = 0;
|
|
WR11:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'depth'))) <= 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
ENTITY standard_uncertainty
|
|
SUPERTYPE OF (expanded_uncertainty)
|
|
SUBTYPE OF (uncertainty_qualifier);
|
|
uncertainty_value : REAL;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY start_request
|
|
SUBTYPE OF (action_request_assignment);
|
|
items : SET [1:?] OF start_request_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY start_work
|
|
SUBTYPE OF (action_assignment);
|
|
items : SET [1:?] OF work_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY steep_angle_between_adjacent_edges
|
|
SUBTYPE OF (steep_geometry_transition_across_edge);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY steep_angle_between_adjacent_faces
|
|
SUBTYPE OF (steep_geometry_transition_across_edge);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY steep_geometry_transition_across_edge
|
|
ABSTRACT SUPERTYPE OF (ONEOF(steep_angle_between_adjacent_edges, steep_angle_between_adjacent_faces))
|
|
SUBTYPE OF (inapt_topology_and_geometry_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY step
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'path feature component usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'removal boundary occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'profile usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.VEE_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pds <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY (csa <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (('STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut volume')) AND (SIZEOF(QUERY (sar <* csa.component_relationships| ('STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.BOSS', 'STEP_MERGED_CAD_SCHEMA.PROTRUSION' ] * TYPEOF(sar.related_shape_aspect)) = 1))) = 1))) <= 1))) = 1;
|
|
END_ENTITY;
|
|
|
|
ENTITY straightness_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY string_defined_function
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (defined_function, string_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY string_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(simple_string_expression, index_expression, substring_expression, concat_expression, format_function, string_defined_function))
|
|
SUBTYPE OF (expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY string_literal
|
|
SUBTYPE OF (simple_string_expression, generic_literal);
|
|
the_value : STRING;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY string_variable
|
|
SUBTYPE OF (simple_string_expression, variable);
|
|
END_ENTITY;
|
|
|
|
ENTITY structured_dimension_callout
|
|
SUBTYPE OF (draughting_callout);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(TYPEOF(SELF) * [ 'STEP_MERGED_CAD_SCHEMA.DATUM_FEATURE_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.DATUM_TARGET_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.GEOMETRICAL_TOLERANCE_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.LEADER_DIRECTED_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.PROJECTION_DIRECTED_CALLOUT', 'STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE_DIRECTED_CALLOUT' ]) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (ato <* QUERY (con <* SELF.contents| ('STEP_MERGED_CAD_SCHEMA.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| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)))| (ato.name = 'dimension value'))) >= 1;
|
|
WR4:
|
|
SIZEOF(QUERY (dcr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'prefix'))) <= 1;
|
|
WR5:
|
|
SIZEOF(QUERY (dcr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'suffix'))) <= 1;
|
|
WR6:
|
|
NOT (SIZEOF(QUERY (ato <* QUERY (con <* SELF.contents| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)))| (ato.name = 'prefix text'))) > 0) OR (SIZEOF(QUERY (dcr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'prefix'))) = 1);
|
|
WR7:
|
|
NOT (SIZEOF(QUERY (ato <* QUERY (con <* SELF.contents| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)))| (ato.name = 'suffix text'))) > 0) OR (SIZEOF(QUERY (dcr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'suffix'))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY structured_text_composition
|
|
SUBTYPE OF (compound_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY structured_text_representation
|
|
SUBTYPE OF (representation);
|
|
SELF\representation.items : SET [1:?] OF string_representation_item_select;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY styled_item
|
|
SUBTYPE OF (representation_item);
|
|
styles : SET [1:?] OF presentation_style_assignment;
|
|
item : styled_item_target;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF.styles) = 1) XOR (SIZEOF(QUERY (pres_style <* SELF.styles| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(pres_style)))) = 0);
|
|
WR2:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(item));
|
|
WR3:
|
|
(('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(item)) OR ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item))) OR ('STEP_MERGED_CAD_SCHEMA.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF(SELF));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY su_parameters
|
|
SUBTYPE OF (geometric_representation_item);
|
|
a : length_measure;
|
|
alpha : plane_angle_measure;
|
|
b : length_measure;
|
|
beta : plane_angle_measure;
|
|
c : length_measure;
|
|
gamma : plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
SELF\geometric_representation_item.dim = 3;
|
|
END_ENTITY;
|
|
|
|
ENTITY subedge
|
|
SUBTYPE OF (edge);
|
|
parent_edge : edge;
|
|
END_ENTITY;
|
|
|
|
ENTITY subface
|
|
SUBTYPE OF (face);
|
|
parent_face : face;
|
|
WHERE
|
|
WR1:
|
|
NOT mixed_loop_type_set((list_to_set(list_face_loops(SELF)) + list_to_set(list_face_loops(parent_face))));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY subsketch
|
|
SUBTYPE OF (geometric_representation_item);
|
|
subsketch_elements : SET [1:?] OF sketch_element_select;
|
|
owning_sketch : sketch_type_select;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF(owning_sketch)) AND (SIZEOF(QUERY (q <* subsketch_elements| NOT (owning_sketch IN using_representations(q)))) = 0) XOR (SIZEOF(TYPEOF(owning_sketch) * [ 'STEP_MERGED_CAD_SCHEMA.POSITIONED_SKETCH', 'STEP_MERGED_CAD_SCHEMA.SUBSKETCH' ]) = 1) AND (SIZEOF(QUERY (q <* subsketch_elements| NOT (owning_sketch IN using_items(q, [])))) = 0);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY substring_expression
|
|
SUBTYPE OF (string_expression, multiple_arity_generic_expression);
|
|
DERIVE
|
|
index1 : generic_expression := SELF\multiple_arity_generic_expression.operands[2];
|
|
index2 : generic_expression := SELF\multiple_arity_generic_expression.operands[3];
|
|
operand : generic_expression := SELF\multiple_arity_generic_expression.operands[1];
|
|
WHERE
|
|
WR1:
|
|
(('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(operand)) AND ('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(index1))) AND ('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(index2));
|
|
WR2:
|
|
SIZEOF(SELF\multiple_arity_generic_expression.operands) = 3;
|
|
WR3:
|
|
is_int_expr(index1);
|
|
WR4:
|
|
is_int_expr(index2);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY summary_report_request
|
|
SUBTYPE OF (data_quality_report_request);
|
|
summary_report_request_type : summary_report_type;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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([ ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_CURVE_OCCURRENCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_SYMBOL_OCCURRENCE'), ('STEP_MERGED_CAD_SCHEMA.' + '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:
|
|
('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(associated_geometry[1])) OR (master_representation <> pcurve_s1);
|
|
WR3:
|
|
('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(associated_geometry[2])) OR (master_representation <> pcurve_s2);
|
|
WR4:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(directrix)) OR (reference_surface IN directrix\surface_curve.basis_surface);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY surface_distance_assembly_constraint_with_dimension
|
|
SUBTYPE OF (binary_assembly_constraint, sdgc_with_dimension);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY surface_distance_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
near_points : SET [0:4] OF near_point_relationship;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:2] OF surface;
|
|
SELF\explicit_constraint.reference_elements : SET [0:4] OF point_curve_or_surface_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR ('STEP_MERGED_CAD_SCHEMA.SDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2);
|
|
WR2:
|
|
SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements);
|
|
WR3:
|
|
SIZEOF(QUERY (q <* near_points| NOT (q\representation_item_relationship.relating_representation_item IN SELF\explicit_constraint.reference_elements))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_of_linear_extrusion
|
|
SUBTYPE OF (swept_surface);
|
|
extrusion_axis : vector;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_of_revolution
|
|
SUBTYPE OF (swept_surface);
|
|
axis_position : axis1_placement;
|
|
DERIVE
|
|
axis_line : line := representation_item('') || geometric_representation_item() || curve() || line(axis_position.location, representation_item('') || geometric_representation_item() || vector(axis_position.z, 1.0));
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY surface_pair
|
|
ABSTRACT SUPERTYPE OF (ONEOF(sliding_surface_pair, rolling_surface_pair) ANDOR surface_pair_with_range)
|
|
SUBTYPE OF (high_order_kinematic_pair);
|
|
surface_1 : surface;
|
|
surface_2 : surface;
|
|
orientation : BOOLEAN;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (surface_1 IN r.items))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_2| NOT (surface_2 IN r.items))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY surface_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : surface_pair;
|
|
range_on_surface_1 : rectangular_trimmed_surface;
|
|
range_on_surface_2 : rectangular_trimmed_surface;
|
|
lower_limit_actual_rotation : rotational_range_measure;
|
|
upper_limit_actual_rotation : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
SELF\simple_pair_range.applies_to_pair\surface_pair.surface_1 :=: range_on_surface_1.basis_surface;
|
|
wr2:
|
|
SELF\simple_pair_range.applies_to_pair\surface_pair.surface_2 :=: range_on_surface_2.basis_surface;
|
|
wr3:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_actual_rotation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_actual_rotation))) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY surface_pair_with_range
|
|
SUBTYPE OF (surface_pair);
|
|
range_on_surface_1 : rectangular_trimmed_surface;
|
|
range_on_surface_2 : rectangular_trimmed_surface;
|
|
lower_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
upper_limit_actual_rotation : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface;
|
|
WR2:
|
|
SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface;
|
|
WR3:
|
|
(NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation);
|
|
WR4:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (range_on_surface_1 IN r.items))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_2| NOT (range_on_surface_2 IN r.items))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_patch
|
|
SUBTYPE OF (founded_item);
|
|
parent_surface : bounded_surface;
|
|
u_transition : transition_code;
|
|
v_transition : transition_code;
|
|
u_sense : BOOLEAN;
|
|
v_sense : BOOLEAN;
|
|
INVERSE
|
|
using_surfaces : BAG [1:?] OF rectangular_composite_surface FOR segments;
|
|
WHERE
|
|
WR1:
|
|
NOT ('STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE' IN TYPEOF(parent_surface));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY surface_patch_set
|
|
SUBTYPE OF (geometric_representation_item);
|
|
patches : SET [1:?] OF surface_patch;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_profile_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_rendering_properties;
|
|
rendered_colour : colour;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_replica
|
|
SUBTYPE OF (surface);
|
|
parent_surface : surface;
|
|
transformation : cartesian_transformation_operator_3d;
|
|
WHERE
|
|
WR1:
|
|
acyclic_surface_replica(SELF, parent_surface);
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_side_style
|
|
SUBTYPE OF (founded_item);
|
|
name : label;
|
|
styles : SET [1:7] OF surface_style_element_select;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (style1 <* SELF.styles| (SIZEOF(QUERY (style2 <* SELF.styles - style1| (TYPEOF(style1) = TYPEOF(style2)))) > 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY surface_smoothness_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
u_smoothness : transition_code;
|
|
v_smoothness : transition_code;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:1] OF surface_patch_set;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\explicit_constraint.reference_elements) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_style_boundary
|
|
SUBTYPE OF (founded_item);
|
|
style_of_boundary : curve_or_render;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_style_control_grid
|
|
SUBTYPE OF (founded_item);
|
|
style_of_control_grid : curve_or_render;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_style_fill_area
|
|
SUBTYPE OF (founded_item);
|
|
fill_area : fill_area_style;
|
|
END_ENTITY;
|
|
|
|
ENTITY surface_style_parameter_line
|
|
SUBTYPE OF (founded_item);
|
|
style_of_parameter_lines : curve_or_render;
|
|
direction_counts : SET [1:2] OF direction_count_select;
|
|
WHERE
|
|
WR1:
|
|
(HIINDEX(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) AND (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([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE'), ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM') ] * TYPEOF(i)) <> 1))) = 0;
|
|
WR2:
|
|
(SIZEOF(QUERY (i <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1) AND (SIZEOF(QUERY (i <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'measuring method'))) = 1);
|
|
WR3:
|
|
SIZEOF(QUERY (i <* SELF.items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE') ] * TYPEOF(i)) = 1))) > 0;
|
|
WR4:
|
|
((SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1')) <= 1) AND (SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2')) = 0)) AND (SIZEOF(QUERY (rr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1')| (rr.rep_2.name = 'measuring direction'))) = SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1')));
|
|
WR5:
|
|
(SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')| (SIZEOF(QUERY (gpa <* USEDIN(pdr.definition, 'STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa\general_property_association.base_definition\general_property.name = 'surface_condition'))) = 1))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY surface_with_excessive_patches_in_one_direction
|
|
SUBTYPE OF (overcomplex_geometry);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, []);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY surface_with_small_curvature_radius
|
|
SUBTYPE OF (geometry_with_local_near_degeneracy);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY surfaced_open_shell
|
|
SUBTYPE OF (open_shell);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\connected_face_set.cfs_faces| NOT ('STEP_MERGED_CAD_SCHEMA.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:
|
|
'STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(swept_area.basis_surface);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY swept_curve_surface_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF surface;
|
|
SELF\explicit_constraint.reference_elements : SET [1:1] OF swept_surface_or_solid;
|
|
END_ENTITY;
|
|
|
|
ENTITY swept_disk_solid
|
|
SUBTYPE OF (solid_model);
|
|
directrix : curve;
|
|
radius : positive_length_measure;
|
|
inner_radius : OPTIONAL positive_length_measure;
|
|
start_param : REAL;
|
|
end_param : REAL;
|
|
WHERE
|
|
WR1:
|
|
directrix.dim = 3;
|
|
WR2:
|
|
NOT EXISTS(inner_radius) OR (radius > inner_radius);
|
|
END_ENTITY;
|
|
|
|
ENTITY swept_face_solid
|
|
SUPERTYPE OF (ONEOF(extruded_face_solid, revolved_face_solid))
|
|
SUBTYPE OF (solid_model);
|
|
swept_face : face_surface;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(swept_face.face_geometry);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY swept_point_curve_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF curve;
|
|
SELF\explicit_constraint.reference_elements : SET [1:1] OF swept_face_solid;
|
|
END_ENTITY;
|
|
|
|
ENTITY swept_surface
|
|
SUPERTYPE OF (ONEOF(surface_of_linear_extrusion, surface_of_revolution))
|
|
SUBTYPE OF (surface);
|
|
swept_curve : curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY symbol
|
|
SUBTYPE OF (representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY symbol_colour;
|
|
colour_of_symbol : colour;
|
|
END_ENTITY;
|
|
|
|
ENTITY symbol_representation
|
|
SUBTYPE OF (representation);
|
|
END_ENTITY;
|
|
|
|
ENTITY symbol_representation_map
|
|
SUBTYPE OF (representation_map);
|
|
SELF\representation_map.mapped_representation : symbol_representation;
|
|
SELF\representation_map.mapping_origin : axis2_placement;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (mi <* SELF\representation_map.map_usage| NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(mi)))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY symbol_style
|
|
SUBTYPE OF (founded_item);
|
|
name : label;
|
|
style_of_symbol : symbol_style_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY symbol_target
|
|
SUBTYPE OF (geometric_representation_item);
|
|
placement : axis2_placement;
|
|
x_scale : positive_ratio_measure;
|
|
y_scale : positive_ratio_measure;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY symmetric_shape_aspect
|
|
SUBTYPE OF (shape_aspect);
|
|
INVERSE
|
|
basis_relationships : SET [1:?] OF shape_aspect_deriving_relationship FOR related_shape_aspect;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY symmetry_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
mirror_element : linear_geometry_constraint_element;
|
|
SELF\explicit_constraint.constrained_elements : SET [2:2] OF geometric_representation_item;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\explicit_constraint.reference_elements) = 0;
|
|
WR2:
|
|
SIZEOF(TYPEOF(mirror_element) * [ 'STEP_MERGED_CAD_SCHEMA.DIRECTION', 'STEP_MERGED_CAD_SCHEMA.VECTOR' ]) = 0;
|
|
WR3:
|
|
NOT ((SELF\geometric_representation_item.dim = 2) AND ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(mirror_element)));
|
|
END_ENTITY;
|
|
|
|
ENTITY symmetry_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY table_representation_item
|
|
SUBTYPE OF (compound_representation_item);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (itet <* SELF\compound_representation_item.item_element| NOT ('STEP_MERGED_CAD_SCHEMA.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet)))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY tactile_appearance_representation
|
|
SUBTYPE OF (representation);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (i <* SELF.items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE') ] * TYPEOF(i)) <> 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (i <* SELF.items| (name = 'depth'))) <= 1;
|
|
WR3:
|
|
(SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')| (SIZEOF(QUERY (gpa <* USEDIN(pdr.definition, 'STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa\general_property_association.base_definition\general_property.name = 'surface_condition'))) = 1))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY tagged_text_format
|
|
SUBTYPE OF (representation_context);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY tagged_text_item
|
|
SUBTYPE OF (descriptive_representation_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY tan_function
|
|
SUBTYPE OF (unary_function_call);
|
|
END_ENTITY;
|
|
|
|
ENTITY tangent
|
|
SUBTYPE OF (derived_shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tangent_assembly_constraint
|
|
SUBTYPE OF (binary_assembly_constraint, tangent_geometric_constraint);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tangent_geometric_constraint
|
|
SUBTYPE OF (explicit_geometric_constraint);
|
|
near_points : SET [0:?] OF near_point_relationship;
|
|
tangent_contact : tangent_contact_type;
|
|
SELF\explicit_constraint.constrained_elements : SET [1:?] OF curve_or_surface_constraint_element;
|
|
SELF\explicit_constraint.reference_elements : SET [0:?] OF curve_or_surface_constraint_element;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2);
|
|
WR2:
|
|
NOT ((SELF\geometric_representation_item.dim = 2) AND (tangent_contact = surface_contact));
|
|
WR3:
|
|
SIZEOF(QUERY (q <* near_points| NOT (q\representation_item_relationship.relating_representation_item IN SELF\explicit_constraint.reference_elements))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY taper
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SELF.description IN [ 'angle taper', 'diameter taper', 'directed taper' ];
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 1))) = 0))) = 0;
|
|
WR5:
|
|
NOT (SELF.description = 'angle taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'taper angle'))) = 1))) = 0))) = 0);
|
|
WR6:
|
|
NOT (SELF.description = 'diameter taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'final diameter'))) = 1))) = 0))) = 0);
|
|
WR7:
|
|
NOT (SELF.description = 'directed taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'angle'))) = 1))) = 0))) = 0);
|
|
WR8:
|
|
NOT (SELF.description = 'directed taper') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'direction'))) = 1))) = 0);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY tee_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 9) AND (SIZEOF(impl_rep.used_representation.items) <= 10))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (((((((((srwp_i.name = 'orientation') OR (srwp_i.name = 'width')) OR (srwp_i.name = 'depth')) OR (srwp_i.name = 'cross bar width')) OR (srwp_i.name = 'cross bar depth')) OR (srwp_i.name = 'first offset')) OR (srwp_i.name = 'second offset')) OR (srwp_i.name = 'first angle')) OR (srwp_i.name = 'second angle')) OR (srwp_i.name = 'radius'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'depth'))) = 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'cross bar width'))) = 1))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'cross bar depth'))) = 1))) = 0))) = 0;
|
|
WR10:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first offset'))) = 1))) = 0))) = 0;
|
|
WR11:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second offset'))) = 1))) = 0))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'first angle'))) = 1))) = 0))) = 0;
|
|
WR13:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'second angle'))) = 1))) = 0))) = 0;
|
|
WR14:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0;
|
|
WR15:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY terminator_symbol
|
|
SUBTYPE OF (annotation_symbol_occurrence);
|
|
annotated_curve : annotation_curve_occurrence;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_annotation_occurrence
|
|
SUBTYPE OF (annotation_occurrence);
|
|
SELF\styled_item.item : tessellated_geometric_set;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_connecting_edge
|
|
SUBTYPE OF (tessellated_edge);
|
|
smooth : LOGICAL;
|
|
face1 : tessellated_face;
|
|
face2 : tessellated_face;
|
|
line_strip_face1 : LIST [2:?] OF INTEGER;
|
|
line_strip_face2 : LIST [2:?] OF INTEGER;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(line_strip_face1) = SIZEOF(line_strip_face2);
|
|
WR2:
|
|
SIZEOF(line_strip_face1) = SIZEOF(SELF\tessellated_edge.line_strip);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_curve_set
|
|
SUBTYPE OF (tessellated_item);
|
|
coordinates : coordinates_list;
|
|
line_strips : LIST [1:?] OF LIST [2:?] OF INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_edge
|
|
SUBTYPE OF (tessellated_structured_item);
|
|
coordinates : coordinates_list;
|
|
geometric_link : OPTIONAL edge_or_curve;
|
|
line_strip : LIST [2:?] OF INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_face
|
|
ABSTRACT SUPERTYPE OF (ONEOF(triangulated_face, complex_triangulated_face))
|
|
SUBTYPE OF (tessellated_structured_item);
|
|
coordinates : coordinates_list;
|
|
pnmax : INTEGER;
|
|
normals : LIST [0:?] OF LIST [3:3] OF REAL;
|
|
geometric_link : OPTIONAL face_or_surface;
|
|
WHERE
|
|
WR1:
|
|
((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1)) OR (SIZEOF(normals) = pnmax);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_geometric_set
|
|
SUBTYPE OF (tessellated_item);
|
|
children : SET [1:?] OF tessellated_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_item
|
|
ABSTRACT SUPERTYPE OF (ONEOF(coordinates_list, tessellated_solid, tessellated_shell, tessellated_wire, tessellated_geometric_set, tessellated_curve_set, tessellated_point_set, tessellated_surface_set, tessellated_structured_item))
|
|
SUBTYPE OF (geometric_representation_item);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (using_rep <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF(using_rep)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_point_set
|
|
SUBTYPE OF (tessellated_item);
|
|
coordinates : coordinates_list;
|
|
point_list : LIST [1:?] OF INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_shape_representation
|
|
SUBTYPE OF (shape_representation);
|
|
SELF\representation.items : SET [1:?] OF tessellated_item;
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF\representation.context_of_items);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_shell
|
|
SUBTYPE OF (tessellated_item);
|
|
items : SET [1:?] OF tessellated_structured_item;
|
|
topological_link : OPTIONAL connected_face_set;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_solid
|
|
SUBTYPE OF (tessellated_item);
|
|
items : SET [1:?] OF tessellated_structured_item;
|
|
geometric_link : OPTIONAL manifold_solid_brep;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_structured_item
|
|
SUPERTYPE OF (ONEOF(tessellated_face, tessellated_edge, tessellated_vertex))
|
|
SUBTYPE OF (tessellated_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_surface_set
|
|
ABSTRACT SUPERTYPE OF (ONEOF(triangulated_surface_set, complex_triangulated_surface_set))
|
|
SUBTYPE OF (tessellated_item);
|
|
coordinates : coordinates_list;
|
|
pnmax : INTEGER;
|
|
normals : LIST [0:?] OF LIST [3:3] OF REAL;
|
|
WHERE
|
|
WR1:
|
|
((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1)) OR (SIZEOF(normals) = pnmax);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_vertex
|
|
SUBTYPE OF (tessellated_structured_item);
|
|
coordinates : coordinates_list;
|
|
topological_link : OPTIONAL vertex_point;
|
|
point_index : INTEGER;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY tessellated_wire
|
|
SUBTYPE OF (tessellated_item);
|
|
items : SET [1:?] OF tessellated_edge_or_vertex;
|
|
geometric_model_link : OPTIONAL path_or_composite_curve;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY text_font;
|
|
id : identifier;
|
|
name : label;
|
|
description : text;
|
|
INVERSE
|
|
glyphs : SET [1:?] OF character_glyph_font_usage FOR font;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY text_font_family;
|
|
id : identifier;
|
|
name : label;
|
|
description : text;
|
|
INVERSE
|
|
fonts : SET [1:?] OF text_font_in_family FOR family;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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([ 'STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL', 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT', 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_CHARACTER', 'STEP_MERGED_CAD_SCHEMA.DEFINED_CHARACTER_GLYPH', 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_TEXT' ] * TYPEOF(item)) = 0))) >= 1;
|
|
WR2:
|
|
SIZEOF(QUERY (a2p <* QUERY (item <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT' IN TYPEOF(item)))| NOT ((SIZEOF(QUERY (at <* QUERY (item <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_TEXT' IN TYPEOF(item)))| (at\mapped_item.mapping_target :=: a2p))) >= 1) OR (SIZEOF(QUERY (atc <* QUERY (item <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP242
|
|
ENTITY thermal_component
|
|
SUBTYPE OF (assembly_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY thermal_resistance_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.THERMAL_RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY thickened_face_solid
|
|
SUBTYPE OF (solid_model);
|
|
base_element : generalized_surface_select;
|
|
offset1 : length_measure;
|
|
offset2 : length_measure;
|
|
WHERE
|
|
WR1:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(base_element)) AND NOT ('STEP_MERGED_CAD_SCHEMA.BOUNDED_SURFACE' IN TYPEOF(base_element)));
|
|
WR2:
|
|
offset1 <> offset2;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2
|
|
ENTITY thickness_laminate_definition
|
|
SUBTYPE OF (product_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr)))) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY thickness_laminate_table
|
|
SUBTYPE OF (zone_structural_makeup);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY thread
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (8 <= SIZEOF(pdr.used_representation.items))) AND (SIZEOF(pdr.used_representation.items) <= 11))) = 1))) = 1;
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'major diameter'))) = 1))) = 0))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'minor diameter'))) <= 1))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'pitch diameter'))) <= 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'number of threads'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class'))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'form'))) = 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'hand')) AND (it.description IN [ 'left', 'right' ]))) = 1))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'qualifier'))) <= 1))) = 0))) = 0;
|
|
WR10:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'thread side')) AND ((it.description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0;
|
|
WR11:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'crest'))) <= 1))) = 0))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'partial area occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'applied area usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
WR13:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
WR14:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class 2'))) <= 1))) = 0))) = 0;
|
|
WR15:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'nominal size'))) <= 1))) = 0))) = 0;
|
|
WR16:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'thread runout') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'thread runout usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.THREAD_RUNOUT' IN TYPEOF(sdr.relating_shape_aspect)))) <= 1))) = 1))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY thread_runout
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) = 3))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| NOT (srwp_i.name IN [ 'length of runout', 'pitch or dimension', 'included or extra' ]))) > 0))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'length of runout'))) = 1))) = 0))) <= 1;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pitch or dimension')) AND (it.description IN [ 'pitch', 'pitch or dimension' ]))) = 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'included or extra')) AND (it.description IN [ 'included', 'extra' ]))) = 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
ENTITY time_interval;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
ENTITY time_interval_assignment
|
|
ABSTRACT SUPERTYPE;
|
|
assigned_time_interval : time_interval;
|
|
role : time_interval_role;
|
|
END_ENTITY;
|
|
|
|
ENTITY time_interval_based_effectivity
|
|
SUBTYPE OF (effectivity);
|
|
effectivity_period : time_interval;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY tolerance_zone
|
|
SUBTYPE OF (shape_aspect);
|
|
defining_tolerance : SET [1:?] OF tolerance_zone_target;
|
|
form : tolerance_zone_form;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY tolerance_zone_definition
|
|
SUPERTYPE OF (ONEOF(projected_zone_definition, non_uniform_zone_definition, runout_zone_definition));
|
|
zone : tolerance_zone;
|
|
boundaries : SET [0:?] OF shape_aspect;
|
|
END_ENTITY;
|
|
|
|
ENTITY tolerance_zone_form;
|
|
name : label;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY topology_related_to_multiply_defined_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(multiply_defined_faces, multiply_defined_vertices, multiply_defined_edges))
|
|
SUBTYPE OF (inapt_topology_and_geometry_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY topology_related_to_nearly_degenerate_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(short_length_edge, small_area_face, entirely_narrow_face))
|
|
SUBTYPE OF (inapt_topology_and_geometry_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY topology_related_to_overlapping_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_faces, partly_overlapping_edges))
|
|
SUBTYPE OF (inapt_topology_and_geometry_relationship);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY topology_related_to_self_intersecting_geometry
|
|
ABSTRACT SUPERTYPE OF (ONEOF(self_intersecting_loop, self_intersecting_shell, intersecting_connected_face_sets))
|
|
SUBTYPE OF (inapt_topology_and_geometry_relationship);
|
|
END_ENTITY;
|
|
|
|
ENTITY toroidal_surface
|
|
SUBTYPE OF (elementary_surface);
|
|
major_radius : positive_length_measure;
|
|
minor_radius : positive_length_measure;
|
|
END_ENTITY;
|
|
|
|
ENTITY torus
|
|
SUBTYPE OF (geometric_representation_item);
|
|
position : axis1_placement;
|
|
major_radius : positive_length_measure;
|
|
minor_radius : positive_length_measure;
|
|
WHERE
|
|
WR1:
|
|
major_radius > minor_radius;
|
|
END_ENTITY;
|
|
|
|
ENTITY total_runout_tolerance
|
|
SUBTYPE OF (geometric_tolerance_with_datum_reference);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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) * [ 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND', 'STEP_MERGED_CAD_SCHEMA.SOLID_WITH_CHAMFERED_EDGES' ]) = 1;
|
|
WR2:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX' IN TYPEOF(end_conditions[1])) AND ('STEP_MERGED_CAD_SCHEMA.VERTEX' IN TYPEOF(end_conditions[2])));
|
|
WR3:
|
|
NOT (('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY transition_feature
|
|
SUPERTYPE OF (ONEOF(chamfer, edge_round, fillet))
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION', 'STEP_MERGED_CAD_SCHEMA.COMPOUND_FEATURE' ] * TYPEOF(SELF.of_shape.definition)) = 1;
|
|
WR2:
|
|
SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CHAMFER', 'STEP_MERGED_CAD_SCHEMA.EDGE_ROUND', 'STEP_MERGED_CAD_SCHEMA.FILLET' ] * TYPEOF(SELF)) = 1;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY triangulated_face
|
|
SUBTYPE OF (tessellated_face);
|
|
pnindex : LIST [0:?] OF INTEGER;
|
|
triangles : LIST [1:?] OF LIST [3:3] OF INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax);
|
|
WR2:
|
|
NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY triangulated_surface_set
|
|
SUBTYPE OF (tessellated_surface_set);
|
|
pnindex : LIST [0:?] OF INTEGER;
|
|
triangles : LIST [1:?] OF LIST [3:3] OF INTEGER;
|
|
WHERE
|
|
WR1:
|
|
(SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax);
|
|
WR2:
|
|
NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints));
|
|
END_ENTITY;
|
|
|
|
ENTITY trimmed_curve
|
|
SUBTYPE OF (bounded_curve);
|
|
basis_curve : curve;
|
|
trim_1 : SET [1:2] OF trimming_select;
|
|
trim_2 : SET [1:2] OF trimming_select;
|
|
sense_agreement : BOOLEAN;
|
|
master_representation : trimming_preference;
|
|
WHERE
|
|
WR1:
|
|
(HIINDEX(trim_1) = 1) OR (TYPEOF(trim_1[1]) <> TYPEOF(trim_1[2]));
|
|
WR2:
|
|
(HIINDEX(trim_2) = 1) OR (TYPEOF(trim_2[1]) <> TYPEOF(trim_2[2]));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY turned_knurl
|
|
SUBTYPE OF (feature_definition);
|
|
WHERE
|
|
WR1:
|
|
SELF\characterized_object.description IN [ 'diamond', 'diagonal', 'straight' ];
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((6 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 9)))) = 1))) = 1;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of teeth'))) <= 1))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'major diameter'))) = 1))) = 0))) = 0;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'nominal diameter'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tooth depth'))) <= 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'root fillet'))) <= 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'diametral pitch'))) = 1))) = 0))) = 0;
|
|
WR9:
|
|
NOT (SELF\characterized_object.description IN [ 'diamond', 'diagonal' ]) OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'helix angle'))) = 1))) = 0))) = 0);
|
|
WR10:
|
|
NOT (SELF\characterized_object.description = 'diagonal') OR (SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'helix hand'))) = 1))) = 0))) = 0);
|
|
WR11:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (sa_occ.description = 'partial area occurrence') AND (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'applied area usage') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa_occ <* USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')| (SIZEOF(QUERY (sdr <* QUERY (sar <* USEDIN(sa_occ, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (sar.description = 'applied shape') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))| ('STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0;
|
|
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;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY unary_boolean_expression
|
|
ABSTRACT SUPERTYPE OF (ONEOF(not_expression, odd_function))
|
|
SUBTYPE OF (boolean_expression, unary_generic_expression);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY unary_function_call
|
|
ABSTRACT SUPERTYPE OF (ONEOF(abs_function, minus_function, sin_function, cos_function, tan_function, asin_function, acos_function, exp_function, log_function, log2_function, log10_function, square_root_function))
|
|
SUBTYPE OF (unary_numeric_expression);
|
|
END_ENTITY;
|
|
|
|
ENTITY unary_generic_expression
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (generic_expression);
|
|
operand : generic_expression;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
ENTITY unary_numeric_expression
|
|
ABSTRACT SUPERTYPE
|
|
SUBTYPE OF (numeric_expression, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand : numeric_expression;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY unbound_parameter_environment
|
|
SUBTYPE OF (environment);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(SELF\environment.syntactic_representation)) AND ('STEP_MERGED_CAD_SCHEMA.UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN TYPEOF(SELF\environment.semantics));
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY unbound_variational_parameter
|
|
SUBTYPE OF (variational_parameter);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.UNBOUND_PARAMETER_ENVIRONMENT' IN TYPEOF(SELF\generic_variable.interpretation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY unbound_variational_parameter_semantics
|
|
SUBTYPE OF (variable_semantics);
|
|
END_ENTITY;
|
|
|
|
ENTITY uncertainty_assigned_representation
|
|
SUBTYPE OF (representation);
|
|
uncertainty : SET [1:?] OF uncertainty_measure_with_unit;
|
|
END_ENTITY;
|
|
|
|
ENTITY uncertainty_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
WHERE
|
|
WR1:
|
|
valid_measure_value(SELF\measure_with_unit.value_component);
|
|
END_ENTITY;
|
|
|
|
ENTITY uncertainty_qualifier
|
|
SUPERTYPE OF (ONEOF(standard_uncertainty, qualitative_uncertainty));
|
|
measure_name : label;
|
|
description : text;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY unconstrained_pair
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY unconstrained_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
actual_placement : axis2_placement_3d;
|
|
SELF\pair_value.applies_to_pair : unconstrained_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY unequally_disposed_geometric_tolerance
|
|
SUBTYPE OF (geometric_tolerance);
|
|
displacement : length_measure_with_unit;
|
|
WHERE
|
|
WR1:
|
|
('NUMBER' IN TYPEOF(SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component)) AND (SELF\geometric_tolerance_with_defined_unit.unit_size\measure_with_unit.value_component > 0.0);
|
|
END_ENTITY;
|
|
|
|
ENTITY uniform_curve
|
|
SUBTYPE OF (b_spline_curve);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY uniform_product_space
|
|
SUBTYPE OF (maths_space, generic_literal);
|
|
base : maths_space;
|
|
exponent : positive_integer;
|
|
WHERE
|
|
WR1:
|
|
expression_is_constant(base);
|
|
WR2:
|
|
no_cyclic_space_reference(SELF, []);
|
|
WR3:
|
|
base <> the_empty_space;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY uniform_resource_identifier
|
|
SUBTYPE OF (descriptive_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY uniform_surface
|
|
SUBTYPE OF (b_spline_surface);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY universal_pair
|
|
SUBTYPE OF (low_order_kinematic_pair);
|
|
input_skew_angle : OPTIONAL plane_angle_measure;
|
|
DERIVE
|
|
SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE;
|
|
SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE;
|
|
skew_angle : plane_angle_measure := NVL(input_skew_angle, 0.0);
|
|
SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE;
|
|
SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE;
|
|
WHERE
|
|
WR1:
|
|
cos(plane_angle_for_pair_in_radian(SELF, skew_angle)) > 0.0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214
|
|
ENTITY universal_pair_range
|
|
SUBTYPE OF (simple_pair_range);
|
|
SELF\simple_pair_range.applies_to_pair : universal_pair;
|
|
lower_limit_first_rotation : rotational_range_measure;
|
|
upper_limit_first_rotation : rotational_range_measure;
|
|
lower_limit_second_rotation : rotational_range_measure;
|
|
upper_limit_second_rotation : rotational_range_measure;
|
|
WHERE
|
|
wr1:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_first_rotation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_first_rotation))) XOR (lower_limit_first_rotation < upper_limit_first_rotation);
|
|
wr2:
|
|
(('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(lower_limit_second_rotation)) OR ('STEP_MERGED_CAD_SCHEMA.UNLIMITED_RANGE' IN TYPEOF(upper_limit_second_rotation))) XOR (lower_limit_second_rotation < upper_limit_second_rotation);
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
ENTITY universal_pair_value
|
|
SUBTYPE OF (pair_value);
|
|
first_rotation_angle : plane_angle_measure;
|
|
second_rotation_angle : plane_angle_measure;
|
|
SELF\pair_value.applies_to_pair : universal_pair;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY universal_pair_with_range
|
|
SUBTYPE OF (universal_pair);
|
|
lower_limit_first_rotation : OPTIONAL plane_angle_measure;
|
|
upper_limit_first_rotation : OPTIONAL plane_angle_measure;
|
|
lower_limit_second_rotation : OPTIONAL plane_angle_measure;
|
|
upper_limit_second_rotation : OPTIONAL plane_angle_measure;
|
|
WHERE
|
|
WR1:
|
|
(NOT EXISTS(lower_limit_first_rotation) OR NOT EXISTS(upper_limit_first_rotation)) XOR (lower_limit_first_rotation < upper_limit_first_rotation);
|
|
WR2:
|
|
(NOT EXISTS(lower_limit_second_rotation) OR NOT EXISTS(upper_limit_second_rotation)) XOR (lower_limit_second_rotation < upper_limit_second_rotation);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY unused_patches
|
|
SUBTYPE OF (overcomplex_topology_and_geometry_relationship);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_STRIP' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY unused_shape_element
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY user_defined_curve_font
|
|
SUBTYPE OF (curve_style_font, mapped_item);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY user_defined_marker
|
|
SUBTYPE OF (mapped_item, pre_defined_marker);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY user_defined_terminator_symbol
|
|
SUBTYPE OF (mapped_item, pre_defined_symbol);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY user_selected_elements
|
|
SUBTYPE OF (representation_item);
|
|
picked_items : SET [1:?] OF representation_item;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
ENTITY user_selected_shape_elements
|
|
SUBTYPE OF (user_selected_elements);
|
|
SELF\user_selected_elements.picked_items : SET [1:?] OF shape_representation_item;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY value_format_type_qualifier;
|
|
format_type : value_format_type;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY value_function
|
|
SUPERTYPE OF (int_value_function)
|
|
SUBTYPE OF (numeric_expression, unary_generic_expression);
|
|
SELF\unary_generic_expression.operand : string_expression;
|
|
END_ENTITY;
|
|
|
|
ENTITY value_range
|
|
SUBTYPE OF (compound_representation_item);
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + '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 ('STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(rep.context_of_items)))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY variable
|
|
ABSTRACT SUPERTYPE OF (ONEOF(numeric_variable, boolean_variable, string_variable))
|
|
SUBTYPE OF (generic_variable);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY variable_expression
|
|
SUBTYPE OF (variable_semantics);
|
|
property_associated : property_variable_rep_select;
|
|
END_ENTITY;
|
|
|
|
ENTITY variable_semantics
|
|
ABSTRACT SUPERTYPE;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY variational_current_representation_relationship
|
|
SUBTYPE OF (representation_relationship);
|
|
current_result : representation;
|
|
SELF\representation_relationship.rep_1 : variational_representation;
|
|
UNIQUE
|
|
UR1 : current_result;
|
|
WHERE
|
|
WR1:
|
|
QUERY (q <* SELF\representation_relationship.rep_1.items| NOT ('STEP_MERGED_CAD_SCHEMA.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q))) = SELF\representation_relationship.rep_2.items;
|
|
WR2:
|
|
SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.context_of_items;
|
|
WR3:
|
|
SIZEOF(QUERY (q <* SELF\representation_relationship.rep_2.items| ('STEP_MERGED_CAD_SCHEMA.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q)))) = 0;
|
|
WR4:
|
|
TYPEOF(SELF\representation_relationship.rep_1) - TYPEOF(SELF\representation_relationship.rep_2) = [ 'STEP_MERGED_CAD_SCHEMA.VARIATIONAL_REPRESENTATION' ];
|
|
WR5:
|
|
current_result :=: SELF\representation_relationship.rep_2;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY variational_parameter
|
|
ABSTRACT SUPERTYPE OF (ONEOF(bound_variational_parameter, unbound_variational_parameter))
|
|
SUBTYPE OF (variational_representation_item, maths_variable);
|
|
parameter_description : OPTIONAL text;
|
|
parameter_current_value : maths_value;
|
|
WHERE
|
|
WR1:
|
|
member_of(parameter_current_value, SELF\maths_variable.values_space);
|
|
WR2:
|
|
SELF\maths_variable.name = SELF\representation_item.name;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY variational_representation
|
|
SUBTYPE OF (representation);
|
|
INVERSE
|
|
cm_link : variational_current_representation_relationship FOR rep_1;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q)))) > 0;
|
|
WR2:
|
|
SIZEOF(QUERY (q <* SELF\representation.items - cm_link.rep_2.items| invalidate_vrep_item(q))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY variational_representation_item
|
|
ABSTRACT SUPERTYPE OF (auxiliary_geometric_representation_item)
|
|
SUBTYPE OF (representation_item);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (q <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
ENTITY vector_style
|
|
SUBTYPE OF (curve_style, pre_defined_terminator_symbol);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY vee_profile
|
|
SUBTYPE OF (shape_aspect);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition);
|
|
WR2:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(impl_rep.used_representation.items) >= 3) AND (SIZEOF(impl_rep.used_representation.items) <= 6))) = 0))) = 0;
|
|
WR4:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (srwp_i <* pdr.used_representation.items| (((((srwp_i.name = 'orientation') OR (srwp_i.name = 'profile angle')) OR (srwp_i.name = 'tilt angle')) OR (srwp_i.name = 'profile radius')) OR (srwp_i.name = 'first length')) OR (srwp_i.name = 'second length'))) = SIZEOF(pdr.used_representation.items)))) = 1))) = 1;
|
|
WR5:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0;
|
|
WR6:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'profile radius'))) <= 1))) = 0))) = 0;
|
|
WR7:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'profile angle'))) = 1))) = 0))) = 0;
|
|
WR8:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF(it)) = 2) AND (it.name = 'tilt angle'))) = 1))) = 0))) = 0;
|
|
WR9:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0;
|
|
WR10:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'first length'))) <= 1))) = 0))) = 0;
|
|
WR11:
|
|
SIZEOF(QUERY (pd <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| (('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'second length'))) <= 1))) = 0))) = 0;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY velocity_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.VELOCITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY versioned_action_request;
|
|
id : identifier;
|
|
version : OPTIONAL label;
|
|
purpose : text;
|
|
description : OPTIONAL text;
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY versioned_action_request_relationship;
|
|
id : identifier;
|
|
name : label;
|
|
description : OPTIONAL text;
|
|
relating_versioned_action_request : versioned_action_request;
|
|
related_versioned_action_request : versioned_action_request;
|
|
END_ENTITY;
|
|
|
|
ENTITY vertex
|
|
SUBTYPE OF (topological_representation_item);
|
|
END_ENTITY;
|
|
|
|
ENTITY vertex_loop
|
|
SUBTYPE OF (loop);
|
|
loop_vertex : vertex;
|
|
END_ENTITY;
|
|
|
|
ENTITY vertex_point
|
|
SUBTYPE OF (vertex, geometric_representation_item);
|
|
vertex_geometry : point;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY vertex_shell
|
|
SUBTYPE OF (topological_representation_item);
|
|
vertex_shell_extent : vertex_loop;
|
|
END_ENTITY;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
ENTITY view_volume
|
|
SUBTYPE OF (founded_item);
|
|
projection_type : central_or_parallel;
|
|
projection_point : cartesian_point;
|
|
view_plane_distance : length_measure;
|
|
front_plane_distance : length_measure;
|
|
front_plane_clipping : BOOLEAN;
|
|
back_plane_distance : length_measure;
|
|
back_plane_clipping : BOOLEAN;
|
|
view_volume_sides_clipping : BOOLEAN;
|
|
view_window : planar_box;
|
|
INVERSE
|
|
camera_usages : SET [1:?] OF camera_model_d3 FOR perspective_of_volume;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\view_volume.view_window.placement)) OR (dot_product(representation_item(' ') || geometric_representation_item() || direction([ 0.0, 0.0, 1.0 ]), SELF.view_window\planar_box.placement\axis2_placement_3d.p[3]) = 1.0);
|
|
WR2:
|
|
view_plane_distance = view_window.placement\placement.location.coordinates[3];
|
|
END_ENTITY;
|
|
|
|
ENTITY visual_appearance_representation
|
|
SUBTYPE OF (representation);
|
|
WHERE
|
|
WR1:
|
|
((3 <= SIZEOF(SELF.items)) AND (SIZEOF(SELF.items) <= 9)) AND (SIZEOF(QUERY (i <* items| ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN [ 'colour id', 'colour name', 'lustre', 'pattern', 'transparency', 'orientation' ]))) + SIZEOF(QUERY (i <* items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE') ] * TYPEOF(i)) = 1) AND (i.name IN [ 'refraction index', 'opacity' ]))) + SIZEOF(QUERY (i <* items| ('STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')| (SIZEOF(QUERY (gpa <* USEDIN(pdr.definition, 'STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa\general_property_association.base_definition\general_property.name = 'surface_condition'))) = 1))) = 1);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY volume
|
|
SUBTYPE OF (geometric_representation_item);
|
|
WHERE
|
|
WR1:
|
|
SELF\geometric_representation_item.dim = 3;
|
|
END_ENTITY;
|
|
|
|
ENTITY volume_measure_with_unit
|
|
SUBTYPE OF (measure_with_unit);
|
|
WHERE
|
|
WR1:
|
|
'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
ENTITY wrong_element_name
|
|
SUBTYPE OF (externally_conditioned_data_quality_criterion);
|
|
WHERE
|
|
WR1:
|
|
validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY wrongly_oriented_void
|
|
SUBTYPE OF (erroneous_manifold_solid_brep);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BREP_WITH_VOIDS' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY wrongly_placed_loop
|
|
SUBTYPE OF (erroneous_topology_and_geometry_relationship);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_BOUND' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY wrongly_placed_void
|
|
SUBTYPE OF (erroneous_manifold_solid_brep);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test;
|
|
WHERE
|
|
WR1:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE');
|
|
WR2:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BREP_WITH_VOIDS' ]);
|
|
WR3:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' ]);
|
|
WR4:
|
|
validate_accuracy_types(SELF, []);
|
|
END_ENTITY;
|
|
|
|
-- IN AP214/AP242
|
|
ENTITY xor_expression
|
|
SUBTYPE OF (binary_boolean_expression);
|
|
SELF\binary_generic_expression.operands : LIST [2:2] OF boolean_expression;
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
ENTITY year_month
|
|
SUBTYPE OF (date);
|
|
month_component : month_in_year_number;
|
|
END_ENTITY;
|
|
|
|
-- IN AP242
|
|
ENTITY zero_surface_normal
|
|
SUBTYPE OF (geometry_with_local_irregularity);
|
|
SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test;
|
|
WHERE
|
|
WR1:
|
|
('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN value_limit_type(SELF\shape_data_quality_criterion.assessment_specification\shape_data_quality_assessment_by_numerical_test.threshold));
|
|
WR2:
|
|
validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE');
|
|
WR3:
|
|
validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]);
|
|
WR4:
|
|
validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]);
|
|
WR5:
|
|
validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]);
|
|
END_ENTITY;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'alternative solution'))) = 1);
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdf <* solution_versions| (SIZEOF(QUERY (pd <* USEDIN(pdf, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.APPLICATION_PROTOCOL_DEFINITION.APPLICATION')| (apd.application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering'))) > 0))) > 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE approval_person_organization_requires_date_time FOR (approval_person_organization );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (apo <* approval_person_organization| (SIZEOF(QUERY (u <* USEDIN(apo, 'STEP_MERGED_CAD_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS')| (u.role.name = 'sign off'))) + SIZEOF(QUERY (u <* USEDIN(apo, 'STEP_MERGED_CAD_SCHEMA.APPLIED_DATE_AND_TIME_ASSIGNMENT.ITEMS')| (u.role.name = 'sign off'))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE approval_requires_approval_assignment FOR (approval );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* approval| (SIZEOF(USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.APPROVAL_ASSIGNMENT.ASSIGNED_APPROVAL')) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'functionality'))) = 1) AND (SIZEOF(QUERY (pd <* USEDIN(pdf, 'STEP_MERGED_CAD_SCHEMA.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, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'conceptual design'))) = 1) AND (SIZEOF(QUERY (pd <* USEDIN(pdf, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION.FORMATION')| (pd.frame_of_reference.name = 'conceptual definition'))) < 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE chamfer_offset_requires_faces FOR (chamfer_offset, property_definition_representation );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (co <* chamfer_offset| NOT (1 = SIZEOF(QUERY (pdr <* property_definition_representation| ((pdr\property_definition_representation.definition\property_definition.definition = co) AND ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) AND ((pdr\property_definition_representation.definition\property_definition.definition.description = 'first offset') AND (pdr.used_representation.name = 'first face shape') OR (pdr\property_definition_representation.definition\property_definition.definition.description = 'second offset') AND (pdr.used_representation.name = 'second face shape'))))))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE chamfer_requires_faces FOR (chamfer, property_definition_representation );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (cf <* chamfer| NOT (1 = SIZEOF(QUERY (pdr <* property_definition_representation| ((pdr\property_definition_representation.definition\property_definition.definition = cf) AND ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) AND (pdr.used_representation.name = 'chamfer face')))))) = 0;
|
|
END_RULE;
|
|
|
|
RULE compatible_dimension FOR (cartesian_point, direction, 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;
|
|
|
|
-- IN AP214
|
|
RULE complex_product_requires_product_definition FOR (product_definition, product_definition_formation, product_related_product_category );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdf <* product_definition_formation| ((SIZEOF(QUERY (prpc <* USEDIN(pdf.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'functionality'))) = 1) AND (SIZEOF(QUERY (pd <* USEDIN(pdf, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION.FORMATION')| (pd.frame_of_reference.name = 'functional definition'))) <> 1) OR (SIZEOF(QUERY (prpc <* USEDIN(pdf.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'conceptual design'))) = 1) AND (SIZEOF(QUERY (pd <* USEDIN(pdf, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION.FORMATION')| (pd.frame_of_reference.name = 'conceptual definition'))) <> 1)) OR (SIZEOF(QUERY (prpc <* USEDIN(pdf.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'alternative solution'))) = 1) AND (SIZEOF(QUERY (pd <* USEDIN(pdf, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION.FORMATION')| (pd.frame_of_reference.name = 'alternative definition'))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
RULE component_class_for_assembly_select FOR (composite_assembly_sequence_definition, next_assembly_usage_occurrence, product_related_product_category );
|
|
LOCAL
|
|
i : INTEGER := 0;
|
|
j : INTEGER := 0;
|
|
k : INTEGER := 0;
|
|
dkuhr : LOGICAL := TRUE;
|
|
nnauo : INTEGER := 0;
|
|
nprpc : INTEGER := 0;
|
|
rp : product;
|
|
END_LOCAL;
|
|
REPEAT i := LOINDEX(composite_assembly_sequence_definition) TO HIINDEX(composite_assembly_sequence_definition);
|
|
nnauo := 0;
|
|
REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence);
|
|
IF composite_assembly_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition THEN
|
|
rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product;
|
|
nprpc := 0;
|
|
REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category);
|
|
IF (rp IN product_related_product_category[k].products) AND (product_related_product_category[k].name IN [ 'ply', 'ply laminate', 'filament laminate', 'processed core', 'composite assembly' ]) THEN
|
|
nprpc := nprpc + 1;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF nprpc = 1 THEN
|
|
nnauo := nnauo + 1;
|
|
ELSE
|
|
dkuhr := FALSE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF dkuhr = FALSE THEN
|
|
ESCAPE;
|
|
END_IF;
|
|
IF nnauo = 0 THEN
|
|
dkuhr := FALSE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1:
|
|
dkuhr;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE compound_features_of_equal_type FOR (compound_feature, shape_aspect_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (sar <* shape_aspect_relationship| ((sar.name = 'compound feature ordering') AND (SIZEOF(QUERY (fcr <* USEDIN(sar.relating_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(fcr)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(fcr.relating_shape_aspect))) AND (fcr.relating_shape_aspect.name IN [ 'compound feature in solid', 'compound feature in panel' ]))) = 0)) AND (SIZEOF(QUERY (fcr <* USEDIN(sar.related_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (('STEP_MERGED_CAD_SCHEMA.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(fcr)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF(fcr.relating_shape_aspect))) AND (fcr.relating_shape_aspect.name IN [ 'compound feature in solid', 'compound feature in panel' ]))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
RULE consistent_uncertainty FOR (global_uncertainty_assigned_context, qualified_representation_item, uncertainty_assigned_representation );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (guac <* global_uncertainty_assigned_context| (SIZEOF(QUERY (u1 <* guac.uncertainty| (SIZEOF(QUERY (u2 <* guac.uncertainty| (u2.name = u1.name))) > 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| ('STEP_MERGED_CAD_SCHEMA.' + 'UNCERTAINTY_QUALIFIER' IN TYPEOF(u1)) AND (SIZEOF(QUERY (u2 <* qri.qualifiers| ('STEP_MERGED_CAD_SCHEMA.' + 'UNCERTAINTY_QUALIFIER' IN TYPEOF(u2)) AND (u2\uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'requirement'))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE coordinated_assembly_and_shape FOR (next_assembly_usage_occurrence );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (nauo <* next_assembly_usage_occurrence| NOT assembly_shape_is_defined(nauo))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE curve_font_usage FOR (curve_style_font, externally_defined_curve_font, pre_defined_curve_font );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (csf <* curve_style_font| (SIZEOF(USEDIN(csf, 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE.CURVE_FONT')) = 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pdcf <* pre_defined_curve_font| (SIZEOF(USEDIN(pdcf, 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE.CURVE_FONT')) = 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (edcf <* externally_defined_curve_font| NOT (SIZEOF(USEDIN(edcf, 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE.CURVE_FONT')) >= 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_action_directive FOR (action_directive );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* action_directive| NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_action_resource_type FOR (action_resource_type );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* action_resource_type| NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_approval_role FOR (approval_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* approval_role| NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_attribute_value_role FOR (attribute_value_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* attribute_value_role| NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_classification_role FOR (classification_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (c <* classification_role| NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_colour_rgb FOR (colour_rgb );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (c <* colour_rgb| NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_contract_type FOR (contract_type );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (c <* contract_type| NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_curve_style FOR (curve_style );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (c <* curve_style| NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_date FOR (date );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (d <* date| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_date_and_time FOR (date_and_time );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (d <* date_and_time| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_date_role FOR (date_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (d <* date_role| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_date_time_role FOR (date_time_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (d <* date_time_role| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_derived_unit FOR (derived_unit );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (d <* derived_unit| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_dimensional_size FOR (dimensional_size );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (d <* dimensional_size| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_document_usage_role FOR (document_usage_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (d <* document_usage_role| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_effectivity_context_role FOR (effectivity_context_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (e <* effectivity_context_role| NOT (SIZEOF(USEDIN(e, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_event_occurrence_role FOR (event_occurrence_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (e <* event_occurrence_role| NOT (SIZEOF(USEDIN(e, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_externally_defined_symbol FOR (externally_defined_symbol );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (e <* externally_defined_symbol| NOT (SIZEOF(USEDIN(e, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_fill_area_style FOR (fill_area_style );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (f <* fill_area_style| NOT (SIZEOF(USEDIN(f, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_fill_area_style_colour FOR (fill_area_style_colour );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (f <* fill_area_style_colour| NOT (SIZEOF(USEDIN(f, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_identification_role FOR (identification_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (i <* identification_role| NOT (SIZEOF(USEDIN(i, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_measure_with_unit FOR (measure_with_unit );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (m <* measure_with_unit| NOT (SIZEOF(USEDIN(m, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_named_unit FOR (named_unit );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (n <* named_unit| NOT (SIZEOF(USEDIN(n, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_object_role FOR (object_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (o <* object_role| NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_organization_role FOR (organization_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (o <* organization_role| NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_organizational_project_role FOR (organizational_project_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (o <* organizational_project_role| NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_person_and_organization_role FOR (person_and_organization_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* person_and_organization_role| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_pre_defined_colour FOR (pre_defined_colour );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* pre_defined_colour| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_pre_defined_symbol FOR (pre_defined_symbol );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* pre_defined_symbol| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_precision_qualifier FOR (precision_qualifier );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* precision_qualifier| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_presentation_style_by_context FOR (presentation_style_by_context );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* presentation_style_by_context| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_product_definition_context_role FOR (product_definition_context_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* product_definition_context_role| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_resource_requirement_type FOR (resource_requirement_type );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (r <* resource_requirement_type| NOT (SIZEOF(USEDIN(r, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_retention FOR (retention );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (r <* retention| NOT (SIZEOF(USEDIN(r, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_standard_uncertainty FOR (standard_uncertainty );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (s <* standard_uncertainty| NOT (SIZEOF(USEDIN(s, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_symbol_colour FOR (symbol_colour );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (s <* symbol_colour| NOT (SIZEOF(USEDIN(s, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_text_style FOR (text_style );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (t <* text_style| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_text_style_for_defined_font FOR (text_style_for_defined_font );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (t <* text_style_for_defined_font| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_time_interval_role FOR (time_interval_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (t <* time_interval_role| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_tolerance_value FOR (tolerance_value );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (t <* tolerance_value| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_type_qualifier FOR (type_qualifier );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (t <* type_qualifier| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dependent_instantiable_uncertainty_qualifier FOR (uncertainty_qualifier );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (u <* uncertainty_qualifier| NOT (SIZEOF(USEDIN(u, '')) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'requirement'))) > 0) AND (SIZEOF(QUERY (pd <* USEDIN(pdf, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION.FORMATION')| (pd.frame_of_reference.name = 'design constraint definition'))) < 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE dimensionality_is_two_or_three FOR (geometric_representation_context );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (g <* geometric_representation_context| NOT ((g.coordinate_space_dimension = 2) OR (g.coordinate_space_dimension = 3)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE dimensioning_data_requires_document FOR (applied_document_reference, product_definition_context_association, role_association );
|
|
LOCAL
|
|
adr : SET OF applied_document_reference := QUERY (adr <* applied_document_reference| (adr\document_reference.assigned_document\document.kind\document_type.product_data_type = 'Standards Document') AND (((adr\document_reference.assigned_document\document.id = 'ASME Y14.41-2003') OR (adr\document_reference.assigned_document\document.id = 'ASME Y14.5M-1994')) OR (adr\document_reference.assigned_document\document.id = 'ISO 1101: 2004')));
|
|
pdca : SET OF product_definition_context_association := QUERY (pdca <* product_definition_context_association| (pdca\product_definition_context_association.role\product_definition_context_role.name = 'additional context') AND (pdca\product_definition_context_association.frame_of_reference\application_context_element.name = 'Geometric Dimensioning and Tolerancing Product Specification'));
|
|
ra : SET OF role_association := QUERY (ra <* role_association| ra\role_association.role\object_role.name = 'dimensioning standard');
|
|
ra1 : SET OF role_association := [];
|
|
pdpdca : SET OF product_definition := [];
|
|
pdadr : SET OF product_definition := [];
|
|
pass : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO HIINDEX(pdca);
|
|
pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(adr);
|
|
ra1 := bag_to_set(USEDIN(adr[i], 'STEP_MERGED_CAD_SCHEMA.ROLE_ASSOCIATION.ITEM_WITH_ROLE'));
|
|
IF ra1 * ra <> ra1 THEN
|
|
pass := FALSE;
|
|
END_IF;
|
|
REPEAT j := 1 TO HIINDEX(adr[i]\applied_document_reference.items);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(adr[i]\applied_document_reference.items[j]) THEN
|
|
pdadr := pdadr + adr[i]\applied_document_reference.items[j];
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1:
|
|
pass;
|
|
WR2:
|
|
pdpdca = pdadr;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
RULE draughting_model_items_constraint FOR (draughting_model );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (dm <* draughting_model| NOT (SIZEOF(QUERY (it1 <* dm\representation.items| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_OCCURRENCE' IN TYPEOF(it1)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' IN TYPEOF(it1)))) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (dm <* draughting_model| NOT (SIZEOF(QUERY (it1 <* dm\representation.items| ('STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT' IN TYPEOF(it1)) AND NOT ('STEP_MERGED_CAD_SCHEMA.DRAUGHTING_ELEMENTS' IN TYPEOF(it1)))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE draughting_subfigure_representation_layers FOR (draughting_subfigure_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (dsr <* draughting_subfigure_representation| NOT (SIZEOF(QUERY (item <* dsr\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_OCCURRENCE' IN TYPEOF(item)) AND (SIZEOF(USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) = 0))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE drawing_sheet_annotation_layers FOR (drawing_sheet_revision );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (dsr <* drawing_sheet_revision| NOT (SIZEOF(QUERY (ao <* QUERY (it <* dsr\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_OCCURRENCE' IN TYPEOF(it)))| NOT (SIZEOF(USEDIN(ao, 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) >= 1))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE drawing_sheet_layout_usage FOR (mapped_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (dsl <* QUERY (mi <* mapped_item| ('STEP_MERGED_CAD_SCHEMA.' + 'DRAWING_SHEET_LAYOUT' IN TYPEOF(mi.mapping_source.mapped_representation)))| NOT (SIZEOF(USEDIN(dsl, '')) = SIZEOF(QUERY (dsr <* USEDIN(dsl, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| ('STEP_MERGED_CAD_SCHEMA.' + 'DRAWING_SHEET_REVISION' IN TYPEOF(dsr))))))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE drawing_view_annotation_layers FOR (presentation_view );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pv <* presentation_view| NOT (SIZEOF(QUERY (ao <* QUERY (it <* pv\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_OCCURRENCE' IN TYPEOF(it)))| NOT (SIZEOF(USEDIN(ao, 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) >= 1))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE edge_round_requires_faces FOR (edge_round, property_definition_representation );
|
|
WHERE
|
|
WR1:
|
|
0 = SIZEOF(QUERY (er <* edge_round| NOT (1 = SIZEOF(QUERY (pdr <* property_definition_representation| ((pdr\property_definition_representation.definition\property_definition.definition = er) AND ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) AND (pdr.used_representation.name = 'edge round face'))))));
|
|
WR2:
|
|
SIZEOF(QUERY (er <* edge_round| NOT (1 = SIZEOF(QUERY (pdr <* property_definition_representation| ((pdr\property_definition_representation.definition\property_definition.definition = er) AND ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) AND (pdr.used_representation.name = 'first face shape')))))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (er <* edge_round| NOT (1 = SIZEOF(QUERY (pdr <* property_definition_representation| ((pdr\property_definition_representation.definition\property_definition.definition = er) AND ('STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) AND (pdr.used_representation.name = 'second face shape')))))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE event_occurrence_requires_event_occurrence_assignment FOR (event_occurrence, event_occurrence_assignment, relative_event_occurrence );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (eo <* event_occurrence| (((SIZEOF(USEDIN(eo, 'STEP_MERGED_CAD_SCHEMA.RELATIVE_EVENT_OCCURRENCE.BASE_EVENT')) = 0) AND (SIZEOF(USEDIN(eo, 'STEP_MERGED_CAD_SCHEMA.EVENT_OCCURRENCE_ASSIGNMENT.ASSIGNED_EVENT_OCCURRENCE')) = 0)) AND (SIZEOF(USEDIN(eo, 'STEP_MERGED_CAD_SCHEMA.DATED_EFFECTIVITY.EFFECTIVITY_START_DATE')) = 0)) AND (SIZEOF(USEDIN(eo, 'STEP_MERGED_CAD_SCHEMA.DATED_EFFECTIVITY.EFFECTIVITY_END_DATE')) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE executed_action_requires_action_status FOR (executed_action );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ea <* executed_action| (SIZEOF(USEDIN(ea, 'STEP_MERGED_CAD_SCHEMA.ACTION_STATUS.ASSIGNED_ACTION')) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214
|
|
RULE externally_defined_class_with_known_source_requirement FOR (externally_defined_class );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (edc <* externally_defined_class| ('STEP_MERGED_CAD_SCHEMA.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source)) AND (SIZEOF(QUERY (aoa <* USEDIN(edc, 'STEP_MERGED_CAD_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')| (aoa.role.name = 'class supplier'))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE fill_area_style_tile_symbol_constraint FOR (fill_area_style_tile_symbol_with_style );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (fast <* fill_area_style_tile_symbol_with_style| ('STEP_MERGED_CAD_SCHEMA.' + 'DEFINED_SYMBOL' IN TYPEOF(fast.symbol\styled_item.item)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_SYMBOL' IN TYPEOF(fast.symbol\styled_item.item\defined_symbol.definition)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE full_model_change_completeness_for_action_property FOR (action_property );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ap <* action_property| (ap.name = 'full model change') AND (SIZEOF(QUERY (apr <* USEDIN(ap, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (apr.name = 'original representation'))) = 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ap <* action_property| (ap.name = 'full model change') AND (SIZEOF(QUERY (apr <* USEDIN(ap, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (apr.name = 'replacement representation'))) = 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ap <* action_property| (SIZEOF(QUERY (apr1 <* USEDIN(ap, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (apr1.name = 'added elements') AND (SIZEOF(QUERY (apr2 <* USEDIN(ap, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (apr2.name = 'replacement representation') AND (SIZEOF(QUERY (i1 <* apr1.representation.items| (SIZEOF(QUERY (i2 <* apr2.representation.items| (i1 :=: i2))) > 0))) <> SIZEOF(apr1.representation.items)))) > 0))) > 0))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (ap <* action_property| (SIZEOF(QUERY (apr1 <* USEDIN(ap, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (apr1.name = 'deleted elements') AND (SIZEOF(QUERY (apr2 <* USEDIN(ap, 'STEP_MERGED_CAD_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (apr2.name = 'original representation') AND (SIZEOF(QUERY (i1 <* apr1.representation.items| (SIZEOF(QUERY (i2 <* apr2.representation.items| (i1 :=: i2))) > 0))) <> SIZEOF(apr1.representation.items)))) > 0))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE full_model_change_completeness_for_property_definition FOR (property_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pd <* property_definition| (pd.name = 'full model change') AND (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.name = 'original representation'))) = 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pd <* property_definition| (pd.name = 'full model change') AND (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.name = 'replacement representation'))) = 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (pd <* property_definition| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.name = 'added elements') AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (SIZEOF(QUERY (pdr1 <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr1.name = 'replacement representation') AND NOT (i IN pdr1.used_representation.items))) > 0))) > 0))) > 0))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (pd <* property_definition| (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.name = 'deleted elements') AND (SIZEOF(QUERY (i <* pdr.used_representation.items| (SIZEOF(QUERY (pdr1 <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr1.name = 'original representation') AND NOT (i IN pdr1.used_representation.items))) > 0))) > 0))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE global_length_and_angle_units_2d_or_3d FOR (global_unit_assigned_context );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (guac <* global_unit_assigned_context| (SIZEOF(guac.units) < 2))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (guac <* global_unit_assigned_context| (SIZEOF(QUERY (x <* guac.units| ('STEP_MERGED_CAD_SCHEMA.' + 'LENGTH_UNIT' IN TYPEOF(x)))) <> 1) OR (SIZEOF(QUERY (x <* guac.units| ('STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_UNIT' IN TYPEOF(x)))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE machining_feature_definition_constraints FOR (feature_definition );
|
|
LOCAL
|
|
mfds : SET OF feature_definition := [];
|
|
END_LOCAL;
|
|
mfds := QUERY (temp <* feature_definition| 'STEP_MERGED_CAD_SCHEMA.MACHINING_FEATURE_DEFINITION' IN TYPEOF(temp));
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (mfd <* mfds| NOT (SIZEOF(QUERY (pdr <* get_property_definition_representations(mfd)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) <= 1))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (mfd <* mfds| NOT (SIZEOF(QUERY (pd <* USEDIN(mfd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (impl_rep <* QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))| NOT (SIZEOF(QUERY (it <* impl_rep.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (mfd <* mfds| NOT (NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.ROUND_HOLE', 'STEP_MERGED_CAD_SCHEMA.BOSS', 'STEP_MERGED_CAD_SCHEMA.OUTSIDE_PROFILE', 'STEP_MERGED_CAD_SCHEMA.REMOVAL_VOLUME', 'STEP_MERGED_CAD_SCHEMA.FLAT_FACE', 'STEP_MERGED_CAD_SCHEMA.POCKET', 'STEP_MERGED_CAD_SCHEMA.PROTRUSION', 'STEP_MERGED_CAD_SCHEMA.RIB_TOP', 'STEP_MERGED_CAD_SCHEMA.ROUNDED_END', 'STEP_MERGED_CAD_SCHEMA.SLOT', 'STEP_MERGED_CAD_SCHEMA.STEP' ] * TYPEOF(mfds)) = 1) OR (SIZEOF(QUERY (pdr <* get_property_definition_representations(mfd)| ('STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE machining_feature_life_cycle FOR (instanced_feature );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (mf <* instanced_feature| NOT (mf.of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning'))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS')) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE person_requires_person_and_organization FOR (person );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* person| (SIZEOF(USEDIN(p, 'STEP_MERGED_CAD_SCHEMA.PERSON_AND_ORGANIZATION.THE_PERSON')) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE physical_instance_requires_product_definition FOR (product_definition, product_definition_formation, product_related_product_category );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdf <* product_definition_formation| (SIZEOF(QUERY (prpc <* USEDIN(pdf.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'physically realized product'))) > 0) AND (SIZEOF(QUERY (pd <* USEDIN(pdf, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION.FORMATION')| (pd.frame_of_reference.name = 'physical occurrence'))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE plib_class_reference_requires_version FOR (externally_defined_class );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (edc <* externally_defined_class| ('STEP_MERGED_CAD_SCHEMA.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source)) AND (SIZEOF(QUERY (aei <* USEDIN(edc, 'STEP_MERGED_CAD_SCHEMA.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS')| (aei.role.name = 'version'))) <> 1))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (edc <* externally_defined_class| ('STEP_MERGED_CAD_SCHEMA.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source)) AND (SIZEOF(QUERY (aei <* USEDIN(edc, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (aei.role.name = 'version'))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
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| 'STEP_MERGED_CAD_SCHEMA.KNOWN_SOURCE' IN TYPEOF(edc.source));
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (edgp <* known_sourced_properties| (SIZEOF(QUERY (edir <* USEDIN(edgp, 'STEP_MERGED_CAD_SCHEMA.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM')| ((edir.name = 'name scope') AND ('STEP_MERGED_CAD_SCHEMA.EXTERNALLY_DEFINED_CLASS' IN TYPEOF(edir.related_item))) AND ('STEP_MERGED_CAD_SCHEMA.KNOWN_SOURCE' IN TYPEOF(edir.related_item.source)))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
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| ('STEP_MERGED_CAD_SCHEMA.KNOWN_SOURCE' IN TYPEOF(edgp.source)) AND ('STEP_MERGED_CAD_SCHEMA.KNOWN_SOURCE' + '.NAME' = 'ISO 13584 library'));
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (edgp <* plib_properties| (SIZEOF(QUERY (edir <* USEDIN(edgp, 'STEP_MERGED_CAD_SCHEMA.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS')| (edir.role.name = 'version'))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
RULE ply_reference FOR (ply_laminate_sequence_definition, next_assembly_usage_occurrence, product_related_product_category );
|
|
LOCAL
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
k : INTEGER;
|
|
dkuhr : LOGICAL := TRUE;
|
|
nnauo : INTEGER;
|
|
nprpc : INTEGER := 0;
|
|
rp : product;
|
|
END_LOCAL;
|
|
REPEAT i := LOINDEX(ply_laminate_sequence_definition) TO HIINDEX(ply_laminate_sequence_definition);
|
|
nnauo := 0;
|
|
REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence);
|
|
IF ply_laminate_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition THEN
|
|
rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product;
|
|
nprpc := 0;
|
|
REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category);
|
|
IF (product_related_product_category[k].name = 'ply') AND (rp IN product_related_product_category[k].products) THEN
|
|
nprpc := nprpc + 1;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF nprpc = 1 THEN
|
|
nnauo := nnauo + 1;
|
|
ELSE
|
|
dkuhr := FALSE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF dkuhr = FALSE THEN
|
|
ESCAPE;
|
|
END_IF;
|
|
IF nnauo = 0 THEN
|
|
dkuhr := FALSE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1:
|
|
dkuhr;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
RULE ply_stock_material_select FOR (product_related_product_category, make_from_usage_option );
|
|
LOCAL
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
k : INTEGER;
|
|
kp : INTEGER;
|
|
dkuhr : LOGICAL;
|
|
nmfuo : INTEGER;
|
|
nprpc : INTEGER := 0;
|
|
rp : product;
|
|
END_LOCAL;
|
|
dkuhr := TRUE;
|
|
REPEAT kp := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category);
|
|
IF product_related_product_category[kp].name = 'ply' THEN
|
|
REPEAT i := LOINDEX(product_related_product_category[kp].products) TO HIINDEX(product_related_product_category[kp].products);
|
|
nmfuo := 0;
|
|
REPEAT j := LOINDEX(make_from_usage_option) TO HIINDEX(make_from_usage_option);
|
|
rp := make_from_usage_option[j].related_product_definition.formation.of_product;
|
|
IF product_related_product_category[kp].products[i] = rp THEN
|
|
REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category);
|
|
IF (rp IN product_related_product_category[k].products) AND (product_related_product_category[k].name IN [ 'isotropic material', 'filament assembly', 'discontinuous fiber assembly' ]) THEN
|
|
nprpc := nprpc + 1;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF nprpc = 1 THEN
|
|
nmfuo := nmfuo + 1;
|
|
ELSE
|
|
dkuhr := FALSE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF dkuhr = FALSE THEN
|
|
ESCAPE;
|
|
END_IF;
|
|
IF nmfuo <> 1 THEN
|
|
dkuhr := FALSE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1:
|
|
dkuhr;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE presentation_layer_assignment_constraint_2d_or_3d FOR (presentation_layer_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pla <* presentation_layer_assignment| NOT (SIZEOF(QUERY (pnt <* QUERY (item <* pla.assigned_items| ('STEP_MERGED_CAD_SCHEMA.' + 'POINT' IN TYPEOF(item)))| NOT (SIZEOF(QUERY (rep <* USEDIN(pnt, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep)))) = 0))) = 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pla <* presentation_layer_assignment| NOT (SIZEOF(QUERY (crv <* QUERY (item <* pla.assigned_items| ('STEP_MERGED_CAD_SCHEMA.' + 'CURVE' IN TYPEOF(item)))| NOT (SIZEOF(QUERY (rep <* USEDIN(crv, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep)))) = 0))) = 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (pla <* presentation_layer_assignment| NOT (SIZEOF(QUERY (srf <* QUERY (item <* pla.assigned_items| ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE' IN TYPEOF(item)))| NOT (SIZEOF(QUERY (rep <* USEDIN(srf, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION' IN TYPEOF(rep)))) = 0))) = 0))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (pla <* presentation_layer_assignment| NOT (SIZEOF(QUERY (ao <* QUERY (item <* pla.assigned_items| ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_OCCURRENCE' IN TYPEOF(item)))| NOT (SIZEOF(QUERY (ur <* using_representations(ao)| NOT (SIZEOF(TYPEOF(ur) * [ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_MODEL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_AREA'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_VIEW') ]) = 1))) = 0))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE presentation_view_presented_once FOR (presentation_view );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pv <* presentation_view| (SIZEOF(QUERY (rm <* USEDIN(pv, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION')| (SIZEOF(USEDIN(rm, 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE')) <> 1) OR (SIZEOF(QUERY (mi <* USEDIN(rm, 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE')| (SIZEOF(USEDIN(mi, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')) <> 1) OR (SIZEOF(QUERY (r <* USEDIN(mi, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_AREA' IN TYPEOF(r)))) <> 0))) <> 0))) <> 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
RULE product_concept_feature_requires_category FOR (product_concept_feature );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pcf <* product_concept_feature| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE'), ('STEP_MERGED_CAD_SCHEMA.' + 'CONDITIONAL_CONCEPT_FEATURE') ] * TYPEOF(pcf)) = 0) AND (SIZEOF(QUERY (aga <* USEDIN(pcf, 'STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS')| (aga\group_assignment.role\object_role.name = 'specification category member') AND ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(aga.assigned_group)))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS')) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE product_requires_category FOR (product, product_related_product_category );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* product| (SIZEOF(USEDIN(p, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE product_requires_id_owner FOR (product );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (prod <* product| (SIZEOF(QUERY (prpc <* USEDIN(prod, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name IN [ 'part', 'tool', 'raw material' ]))) > 0) AND (SIZEOF(QUERY (apoa <* USEDIN(prod, 'STEP_MERGED_CAD_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS')| (apoa\person_and_organization_assignment.role.name = 'id owner'))) + SIZEOF(QUERY (oa <* USEDIN(prod, 'STEP_MERGED_CAD_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')| (oa\organization_assignment.role.name = 'id owner'))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE product_requires_version FOR (product );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (prod <* product| (SIZEOF(USEDIN(prod, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_FORMATION.OF_PRODUCT')) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_action_resource_requirement_for_process_operation FOR (action, action_resource_requirement );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* action| (a.name = 'process operation') AND (SIZEOF(QUERY (arr <* USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.ACTION_RESOURCE_REQUIREMENT.OPERATIONS')| (arr.name = 'reference tool'))) > 1))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (arr <* action_resource_requirement| ((arr.name = 'reference tool') AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'REQUIREMENT_FOR_ACTION_RESOURCE' IN TYPEOF(arr))) AND (SIZEOF(QUERY (ar <* arr\requirement_for_action_resource.resources| ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RESOURCE' IN TYPEOF(ar)))) <> 1))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (arr <* action_resource_requirement| (arr.name <> 'reference tool') AND (arr.name <> 'non reference tool'))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')| (aoa.role.name = 'supplier'))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_applied_action_assignment FOR (applied_action_assignment, object_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (aaa <* applied_action_assignment| (aaa.role.description = 'activity element') AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'EXECUTED_ACTION' IN TYPEOF(aaa.assigned_action)))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (aaa <* applied_action_assignment| (aaa.role.description = 'activity element') AND NOT item_correlation(aaa.items, [ 'ACTION', 'ACTION_METHOD', 'ACTION_PROPERTY', 'ASSEMBLY_COMPONENT_USAGE_SUBSTITUTE', 'CONFIGURATION_ITEM', 'CONFIGURATION_EFFECTIVITY', 'CONFIGURED_EFFECTIVITY_ASSIGNMENT', 'DOCUMENT_FILE', 'DRAUGHTING_MODEL', 'DRAWING_REVISION', 'GENERAL_PROPERTY', 'MATERIAL_DESIGNATION', 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'PRESENTATION_AREA', 'PRODUCT', 'PRODUCT_CONCEPT', 'PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_FEATURE_ASSOCIATION', 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE', 'PRODUCT_DEFINITION', 'PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_RELATIONSHIP', 'PRODUCT_DEFINITION_SUBSTITUTE', 'PROPERTY_DEFINITION', 'RESOURCE_PROPERTY', 'SHAPE_ASPECT', 'SHAPE_REPRESENTATION' ]))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (aaa <* applied_action_assignment| (NOT EXISTS(aaa.role) OR (aaa.role.description = 'activity element')) AND (SIZEOF(QUERY (i <* aaa.items| ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(i)))) > 0))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (aaa <* applied_action_assignment| (aaa.role.name = 'deliverable element') AND ((NOT ('STEP_MERGED_CAD_SCHEMA.' + 'ELEMENT_DELIVERY' IN TYPEOF(aaa.assigned_action)) OR (SIZEOF(QUERY (i <* aaa.items| ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(i)))) > 1)) OR (SIZEOF(QUERY (i <* aaa.items| ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(i)) AND (i\action_assignment.role.description <> 'activity element'))) > 0)))) = 0;
|
|
wr5:
|
|
SIZEOF(QUERY (aaa <* applied_action_assignment| (aaa.role.name = 'retention') AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'RETENTION' IN TYPEOF(aaa.assigned_action)))) = 0;
|
|
wr6:
|
|
SIZEOF(QUERY (aaa <* applied_action_assignment| (aaa.role.name = 'retention') AND NOT item_correlation(aaa.items, [ 'ACTION', 'ACTION_DIRECTIVE', 'ACTION_PROPERTY', 'ACTION_RELATIONSHIP', 'APPLIED_ACTION_ASSIGNMENT', 'APPLIED_CLASSIFICATION_ASSIGNMENT', 'ASSEMBLY_COMPONENT_USAGE_SUBSTITUTE', 'CERTIFICATION', 'CLASS_SYSTEM', 'CONFIGURATION_EFFECTIVITY', 'CONFIGURATION_ITEM', 'CONFIGURED_EFFECTIVITY_ASSIGNMENT', 'DOCUMENT_FILE', 'DRAUGHTING_MODEL', 'DRAWING_REVISION', 'GENERAL_PROPERTY', 'MATERIAL_DESIGNATION', 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION', 'ORGANIZATIONAL_PROJECT', 'PRESENTATION_AREA', 'PRODUCT', 'PRODUCT_CONCEPT', 'PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_FEATURE_ASSOCIATION', 'PRODUCT_CONCEPT_FEATURE_CATEGORY', 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE', 'PRODUCT_DEFINITION', 'PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_RELATIONSHIP', 'PRODUCT_DEFINITION_SUBSTITUTE', 'PROPERTY_DEFINITION', 'RESOURCE_PROPERTY', 'SHAPE_REPRESENTATION', 'VERSIONED_ACTION_REQUEST' ]))) = 0;
|
|
wr7:
|
|
SIZEOF(QUERY (aaa <* applied_action_assignment| (aaa.role.name = 'test activity') AND NOT item_correlation(aaa.items, [ 'PROPERTY_DEFINITION' ]))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_applied_action_request_assignment FOR (applied_action_request_assignment, object_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (aara <* applied_action_request_assignment| (aara.role.name <> 'scope'))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_applied_classification_assignment_role FOR (applied_classification_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (aca <* applied_classification_assignment| ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS' IN TYPEOF(aca.assigned_class)) AND NOT (aca.role.name IN [ 'definitional', 'non-definitional', '' ]))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (aca <* applied_classification_assignment| (aca.role.name IN [ 'definitional', 'non-definitional', '' ]) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS' IN TYPEOF(aca.assigned_class)))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (aca <* applied_classification_assignment| ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS_SYSTEM' IN TYPEOF(aca.assigned_class)) AND (aca.role.name <> 'class system membership'))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (aca <* applied_classification_assignment| (aca.role.name = 'class system membership') AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS_SYSTEM' IN TYPEOF(aca.assigned_class)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_applied_event_occurrence_assignment FOR (applied_event_occurrence_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (eo <* applied_event_occurrence_assignment| (eo\event_occurrence_assignment.role.name = 'event context') AND (SIZEOF(eo.items) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_applied_organizational_project_assignment FOR (applied_organizational_project_assignment, object_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (aopa <* applied_organizational_project_assignment| (aopa.role.name = 'affecting project') AND NOT item_correlation(aopa.items, [ 'PRODUCT_CONCEPT' ]))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (aopa <* applied_organizational_project_assignment| (aopa.role.name = 'work program') AND NOT item_correlation(aopa.items, [ 'EXECUTED_ACTION' ]))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_approval FOR (approval, approval_date_time );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* approval| (SIZEOF(USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.APPROVAL_DATE_TIME.DATED_APPROVAL')) > 2))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (adt <* approval_date_time| NOT EXISTS(adt.role) OR NOT (adt.role.name IN [ 'actual', 'planned' ]))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (a <* approval| (SIZEOF(QUERY (adt <* USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.APPROVAL_DATE_TIME.DATED_APPROVAL')| (adt.role.name = 'actual'))) > 1))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (a <* approval| (SIZEOF(QUERY (adt <* USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.APPROVAL_DATE_TIME.DATED_APPROVAL')| (adt.role.name = 'planned'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP214
|
|
RULE restrict_camera_image_in_view FOR (camera_image, presentation_view );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ci <* camera_image| (SIZEOF(QUERY (r <* USEDIN(ci, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_VIEW' IN TYPEOF(r)))) <> 1))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pv <* presentation_view| (SIZEOF(QUERY (ri <* pv\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE' IN TYPEOF(ri)))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
RULE restrict_centre_of_mass_representation FOR (representation );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'centre of mass') AND ((SIZEOF(r.items) <> 1) OR (SIZEOF(QUERY (i <* r.items| ('STEP_MERGED_CAD_SCHEMA.' + 'POINT' IN TYPEOF(i)) AND (i.name = 'centre point'))) <> 1)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_class_system_assignment_for_approval_status FOR (applied_classification_assignment, approval_status );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* approval_status| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'class system membership'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_class_system_assignment_for_class FOR (applied_classification_assignment, class );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (c <* class| (SIZEOF(QUERY (aca <* USEDIN(c, 'STEP_MERGED_CAD_SCHEMA.CLASSIFICATION_ASSIGNMENT.ASSIGNED_CLASS')| (aca.role.name = 'class system membership') AND ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(aca)))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_class_system_assignment_for_descriptive_representation_item FOR (applied_classification_assignment, descriptive_representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* descriptive_representation_item| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'class system membership'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_class_system_assignment_for_document_type FOR (applied_classification_assignment, document_type );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* document_type| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'class system membership'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_class_system_assignment_for_security_classification_level FOR (applied_classification_assignment, security_classification_level );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* security_classification_level| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'class system membership'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + 'CONDITIONAL_OPERATOR')| (SIZEOF(QUERY (ccf <* USEDIN(cfrwc, 'STEP_MERGED_CAD_SCHEMA.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION')| NOT ('STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR')| (cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
RULE restrict_configuration_design_for_class_breakdown_association FOR (configuration_design );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (cd <* configuration_design| (cd.name = 'functionality') AND (NOT ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.PRODUCT_CLASS' IN TYPEOF(cd.configuration.item_concept)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
RULE restrict_configuration_design_for_design_constraint FOR (configuration_design );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (cd <* configuration_design| (cd.name = 'design constraint usage') AND (NOT ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(cd.design)) OR (cd.design\product_definition.frame_of_reference.name <> 'design constraint definition')))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_configuration_design_for_product_class FOR (configuration_design, product_class );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (cd <* configuration_design| (cd.name = 'functionality') AND (NOT ('STEP_MERGED_CAD_SCHEMA.' + '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 ('STEP_MERGED_CAD_SCHEMA.' + '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 ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CLASS' IN TYPEOF(cd.configuration.item_concept)))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (cd <* configuration_design| (cd.name = 'design constraint usage') AND (NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION' IN TYPEOF(cd.design)) OR (cd.design\product_definition.frame_of_reference.name <> 'design constraint definition')))) = 0;
|
|
wr5:
|
|
SIZEOF(QUERY (cd <* configuration_design| (cd.name = 'physical instance basis') AND (NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION' IN TYPEOF(cd.design)) OR (cd.design\product_definition.frame_of_reference.name <> 'physical occurrence')))) = 0;
|
|
wr6:
|
|
SIZEOF(QUERY (cd <* configuration_design| (cd.name = 'physical instance basis') AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF(cd.configuration)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_default_settings FOR (applied_document_reference, representation );
|
|
WHERE
|
|
wr1:
|
|
(SIZEOF(QUERY (r <* representation| ((r.name = 'default tolerances') AND (r.context_of_items.context_type = 'default setting')) AND (SIZEOF(r.items) <> 1))) = 0) AND (SIZEOF(QUERY (r <* representation| ((r.name = 'default tolerances') AND (r.context_of_items.context_type = 'default setting')) AND (SIZEOF(QUERY (i <* r.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'tolerance class'))) <> 1))) = 0);
|
|
wr2:
|
|
SIZEOF(QUERY (r <* representation| ((r.name = 'default tolerances') AND (r.context_of_items.context_type = 'default setting')) AND (SIZEOF(QUERY (adr <* USEDIN(r, 'STEP_MERGED_CAD_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.role.name = 'general tolerance definition'))) + SIZEOF(QUERY (rr <* USEDIN(r, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_RELATIONSHIP.REP_2')| (rr.name = 'general tolerance definition') AND ('STEP_MERGED_CAD_SCHEMA.' + 'DEFAULT_TOLERANCE_TABLE' IN TYPEOF(rr.rep_1)))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_default_thickness FOR (representation );
|
|
WHERE
|
|
wr1:
|
|
(SIZEOF(QUERY (r <* representation| ((r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting')) AND (SIZEOF(QUERY (i <* r.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0) AND (SIZEOF(QUERY (r <* representation| ((r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting')) AND (SIZEOF(QUERY (i <* r.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name <> 'parameter name'))) > 0))) = 0);
|
|
wr2:
|
|
(SIZEOF(QUERY (r <* representation| ((r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting')) AND (SIZEOF(r.items) > 2))) = 0) AND (SIZEOF(QUERY (r <* representation| ((r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting')) AND (SIZEOF(QUERY (i <* r.items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM') ] * TYPEOF(i)) <> 1))) > 0))) = 0);
|
|
wr3:
|
|
SIZEOF(QUERY (r <* representation| ((r.name = 'default thickness') AND (r.context_of_items.context_type = 'default setting')) AND (SIZEOF(QUERY (i <* r.items| ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'thickness value'))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_drawing FOR (draughting_title, drawing_revision );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(dr.areas) = 0) OR (SIZEOF(QUERY (ais <* dr.areas| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'DRAWING_SHEET_REVISION' IN TYPEOF(ais.area)))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(USEDIN(dr, 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_TITLE.ITEMS')) > 1))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(USEDIN(ais.area, 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_TITLE.ITEMS')) > 1))) > 0))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (item <* ais.area.items| (SIZEOF(TYPEOF(item) * [ ('STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'PLANAR_BOX') ]) <> 1))) > 0))) > 0))) = 0;
|
|
wr5:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (item <* ais.area.items| (SIZEOF(TYPEOF(item) * [ ('STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM') ]) = 0))) > 0))) > 0))) = 0;
|
|
wr6:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (p_b <* QUERY (item <* ais.area.items| ('STEP_MERGED_CAD_SCHEMA.' + 'PLANAR_BOX' IN TYPEOF(item)))| (SIZEOF(USEDIN(p_b, 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_SIZE.SIZE')) <> 1))) > 0))) > 0))) = 0;
|
|
wr7:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (mi <* QUERY (item <* ais.area.items| ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM' IN TYPEOF(item)))| ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_VIEW' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0))) > 0))) = 0;
|
|
wr8:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (a2p <* QUERY (item <* ais.area.items| ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT' IN TYPEOF(item)))| (SIZEOF(USEDIN(a2p, 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM.MAPPING_TARGET')) = 0))) > 0))) > 0))) = 0;
|
|
wr9:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(ais.area.context_of_items.representations_in_context) > 1))) > 0))) = 0;
|
|
wr10:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (mi <* QUERY (item <* ais.area.items| ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM' IN TYPEOF(item)))| (SIZEOF(USEDIN(mi\mapped_item.mapping_source.mapped_representation, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION')) <> 1))) > 0))) > 0))) = 0;
|
|
wr11:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (mi <* QUERY (item <* ais.area.items| ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM' IN TYPEOF(item)))| (SIZEOF(QUERY (pv_item <* mi\mapped_item.mapping_source.mapped_representation.items| (SIZEOF(TYPEOF(pv_item) * [ ('STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE'), ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT') ]) <> 1))) > 0))) > 0))) > 0))) = 0;
|
|
wr12:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (mi <* QUERY (item <* ais.area.items| ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM' IN TYPEOF(item)))| (SIZEOF(QUERY (a2p <* QUERY (pv_item <* mi\mapped_item.mapping_source.mapped_representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'AXIS2_PLACEMENT' IN TYPEOF(pv_item)))| (SIZEOF(QUERY (rm <* USEDIN(a2p, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPING_ORIGIN')| (SIZEOF(QUERY (mi <* QUERY (item <* ais.area.items| ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM' IN TYPEOF(item)))| (mi\mapped_item.mapping_source :=: rm))) > 0))) = 1))) <> 1))) > 0))) > 0))) = 0;
|
|
wr13:
|
|
SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(QUERY (mi <* QUERY (item <* ais.area.items| ('STEP_MERGED_CAD_SCHEMA.' + 'MAPPED_ITEM' IN TYPEOF(item)))| (SIZEOF(mi\mapped_item.mapping_source.mapped_representation.context_of_items.representations_in_context) <> 1))) > 0))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_effectivity_assignment_for_class_category_usage FOR (applied_effectivity_assignment, product_concept_feature_category_usage );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (aea <* applied_effectivity_assignment| (SIZEOF(QUERY (i <* aea.items| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)))) > 0) AND ((((SIZEOF(QUERY (i <* aea.items| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)))) <> SIZEOF(aea.items)) OR (SIZEOF(TYPEOF(aea.assigned_effectivity) * [ 'STEP_MERGED_CAD_SCHEMA.TIME_INTERVAL_BASED_EFFECTIVITY', 'STEP_MERGED_CAD_SCHEMA.DATED_EFFECTIVITY', 'STEP_MERGED_CAD_SCHEMA.SERIAL_NUMBERED_EFFECTIVITY', 'STEP_MERGED_CAD_SCHEMA.LOT_EFFECTIVITY', 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_EFFECTIVITY' ]) > 0)) OR (aea.assigned_effectivity.id <> 'class usage')) OR (SIZEOF(QUERY (cueca <* USEDIN(aea, 'STEP_MERGED_CAD_SCHEMA.EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT')| ('STEP_MERGED_CAD_SCHEMA.CLASS_USAGE_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(cueca)))) = 0)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_effectivity_for_effectivity_relationship FOR (effectivity_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (er <* effectivity_relationship| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'LOT_EFFECTIVITY'), ('STEP_MERGED_CAD_SCHEMA.' + 'SERIAL_NUMBERED_EFFECTIVITY'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_EFFECTIVITY') ] * TYPEOF(er.relating_effectivity)) > 0) OR (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'LOT_EFFECTIVITY'), ('STEP_MERGED_CAD_SCHEMA.' + 'SERIAL_NUMBERED_EFFECTIVITY'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_EFFECTIVITY') ] * TYPEOF(er.related_effectivity)) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_effectivity_usage FOR (configured_effectivity_assignment, effectivity );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (e <* effectivity| (((((SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'DATED_EFFECTIVITY'), ('STEP_MERGED_CAD_SCHEMA.' + 'TIME_INTERVAL_BASED_EFFECTIVITY') ] * TYPEOF(e)) = 0) AND (SIZEOF(QUERY (er <* USEDIN(e, 'STEP_MERGED_CAD_SCHEMA.EFFECTIVITY_RELATIONSHIP.RELATED_EFFECTIVITY')| (er.name = 'inheritance'))) = 0)) AND (e.id = 'configuration validity')) AND (SIZEOF(QUERY (cea <* USEDIN(e, 'STEP_MERGED_CAD_SCHEMA.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')| ('STEP_MERGED_CAD_SCHEMA.' + 'CONFIGURED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(cea)))) = 0)) AND (e.id = 'class usage')) AND (SIZEOF(QUERY (aea <* USEDIN(e, 'STEP_MERGED_CAD_SCHEMA.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')| ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(aea)) AND (SIZEOF(QUERY (i <* aea.items| ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)))) > 0))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_externally_defined_item_relationship FOR (externally_defined_item_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (edir <* externally_defined_item_relationship| (edir.name = 'name scope') AND (((NOT ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_GENERAL_PROPERTY' IN TYPEOF(edir.relating_item)) OR NOT ('STEP_MERGED_CAD_SCHEMA.' + 'KNOWN_SOURCE' IN TYPEOF(edir.relating_item.source))) OR NOT ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_CLASS' IN TYPEOF(edir.related_item))) OR NOT ('STEP_MERGED_CAD_SCHEMA.' + 'KNOWN_SOURCE' IN TYPEOF(edir.related_item.source))))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.CLASS' IN TYPEOF(gr\group_relationship.related_group)) OR NOT ('STEP_MERGED_CAD_SCHEMA.CLASS' IN TYPEOF(gr\group_relationship.relating_group))))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_group_relationship_for_general_classification_hierarchy FOR (class, group_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (gr <* group_relationship| (gr.name = 'class hierarchy') AND (NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS' IN TYPEOF(gr.related_group)) OR NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS' IN TYPEOF(gr.relating_group))))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
RULE restrict_group_relationship_for_specification_category FOR (group_relationship );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (gr <* group_relationship| (gr.name = 'specification category hierarchy') AND (NOT ('STEP_MERGED_CAD_SCHEMA.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group)) OR NOT ('STEP_MERGED_CAD_SCHEMA.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.relating_group))))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_action FOR (action );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* action| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* action| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* action| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_action_directive FOR (action_directive );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* action_directive| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'comment'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* action_directive| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'comment'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* action_directive| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_action_method FOR (action_method );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* action_method| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* action_method| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* action_method| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_action_property FOR (action_property );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* action_property| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* action_property| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* action_property| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_action_relationship FOR (action_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* action_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* action_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* action_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_alternate_product_relationship FOR (alternate_product_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* alternate_product_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'basis'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* alternate_product_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'basis'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* alternate_product_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_application_context FOR (application_context );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* application_context| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* application_context| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* application_context| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_approval_relationship FOR (approval_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* approval_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* approval_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* approval_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_assembly_component_usage_substitute FOR (assembly_component_usage_substitute );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* assembly_component_usage_substitute| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'definition'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* assembly_component_usage_substitute| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'definition'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* assembly_component_usage_substitute| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_certification FOR (certification );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* certification| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'name') AND (mlaa.attribute_name <> 'purpose'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* certification| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name') AND (ala.attribute_name <> 'purpose'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* certification| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_configuration_design FOR (configuration_design );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* configuration_design| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* configuration_design| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* configuration_design| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_configuration_item FOR (configuration_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* configuration_item| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* configuration_item| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* configuration_item| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_contract FOR (contract );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* contract| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'purpose'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* contract| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'purpose'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* contract| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_data_environment FOR (data_environment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* data_environment| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* data_environment| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* data_environment| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_date_role FOR (date_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* date_role| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* date_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* date_role| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_date_time_role FOR (date_time_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* date_time_role| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* date_time_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* date_time_role| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_descriptive_representation_item FOR (descriptive_representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* descriptive_representation_item| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* descriptive_representation_item| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* descriptive_representation_item| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_document_relationship FOR (document_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* document_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* document_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* document_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_draughting_title FOR (draughting_title );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* draughting_title| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'contents'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* draughting_title| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'contents') AND (ala.attribute_name <> 'language'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* draughting_title| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_effectivity FOR (effectivity );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* effectivity| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* effectivity| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* effectivity| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_effectivity_relationship FOR (effectivity_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* effectivity_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* effectivity_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* effectivity_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_event_occurrence FOR (event_occurrence );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* event_occurrence| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* event_occurrence| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* event_occurrence| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_external_source FOR (external_source );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* external_source| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* external_source| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* external_source| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_general_property FOR (general_property );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* general_property| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* general_property| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* general_property| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_general_property_relationship FOR (general_property_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* general_property_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* general_property_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* general_property_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_geometric_representation_item FOR (geometric_representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* geometric_representation_item| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* geometric_representation_item| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* geometric_representation_item| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_geometric_tolerance FOR (geometric_tolerance );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* geometric_tolerance| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* geometric_tolerance| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* geometric_tolerance| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_group FOR (group );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* group| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* group| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* group| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_group_relationship FOR (group_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* group_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* group_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* group_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_identification_role FOR (identification_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* identification_role| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* identification_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* identification_role| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_kinematic_pair FOR (kinematic_pair );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* kinematic_pair| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* kinematic_pair| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* kinematic_pair| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_mapped_item FOR (mapped_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* mapped_item| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* mapped_item| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* mapped_item| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_name_assignment FOR (name_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* name_assignment| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'assigned_name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* name_assignment| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'assigned_name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* name_assignment| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_organization_relationship FOR (organization_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* organization_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* organization_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* organization_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_organization_role FOR (organization_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* organization_role| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* organization_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* organization_role| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_organizational_project FOR (organizational_project );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* organizational_project| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* organizational_project| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* organizational_project| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_organizational_project_relationship FOR (organizational_project_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* organizational_project_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* organizational_project_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* organizational_project_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_pair_actuator FOR (pair_actuator );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* pair_actuator| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* pair_actuator| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* pair_actuator| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_person_and_organization_role FOR (person_and_organization_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* person_and_organization_role| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* person_and_organization_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* person_and_organization_role| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_presentation_layer_assignment FOR (presentation_layer_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* presentation_layer_assignment| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* presentation_layer_assignment| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* presentation_layer_assignment| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_process_product_association FOR (process_product_association );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* process_product_association| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* process_product_association| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* process_product_association| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product FOR (product );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_concept FOR (product_concept );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_concept| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_concept| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_concept| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_concept_feature FOR (product_concept_feature );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_concept_feature| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_concept_feature| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_concept_feature| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_concept_feature_association FOR (product_concept_feature_association );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_concept_feature_association| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_concept_feature_association| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_concept_feature_association| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_concept_relationship FOR (product_concept_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_concept_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_concept_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_concept_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_definition FOR (product_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_definition| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_definition| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_definition| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_definition_formation FOR (product_definition_formation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_definition_formation| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_definition_formation| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_definition_formation| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_definition_formation_relationship FOR (product_definition_formation_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_definition_formation_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_definition_formation_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_definition_formation_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_definition_relationship FOR (product_definition_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_definition_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_definition_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_definition_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_definition_substitute FOR (product_definition_substitute );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_definition_substitute| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_definition_substitute| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_definition_substitute| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_product_related_product_category FOR (product_related_product_category );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_related_product_category| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* product_related_product_category| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* product_related_product_category| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_property_definition FOR (property_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* property_definition| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* property_definition| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* property_definition| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_property_definition_relationship FOR (property_definition_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* property_definition_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* property_definition_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* property_definition_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_representation FOR (representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* representation| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description') AND (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* representation| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description') AND (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* representation| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_representation_relationship FOR (representation_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* representation_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* representation_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* representation_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_requirement_for_action_resource FOR (requirement_for_action_resource );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* requirement_for_action_resource| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* requirement_for_action_resource| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* requirement_for_action_resource| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_resource_property FOR (resource_property );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* resource_property| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* resource_property| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* resource_property| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_resource_requirement_type FOR (resource_requirement_type );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* resource_requirement_type| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* resource_requirement_type| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* resource_requirement_type| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_security_classification FOR (security_classification );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* security_classification| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'name') AND (mlaa.attribute_name <> 'purpose'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* security_classification| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name') AND (ala.attribute_name <> 'purpose'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* security_classification| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_shape_aspect FOR (shape_aspect );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* shape_aspect| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* shape_aspect| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* shape_aspect| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_shape_aspect_relationship FOR (shape_aspect_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* shape_aspect_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* shape_aspect_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* shape_aspect_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_styled_item FOR (styled_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* styled_item| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* styled_item| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* styled_item| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_time_interval_role FOR (time_interval_role );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* time_interval_role| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* time_interval_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* time_interval_role| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_topological_representation_item FOR (topological_representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* topological_representation_item| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* topological_representation_item| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* topological_representation_item| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_uncertainty_measure_with_unit FOR (uncertainty_measure_with_unit );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* uncertainty_measure_with_unit| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* uncertainty_measure_with_unit| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* uncertainty_measure_with_unit| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_uncertainty_qualifier FOR (uncertainty_qualifier );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* uncertainty_qualifier| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* uncertainty_qualifier| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* uncertainty_qualifier| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_versioned_action_request FOR (versioned_action_request );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* versioned_action_request| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* versioned_action_request| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* versioned_action_request| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_multi_language_for_versioned_action_request_relationship FOR (versioned_action_request_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* versioned_action_request_relationship| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ent <* versioned_action_request_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ent <* versioned_action_request_relationship| (SIZEOF(QUERY (mlaa1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (mlaa2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa1.attribute_name = mlaa2.attribute_name) AND (mlaa1.language = mlaa2.language))) > 1))) + SIZEOF(QUERY (ala1 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (SIZEOF(QUERY (ala2 <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala1.attribute_name = ala2.attribute_name) AND (ala1.language = ala2.language))) > 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_name_assignment_for_kinematic_joint FOR (kinematic_joint );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* kinematic_joint| (SIZEOF(USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_name_assignment_for_kinematic_link FOR (kinematic_link );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* kinematic_link| (SIZEOF(USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_name_assignment_for_kinematic_structure FOR (kinematic_structure );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* kinematic_structure| (SIZEOF(USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_name_for_known_source FOR (known_source );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ks <* known_source| (ks.name <> 'ISO 13584 library'))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'definition usage'))) <> 1) AND (SIZEOF(QUERY (cd <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.' + 'CONFIGURATION_DESIGN.DESIGN')| (cd.name = 'occurrence usage definition') AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF(cd.configuration)))) <> 1))) = 0;
|
|
WR3:
|
|
SIZEOF(QUERY (pd <* part_occurrences| (SIZEOF(QUERY (cd <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_USAGE' IN TYPEOF(cd)))) = 0) AND (SIZEOF(USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION.DEFINITION')| (ppd.name = 'occurrence quantity') AND (SIZEOF(QUERY (pdr <* USEDIN(ppd, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ((pdr.used_representation.name = 'quantity') AND (SIZEOF(pdr.used_representation.items) = 1)) AND (SIZEOF(QUERY (i <* pdr.used_representation.items| ('STEP_MERGED_CAD_SCHEMA.' + '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, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE')| ('STEP_MERGED_CAD_SCHEMA.' + 'SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN TYPEOF(pdor.occurrence_usage)))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name IN [ 'part', 'raw material', 'tool' ]))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_process_product_association FOR (process_product_association );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ppa <* process_product_association| NOT (ppa.name IN [ 'input', 'output', 'produced output' ]))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ppa <* process_product_association| NOT (ppa.name IN [ 'input', 'output' ]) OR (SIZEOF(QUERY (ar <* USEDIN(ppa.process, 'STEP_MERGED_CAD_SCHEMA.ACTION_RELATIONSHIP.RELATED_ACTION')| (ar.name = 'process operation occurrence'))) = 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (ppa <* process_product_association| (ppa.name <> 'produced output') OR ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION' IN TYPEOF(ppa.defined_product)) AND (SIZEOF(QUERY (prpc <* USEDIN(ppa.defined_product\product_definition.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name IN [ 'part', 'tool', 'raw material' ]))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_product_categories_for_tool_part_relationship FOR (product_definition_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'tool part relationship') AND ((SIZEOF(QUERY (prpc <* USEDIN(pdr.relating_product_definition.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'tool'))) < 1) OR (SIZEOF(QUERY (prpc <* USEDIN(pdr.related_product_definition.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'part'))) < 1)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_product_category_for_product FOR (product );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (p <* product| (SIZEOF(QUERY (prpc <* USEDIN(p, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name IN [ 'part', 'raw material', 'tool', 'document', 'functionality', 'conceptual product', 'alternative solution', 'requirement', 'physically realized product', 'tool', 'raw material' ]))) = 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (p <* product| (SIZEOF(QUERY (prpc <* USEDIN(p, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name IN [ 'part', 'raw material', 'tool', 'document', 'functionality', 'conceptual product', 'alternative solution', 'requirement', 'physically realized product' ]))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_product_definition_context_for_external_properties FOR (general_property_association, product_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pd <* product_definition| (SIZEOF(QUERY (propd <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (SIZEOF(QUERY (gpa <* USEDIN(propd, 'STEP_MERGED_CAD_SCHEMA.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)))) > 0))) > 0) AND (SIZEOF(QUERY (pdca <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION')| (pdca.frame_of_reference.name = 'external') AND (pdca.role.name = 'external'))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_product_definition_context_for_product FOR (product_definition, product_related_product_category );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pd <* product_definition| (pd.frame_of_reference.name IN [ 'part definition', 'part occurrence' ]) AND (SIZEOF(QUERY (prpc <* USEDIN(pd.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name IN [ 'part', 'raw material', 'tool' ]))) = 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pd <* product_definition| (pd.frame_of_reference.name = 'functional definition') AND (SIZEOF(QUERY (prpc <* USEDIN(pd.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'functionality'))) = 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (pd <* product_definition| (pd.frame_of_reference.name = 'conceptual definition') AND (SIZEOF(QUERY (prpc <* USEDIN(pd.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'conceptual product'))) = 0))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (pd <* product_definition| (pd.frame_of_reference.name = 'alternative definition') AND (SIZEOF(QUERY (prpc <* USEDIN(pd.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'alternative solution'))) = 0))) = 0;
|
|
wr5:
|
|
SIZEOF(QUERY (pd <* product_definition| (pd.frame_of_reference.name = 'design constraint definition') AND (SIZEOF(QUERY (prpc <* USEDIN(pd.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'requirement'))) = 0))) = 0;
|
|
wr6:
|
|
SIZEOF(QUERY (pd <* product_definition| (pd.frame_of_reference.name = 'physical occurrence') AND (SIZEOF(QUERY (prpc <* USEDIN(pd.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'physically realized product'))) = 0))) = 0;
|
|
wr7:
|
|
SIZEOF(QUERY (pd <* product_definition| (pd.frame_of_reference.name = 'physical document definition') AND (SIZEOF(QUERY (prpc <* USEDIN(pd.formation.of_product, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'document'))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_product_definition_for_mating_tree FOR (product_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pd <* product_definition| (SIZEOF(QUERY (pdca <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION')| (pdca.frame_of_reference.name = 'mating definition'))) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (pdr.name = 'mating membership'))) <> 2))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pd <* product_definition| (SIZEOF(QUERY (pdca <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION')| (pdca.frame_of_reference.name = 'mating definition'))) = 1) AND NOT ((1 <= SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (pdr.name = 'mating membership') AND (pdr.related_product_definition.frame_of_reference.name = 'part occurrence')))) AND (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (pdr.name = 'mating membership') AND (pdr.related_product_definition.frame_of_reference.name = 'part occurrence'))) <= 2)))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (pd <* product_definition| (SIZEOF(QUERY (pdca <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION')| (pdca.frame_of_reference.name = 'mating definition'))) = 1) AND (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (pdr.name = 'mating membership') AND (SIZEOF(QUERY (pdca <* USEDIN(pdr.related_product_definition, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION')| (pdca.frame_of_reference.name = 'mating definition'))) = 1))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_product_definition_substitute FOR (product_definition_substitute );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pds <* product_definition_substitute| (SIZEOF(USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS')) = 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pds <* product_definition_substitute| (pds.substitute_definition.frame_of_reference.name <> 'part occurrence'))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (pds <* product_definition_substitute| ((('STEP_MERGED_CAD_SCHEMA.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pds.context_relationship)) AND (SIZEOF(USEDIN(pds.context_relationship, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE_USAGE')) = 0)) AND ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(pds.context_relationship))) AND (pds.context_relationship.related_product_definition.frame_of_reference.name <> 'part occurrence'))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION')| (pdca.role.name = 'part definition type') AND (pdca.frame_of_reference.name = 'collection definition'))) = 0)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP214
|
|
RULE restrict_product_definitions_for_product_definition_relationship FOR (assembly_component_usage, product_definition_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'definition usage') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part occurrence')))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name IN [ 'geometrical relationship', 'definition replacement' ]) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part definition')))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (('STEP_MERGED_CAD_SCHEMA.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part definition'))) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'physical occurrence') OR (pdr.related_product_definition.frame_of_reference.name <> 'physical occurrence')))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (('STEP_MERGED_CAD_SCHEMA.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) AND (pdr.name = 'selected instance usage')) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part definition')))) = 0;
|
|
wr5:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'physical realization') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'physical occurrence')))) = 0;
|
|
wr6:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'physical occurrence usage') AND ((NOT ('STEP_MERGED_CAD_SCHEMA.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) OR (pdr.relating_product_definition.frame_of_reference.name <> 'physical occurrence')) OR (pdr.related_product_definition.frame_of_reference.name <> 'physical occurrence')))) = 0;
|
|
wr7:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'solution alternative definition') AND (NOT (pdr.relating_product_definition.frame_of_reference.name IN [ 'alternative definition', 'functional definition', 'conceptual definition' ]) OR (pdr.related_product_definition.frame_of_reference.name <> 'alternative definition')))) = 0;
|
|
wr8:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'collection membership') AND (((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part occurrence')) OR (SIZEOF(QUERY (pdca <* USEDIN(pdr.relating_product_definition, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION')| (pdca.role.name = 'part definition type') AND (pdca.frame_of_reference.name = 'collection definition'))) = 0)))) = 0;
|
|
wr9:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'design constraint association') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'design constraint definition') OR NOT (pdr.related_product_definition.frame_of_reference.name IN [ 'alternative definition', 'functional definition', 'conceptual definition' ])))) = 0;
|
|
wr10:
|
|
SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'final specification') AND ((NOT (pdr.relating_product_definition.name IN [ 'final', 'technical final', 'supplier final', 'technical supplier final' ]) OR (pdr.relating_product_definition.frame_of_reference.name <> 'alternative definition')) OR NOT (pdr.related_product_definition.frame_of_reference.name IN [ 'part definition', 'physical occurrence' ])))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_properties_of_document_file FOR (document_file );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (df <* document_file| (SIZEOF(QUERY (pd <* USEDIN(df, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'document property'))) > 1))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (df <* document_file| (SIZEOF(QUERY (rt <* df.representation_types| ('STEP_MERGED_CAD_SCHEMA.' + 'DOCUMENT_REPRESENTATION_TYPE' IN TYPEOF(rt)) AND (rt.name IN [ 'digital', 'physical' ]))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_properties_of_document_representation FOR (product_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pd <* product_definition| (pd.frame_of_reference.name IN [ 'physical document definition', 'digital document definition', 'physical model occurrence' ]) AND (SIZEOF(QUERY (pd1 <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (pd1.name = 'document property'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_representation_for_document_content_property FOR (representation, representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document content') AND ((SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ri <* representation_item| (SIZEOF(QUERY (r <* USEDIN(ri, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| (r.name = 'document content'))) > 0) AND NOT (ri.name IN [ 'detail level', 'geometry type', 'real world scale' ]))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document content') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'detail level') AND ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document content') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'geometry type') AND ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0;
|
|
wr5:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document content') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'real world scale') AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_REPRESENTATION_ITEM') ] * TYPEOF(i)) = 1))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_representation_for_document_creation_property FOR (representation, representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document creation') AND ((SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ri <* representation_item| (SIZEOF(QUERY (r <* USEDIN(ri, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| (r.name = 'document creation'))) > 0) AND NOT (ri.name IN [ 'creating interface', 'creating system', 'operating system' ]))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document creation') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'creating interface') AND ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document creation') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'creating system') AND ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) <> 1))) = 0;
|
|
wr5:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document creation') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'operating system') AND ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_representation_for_document_format_property FOR (representation, representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document format') AND ((SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ri <* representation_item| (SIZEOF(QUERY (r <* USEDIN(ri, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| (r.name = 'document format'))) > 0) AND NOT (ri.name IN [ 'character code', 'data format', 'size format' ]))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document format') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'character code') AND ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document format') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'data format') AND ('STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 1))) = 0;
|
|
wr5:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document format') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'size format') AND ('STEP_MERGED_CAD_SCHEMA.' + 'PLANAR_EXTENT' IN TYPEOF(i)))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_representation_for_document_properties FOR (property_definition, representation, representation_context );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pd <* property_definition| (pd.name = 'document property') AND (SIZEOF(QUERY (pdr <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| NOT (pdr.used_representation.name IN [ 'document content', 'document creation', 'document format', 'document size' ]))) > 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (r <* representation| (r.name IN [ 'document content', 'document creation', 'document format', 'document size' ]) AND (SIZEOF(QUERY (pdr <* USEDIN(r, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')| ('STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION' IN TYPEOF(pdr.definition)) AND (pdr.definition.name = 'document property'))) = 0))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (r <* representation| (r.name IN [ 'document content', 'document creation', 'document format', 'document size' ]) AND (r.context_of_items.context_type <> 'document parameters'))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (rc <* representation_context| (rc.context_type = 'document parameters') AND (SIZEOF(QUERY (r <* USEDIN(rc, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.CONTEXT_OF_ITEMS')| NOT (r.name IN [ 'document content', 'document creation', 'document format', 'document size' ]))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_representation_for_document_size_property FOR (representation, representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document size') AND ((SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 2)))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (ri <* representation_item| (SIZEOF(QUERY (r <* USEDIN(ri, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| (r.name = 'document size'))) > 0) AND NOT (ri.name IN [ 'file size', 'page count' ]))) = 0;
|
|
wr3:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document size') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'file size') AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_REPRESENTATION_ITEM') ] * TYPEOF(i)) = 1))) > 1))) = 0;
|
|
wr4:
|
|
SIZEOF(QUERY (r <* representation| (r.name = 'document size') AND (SIZEOF(QUERY (i <* r.items| (i.name = 'page count') AND (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_REPRESENTATION_ITEM') ] * TYPEOF(i)) = 1))) > 1))) = 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;
|
|
|
|
-- IN AP214
|
|
RULE restrict_representation_item_for_hybrid_geometric_model_3d FOR (shape_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (sr <* shape_representation| (sr.name = 'hybrid 3d shape representation') AND (SIZEOF(QUERY (i <* sr.items| NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
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 ('STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_action FOR (action );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* action| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_action_directive FOR (action_directive );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* action_directive| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_action_method FOR (action_method );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* action_method| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_applied_identification_assignment FOR (applied_identification_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* applied_identification_assignment| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_class FOR (class );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* class| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_configuration_item FOR (configuration_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* configuration_item| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_document_file FOR (document_file );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* document_file| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_draughting_model FOR (draughting_model );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* draughting_model| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_effectivity FOR (effectivity );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* effectivity| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_general_property FOR (general_property );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* general_property| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_mechanical_design_geometric_presentation_representation FOR (mechanical_design_geometric_presentation_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* mechanical_design_geometric_presentation_representation| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_presentation_area FOR (presentation_area );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* presentation_area| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_product_concept FOR (product_concept );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_concept| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_product_concept_feature FOR (product_concept_feature );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* product_concept_feature| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_version_assignment_for_shape_representation FOR (shape_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ent <* shape_representation| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_viewing_plane_usage FOR (geometric_tolerance );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (gt <* geometric_tolerance| (SIZEOF(QUERY (sar <* USEDIN(gt.toleranced_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.name = 'affected plane association'))) > 1))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (gt <* geometric_tolerance| (SIZEOF(QUERY (sar <* USEDIN(gt.toleranced_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.name = 'affected plane association') AND NOT (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'LINE_PROFILE_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PARALLELISM_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PERPENDICULARITY_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'POSITION_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'STRAIGHTNESS_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SYMMETRY_TOLERANCE') ] * TYPEOF(gt)) <> 1))) > 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE restrict_zone_boundary FOR (tolerance_zone_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (tzd <* tolerance_zone_definition| (SIZEOF(tzd.boundaries) > 2))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE retention_requires_retention_assignment FOR (retention );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (r <* retention| (SIZEOF(QUERY (aa <* USEDIN(r, 'STEP_MERGED_CAD_SCHEMA.ACTION_ASSIGNMENT.ASSIGNED_ACTION')| ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa)) AND (aa.role.name = 'retention'))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE security_classification_requires_security_classification_assignment FOR (security_classification );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (sc <* security_classification| (SIZEOF(USEDIN(sc, 'STEP_MERGED_CAD_SCHEMA.SECURITY_CLASSIFICATION_ASSIGNMENT.ASSIGNED_SECURITY_CLASSIFICATION')) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP214
|
|
RULE sheets_belong_to_one_drawing FOR (drawing_sheet_revision );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (dsr <* drawing_sheet_revision| (SIZEOF(QUERY (dsru <* USEDIN(dsr, 'STEP_MERGED_CAD_SCHEMA.AREA_IN_SET.AREA')| ('STEP_MERGED_CAD_SCHEMA.' + 'DRAWING_SHEET_REVISION_USAGE' IN TYPEOF(dsru)))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')| (prpc.name = 'alternative solution'))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2
|
|
RULE stock_material_reference FOR (percentage_ply_definition, make_from_usage_option, product_related_product_category );
|
|
LOCAL
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
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| ('STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(si.item)) AND (SIZEOF(QUERY (psa <* si.styles| (SIZEOF(QUERY (cs <* psa.styles| ('STEP_MERGED_CAD_SCHEMA.CURVE_STYLE' IN TYPEOF(cs)))) > 0))) <> 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_action FOR (action );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* action| NOT type_check_function(a, [ ('STEP_MERGED_CAD_SCHEMA.' + 'ELEMENT_DELIVERY'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXECUTED_ACTION'), ('STEP_MERGED_CAD_SCHEMA.' + 'PROCESS_PLAN'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_PROCESS'), ('STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_PROCESS'), ('STEP_MERGED_CAD_SCHEMA.' + 'RETENTION') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_characterized_object FOR (characterized_object );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (co <* characterized_object| NOT type_check_function(co, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CHARACTERIZED_CLASS'), ('STEP_MERGED_CAD_SCHEMA.' + 'DOCUMENT_FILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'FEATURE_COMPONENT_DEFINITION'), ('STEP_MERGED_CAD_SCHEMA.' + 'FEATURE_DEFINITION'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CLASS'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_IDENTIFICATION') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_classification_assignment FOR (classification_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ca <* classification_assignment| NOT type_check_function(ca, [ ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'LANGUAGE_ASSIGNMENT') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_colour FOR (colour );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (c <* colour| NOT type_check_function(c, [ ('STEP_MERGED_CAD_SCHEMA.' + 'COLOUR_SPECIFICATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_COLOUR') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_compound_representation_item FOR (compound_representation_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (cri <* compound_representation_item| NOT type_check_function(cri, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DEFAULT_TOLERANCE_TABLE_CELL'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_document_reference FOR (document_reference );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (dr <* document_reference| NOT type_check_function(dr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_DOCUMENT_REFERENCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_SPECIFICATION_REFERENCE') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_effectivity FOR (effectivity );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (e <* effectivity| NOT type_check_function(e, [ ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_EFFECTIVITY'), ('STEP_MERGED_CAD_SCHEMA.' + 'TIME_INTERVAL_BASED_EFFECTIVITY') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_effectivity_assignment FOR (effectivity_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ea <* effectivity_assignment| NOT type_check_function(ea, [ ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_EFFECTIVITY_ASSIGNMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_INEFFECTIVITY_ASSIGNMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'CONFIGURED_EFFECTIVITY_ASSIGNMENT') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_effectivity_context_assignment FOR (effectivity_context_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (eca <* effectivity_context_assignment| NOT type_check_function(eca, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS_USAGE_EFFECTIVITY_CONTEXT_ASSIGNMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_externally_defined_item FOR (externally_defined_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (edi <* externally_defined_item| NOT type_check_function(edi, [ ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_CHARACTER_GLYPH'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_CLASS'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_CURVE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_FEATURE_DEFINITION'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_GENERAL_PROPERTY'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_HATCH_STYLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_STYLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_TEXT_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_TILE_STYLE') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_feature_component_relationship FOR (feature_component_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (fcr <* feature_component_relationship| NOT type_check_function(fcr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'PATTERN_OFFSET_MEMBERSHIP'), ('STEP_MERGED_CAD_SCHEMA.' + 'PATTERN_OMIT_MEMBERSHIP') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_feature_definition FOR (feature_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (fd <* feature_definition| NOT type_check_function(fd, [ ('STEP_MERGED_CAD_SCHEMA.' + 'BARRING_HOLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'BEAD'), ('STEP_MERGED_CAD_SCHEMA.' + 'BOSS'), ('STEP_MERGED_CAD_SCHEMA.' + 'COMPOUND_FEATURE'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_FEATURE_DEFINITION'), ('STEP_MERGED_CAD_SCHEMA.' + 'FEATURE_IN_PANEL'), ('STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_FEATURE'), ('STEP_MERGED_CAD_SCHEMA.' + 'HOLE_IN_PANEL'), ('STEP_MERGED_CAD_SCHEMA.' + 'JOGGLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'LOCATOR'), ('STEP_MERGED_CAD_SCHEMA.' + 'POCKET'), ('STEP_MERGED_CAD_SCHEMA.' + 'REPLICATE_FEATURE'), ('STEP_MERGED_CAD_SCHEMA.' + 'RIB'), ('STEP_MERGED_CAD_SCHEMA.' + 'ROUND_HOLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SLOT'), ('STEP_MERGED_CAD_SCHEMA.' + 'THREAD') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_founded_item FOR (founded_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (fi <* founded_item| NOT type_check_function(fi, [ ('STEP_MERGED_CAD_SCHEMA.' + 'COMPOSITE_CURVE_SEGMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_PATCH'), ('STEP_MERGED_CAD_SCHEMA.' + 'VIEW_VOLUME') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
RULE subtype_exclusiveness_geometric_tolerance FOR (geometric_tolerance );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (gt <* geometric_tolerance| NOT type_check_function(gt, [ 'STEP_MERGED_CAD_SCHEMA.ANGULARITY_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_RUNOUT_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.COAXIALITY_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.CONCENTRICITY_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.CYLINDRICITY_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.FLATNESS_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.LINE_PROFILE_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.PARALLELISM_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.PERPENDICULARITY_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.POSITION_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.ROUNDNESS_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.STRAIGHTNESS_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.SURFACE_PROFILE_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.SYMMETRY_TOLERANCE', 'STEP_MERGED_CAD_SCHEMA.TOTAL_RUNOUT_TOLERANCE' ], 2))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_group FOR (group );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (g <* group| NOT type_check_function(g, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS'), ('STEP_MERGED_CAD_SCHEMA.' + 'CLASS_SYSTEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'LANGUAGE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY'), ('STEP_MERGED_CAD_SCHEMA.' + 'REP_ITEM_GROUP') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_group_assignment FOR (group_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ga <* group_assignment| NOT type_check_function(ga, [ ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_GROUP_ASSIGNMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_identification_assignment FOR (identification_assignment );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ia <* identification_assignment| NOT type_check_function(ia, [ ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_IDENTIFICATION_ASSIGNMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNAL_IDENTIFICATION_ASSIGNMENT') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_mapped_item FOR (mapped_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (mi <* mapped_item| NOT type_check_function(mi, [ ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_TEXT'), ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_TEXT_CHARACTER'), ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE'), ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_TEXT_ASSOCIATIVITY') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_pre_defined_item FOR (pre_defined_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdi <* pre_defined_item| NOT type_check_function(pdi, [ ('STEP_MERGED_CAD_SCHEMA.' + 'KNOWN_SOURCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_COLOUR'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_CURVE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_MARKER'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_PRESENTATION_STYLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_TEXT_FONT') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_pre_defined_symbol FOR (pre_defined_symbol );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pds <* pre_defined_symbol| NOT type_check_function(pds, [ ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_DIMENSION_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_GEOMETRICAL_TOLERANCE_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_POINT_MARKER_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_SURFACE_CONDITION_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_TERMINATOR_SYMBOL') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_presentation_area FOR (presentation_area );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pa <* presentation_area| NOT type_check_function(pa, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAWING_SHEET_REVISION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_AREA') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_presentation_representation FOR (presentation_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pr <* presentation_representation| NOT type_check_function(pr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_AREA'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_VIEW') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_property_definition FOR (property_definition );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pd <* property_definition| NOT type_check_function(pd, [ ('STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_PROPERTY_DEFINITION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MATERIAL_PROPERTY'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_SHAPE') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_property_definition_representation FOR (property_definition_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdr <* property_definition_representation| NOT type_check_function(pdr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_PROPERTY_REPRESENTATION_RELATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MATERIAL_PROPERTY_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DEFINITION_REPRESENTATION') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_replicate_feature FOR (replicate_feature );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (rf <* replicate_feature| NOT type_check_function(rf, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CIRCULAR_PATTERN'), ('STEP_MERGED_CAD_SCHEMA.' + 'FEATURE_PATTERN'), ('STEP_MERGED_CAD_SCHEMA.' + 'MODIFIED_PATTERN'), ('STEP_MERGED_CAD_SCHEMA.' + 'RECTANGULAR_PATTERN') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_representation FOR (representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (r <* representation| NOT type_check_function(r, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CONSTRUCTIVE_GEOMETRY_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'CONTACT_RATIO_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'DEFAULT_TOLERANCE_TABLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'DEFINITIONAL_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_MODEL'), ('STEP_MERGED_CAD_SCHEMA.' + 'FOUNDED_KINEMATIC_PATH'), ('STEP_MERGED_CAD_SCHEMA.' + 'HARDNESS_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_GROUND_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_LINK_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MOMENTS_OF_INERTIA_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_TEXTURE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'SYMBOL_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'TACTILE_APPEARANCE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'TEXT_STRING_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'VISUAL_APPEARANCE_REPRESENTATION') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
RULE subtype_exclusiveness_representation_item FOR (representation_item );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (cri <* representation_item| NOT type_check_function(cri, [ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.VALUE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.COMPOUND_REPRESENTATION_ITEM' ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_representation_map FOR (representation_map );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (rm <* representation_map| NOT type_check_function(rm, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_USAGE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SYMBOL_REPRESENTATION_MAP') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_representation_relationship FOR (representation_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (rr <* representation_relationship| NOT type_check_function(rr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP'), ('STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_LINK_REPRESENTATION_ASSOCIATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MOTION_LINK_RELATIONSHIP') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_representation_relationship_with_transformation FOR (representation_relationship_with_transformation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (rrwt <* representation_relationship_with_transformation| NOT type_check_function(rrwt, [ ('STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION_ASSOCIATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MECHANISM_BASE_PLACEMENT') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_shape_aspect FOR (shape_aspect );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (sa <* shape_aspect| NOT type_check_function(sa, [ ('STEP_MERGED_CAD_SCHEMA.' + 'APPLIED_AREA'), ('STEP_MERGED_CAD_SCHEMA.' + 'BEAD_END'), ('STEP_MERGED_CAD_SCHEMA.' + 'BOSS_TOP'), ('STEP_MERGED_CAD_SCHEMA.' + 'CHAMFER_OFFSET'), ('STEP_MERGED_CAD_SCHEMA.' + 'CIRCULAR_CLOSED_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'CLOSED_PATH_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'DIRECTED_ANGLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'HOLE_BOTTOM'), ('STEP_MERGED_CAD_SCHEMA.' + 'INSTANCED_FEATURE'), ('STEP_MERGED_CAD_SCHEMA.' + 'JOGGLE_TERMINATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'NGON_CLOSED_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'OPEN_PATH_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PARTIAL_CIRCULAR_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PATH_FEATURE_COMPONENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'PLACED_FEATURE'), ('STEP_MERGED_CAD_SCHEMA.' + 'POCKET_BOTTOM'), ('STEP_MERGED_CAD_SCHEMA.' + 'RECTANGULAR_CLOSED_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'ROUNDED_U_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SLOT_END'), ('STEP_MERGED_CAD_SCHEMA.' + 'SQUARE_U_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'TAPER'), ('STEP_MERGED_CAD_SCHEMA.' + 'TEE_PROFILE'), ('STEP_MERGED_CAD_SCHEMA.' + 'TOLERANCE_ZONE'), ('STEP_MERGED_CAD_SCHEMA.' + 'TRANSITION_FEATURE'), ('STEP_MERGED_CAD_SCHEMA.' + 'VEE_PROFILE') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_shape_aspect_relationship FOR (shape_aspect_relationship );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (sar <* shape_aspect_relationship| NOT type_check_function(sar, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSIONAL_LOCATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'FEATURE_COMPONENT_RELATIONSHIP'), ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_ASSOCIATIVITY'), ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_DERIVING_RELATIONSHIP'), ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_TRANSITION'), ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_shape_representation_feature_geometry FOR (shape_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (sr <* shape_representation| NOT type_check_function(sr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DIRECTION_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'FACE_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'LOCATION_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'PATH_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'PLANAR_SHAPE_REPRESENTATION') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_shape_representation_geometry FOR (shape_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (sr <* shape_representation| NOT type_check_function(sr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'ADVANCED_BREP_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'COMPOUND_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'CSG_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'FACETED_BREP_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'POINT_PLACEMENT_SHAPE_REPRESENTATION') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_symbol_representation FOR (symbol_representation );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (sr <* symbol_representation| NOT type_check_function(sr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CHARACTER_GLYPH_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_SYMBOL_REPRESENTATION') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_exclusiveness_transition_feature FOR (transition_feature );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (tf <* transition_feature| NOT type_check_function(tf, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CHAMFER'), ('STEP_MERGED_CAD_SCHEMA.' + 'EDGE_ROUND'), ('STEP_MERGED_CAD_SCHEMA.' + 'FILLET') ], 3))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_address FOR (address );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (a <* address| NOT type_check_function(a, [ ('STEP_MERGED_CAD_SCHEMA.' + 'ORGANIZATIONAL_ADDRESS'), ('STEP_MERGED_CAD_SCHEMA.' + 'PERSONAL_ADDRESS') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_annotation_occurrence FOR (annotation_occurrence );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ao <* annotation_occurrence| NOT type_check_function(ao, [ ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_CURVE_OCCURRENCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_FILL_AREA_OCCURRENCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_SYMBOL_OCCURRENCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'ANNOTATION_TEXT_OCCURRENCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_camera_image FOR (camera_image );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ci <* camera_image| NOT type_check_function(ci, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE_2D_WITH_SCALE'), ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE_3D_WITH_SCALE') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_camera_model FOR (camera_model );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (cm <* camera_model| NOT type_check_function(cm, [ ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_MODEL_D2'), ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_MODEL_D3') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_colour_specification FOR (colour_specification );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (cs <* colour_specification| NOT type_check_function(cs, [ ('STEP_MERGED_CAD_SCHEMA.' + 'COLOUR_RGB') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_configurable_item FOR (configurable_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ci <* configurable_item| NOT type_check_function(ci, [ ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_SPECIFICATION') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_document_product_association FOR (document_product_association );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (dpa <* document_product_association| NOT type_check_function(dpa, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DOCUMENT_PRODUCT_EQUIVALENCE') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_draughting_callout FOR (draughting_callout );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (dc <* draughting_callout| NOT type_check_function(dc, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DATUM_FEATURE_CALLOUT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DATUM_TARGET_CALLOUT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT'), ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_ELEMENTS'), ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRICAL_TOLERANCE_CALLOUT'), ('STEP_MERGED_CAD_SCHEMA.' + 'LEADER_DIRECTED_CALLOUT'), ('STEP_MERGED_CAD_SCHEMA.' + 'PROJECTION_DIRECTED_CALLOUT'), ('STEP_MERGED_CAD_SCHEMA.' + 'STRUCTURED_DIMENSION_CALLOUT'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_CONDITION_CALLOUT') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_externally_defined_item FOR (externally_defined_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (edi <* externally_defined_item| NOT type_check_function(edi, [ ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_CHARACTER_GLYPH'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_CLASS'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_CURVE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_FEATURE_DEFINITION'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_GENERAL_PROPERTY'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_HATCH_STYLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_STYLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_TEXT_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_DEFINED_TILE_STYLE') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_founded_item FOR (founded_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (fi <* founded_item| NOT type_check_function(fi, [ ('STEP_MERGED_CAD_SCHEMA.' + 'COMPOSITE_CURVE_SEGMENT'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_PATCH'), ('STEP_MERGED_CAD_SCHEMA.' + 'VIEW_VOLUME') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2/AP214
|
|
RULE subtype_mandatory_geometric_tolerance FOR (geometric_tolerance );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (gt <* geometric_tolerance| NOT type_check_function(gt, [ ('STEP_MERGED_CAD_SCHEMA.' + 'ANGULARITY_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'CIRCULAR_RUNOUT_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'COAXIALITY_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'CONCENTRICITY_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'CYLINDRICITY_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'FLATNESS_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'LINE_PROFILE_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PARALLELISM_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PERPENDICULARITY_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'POSITION_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'ROUNDNESS_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'STRAIGHTNESS_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SURFACE_PROFILE_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'SYMMETRY_TOLERANCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'TOTAL_RUNOUT_TOLERANCE') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_pre_defined_colour FOR (pre_defined_colour );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdc <* pre_defined_colour| NOT type_check_function(pdc, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_pre_defined_curve_font FOR (pre_defined_curve_font );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdcf <* pre_defined_curve_font| NOT type_check_function(pdcf, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_pre_defined_item FOR (pre_defined_item );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdi <* pre_defined_item| NOT type_check_function(pdi, [ ('STEP_MERGED_CAD_SCHEMA.' + 'KNOWN_SOURCE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_COLOUR'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_CURVE_FONT'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_MARKER'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_PRESENTATION_STYLE'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_TEXT_FONT') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_pre_defined_symbol FOR (pre_defined_symbol );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pds <* pre_defined_symbol| NOT type_check_function(pds, [ ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_GEOMETRICAL_TOLERANCE_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_SURFACE_CONDITION_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_DIMENSION_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_POINT_MARKER_SYMBOL'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_TERMINATOR_SYMBOL') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE subtype_mandatory_pre_defined_text_font FOR (pre_defined_text_font );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (pdtf <* pre_defined_text_font| NOT type_check_function(pdtf, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_TEXT_FONT') ], 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE subtype_mandatory_shape_representation FOR (shape_representation );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (sr <* shape_representation| NOT (((SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.ADVANCED_BREP_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.FACETED_BREP_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SURFACE_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.BEVELED_SHEET_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_SHEET_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.COMPOUND_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.CSG_2D_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.CSG_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.DIRECTION_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.ELEMENTARY_BREP_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.LOCATION_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.NEUTRAL_SKETCH_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.PATH_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.PLANAR_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.PROCEDURAL_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.SHAPE_DIMENSION_REPRESENTATION', 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS', 'STEP_MERGED_CAD_SCHEMA.TESSELLATED_SHAPE_REPRESENTATION' ] * TYPEOF(sr)) = 1) OR (SIZEOF(QUERY (it <* sr\representation.items| NOT ('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(it)))) = 0)) OR (SIZEOF(QUERY (sdr <* QUERY (pdr <* USEDIN(sr, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)))| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT', 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP' ] * TYPEOF(sdr.definition)) = 1))) = 0)))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE terminator_symbol_constraint FOR (terminator_symbol );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ts <* terminator_symbol| ('STEP_MERGED_CAD_SCHEMA.' + 'DEFINED_SYMBOL' IN TYPEOF(ts.item)) AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_TERMINATOR_SYMBOL' IN TYPEOF(ts.item\defined_symbol.definition)))) = 0;
|
|
END_RULE;
|
|
|
|
RULE text_font_usage FOR (externally_defined_text_font, pre_defined_text_font );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (pdtf <* pre_defined_text_font| (SIZEOF(USEDIN(pdtf, 'STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL.FONT')) = 0))) = 0;
|
|
WR2:
|
|
SIZEOF(QUERY (edtf <* externally_defined_text_font| (SIZEOF(USEDIN(edtf, 'STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL.FONT')) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP203e2
|
|
RULE thickness_laminate_table_component_select FOR (thickness_laminate_definition, next_assembly_usage_occurrence, product_related_product_category );
|
|
LOCAL
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
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;
|
|
|
|
-- IN AP242
|
|
RULE tolerance_zone_form_name_constraint FOR (tolerance_zone_form );
|
|
LOCAL
|
|
names : SET OF STRING := [ 'within a circle', 'between two concentric circles', 'between two equidistant curves', 'within a cylinder', 'between two coaxial cylinders', 'between two equidistant surfaces', 'non uniform', 'cylindrical or circular', 'spherical', 'unknown' ];
|
|
pass : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF(tolerance_zone_form) WHILE pass;
|
|
pass := tolerance_zone_form[i].name IN names;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1:
|
|
pass;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE transition_feature_life_cycle FOR (transition_feature );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (tf <* transition_feature| NOT (tf.of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning'))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE transition_feature_on_part_boundary FOR (transition_feature );
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(QUERY (tf <* transition_feature| NOT tf.product_definitional)) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE unique_datum_system FOR (datum_system );
|
|
LOCAL
|
|
pass : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF(datum_system);
|
|
REPEAT j := 1 TO SIZEOF(datum_system);
|
|
IF i <> j THEN
|
|
IF datum_system[i]\datum_system.constituents = datum_system[j]\datum_system.constituents THEN
|
|
pass := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1:
|
|
pass;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE unique_gdt_element_id_constraint FOR (product_definition_shape, dimensional_location, dimensional_size, shape_aspect, shape_aspect_relationship );
|
|
LOCAL
|
|
bss : BAG OF STRING := [];
|
|
ds : SET OF dimensional_size := QUERY (ds <* dimensional_size| EXISTS(ds\dimensional_size.id));
|
|
sa : SET OF shape_aspect := QUERY (sa <* shape_aspect| EXISTS(sa\shape_aspect.id));
|
|
sar : SET OF shape_aspect_relationship := QUERY (sar <* shape_aspect_relationship| EXISTS(sar\shape_aspect_relationship.id));
|
|
ssa : SET OF shape_aspect := [];
|
|
pass : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
REPEAT ii := 1 TO SIZEOF(product_definition_shape) WHILE pass;
|
|
bss := [];
|
|
ssa := bag_to_set(USEDIN(product_definition_shape[ii], 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT.' + 'OF_SHAPE'));
|
|
REPEAT i := 1 TO SIZEOF(ds);
|
|
IF ds[i]\dimensional_size.applies_to IN ssa THEN
|
|
bss := bss + ds[i]\dimensional_size.id;
|
|
END_IF;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(sa);
|
|
IF sa[i] IN ssa THEN
|
|
bss := bss + sa[i]\shape_aspect.id;
|
|
END_IF;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(sar);
|
|
IF sar[i]\shape_aspect_relationship.relating_shape_aspect IN ssa THEN
|
|
bss := bss + sar[i]\shape_aspect_relationship.id;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(bag_to_set(bss)) <> SIZEOF(bss) THEN
|
|
pass := FALSE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1:
|
|
pass;
|
|
END_RULE;
|
|
|
|
-- IN AP242
|
|
RULE valid_product_and_manufacturing_information_view_contexts FOR (product_definition_context );
|
|
LOCAL
|
|
design_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.life_cycle_stage = 'design');
|
|
gdt_representation_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'geometrical dimensioning and tolerancing representation');
|
|
machining_feature_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'machining feature');
|
|
material_specification_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'material specification');
|
|
model_based_3d_annotation_presentation_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'model based 3D annotation presentation');
|
|
model_based_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'model based product geometry');
|
|
process_state_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'process state');
|
|
surface_finish_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'surface finish');
|
|
additional_view_contexts : SET OF product_definition_context := gdt_representation_view_contexts + machining_feature_view_contexts + material_specification_view_contexts + model_based_3d_annotation_presentation_view_contexts + process_state_view_contexts + surface_finish_view_contexts;
|
|
need_initial_model_based_view_contexts : SET OF product_definition_context := gdt_representation_view_contexts + model_based_3d_annotation_presentation_view_contexts;
|
|
END_LOCAL;
|
|
WHERE
|
|
WR1:
|
|
SIZEOF(gdt_representation_view_contexts * design_view_contexts) = SIZEOF(gdt_representation_view_contexts);
|
|
WR2:
|
|
SIZEOF(machining_feature_view_contexts * design_view_contexts) = SIZEOF(machining_feature_view_contexts);
|
|
WR3:
|
|
SIZEOF(material_specification_view_contexts * design_view_contexts) = SIZEOF(material_specification_view_contexts);
|
|
WR4:
|
|
SIZEOF(model_based_3d_annotation_presentation_view_contexts * design_view_contexts) = SIZEOF(model_based_3d_annotation_presentation_view_contexts);
|
|
WR5:
|
|
SIZEOF(model_based_view_contexts * design_view_contexts) = SIZEOF(model_based_view_contexts);
|
|
WR6:
|
|
SIZEOF(process_state_view_contexts * design_view_contexts) = SIZEOF(process_state_view_contexts);
|
|
WR7:
|
|
SIZEOF(surface_finish_view_contexts * design_view_contexts) = SIZEOF(surface_finish_view_contexts);
|
|
WR8:
|
|
SIZEOF(QUERY (mbvc <* model_based_view_contexts| (SIZEOF(USEDIN(mbvc, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE')) = 0))) = SIZEOF(model_based_view_contexts);
|
|
WR9:
|
|
SIZEOF(QUERY (avc <* additional_view_contexts| (SIZEOF(USEDIN(avc, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION.FRAME_OF_REFERENCE')) = 0))) = SIZEOF(additional_view_contexts);
|
|
WR10:
|
|
SIZEOF(QUERY (nimbvc <* need_initial_model_based_view_contexts| NOT (SIZEOF(QUERY (pdca <* USEDIN(nimbvc, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE')| (pdca\product_definition_context_association.definition\product_definition.frame_of_reference IN model_based_view_contexts))) = SIZEOF(need_initial_model_based_view_contexts)))) = 0;
|
|
WR11:
|
|
SIZEOF(QUERY (gdt_pdc <* gdt_representation_view_contexts| (SIZEOF([ 'ISO 1101', 'ASME Y14.5' ] * get_associated_mandatory_document_ids(gdt_pdc)) = 0))) = 0;
|
|
WR12:
|
|
SIZEOF(QUERY (mb3d_pdc <* model_based_3d_annotation_presentation_view_contexts| (SIZEOF([ 'ISO 1101', 'ISO 16792', 'ASME Y14.41', 'ASME Y14.5' ] * get_associated_mandatory_document_ids(mb3d_pdc)) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
RULE validate_dependently_instantiable_entity_data_types FOR (abstracted_expression_function, action_method_role, action_resource_type, application_defined_function, atom_based_literal, attribute_value_role, b_spline_basis, b_spline_function, basic_sparse_matrix, binary_literal, camera_model_d2, cartesian_complex_number_region, cartesian_transformation_operator, complex_number_literal, concept_feature_relationship, concept_feature_relationship_with_condition, constant_function, definite_integral_expression, definite_integral_function, document_usage_constraint, edge_blended_solid, effectivity_context_role, elementary_function, event_occurrence_role, explicit_procedural_representation_item_relationship, explicit_table_function, expression_denoted_function, extended_tuple_space, externally_listed_data, finite_function, founded_item, function_application, function_space, general_linear_function, homogeneous_linear_function, imported_curve_function, imported_point_function, imported_surface_function, imported_volume_function, indirectly_selected_elements, integer_tuple_literal, linearized_table_function, listed_data, maths_enum_literal, maths_function, maths_tuple_literal, modified_solid_with_placed_configuration, one_direction_repeat_factor, oriented_open_shell, oriented_path, parallel_composed_function, partial_derivative_expression, partial_derivative_function, polar_complex_number_region, procedural_representation, procedural_representation_sequence, product_definition_effectivity, quantifier_expression, rationalize_function, real_tuple_literal, reindexed_array_function, repackaging_function, restriction_function, runout_zone_orientation, selector_function, series_composed_function, solid_with_depression, solid_with_hole, solid_with_pocket, solid_with_protrusion, solid_with_shape_element_pattern, solid_with_slot, swept_area_solid, symbol_target, two_direction_repeat_factor, user_selected_elements, 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 + abstracted_expression_function;
|
|
all_instances := all_instances + action_method_role;
|
|
all_instances := all_instances + action_resource_type;
|
|
all_instances := all_instances + application_defined_function;
|
|
all_instances := all_instances + atom_based_literal;
|
|
all_instances := all_instances + attribute_value_role;
|
|
all_instances := all_instances + b_spline_basis;
|
|
all_instances := all_instances + b_spline_function;
|
|
all_instances := all_instances + basic_sparse_matrix;
|
|
all_instances := all_instances + binary_literal;
|
|
all_instances := all_instances + camera_model_d2;
|
|
all_instances := all_instances + cartesian_complex_number_region;
|
|
all_instances := all_instances + cartesian_transformation_operator;
|
|
all_instances := all_instances + complex_number_literal;
|
|
all_instances := all_instances + concept_feature_relationship;
|
|
all_instances := all_instances + concept_feature_relationship_with_condition;
|
|
all_instances := all_instances + constant_function;
|
|
all_instances := all_instances + definite_integral_expression;
|
|
all_instances := all_instances + definite_integral_function;
|
|
all_instances := all_instances + document_usage_constraint;
|
|
all_instances := all_instances + edge_blended_solid;
|
|
all_instances := all_instances + effectivity_context_role;
|
|
all_instances := all_instances + elementary_function;
|
|
all_instances := all_instances + event_occurrence_role;
|
|
all_instances := all_instances + explicit_procedural_representation_item_relationship;
|
|
all_instances := all_instances + explicit_table_function;
|
|
all_instances := all_instances + expression_denoted_function;
|
|
all_instances := all_instances + extended_tuple_space;
|
|
all_instances := all_instances + externally_listed_data;
|
|
all_instances := all_instances + finite_function;
|
|
all_instances := all_instances + founded_item;
|
|
all_instances := all_instances + function_application;
|
|
all_instances := all_instances + function_space;
|
|
all_instances := all_instances + general_linear_function;
|
|
all_instances := all_instances + homogeneous_linear_function;
|
|
all_instances := all_instances + imported_curve_function;
|
|
all_instances := all_instances + imported_point_function;
|
|
all_instances := all_instances + imported_surface_function;
|
|
all_instances := all_instances + imported_volume_function;
|
|
all_instances := all_instances + indirectly_selected_elements;
|
|
all_instances := all_instances + integer_tuple_literal;
|
|
all_instances := all_instances + linearized_table_function;
|
|
all_instances := all_instances + listed_data;
|
|
all_instances := all_instances + maths_enum_literal;
|
|
all_instances := all_instances + maths_function;
|
|
all_instances := all_instances + maths_tuple_literal;
|
|
all_instances := all_instances + modified_solid_with_placed_configuration;
|
|
all_instances := all_instances + one_direction_repeat_factor;
|
|
all_instances := all_instances + oriented_open_shell;
|
|
all_instances := all_instances + oriented_path;
|
|
all_instances := all_instances + parallel_composed_function;
|
|
all_instances := all_instances + partial_derivative_expression;
|
|
all_instances := all_instances + partial_derivative_function;
|
|
all_instances := all_instances + polar_complex_number_region;
|
|
all_instances := all_instances + procedural_representation;
|
|
all_instances := all_instances + procedural_representation_sequence;
|
|
all_instances := all_instances + product_definition_effectivity;
|
|
all_instances := all_instances + quantifier_expression;
|
|
all_instances := all_instances + rationalize_function;
|
|
all_instances := all_instances + real_tuple_literal;
|
|
all_instances := all_instances + reindexed_array_function;
|
|
all_instances := all_instances + repackaging_function;
|
|
all_instances := all_instances + restriction_function;
|
|
all_instances := all_instances + runout_zone_orientation;
|
|
all_instances := all_instances + selector_function;
|
|
all_instances := all_instances + series_composed_function;
|
|
all_instances := all_instances + solid_with_depression;
|
|
all_instances := all_instances + solid_with_hole;
|
|
all_instances := all_instances + solid_with_pocket;
|
|
all_instances := all_instances + solid_with_protrusion;
|
|
all_instances := all_instances + solid_with_shape_element_pattern;
|
|
all_instances := all_instances + solid_with_slot;
|
|
all_instances := all_instances + swept_area_solid;
|
|
all_instances := all_instances + symbol_target;
|
|
all_instances := all_instances + two_direction_repeat_factor;
|
|
all_instances := all_instances + user_selected_elements;
|
|
all_instances := all_instances + volume;
|
|
number_of_input_instances := SIZEOF(all_instances);
|
|
REPEAT i := 1 TO number_of_input_instances;
|
|
set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]);
|
|
END_REPEAT;
|
|
WHERE
|
|
WR1:
|
|
dependently_instantiated(all_instances, set_of_input_types, previous_in_chain);
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE versioned_action_request_requires_date_and_person_or_organization FOR (versioned_action_request );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (va <* versioned_action_request| (SIZEOF(QUERY (adapaoa <* USEDIN(va, 'STEP_MERGED_CAD_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS')| (adapaoa.role.name = 'requestor'))) + SIZEOF(QUERY (adaoa <* USEDIN(va, 'STEP_MERGED_CAD_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')| (adaoa.role.name = 'requestor'))) = 0))) = 0;
|
|
wr2:
|
|
SIZEOF(QUERY (va <* versioned_action_request| (SIZEOF(QUERY (adapaoa <* USEDIN(va, 'STEP_MERGED_CAD_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS')| (adapaoa.role.name = 'notified person or organization'))) + SIZEOF(QUERY (adaoa <* USEDIN(va, 'STEP_MERGED_CAD_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')| (adaoa.role.name = 'notified person or organization'))) = 0))) = 0;
|
|
END_RULE;
|
|
|
|
-- IN AP214
|
|
RULE versioned_action_request_requires_status FOR (action_request_status, versioned_action_request );
|
|
WHERE
|
|
wr1:
|
|
SIZEOF(QUERY (ar <* versioned_action_request| NOT (SIZEOF(QUERY (ars <* action_request_status| (ar :=: ars.assigned_request))) = 1))) = 0;
|
|
END_RULE;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION acyclic
|
|
(arg1 : generic_expression;
|
|
arg2 : SET [0:?] OF generic_expression ) : BOOLEAN;
|
|
LOCAL
|
|
result : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF arg1 IN arg2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN
|
|
RETURN (acyclic(arg1\unary_generic_expression.operand, arg2 + [ arg1 ]));
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
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| 'STEP_MERGED_CAD_SCHEMA.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| 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT', 'STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(parent)) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF parent :=: rep THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
RETURN (acyclic_curve_replica(rep, parent\curve_replica.parent_curve));
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP203e2/AP214
|
|
FUNCTION acyclic_mapped_item_usage
|
|
(rep : representation ) : BOOLEAN;
|
|
LOCAL
|
|
items : SET OF representation_item;
|
|
END_LOCAL;
|
|
items := QUERY (item <* rep.items| 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION acyclic_mapped_representation
|
|
(mi : mapped_item ) : BOOLEAN;
|
|
LOCAL
|
|
rms : SET OF representation_map;
|
|
mis : SET OF mapped_item;
|
|
rs1 : SET OF representation;
|
|
rs2 : SET OF representation;
|
|
END_LOCAL;
|
|
rs1 := using_representations(mi);
|
|
rs2 := [];
|
|
REPEAT WHILE SIZEOF(rs1) > 0;
|
|
REPEAT i := 1 TO HIINDEX(rs1);
|
|
rms := bag_to_set(USEDIN(rs1[i], 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
|
|
IF SIZEOF(rms) > 0 THEN
|
|
REPEAT j := 1 TO HIINDEX(rms);
|
|
mis := bag_to_set(USEDIN(rms[i], 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE'));
|
|
IF SIZEOF(mis) > 0 THEN
|
|
REPEAT j := 1 TO HIINDEX(mis);
|
|
IF mis[i] :=: mi THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
rs2 := rs2 + using_representations(mis[i]);
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
rs1 := rs2;
|
|
rs2 := [];
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION acyclic_point_replica
|
|
(rep : point_replica;
|
|
parent : point ) : BOOLEAN;
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.POINT_REPLICA' IN TYPEOF(parent)) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF parent :=: rep THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
RETURN (acyclic_point_replica(rep, parent\point_replica.parent_pt));
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
FUNCTION acyclic_product_category_relationship
|
|
(relation : product_category_relationship;
|
|
children : SET [0:?] OF product_category ) : BOOLEAN;
|
|
LOCAL
|
|
x : SET OF product_category_relationship;
|
|
local_children : SET OF product_category;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO HIINDEX(children);
|
|
IF relation.category :=: children[i] THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
x := bag_to_set(USEDIN(relation.category, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY'));
|
|
local_children := children + relation.category;
|
|
IF SIZEOF(x) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(x);
|
|
IF NOT acyclic_product_category_relationship(x[i], local_children) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION acyclic_product_definition_relationship
|
|
(relation : product_definition_relationship;
|
|
relatives : SET [1:?] OF product_definition_or_reference;
|
|
specific_relation : STRING ) : BOOLEAN;
|
|
LOCAL
|
|
x : SET OF product_definition_relationship;
|
|
END_LOCAL;
|
|
IF relation.relating_product_definition IN relatives THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
x := QUERY (pd <* bag_to_set(USEDIN(relation.relating_product_definition, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP242
|
|
FUNCTION acyclic_shape_aspect_relationship
|
|
(relation : shape_aspect_relationship;
|
|
relatives : SET [1:?] OF shape_aspect;
|
|
specific_relation : STRING ) : BOOLEAN;
|
|
LOCAL
|
|
x : SET OF shape_aspect_relationship;
|
|
END_LOCAL;
|
|
IF relation.relating_shape_aspect IN relatives THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
x := QUERY (sa <* bag_to_set(USEDIN(relation.relating_shape_aspect, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT'))| specific_relation IN TYPEOF(sa));
|
|
REPEAT i := 1 TO HIINDEX(x);
|
|
IF NOT acyclic_shape_aspect_relationship(x[i], (relatives + relation.relating_shape_aspect), specific_relation) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION acyclic_solid_replica
|
|
(rep : solid_replica;
|
|
parent : solid_model ) : BOOLEAN;
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.SOLID_REPLICA' IN TYPEOF(parent)) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF parent :=: rep THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
RETURN (acyclic_solid_replica(rep, parent\solid_replica.parent_solid));
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
FUNCTION acyclic_surface_replica
|
|
(rep : surface_replica;
|
|
parent : surface ) : BOOLEAN;
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.SURFACE_REPLICA' IN TYPEOF(parent)) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF parent :=: rep THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
RETURN (acyclic_surface_replica(rep, parent\surface_replica.parent_surface));
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION advanced_face_properties
|
|
(testface : face ) : BOOLEAN;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(testface) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SUBFACE' IN TYPEOF(testface) THEN
|
|
RETURN (advanced_face_properties(testface\subface.parent_face));
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION all_members_of_es
|
|
(sv : SET [0:?] OF maths_value;
|
|
es : elementary_space_enumerators ) : LOGICAL;
|
|
CONSTANT
|
|
base_types : SET OF STRING := [ 'NUMBER', 'COMPLEX_NUMBER_LITERAL', 'REAL', 'INTEGER', 'LOGICAL', 'BOOLEAN', 'STRING', 'BINARY', 'MATHS_SPACE', 'MATHS_FUNCTION', 'LIST', 'ELEMENTARY_SPACE_ENUMERATORS', 'ORDERING_TYPE', 'LOWER_UPPER', 'SYMMETRY_TYPE', 'ELEMENTARY_FUNCTION_ENUMERATORS', 'OPEN_CLOSED', 'SPACE_CONSTRAINT_TYPE', 'REPACKAGE_OPTIONS', 'EXTENSION_OPTIONS' ];
|
|
END_CONSTANT;
|
|
LOCAL
|
|
v : maths_value;
|
|
key_type : STRING := '';
|
|
types : SET OF STRING;
|
|
ge : generic_expression;
|
|
cum : LOGICAL := TRUE;
|
|
vspc : maths_space;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(sv) OR NOT EXISTS(es) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
CASE es OF
|
|
es_numbers :
|
|
key_type := 'NUMBER';
|
|
es_complex_numbers :
|
|
key_type := 'COMPLEX_NUMBER_LITERAL';
|
|
es_reals :
|
|
key_type := 'REAL';
|
|
es_integers :
|
|
key_type := 'INTEGER';
|
|
es_logicals :
|
|
key_type := 'LOGICAL';
|
|
es_booleans :
|
|
key_type := 'BOOLEAN';
|
|
es_strings :
|
|
key_type := 'STRING';
|
|
es_binarys :
|
|
key_type := 'BINARY';
|
|
es_maths_spaces :
|
|
key_type := 'MATHS_SPACE';
|
|
es_maths_functions :
|
|
key_type := 'MATHS_FUNCTION';
|
|
es_generics :
|
|
RETURN (TRUE);
|
|
END_CASE;
|
|
REPEAT i := 1 TO SIZEOF(sv);
|
|
IF NOT EXISTS(sv[i]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
v := simplify_maths_value(sv[i]);
|
|
types := stripped_typeof(v);
|
|
IF key_type IN types THEN
|
|
SKIP;
|
|
END_IF;
|
|
IF (es = es_numbers) AND ('COMPLEX_NUMBER_LITERAL' IN types) THEN
|
|
SKIP;
|
|
END_IF;
|
|
IF SIZEOF(base_types * types) > 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
ge := v;
|
|
IF has_values_space(ge) THEN
|
|
vspc := values_space_of(ge);
|
|
IF NOT subspace_of_es(vspc, es) THEN
|
|
IF NOT compatible_spaces(vspc, make_elementary_space(es)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
cum := UNKNOWN;
|
|
END_IF;
|
|
ELSE
|
|
cum := UNKNOWN;
|
|
END_IF;
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION any_space_satisfies
|
|
(sc : space_constraint_type;
|
|
spc : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
spc_id : elementary_space_enumerators;
|
|
END_LOCAL;
|
|
IF (sc = sc_equal) OR NOT ('ELEMENTARY_SPACE' IN stripped_typeof(spc)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
spc_id := spc\elementary_space.space_id;
|
|
IF sc = sc_subspace THEN
|
|
RETURN (bool(spc_id = es_generics));
|
|
END_IF;
|
|
IF sc = sc_member THEN
|
|
RETURN (bool((spc_id = es_generics) OR (spc_id = es_maths_spaces)));
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION aspect_ratio
|
|
(p : planar_box ) : positive_ratio_measure;
|
|
IF (p.size_in_x > 0.0) AND (p.size_in_y > 0.0) THEN
|
|
RETURN (p.size_in_x / p.size_in_y);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION assembly_leaf
|
|
(item : product_definition ) : BOOLEAN;
|
|
LOCAL
|
|
local_relation : SET OF assembly_component_usage := [];
|
|
local_relation2 : BAG OF assembly_component_usage := [];
|
|
END_LOCAL;
|
|
local_relation2 := local_relation2 + QUERY (pdr <* USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)));
|
|
local_relation := bag_to_set(local_relation2);
|
|
IF SIZEOF(local_relation) = 0 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION assembly_root
|
|
(item : product_definition ) : BOOLEAN;
|
|
IF SIZEOF(QUERY (pdr <* USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)))) = 0 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION assembly_shape_is_defined
|
|
(assy : next_assembly_usage_occurrence ) : BOOLEAN;
|
|
LOCAL
|
|
sdr_set : SET OF shape_definition_representation := [];
|
|
srr_set : SET OF shape_representation_relationship := [];
|
|
sdr1_set : SET OF shape_definition_representation := [];
|
|
pd_set : SET OF property_definition := [];
|
|
pdr_set : SET OF product_definition_relationship := [];
|
|
pds_set : SET OF product_definition_shape := [];
|
|
prop_set : SET OF property_definition := [];
|
|
END_LOCAL;
|
|
pd_set := bag_to_set(USEDIN(assy.related_product_definition, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
|
|
pdr_set := QUERY (pdr <* bag_to_set(USEDIN(assy.related_product_definition, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION'))| SIZEOF(USEDIN(pdr, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')) > 0);
|
|
IF SIZEOF(pd_set) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(pd_set);
|
|
sdr_set := sdr_set + QUERY (pdr <* USEDIN(pd_set[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
|
|
END_REPEAT;
|
|
END_IF;
|
|
IF SIZEOF(pdr_set) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(pdr_set);
|
|
prop_set := prop_set + bag_to_set(USEDIN(pdr_set[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
|
|
END_REPEAT;
|
|
IF SIZEOF(prop_set) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(prop_set);
|
|
sdr_set := sdr_set + QUERY (pdr <* USEDIN(prop_set[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_IF;
|
|
IF SIZEOF(sdr_set) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(sdr_set);
|
|
srr_set := QUERY (rr <* bag_to_set(USEDIN(sdr_set[i]\property_definition_representation.used_representation, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_RELATIONSHIP.REP_2'))| 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_RELATIONSHIP' IN TYPEOF(rr));
|
|
pd_set := bag_to_set(USEDIN(assy.relating_product_definition, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
|
|
IF SIZEOF(pd_set) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(pd_set);
|
|
sdr1_set := sdr1_set + QUERY (pdr <* USEDIN(pd_set[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
|
|
END_REPEAT;
|
|
END_IF;
|
|
IF (SIZEOF(sdr_set) > 0) AND (SIZEOF(sdr1_set) > 0) THEN
|
|
IF SIZEOF(srr_set) > 0 THEN
|
|
REPEAT j := 1 TO HIINDEX(srr_set);
|
|
IF SIZEOF(QUERY (pdr <* bag_to_set(USEDIN(srr_set[j]\representation_relationship.rep_1, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr))) * sdr1_set) >= 1 THEN
|
|
pds_set := QUERY (x <* bag_to_set(USEDIN(assy, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION'))| 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(x));
|
|
IF SIZEOF(pds_set) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT k := 1 TO HIINDEX(pds_set);
|
|
IF SIZEOF(QUERY (cdsr <* USEDIN(pds_set[k], 'STEP_MERGED_CAD_SCHEMA.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION.REPRESENTED_PRODUCT_RELATION')| (cdsr.representation_relation :=: srr_set[j]))) > 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION assoc_product_space
|
|
(ts1 : tuple_space;
|
|
ts2 : tuple_space ) : tuple_space;
|
|
LOCAL
|
|
types1 : SET OF STRING := stripped_typeof(ts1);
|
|
types2 : SET OF STRING := stripped_typeof(ts2);
|
|
up1 : uniform_product_space := make_uniform_product_space(the_reals, 1);
|
|
up2 : uniform_product_space := make_uniform_product_space(the_reals, 1);
|
|
lp1 : listed_product_space := the_zero_tuple_space;
|
|
lp2 : listed_product_space := the_zero_tuple_space;
|
|
lps : listed_product_space := the_zero_tuple_space;
|
|
et1 : extended_tuple_space := the_tuples;
|
|
et2 : extended_tuple_space := the_tuples;
|
|
ets : extended_tuple_space := the_tuples;
|
|
use_up1 : BOOLEAN;
|
|
use_up2 : BOOLEAN;
|
|
use_lp1 : BOOLEAN;
|
|
use_lp2 : BOOLEAN;
|
|
factors : LIST OF maths_space := [];
|
|
tspace : tuple_space;
|
|
END_LOCAL;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN
|
|
up1 := ts1;
|
|
use_up1 := FALSE;
|
|
use_lp1 := FALSE;
|
|
ELSE
|
|
IF 'LISTED_PRODUCT_SPACE' IN types1 THEN
|
|
lp1 := ts1;
|
|
use_up1 := FALSE;
|
|
use_lp1 := FALSE;
|
|
ELSE
|
|
IF NOT ('EXTENDED_TUPLE_SPACE' IN types1) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
et1 := ts1;
|
|
use_up1 := FALSE;
|
|
use_lp1 := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN
|
|
up2 := ts2;
|
|
use_up2 := FALSE;
|
|
use_lp2 := FALSE;
|
|
ELSE
|
|
IF 'LISTED_PRODUCT_SPACE' IN types2 THEN
|
|
lp2 := ts2;
|
|
use_up2 := FALSE;
|
|
use_lp2 := FALSE;
|
|
ELSE
|
|
IF NOT ('EXTENDED_TUPLE_SPACE' IN types2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
et2 := ts2;
|
|
use_up2 := FALSE;
|
|
use_lp2 := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
IF use_up1 THEN
|
|
IF use_up2 THEN
|
|
IF up1.base = up2.base THEN
|
|
tspace := make_uniform_product_space(up1.base, up1.exponent + up2.exponent);
|
|
ELSE
|
|
factors := [ up1.base, up2.base ];
|
|
tspace := make_listed_product_space(factors);
|
|
END_IF;
|
|
ELSE
|
|
IF use_lp2 THEN
|
|
factors := [ up1.base ];
|
|
factors := factors + lp2.factors;
|
|
tspace := make_listed_product_space(factors);
|
|
ELSE
|
|
tspace := assoc_product_space(up1, et2.base);
|
|
tspace := make_extended_tuple_space(tspace, et2.extender);
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF use_lp1 THEN
|
|
IF use_up2 THEN
|
|
factors := [ up2.base ];
|
|
factors := lp1.factors + factors;
|
|
tspace := make_listed_product_space(factors);
|
|
ELSE
|
|
IF use_lp2 THEN
|
|
tspace := make_listed_product_space(lp1.factors + lp2.factors);
|
|
ELSE
|
|
tspace := assoc_product_space(lp1, et2.base);
|
|
tspace := make_extended_tuple_space(tspace, et2.extender);
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF use_up2 THEN
|
|
IF et1.extender = up2.base THEN
|
|
tspace := assoc_product_space(et1.base, up2);
|
|
tspace := make_extended_tuple_space(tspace, et1.extender);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
ELSE
|
|
IF use_lp2 THEN
|
|
factors := lp2.factors;
|
|
REPEAT i := 1 TO SIZEOF(factors);
|
|
IF et1.extender <> factors[i] THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
END_REPEAT;
|
|
tspace := assoc_product_space(et1.base, lp2);
|
|
tspace := make_extended_tuple_space(tspace, et1.extender);
|
|
ELSE
|
|
IF et1.extender = et2.extender THEN
|
|
tspace := assoc_product_space(et1, et2.base);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (tspace);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION associated_surface
|
|
(arg : pcurve_or_surface ) : surface;
|
|
LOCAL
|
|
surf : surface;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(arg) THEN
|
|
surf := arg\pcurve.basis_surface;
|
|
ELSE
|
|
surf := arg;
|
|
END_IF;
|
|
RETURN (surf);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION atan2
|
|
(y : REAL;
|
|
x : REAL ) : REAL;
|
|
LOCAL
|
|
r : REAL;
|
|
END_LOCAL;
|
|
IF (y = 0.0) AND (x = 0.0) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
r := atan(y, x);
|
|
IF x < 0.0 THEN
|
|
IF y < 0.0 THEN
|
|
r := r - 3.14159;
|
|
ELSE
|
|
r := r + 3.14159;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (r);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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 : direction;
|
|
d2 : direction;
|
|
END_LOCAL;
|
|
IF dim = 3 THEN
|
|
d1 := NVL(normalise(axis3), dummy_gri || direction([ 0.0, 0.0, 1.0 ]));
|
|
d2 := first_proj_axis(d1, axis1);
|
|
u := [ d2, second_proj_axis(d1, d2, axis2), d1 ];
|
|
ELSE
|
|
IF EXISTS(axis1) THEN
|
|
d1 := normalise(axis1);
|
|
u := [ d1, orthogonal_complement(d1) ];
|
|
IF EXISTS(axis2) THEN
|
|
factor := dot_product(axis2, u[2]);
|
|
IF factor < 0.0 THEN
|
|
u[2].direction_ratios[1] := -u[2].direction_ratios[1];
|
|
u[2].direction_ratios[2] := -u[2].direction_ratios[2];
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF EXISTS(axis2) THEN
|
|
d1 := normalise(axis2);
|
|
u := [ orthogonal_complement(d1), d1 ];
|
|
u[1].direction_ratios[1] := -u[1].direction_ratios[1];
|
|
u[1].direction_ratios[2] := -u[1].direction_ratios[2];
|
|
ELSE
|
|
u := [ dummy_gri || direction([ 1.0, 0.0 ]), dummy_gri || direction([ 0.0, 1.0 ]) ];
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (u);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION bool
|
|
(lgcl : LOGICAL ) : BOOLEAN;
|
|
IF NOT EXISTS(lgcl) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF lgcl <> TRUE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION boolean_choose
|
|
(b : BOOLEAN;
|
|
choice1 : GENERIC : item;
|
|
choice2 : GENERIC : item ) : GENERIC : item;
|
|
IF b THEN
|
|
RETURN (choice1);
|
|
ELSE
|
|
RETURN (choice2);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
FUNCTION build_2axes
|
|
(ref_direction : direction ) : LIST [2:2] OF direction;
|
|
LOCAL
|
|
d : direction := NVL(normalise(ref_direction), dummy_gri || direction([ 1.0, 0.0 ]));
|
|
END_LOCAL;
|
|
RETURN ([ d, orthogonal_complement(d) ]);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION build_axes
|
|
(axis : direction;
|
|
ref_direction : direction ) : LIST [3:3] OF direction;
|
|
LOCAL
|
|
d1 : direction;
|
|
d2 : direction;
|
|
END_LOCAL;
|
|
d1 := NVL(normalise(axis), dummy_gri || direction([ 0.0, 0.0, 1.0 ]));
|
|
d2 := first_proj_axis(d1, ref_direction);
|
|
RETURN ([ d2, normalise(cross_product(d1, d2))\vector.orientation, d1 ]);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.' + '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;
|
|
|
|
-- IN AP214
|
|
FUNCTION check_associative_shape_aspects
|
|
(sdr : shape_definition_representation ) : BOOLEAN;
|
|
LOCAL
|
|
sr1 : SET OF representation;
|
|
sr2 : SET OF representation;
|
|
dm : SET OF representation;
|
|
pv : SET OF representation;
|
|
END_LOCAL;
|
|
IF SIZEOF(sdr.used_representation.items) <> 2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
sr1 := using_representations(sdr.used_representation.items[1]);
|
|
sr2 := using_representations(sdr.used_representation.items[2]);
|
|
REPEAT i := 1 TO HIINDEX(sr1);
|
|
dm := representations_mapped_into(sr1[i]);
|
|
REPEAT j := 1 TO HIINDEX(dm);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_MODEL' IN TYPEOF(dm[j]) THEN
|
|
IF dm[j] IN sr2 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
pv := representations_mapped_into(dm[j]);
|
|
REPEAT k := 1 TO HIINDEX(pv);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(pv[k]) THEN
|
|
IF pv[k] IN sr2 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(sr2);
|
|
dm := representations_mapped_into(sr2[i]);
|
|
REPEAT j := 1 TO HIINDEX(dm);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_MODEL' IN TYPEOF(dm[j]) THEN
|
|
IF dm[j] IN sr1 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
pv := representations_mapped_into(dm[j]);
|
|
REPEAT k := 1 TO HIINDEX(pv);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(pv[k]) THEN
|
|
IF pv[k] IN sr1 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP203e2/AP242
|
|
FUNCTION check_continuous_edges
|
|
(edges : LIST [0:?] OF UNIQUE edge_curve ) : BOOLEAN;
|
|
LOCAL
|
|
i : INTEGER;
|
|
next_vertex : vertex;
|
|
END_LOCAL;
|
|
IF SIZEOF(edges) = 1 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF (edges[2].edge_start :=: edges[1].edge_end) XOR (edges[2].edge_start :=: edges[1].edge_start) THEN
|
|
next_vertex := edges[2].edge_end;
|
|
ELSE
|
|
IF (edges[2].edge_end :=: edges[1].edge_end) XOR (edges[2].edge_end :=: edges[1].edge_start) THEN
|
|
next_vertex := edges[2].edge_start;
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
IF SIZEOF(edges) = 2 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 3 TO HIINDEX(edges);
|
|
IF edges[i].edge_start :=: next_vertex THEN
|
|
next_vertex := edges[i].edge_end;
|
|
ELSE
|
|
IF edges[i].edge_end :=: next_vertex THEN
|
|
next_vertex := edges[i].edge_start;
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION check_curve_planarity
|
|
(checked_curve : curve ) : BOOLEAN;
|
|
LOCAL
|
|
crv : curve := checked_curve;
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
result : BOOLEAN := FALSE;
|
|
END_LOCAL;
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.LINE' ] * TYPEOF(crv)) > 0 THEN
|
|
result := TRUE;
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' IN TYPEOF(crv)) AND check_curve_planarity(crv\trimmed_curve.basis_curve) THEN
|
|
result := TRUE;
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(crv)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(crv\pcurve.basis_surface)) THEN
|
|
result := TRUE;
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(crv) THEN
|
|
BEGIN
|
|
REPEAT j := 1 TO HIINDEX(crv\surface_curve.basis_surface);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(crv\surface_curve.basis_surface[j]) THEN
|
|
result := TRUE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION check_sparse_index_domain
|
|
(idxdom : tuple_space;
|
|
base : zero_or_one;
|
|
shape : LIST [1:?] OF positive_integer;
|
|
order : ordering_type ) : BOOLEAN;
|
|
LOCAL
|
|
mthspc : maths_space;
|
|
interval : finite_integer_interval;
|
|
i : INTEGER;
|
|
END_LOCAL;
|
|
mthspc := factor1(idxdom);
|
|
interval := mthspc;
|
|
IF order = by_rows THEN
|
|
i := 1;
|
|
ELSE
|
|
i := 2;
|
|
END_IF;
|
|
RETURN (bool((interval.min <= base) AND (interval.max >= base + shape[i])));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION check_sparse_index_to_loc
|
|
(index_range : tuple_space;
|
|
loc_domain : tuple_space ) : BOOLEAN;
|
|
LOCAL
|
|
temp : maths_space;
|
|
idx_rng_itvl : finite_integer_interval;
|
|
loc_dmn_itvl : finite_integer_interval;
|
|
END_LOCAL;
|
|
temp := factor1(index_range);
|
|
IF schema_prefix + 'TUPLE_SPACE' IN TYPEOF(temp) THEN
|
|
temp := factor1(temp);
|
|
END_IF;
|
|
IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
idx_rng_itvl := temp;
|
|
temp := factor1(loc_domain);
|
|
IF schema_prefix + 'TUPLE_SPACE' IN TYPEOF(temp) THEN
|
|
temp := factor1(temp);
|
|
END_IF;
|
|
IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
loc_dmn_itvl := temp;
|
|
RETURN (bool((loc_dmn_itvl.min <= idx_rng_itvl.min) AND (idx_rng_itvl.max <= loc_dmn_itvl.max + 1)));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION check_sparse_loc_range
|
|
(locrng : tuple_space;
|
|
base : zero_or_one;
|
|
shape : LIST [1:?] OF positive_integer;
|
|
order : ordering_type ) : BOOLEAN;
|
|
LOCAL
|
|
mthspc : maths_space;
|
|
interval : finite_integer_interval;
|
|
i : INTEGER;
|
|
END_LOCAL;
|
|
IF space_dimension(locrng) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
mthspc := factor1(locrng);
|
|
IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(mthspc)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
interval := mthspc;
|
|
IF order = by_rows THEN
|
|
i := 2;
|
|
ELSE
|
|
i := 1;
|
|
END_IF;
|
|
RETURN (bool((interval.min >= base) AND (interval.max <= base + shape[i] - 1)));
|
|
END_FUNCTION;
|
|
|
|
FUNCTION check_text_alignment
|
|
(ct : composite_text ) : BOOLEAN;
|
|
LOCAL
|
|
a : SET OF text_alignment := [];
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO HIINDEX(ct.collected_text);
|
|
a := a + [ ct.collected_text[i]\text_literal.alignment ];
|
|
END_REPEAT;
|
|
RETURN (SIZEOF(a) = 1);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION check_text_font
|
|
(ct : composite_text ) : BOOLEAN;
|
|
LOCAL
|
|
f : SET OF font_select := [];
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO HIINDEX(ct.collected_text);
|
|
f := f + [ ct.collected_text[i]\text_literal.font ];
|
|
END_REPEAT;
|
|
RETURN (SIZEOF(f) <= 1);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
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 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.CHARACTERIZED_CLASS' ] * TYPEOF(item)) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.CLASSIFIED_ITEM' ] * TYPEOF(item)) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
IF role\classification_role.name = 'definitional' THEN
|
|
IF NOT (SIZEOF(QUERY (it <* aia\applied_classification_assignment.items| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PRODUCT', 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_FORMATION', 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION collect_joints
|
|
(items : SET [1:?] OF pair_representation_relationship ) : SET [0:?] OF kinematic_joint;
|
|
LOCAL
|
|
result : SET OF kinematic_joint := [];
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO HIINDEX(items);
|
|
result := result + items[i].transformation_operator.joint;
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION compare_basis_and_coef
|
|
(basis : LIST [1:?] OF b_spline_basis;
|
|
coef : maths_function ) : BOOLEAN;
|
|
LOCAL
|
|
shape : LIST OF positive_integer;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(basis) OR NOT EXISTS(coef) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
shape := shape_of_array(coef);
|
|
IF NOT EXISTS(shape) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF SIZEOF(shape) < SIZEOF(basis) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(basis);
|
|
IF (basis[i].num_basis = shape[i]) <> TRUE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION compatible_complex_number_regions
|
|
(sp1 : maths_space;
|
|
sp2 : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
typenames : SET OF STRING := stripped_typeof(sp1);
|
|
crgn1 : cartesian_complex_number_region;
|
|
crgn2 : cartesian_complex_number_region;
|
|
prgn1 : polar_complex_number_region;
|
|
prgn2 : polar_complex_number_region;
|
|
prgn1c2 : polar_complex_number_region;
|
|
prgn2c1 : polar_complex_number_region;
|
|
sp1_is_crgn : BOOLEAN;
|
|
sp2_is_crgn : BOOLEAN;
|
|
END_LOCAL;
|
|
IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN
|
|
sp1_is_crgn := TRUE;
|
|
crgn1 := sp1;
|
|
ELSE
|
|
IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN
|
|
sp1_is_crgn := FALSE;
|
|
prgn1 := sp1;
|
|
ELSE
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
typenames := stripped_typeof(sp2);
|
|
IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN
|
|
sp2_is_crgn := TRUE;
|
|
crgn2 := sp2;
|
|
ELSE
|
|
IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN
|
|
sp2_is_crgn := FALSE;
|
|
prgn2 := sp2;
|
|
ELSE
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
IF sp1_is_crgn AND sp2_is_crgn THEN
|
|
RETURN (compatible_intervals(crgn1.real_constraint, crgn2.real_constraint) AND compatible_intervals(crgn1.imag_constraint, crgn2.imag_constraint));
|
|
END_IF;
|
|
IF ((NOT sp1_is_crgn AND NOT sp2_is_crgn) AND (prgn1.centre.real_part = prgn2.centre.real_part)) AND (prgn1.centre.imag_part = prgn2.centre.imag_part) THEN
|
|
IF NOT compatible_intervals(prgn1.distance_constraint, prgn2.distance_constraint) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF compatible_intervals(prgn1.direction_constraint, prgn2.direction_constraint) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF (prgn1.direction_constraint.max > 3.14159) AND (prgn2.direction_constraint.max < 3.14159) THEN
|
|
RETURN (compatible_intervals(prgn2.direction_constraint, make_finite_real_interval(-3.14159, open, prgn1.direction_constraint.max - 2.0 * 3.14159, prgn1.direction_constraint.max_closure)));
|
|
END_IF;
|
|
IF (prgn2.direction_constraint.max > 3.14159) AND (prgn1.direction_constraint.max < 3.14159) THEN
|
|
RETURN (compatible_intervals(prgn1.direction_constraint, make_finite_real_interval(-3.14159, open, prgn2.direction_constraint.max - 2.0 * 3.14159, prgn2.direction_constraint.max_closure)));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF sp1_is_crgn AND NOT sp2_is_crgn THEN
|
|
crgn2 := enclose_pregion_in_cregion(prgn2);
|
|
prgn1 := enclose_cregion_in_pregion(crgn1, prgn2.centre);
|
|
RETURN (compatible_complex_number_regions(crgn1, crgn2) AND compatible_complex_number_regions(prgn1, prgn2));
|
|
END_IF;
|
|
IF NOT sp1_is_crgn AND sp2_is_crgn THEN
|
|
crgn1 := enclose_pregion_in_cregion(prgn1);
|
|
prgn2 := enclose_cregion_in_pregion(crgn2, prgn1.centre);
|
|
RETURN (compatible_complex_number_regions(crgn1, crgn2) AND compatible_complex_number_regions(prgn1, prgn2));
|
|
END_IF;
|
|
prgn1c2 := enclose_pregion_in_pregion(prgn1, prgn2.centre);
|
|
prgn2c1 := enclose_pregion_in_pregion(prgn2, prgn1.centre);
|
|
RETURN (compatible_complex_number_regions(prgn1, prgn2c1) AND compatible_complex_number_regions(prgn1c2, prgn2));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION compatible_es_values
|
|
(esval1 : elementary_space_enumerators;
|
|
esval2 : elementary_space_enumerators ) : BOOLEAN;
|
|
LOCAL
|
|
esval1_is_numeric : LOGICAL;
|
|
esval2_is_numeric : LOGICAL;
|
|
END_LOCAL;
|
|
IF ((esval1 = esval2) OR (esval1 = es_generics)) OR (esval2 = es_generics) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
esval1_is_numeric := (esval1 >= es_numbers) AND (esval1 <= es_integers);
|
|
esval2_is_numeric := (esval2 >= es_numbers) AND (esval2 <= es_integers);
|
|
IF esval1_is_numeric AND (esval2 = es_numbers) OR esval2_is_numeric AND (esval1 = es_numbers) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF esval1_is_numeric XOR esval2_is_numeric THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF (esval1 = es_logicals) AND (esval2 = es_booleans) OR (esval1 = es_booleans) AND (esval2 = es_logicals) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION compatible_intervals
|
|
(sp1 : maths_space;
|
|
sp2 : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
amin : REAL;
|
|
amax : REAL;
|
|
END_LOCAL;
|
|
IF min_exists(sp1) AND max_exists(sp2) THEN
|
|
amin := real_min(sp1);
|
|
amax := real_max(sp2);
|
|
IF amin > amax THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF amin = amax THEN
|
|
RETURN (min_included(sp1) AND max_included(sp2));
|
|
END_IF;
|
|
END_IF;
|
|
IF min_exists(sp2) AND max_exists(sp1) THEN
|
|
amin := real_min(sp2);
|
|
amax := real_max(sp1);
|
|
IF amin > amax THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF amin = amax THEN
|
|
RETURN (min_included(sp2) AND max_included(sp1));
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION compatible_spaces
|
|
(sp1 : maths_space;
|
|
sp2 : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
types1 : SET OF STRING := stripped_typeof(sp1);
|
|
types2 : SET OF STRING := stripped_typeof(sp2);
|
|
lgcl : LOGICAL := UNKNOWN;
|
|
m : INTEGER;
|
|
n : INTEGER;
|
|
s1 : maths_space;
|
|
s2 : maths_space;
|
|
END_LOCAL;
|
|
IF 'FINITE_SPACE' IN types1 THEN
|
|
REPEAT i := 1 TO SIZEOF(sp1\finite_space.members);
|
|
lgcl := member_of(sp1\finite_space.members[i], sp2);
|
|
IF lgcl <> FALSE THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FINITE_SPACE' IN types2 THEN
|
|
REPEAT i := 1 TO SIZEOF(sp2\finite_space.members);
|
|
lgcl := member_of(sp2\finite_space.members[i], sp1);
|
|
IF lgcl <> FALSE THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'ELEMENTARY_SPACE' IN types1 THEN
|
|
IF sp1\elementary_space.space_id = es_generics THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
RETURN (compatible_es_values(sp1\elementary_space.space_id, sp2\elementary_space.space_id));
|
|
END_IF;
|
|
IF (('FINITE_INTEGER_INTERVAL' IN types2) OR ('INTEGER_INTERVAL_FROM_MIN' IN types2)) OR ('INTEGER_INTERVAL_TO_MAX' IN types2) THEN
|
|
RETURN (compatible_es_values(sp1\elementary_space.space_id, es_integers));
|
|
END_IF;
|
|
IF (('FINITE_REAL_INTERVAL' IN types2) OR ('REAL_INTERVAL_FROM_MIN' IN types2)) OR ('REAL_INTERVAL_TO_MAX' IN types2) THEN
|
|
RETURN (compatible_es_values(sp1\elementary_space.space_id, es_reals));
|
|
END_IF;
|
|
IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types2) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types2) THEN
|
|
RETURN (compatible_es_values(sp1\elementary_space.space_id, es_complex_numbers));
|
|
END_IF;
|
|
IF 'TUPLE_SPACE' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN types2 THEN
|
|
RETURN (bool(sp1\elementary_space.space_id = es_maths_functions));
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
IF sp2\elementary_space.space_id = es_generics THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF (('FINITE_INTEGER_INTERVAL' IN types1) OR ('INTEGER_INTERVAL_FROM_MIN' IN types1)) OR ('INTEGER_INTERVAL_TO_MAX' IN types1) THEN
|
|
RETURN (compatible_es_values(sp2\elementary_space.space_id, es_integers));
|
|
END_IF;
|
|
IF (('FINITE_REAL_INTERVAL' IN types1) OR ('REAL_INTERVAL_FROM_MIN' IN types1)) OR ('REAL_INTERVAL_TO_MAX' IN types1) THEN
|
|
RETURN (compatible_es_values(sp2\elementary_space.space_id, es_reals));
|
|
END_IF;
|
|
IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types1) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types1) THEN
|
|
RETURN (compatible_es_values(sp2\elementary_space.space_id, es_complex_numbers));
|
|
END_IF;
|
|
IF 'TUPLE_SPACE' IN types1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN types1 THEN
|
|
RETURN (bool(sp2\elementary_space.space_id = es_maths_functions));
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF subspace_of_es(sp1, es_integers) THEN
|
|
IF subspace_of_es(sp2, es_integers) THEN
|
|
RETURN (compatible_intervals(sp1, sp2));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF subspace_of_es(sp2, es_integers) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF subspace_of_es(sp1, es_reals) THEN
|
|
IF subspace_of_es(sp2, es_reals) THEN
|
|
RETURN (compatible_intervals(sp1, sp2));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF subspace_of_es(sp2, es_reals) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF subspace_of_es(sp1, es_complex_numbers) THEN
|
|
IF subspace_of_es(sp2, es_complex_numbers) THEN
|
|
RETURN (compatible_complex_number_regions(sp1, sp2));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF subspace_of_es(sp2, es_complex_numbers) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN
|
|
IF sp1\uniform_product_space.exponent <> sp2\uniform_product_space.exponent THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (compatible_spaces(sp1\uniform_product_space.base, sp2\uniform_product_space.base));
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN types2 THEN
|
|
n := SIZEOF(sp2\listed_product_space.factors);
|
|
IF sp1\uniform_product_space.exponent <> n THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO n;
|
|
IF NOT compatible_spaces(sp1\uniform_product_space.base, sp2\listed_product_space.factors[i]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN
|
|
m := sp1\uniform_product_space.exponent;
|
|
n := space_dimension(sp2\extended_tuple_space.base);
|
|
IF m < n THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF m = n THEN
|
|
RETURN (compatible_spaces(sp1, sp2\extended_tuple_space.base));
|
|
END_IF;
|
|
RETURN (compatible_spaces(sp1, assoc_product_space(sp2\extended_tuple_space.base, make_uniform_product_space(sp2\extended_tuple_space.extender, m - n))));
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN types1 THEN
|
|
n := SIZEOF(sp1\listed_product_space.factors);
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN
|
|
IF n <> sp2\uniform_product_space.exponent THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO n;
|
|
IF NOT compatible_spaces(sp2\uniform_product_space.base, sp1\listed_product_space.factors[i]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN types2 THEN
|
|
IF n <> SIZEOF(sp2\listed_product_space.factors) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO n;
|
|
IF NOT compatible_spaces(sp1\listed_product_space.factors[i], sp2\listed_product_space.factors[i]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN
|
|
m := space_dimension(sp2\extended_tuple_space.base);
|
|
IF n < m THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF n = m THEN
|
|
RETURN (compatible_spaces(sp1, sp2\extended_tuple_space.base));
|
|
END_IF;
|
|
RETURN (compatible_spaces(sp1, assoc_product_space(sp2\extended_tuple_space.base, make_uniform_product_space(sp2\extended_tuple_space.extender, n - m))));
|
|
END_IF;
|
|
IF schema_prefix + 'FUNCTION_SPACE' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN
|
|
IF ('UNIFORM_PRODUCT_SPACE' IN types2) OR ('LISTED_PRODUCT_SPACE' IN types2) THEN
|
|
RETURN (compatible_spaces(sp2, sp1));
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN
|
|
IF NOT compatible_spaces(sp1\extended_tuple_space.extender, sp2\extended_tuple_space.extender) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
n := space_dimension(sp1\extended_tuple_space.base);
|
|
m := space_dimension(sp2\extended_tuple_space.base);
|
|
IF n < m THEN
|
|
RETURN (compatible_spaces(assoc_product_space(sp1\extended_tuple_space.base, make_uniform_product_space(sp1\extended_tuple_space.extender, m - n)), sp2\extended_tuple_space.base));
|
|
END_IF;
|
|
IF n = m THEN
|
|
RETURN (compatible_spaces(sp1\extended_tuple_space.base, sp2\extended_tuple_space.base));
|
|
END_IF;
|
|
IF n > m THEN
|
|
RETURN (compatible_spaces(sp1\extended_tuple_space.base, assoc_product_space(sp2\extended_tuple_space.base, make_uniform_product_space(sp2\extended_tuple_space.extender, n - m))));
|
|
END_IF;
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN types1 THEN
|
|
IF 'FUNCTION_SPACE' IN types2 THEN
|
|
s1 := sp1\function_space.domain_argument;
|
|
s2 := sp2\function_space.domain_argument;
|
|
CASE sp1\function_space.domain_constraint OF
|
|
sc_equal :
|
|
BEGIN
|
|
CASE sp2\function_space.domain_constraint OF
|
|
sc_equal :
|
|
lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1);
|
|
sc_subspace :
|
|
lgcl := subspace_of(s1, s2);
|
|
sc_member :
|
|
lgcl := member_of(s1, s2);
|
|
END_CASE;
|
|
END;
|
|
sc_subspace :
|
|
BEGIN
|
|
CASE sp2\function_space.domain_constraint OF
|
|
sc_equal :
|
|
lgcl := subspace_of(s2, s1);
|
|
sc_subspace :
|
|
lgcl := compatible_spaces(s1, s2);
|
|
sc_member :
|
|
lgcl := UNKNOWN;
|
|
END_CASE;
|
|
END;
|
|
sc_member :
|
|
BEGIN
|
|
CASE sp2\function_space.domain_constraint OF
|
|
sc_equal :
|
|
lgcl := member_of(s2, s1);
|
|
sc_subspace :
|
|
lgcl := UNKNOWN;
|
|
sc_member :
|
|
lgcl := compatible_spaces(s1, s2);
|
|
END_CASE;
|
|
END;
|
|
END_CASE;
|
|
IF lgcl = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
s1 := sp1\function_space.range_argument;
|
|
s2 := sp2\function_space.range_argument;
|
|
CASE sp1\function_space.range_constraint OF
|
|
sc_equal :
|
|
BEGIN
|
|
CASE sp2\function_space.range_constraint OF
|
|
sc_equal :
|
|
lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1);
|
|
sc_subspace :
|
|
lgcl := subspace_of(s1, s2);
|
|
sc_member :
|
|
lgcl := member_of(s1, s2);
|
|
END_CASE;
|
|
END;
|
|
sc_subspace :
|
|
BEGIN
|
|
CASE sp2\function_space.range_constraint OF
|
|
sc_equal :
|
|
lgcl := subspace_of(s2, s1);
|
|
sc_subspace :
|
|
lgcl := compatible_spaces(s1, s2);
|
|
sc_member :
|
|
lgcl := UNKNOWN;
|
|
END_CASE;
|
|
END;
|
|
sc_member :
|
|
BEGIN
|
|
CASE sp2\function_space.range_constraint OF
|
|
sc_equal :
|
|
lgcl := member_of(s2, s1);
|
|
sc_subspace :
|
|
lgcl := UNKNOWN;
|
|
sc_member :
|
|
lgcl := compatible_spaces(s1, s2);
|
|
END_CASE;
|
|
END;
|
|
END_CASE;
|
|
IF lgcl = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION composable_sequence
|
|
(operands : LIST [2:?] OF maths_function ) : BOOLEAN;
|
|
REPEAT i := 1 TO SIZEOF(operands) - 1;
|
|
IF NOT compatible_spaces(operands[i].range, operands[(i + 1)].domain) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(c\composite_curve.segments[k].parent_curve)) AND NOT ('STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(c\composite_curve.segments[k].parent_curve))) AND NOT ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.OPEN_SHELL' IN TYPEOF(m.sbsm_boundary[j])) AND NOT ('STEP_MERGED_CAD_SCHEMA.CLOSED_SHELL' IN TYPEOF(m.sbsm_boundary[j])) THEN
|
|
result := FALSE;
|
|
RETURN (result);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 ('STEP_MERGED_CAD_SCHEMA.WIRE_SHELL' IN TYPEOF(m.sbwm_boundary[j])) AND NOT ('STEP_MERGED_CAD_SCHEMA.VERTEX_SHELL' IN TYPEOF(m.sbwm_boundary[j])) THEN
|
|
result := FALSE;
|
|
RETURN (result);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION constraints_param_b_spline
|
|
(degree : INTEGER;
|
|
up_knots : INTEGER;
|
|
up_cp : INTEGER;
|
|
knot_mult : LIST [0:?] OF INTEGER;
|
|
knots : LIST [0:?] OF parameter_value ) : BOOLEAN;
|
|
LOCAL
|
|
result : BOOLEAN := TRUE;
|
|
k : INTEGER;
|
|
sum : INTEGER;
|
|
END_LOCAL;
|
|
sum := knot_mult[1];
|
|
REPEAT i := 2 TO up_knots;
|
|
sum := sum + knot_mult[i];
|
|
END_REPEAT;
|
|
IF (((degree < 1) OR (up_knots < 2)) OR (up_cp < degree)) OR (sum <> degree + up_cp + 2) THEN
|
|
result := FALSE;
|
|
RETURN (result);
|
|
END_IF;
|
|
k := knot_mult[1];
|
|
IF (k < 1) OR (k > degree + 1) THEN
|
|
result := FALSE;
|
|
RETURN (result);
|
|
END_IF;
|
|
REPEAT i := 2 TO up_knots;
|
|
IF (knot_mult[i] < 1) OR (knots[i] <= knots[(i - 1)]) THEN
|
|
result := FALSE;
|
|
RETURN (result);
|
|
END_IF;
|
|
k := knot_mult[i];
|
|
IF (i < up_knots) AND (k > degree) THEN
|
|
result := FALSE;
|
|
RETURN (result);
|
|
END_IF;
|
|
IF (i = up_knots) AND (k > degree + 1) THEN
|
|
result := FALSE;
|
|
RETURN (result);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
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 (('STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(s.segments[i][j].parent_surface)) OR ('STEP_MERGED_CAD_SCHEMA.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF(s.segments[i][j].parent_surface))) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO s.n_u - 1;
|
|
REPEAT j := 1 TO s.n_v;
|
|
IF s.segments[i][j].u_transition = discontinuous THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO s.n_u;
|
|
REPEAT j := 1 TO s.n_v - 1;
|
|
IF s.segments[i][j].v_transition = discontinuous THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
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;
|
|
|
|
-- IN AP214
|
|
FUNCTION convert_plane_angle_for_pair_from_radian
|
|
(pair : kinematic_pair;
|
|
angle_expr : REAL ) : plane_angle_measure;
|
|
LOCAL
|
|
link_rep : kinematic_link_representation (*:= representation_of_link(pair.joint.first_link)*);
|
|
link_cntxt : representation_context;
|
|
pa_units : SET OF unit := [];
|
|
pau : unit;
|
|
conv_factor : REAL := 1.0;
|
|
result : plane_angle_measure;
|
|
END_LOCAL;
|
|
link_cntxt := link_rep\representation.context_of_items;
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(link_cntxt)) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
pa_units := QUERY (unit <* link_cntxt\global_unit_assigned_context.units| 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(unit));
|
|
IF SIZEOF(pa_units) <> 1 THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
pau := pa_units[1];
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.SI_UNIT' IN TYPEOF(pau)) AND NOT ('STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT WHILE 'STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau);
|
|
conv_factor := conv_factor * pau\conversion_based_unit.conversion_factor.value_component;
|
|
pau := pau\conversion_based_unit.conversion_factor.unit_component;
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.SI_UNIT' IN TYPEOF(pau)) AND NOT ('STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) OR NOT ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(pau)) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF pau\si_unit.name <> si_unit_name.radian THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
CASE pau\si_unit.prefix OF
|
|
si_prefix.exa :
|
|
conv_factor := 1.0E+018 * conv_factor;
|
|
si_prefix.peta :
|
|
conv_factor := 1.0E+015 * conv_factor;
|
|
si_prefix.tera :
|
|
conv_factor := 1.0E+012 * conv_factor;
|
|
si_prefix.giga :
|
|
conv_factor := 1.0E+009 * conv_factor;
|
|
si_prefix.mega :
|
|
conv_factor := 1.0E+006 * conv_factor;
|
|
si_prefix.kilo :
|
|
conv_factor := 1000.00 * conv_factor;
|
|
si_prefix.hecto :
|
|
conv_factor := 100.000 * conv_factor;
|
|
si_prefix.deca :
|
|
conv_factor := 10.0 * conv_factor;
|
|
si_prefix.deci :
|
|
conv_factor := 0.100000 * conv_factor;
|
|
si_prefix.centi :
|
|
conv_factor := 0.0100000 * conv_factor;
|
|
si_prefix.milli :
|
|
conv_factor := 0.00100000 * conv_factor;
|
|
si_prefix.micro :
|
|
conv_factor := 1.0E-006 * conv_factor;
|
|
si_prefix.nano :
|
|
conv_factor := 1.0E-009 * conv_factor;
|
|
si_prefix.pico :
|
|
conv_factor := 1.0E-012 * conv_factor;
|
|
si_prefix.femto :
|
|
conv_factor := 1.0E-015 * conv_factor;
|
|
si_prefix.atto :
|
|
conv_factor := 1.0E-018 * conv_factor;
|
|
END_CASE;
|
|
result := angle_expr / conv_factor;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
FUNCTION convert_spatial_to_ypr_rotation
|
|
(pair : kinematic_pair;
|
|
rotation : spatial_rotation ) : ypr_rotation;
|
|
LOCAL
|
|
axis : direction;
|
|
angle : plane_angle_measure;
|
|
conv_angle : plane_angle_measure;
|
|
ya : plane_angle_measure;
|
|
pa : plane_angle_measure;
|
|
ra : plane_angle_measure;
|
|
ucf : REAL;
|
|
dx : REAL;
|
|
dy : REAL;
|
|
dz : REAL;
|
|
s_a : REAL;
|
|
c_a : REAL;
|
|
rotmat : ARRAY [1:3] OF ARRAY [1:3] OF REAL;
|
|
cm1 : REAL;
|
|
s_y : REAL;
|
|
c_y : REAL;
|
|
s_r : REAL;
|
|
c_r : REAL;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.YPR_ROTATION' IN TYPEOF(rotation) THEN
|
|
RETURN (rotation);
|
|
END_IF;
|
|
axis := normalise(rotation\rotation_about_direction.direction_of_axis);
|
|
angle := rotation\rotation_about_direction.rotation_angle;
|
|
IF angle = 0.0 THEN
|
|
RETURN ([ 0.0, 0.0, 0.0 ]);
|
|
END_IF;
|
|
dx := axis.direction_ratios[1];
|
|
dy := axis.direction_ratios[2];
|
|
dz := axis.direction_ratios[3];
|
|
conv_angle := plane_angle_for_pair_in_radian(pair, angle);
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(conv_angle)) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
ucf := angle / conv_angle;
|
|
s_a := sin(conv_angle);
|
|
c_a := cos(conv_angle);
|
|
IF (dy = 0.0) AND (dx * dz = 0.0) THEN
|
|
REPEAT WHILE conv_angle <= -3.14159;
|
|
conv_angle := conv_angle + 2.0 * 3.14159;
|
|
END_REPEAT;
|
|
REPEAT WHILE conv_angle > 3.14159;
|
|
conv_angle := conv_angle - 2.0 * 3.14159;
|
|
END_REPEAT;
|
|
ya := ucf * conv_angle;
|
|
IF conv_angle <> 3.14159 THEN
|
|
ra := -ya;
|
|
ELSE
|
|
ra := ya;
|
|
END_IF;
|
|
IF dx <> 0.0 THEN
|
|
IF dx > 0.0 THEN
|
|
RETURN ([ 0.0, 0.0, ya ]);
|
|
ELSE
|
|
RETURN ([ 0.0, 0.0, ra ]);
|
|
END_IF;
|
|
ELSE
|
|
IF dz > 0.0 THEN
|
|
RETURN ([ ya, 0.0, 0.0 ]);
|
|
ELSE
|
|
RETURN ([ ra, 0.0, 0.0 ]);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
IF ((dy <> 0.0) AND (dx = 0.0)) AND (dz = 0.0) THEN
|
|
IF c_a >= 0.0 THEN
|
|
ya := 0.0;
|
|
ra := 0.0;
|
|
ELSE
|
|
ya := ucf * 3.14159;
|
|
ra := ya;
|
|
END_IF;
|
|
pa := ucf * atan(s_a, ABS(c_a));
|
|
IF dy < 0.0 THEN
|
|
pa := -pa;
|
|
END_IF;
|
|
RETURN ([ ya, pa, ra ]);
|
|
END_IF;
|
|
cm1 := 1.0 - c_a;
|
|
rotmat := [ [ dx * dx * cm1 + c_a, dx * dy * cm1 - dz * s_a, dx * dz * cm1 + dy * s_a ], [ dx * dy * cm1 + dz * s_a, dy * dy * cm1 + c_a, dy * dz * cm1 - dx * s_a ], [ dx * dz * cm1 - dy * s_a, dy * dz * cm1 + dx * s_a, dz * dz * cm1 + c_a ] ];
|
|
IF ABS(rotmat[1][3]) = 1.0 THEN
|
|
BEGIN
|
|
IF rotmat[1][3] = 1.0 THEN
|
|
pa := 0.500000 * 3.14159;
|
|
ELSE
|
|
pa := -0.500000 * 3.14159;
|
|
END_IF;
|
|
ra := 0.0;
|
|
ya := atan(rotmat[2][1], rotmat[2][2]);
|
|
IF rotmat[2][2] < 0.0 THEN
|
|
IF ya <= 0.0 THEN
|
|
ya := ya + 3.14159;
|
|
ELSE
|
|
ya := ya - 3.14159;
|
|
END_IF;
|
|
END_IF;
|
|
END;
|
|
ELSE
|
|
BEGIN
|
|
ya := atan(-rotmat[1][2], rotmat[1][1]);
|
|
IF rotmat[1][1] < 0.0 THEN
|
|
IF ya <= 0.0 THEN
|
|
ya := ya + 3.14159;
|
|
ELSE
|
|
ya := ya - 3.14159;
|
|
END_IF;
|
|
END_IF;
|
|
ra := atan(-rotmat[2][3], rotmat[3][3]);
|
|
IF rotmat[3][3] < 0.0 THEN
|
|
IF ra <= 0.0 THEN
|
|
ra := ra + 3.14159;
|
|
ELSE
|
|
ra := ra - 3.14159;
|
|
END_IF;
|
|
END_IF;
|
|
s_y := sin(ya);
|
|
c_y := cos(ya);
|
|
s_r := sin(ra);
|
|
c_r := cos(ra);
|
|
IF ((ABS(s_y) > ABS(c_y)) AND (ABS(s_y) > ABS(s_r))) AND (ABS(s_y) > ABS(c_r)) THEN
|
|
cm1 := -rotmat[1][2] / s_y;
|
|
ELSE
|
|
IF (ABS(c_y) > ABS(s_r)) AND (ABS(c_y) > ABS(c_r)) THEN
|
|
cm1 := rotmat[1][1] / c_y;
|
|
ELSE
|
|
IF ABS(s_r) > ABS(c_r) THEN
|
|
cm1 := -rotmat[2][3] / s_r;
|
|
ELSE
|
|
cm1 := rotmat[3][3] / c_r;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
pa := atan(rotmat[1][3], cm1);
|
|
END;
|
|
END_IF;
|
|
ya := ya * ucf;
|
|
pa := pa * ucf;
|
|
ra := ra * ucf;
|
|
RETURN ([ ya, pa, ra ]);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION convert_to_literal
|
|
(val : maths_atom ) : generic_literal;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(val);
|
|
END_LOCAL;
|
|
IF 'INTEGER' IN types THEN
|
|
RETURN (make_int_literal(val));
|
|
END_IF;
|
|
IF 'REAL' IN types THEN
|
|
RETURN (make_real_literal(val));
|
|
END_IF;
|
|
IF 'BOOLEAN' IN types THEN
|
|
RETURN (make_boolean_literal(val));
|
|
END_IF;
|
|
IF 'STRING' IN types THEN
|
|
RETURN (make_string_literal(val));
|
|
END_IF;
|
|
IF 'LOGICAL' IN types THEN
|
|
RETURN (make_logical_literal(val));
|
|
END_IF;
|
|
IF 'BINARY' IN types THEN
|
|
RETURN (make_binary_literal(val));
|
|
END_IF;
|
|
IF schema_prefix + 'MATHS_ENUM_ATOM' IN types THEN
|
|
RETURN (make_maths_enum_literal(val));
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION convert_to_maths_function
|
|
(func : maths_function_select ) : maths_function;
|
|
LOCAL
|
|
efenum : elementary_function_enumerators;
|
|
mthfun : maths_function;
|
|
END_LOCAL;
|
|
IF schema_prefix + 'MATHS_FUNCTION' IN TYPEOF(func) THEN
|
|
mthfun := func;
|
|
ELSE
|
|
efenum := func;
|
|
mthfun := make_elementary_function(efenum);
|
|
END_IF;
|
|
RETURN (mthfun);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION convert_to_maths_value
|
|
(val : GENERIC : G ) : maths_value;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(val);
|
|
ival : maths_integer;
|
|
rval : maths_real;
|
|
nval : maths_number;
|
|
tfval : maths_boolean;
|
|
lval : maths_logical;
|
|
sval : maths_string;
|
|
bval : maths_binary;
|
|
tval : maths_tuple := the_empty_maths_tuple;
|
|
mval : maths_value;
|
|
END_LOCAL;
|
|
IF schema_prefix + 'MATHS_VALUE' IN types THEN
|
|
RETURN (val);
|
|
END_IF;
|
|
IF 'INTEGER' IN types THEN
|
|
ival := val;
|
|
RETURN (ival);
|
|
END_IF;
|
|
IF 'REAL' IN types THEN
|
|
rval := val;
|
|
RETURN (rval);
|
|
END_IF;
|
|
IF 'NUMBER' IN types THEN
|
|
nval := val;
|
|
RETURN (nval);
|
|
END_IF;
|
|
IF 'BOOLEAN' IN types THEN
|
|
tfval := val;
|
|
RETURN (tfval);
|
|
END_IF;
|
|
IF 'LOGICAL' IN types THEN
|
|
lval := val;
|
|
RETURN (lval);
|
|
END_IF;
|
|
IF 'STRING' IN types THEN
|
|
sval := val;
|
|
RETURN (sval);
|
|
END_IF;
|
|
IF 'BINARY' IN types THEN
|
|
bval := val;
|
|
RETURN (bval);
|
|
END_IF;
|
|
IF 'LIST' IN types THEN
|
|
REPEAT i := 1 TO SIZEOF(val);
|
|
mval := convert_to_maths_value(val[i]);
|
|
IF NOT EXISTS(mval) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
INSERT( tval, mval, i - 1 );
|
|
END_REPEAT;
|
|
RETURN (tval);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION convert_to_operand
|
|
(val : maths_value ) : generic_expression;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof(val);
|
|
END_LOCAL;
|
|
IF 'GENERIC_EXPRESSION' IN types THEN
|
|
RETURN (val);
|
|
END_IF;
|
|
IF 'MATHS_ATOM' IN types THEN
|
|
RETURN (convert_to_literal(val));
|
|
END_IF;
|
|
IF 'ATOM_BASED_VALUE' IN types THEN
|
|
RETURN (make_atom_based_literal(val));
|
|
END_IF;
|
|
IF 'MATHS_TUPLE' IN types THEN
|
|
RETURN (make_maths_tuple_literal(val));
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION convert_to_operands
|
|
(values : AGGREGATE OF maths_value ) : LIST [0:?] OF generic_expression;
|
|
LOCAL
|
|
operands : LIST OF generic_expression := [];
|
|
loc : INTEGER := 0;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(values) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT i := LOINDEX(values) TO HIINDEX(values);
|
|
INSERT( operands, convert_to_operand(values[i]), loc );
|
|
loc := loc + 1;
|
|
END_REPEAT;
|
|
RETURN (operands);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION convert_to_operands_prcmfn
|
|
(srcdom : maths_space_or_function;
|
|
prepfun : LIST [0:?] OF maths_function;
|
|
finfun : maths_function_select ) : LIST [2:?] OF generic_expression;
|
|
LOCAL
|
|
operands : LIST OF generic_expression := [];
|
|
END_LOCAL;
|
|
INSERT( operands, srcdom, 0 );
|
|
REPEAT i := 1 TO SIZEOF(prepfun);
|
|
INSERT( operands, prepfun[i], i );
|
|
END_REPEAT;
|
|
INSERT( operands, convert_to_maths_function(finfun), SIZEOF(prepfun) + 1 );
|
|
RETURN (operands);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION coordinated_pair_link_representation
|
|
(link : kinematic_link;
|
|
pair_placement : rigid_placement ) : BOOLEAN;
|
|
LOCAL
|
|
link_rep : kinematic_link_representation;
|
|
END_LOCAL;
|
|
link_rep := representation_of_link(link);
|
|
IF link_rep = ? THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
IF NOT (pair_placement IN link_rep\representation.items) THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION cross_product
|
|
(arg1 : direction;
|
|
arg2 : direction ) : vector;
|
|
LOCAL
|
|
mag : REAL;
|
|
res : direction;
|
|
v1 : LIST [3:3] OF REAL;
|
|
v2 : LIST [3:3] OF REAL;
|
|
result : vector;
|
|
END_LOCAL;
|
|
IF (NOT EXISTS(arg1) OR (arg1.dim = 2)) OR (NOT EXISTS(arg2) OR (arg2.dim = 2)) THEN
|
|
RETURN (?);
|
|
ELSE
|
|
BEGIN
|
|
v1 := normalise(arg1).direction_ratios;
|
|
v2 := normalise(arg2).direction_ratios;
|
|
res := dummy_gri || direction([ (v1[2] * v2[3] - v1[3] * v2[2]), (v1[3] * v2[1] - v1[1] * v2[3]), (v1[1] * v2[2] - v1[2] * v2[1]) ]);
|
|
mag := 0.0;
|
|
REPEAT i := 1 TO 3;
|
|
mag := mag + res.direction_ratios[i] * res.direction_ratios[i];
|
|
END_REPEAT;
|
|
IF mag > 0.0 THEN
|
|
result := dummy_gri || vector(res, SQRT(mag));
|
|
ELSE
|
|
result := dummy_gri || vector(arg1, 0.0);
|
|
END_IF;
|
|
RETURN (result);
|
|
END;
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
FUNCTION curve_weights_positive
|
|
(b : rational_b_spline_curve ) : BOOLEAN;
|
|
LOCAL
|
|
result : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
REPEAT i := 0 TO b.upper_index_on_control_points;
|
|
IF b.weights[i] <= 0.0 THEN
|
|
result := FALSE;
|
|
RETURN (result);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION default_tolerance_table_cell_wr3
|
|
(agg : compound_item_definition ) : BOOLEAN;
|
|
BEGIN
|
|
IF (SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'significant number of digits'))) = 1) OR (SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'lower limit'))) = 1) AND (SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION default_tolerance_table_cell_wr4
|
|
(agg : compound_item_definition ) : BOOLEAN;
|
|
BEGIN
|
|
IF (SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'plus minus tolerance value'))) = 1) OR (SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'lower tolerance value'))) = 1) AND (SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION default_tolerance_table_cell_wr5
|
|
(agg : compound_item_definition ) : BOOLEAN;
|
|
BEGIN
|
|
IF (SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) <= 1) AND (SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = SIZEOF(QUERY (i <* agg| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\representation_item.name = 'cell description')))) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION definite_integral_check
|
|
(domain : tuple_space;
|
|
vrblint : input_selector;
|
|
lowerinf : BOOLEAN;
|
|
upperinf : BOOLEAN ) : BOOLEAN;
|
|
LOCAL
|
|
domn : tuple_space := domain;
|
|
fspc : maths_space;
|
|
dim : nonnegative_integer;
|
|
k : positive_integer;
|
|
END_LOCAL;
|
|
IF (space_dimension(domain) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(domain))) THEN
|
|
domn := factor1(domain);
|
|
END_IF;
|
|
dim := space_dimension(domn);
|
|
k := vrblint;
|
|
IF k > dim THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
fspc := factor_space(domn, k);
|
|
IF NOT (schema_prefix + 'REAL_INTERVAL' IN TYPEOF(fspc)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF lowerinf AND min_exists(fspc) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF upperinf AND max_exists(fspc) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION definite_integral_expr_check
|
|
(operands : LIST [2:?] OF generic_expression;
|
|
lowerinf : BOOLEAN;
|
|
upperinf : BOOLEAN ) : BOOLEAN;
|
|
LOCAL
|
|
nops : INTEGER := 2;
|
|
vspc : maths_space;
|
|
dim : nonnegative_integer;
|
|
k : positive_integer;
|
|
bspc : maths_space;
|
|
END_LOCAL;
|
|
IF NOT lowerinf THEN
|
|
nops := nops + 1;
|
|
END_IF;
|
|
IF NOT upperinf THEN
|
|
nops := nops + 1;
|
|
END_IF;
|
|
IF SIZEOF(operands) <> nops THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF NOT ('GENERIC_VARIABLE' IN stripped_typeof(operands[2])) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF NOT has_values_space(operands[2]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
vspc := values_space_of(operands[2]);
|
|
IF NOT ('REAL_INTERVAL' IN stripped_typeof(vspc)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF lowerinf THEN
|
|
IF min_exists(vspc) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
k := 3;
|
|
ELSE
|
|
IF NOT has_values_space(operands[3]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
bspc := values_space_of(operands[3]);
|
|
IF NOT compatible_spaces(bspc, vspc) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
k := 4;
|
|
END_IF;
|
|
IF upperinf THEN
|
|
IF max_exists(vspc) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
ELSE
|
|
IF NOT has_values_space(operands[k]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
bspc := values_space_of(operands[k]);
|
|
IF NOT compatible_spaces(bspc, vspc) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP203e2/AP242
|
|
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 := FALSE;
|
|
set_of_types : SET OF STRING := [];
|
|
END_LOCAL;
|
|
IF EXISTS(set_of_input_instances) THEN
|
|
number_of_input_instances := SIZEOF(set_of_input_instances);
|
|
set_of_input_types := set_of_input_types + 'GENERIC';
|
|
REPEAT i := 1 TO number_of_input_instances;
|
|
bag_of_referring_instances := USEDIN(set_of_input_instances[i], '');
|
|
IF EXISTS(bag_of_referring_instances) THEN
|
|
number_of_referring_instances := SIZEOF(bag_of_referring_instances);
|
|
dependently_instantiated_flag := FALSE;
|
|
REPEAT j := 1 TO number_of_referring_instances;
|
|
set_of_types := TYPEOF(bag_of_referring_instances[j]);
|
|
IF set_of_types <= set_of_input_types THEN
|
|
IF NOT (bag_of_referring_instances[j] IN previous_in_chain) THEN
|
|
previous_in_chain_plus := previous_in_chain + set_of_input_instances[i];
|
|
IF dependently_instantiated([ bag_of_referring_instances[j] ], set_of_input_types, previous_in_chain_plus) THEN
|
|
dependently_instantiated_flag := FALSE;
|
|
ESCAPE;
|
|
ELSE
|
|
SKIP;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
dependently_instantiated_flag := FALSE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF NOT dependently_instantiated_flag THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP203e2/AP242
|
|
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;
|
|
|
|
-- IN AP242
|
|
FUNCTION derive_definite_integral_domain
|
|
(igrl : definite_integral_function ) : tuple_space;
|
|
FUNCTION process_product_space
|
|
(spc : product_space;
|
|
idx : INTEGER;
|
|
prefix : INTEGER;
|
|
vdomn : maths_space ) : product_space;
|
|
LOCAL
|
|
uspc : uniform_product_space;
|
|
expnt : INTEGER;
|
|
factors : LIST OF maths_space;
|
|
END_LOCAL;
|
|
IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN TYPEOF(spc) THEN
|
|
uspc := spc;
|
|
expnt := uspc.exponent + prefix;
|
|
IF idx <= uspc.exponent THEN
|
|
expnt := expnt - 1;
|
|
END_IF;
|
|
IF expnt = 0 THEN
|
|
RETURN (make_listed_product_space([]));
|
|
ELSE
|
|
RETURN (make_uniform_product_space(uspc.base, expnt));
|
|
END_IF;
|
|
ELSE
|
|
factors := spc\listed_product_space.factors;
|
|
IF idx <= SIZEOF(factors) THEN
|
|
REMOVE( factors, idx );
|
|
END_IF;
|
|
IF prefix > 0 THEN
|
|
INSERT( factors, vdomn, 0 );
|
|
IF prefix > 1 THEN
|
|
INSERT( factors, vdomn, 0 );
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (make_listed_product_space(factors));
|
|
END_IF;
|
|
END_FUNCTION;
|
|
LOCAL
|
|
idomn : tuple_space := igrl.integrand.domain;
|
|
types : SET OF STRING := TYPEOF(idomn);
|
|
idx : INTEGER := igrl.variable_of_integration;
|
|
tupled : BOOLEAN := bool((space_dimension(idomn) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN types));
|
|
prefix : INTEGER := 0;
|
|
espc : extended_tuple_space;
|
|
vdomn : maths_space;
|
|
END_LOCAL;
|
|
IF tupled THEN
|
|
idomn := factor1(idomn);
|
|
types := TYPEOF(idomn);
|
|
END_IF;
|
|
IF igrl.lower_limit_neg_infinity THEN
|
|
prefix := prefix + 1;
|
|
END_IF;
|
|
IF igrl.upper_limit_pos_infinity THEN
|
|
prefix := prefix + 1;
|
|
END_IF;
|
|
vdomn := factor_space(idomn, idx);
|
|
IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN types THEN
|
|
espc := idomn;
|
|
idomn := make_extended_tuple_space(process_product_space(espc.base, idx, prefix, vdomn), espc.extender);
|
|
ELSE
|
|
idomn := process_product_space(idomn, idx, prefix, vdomn);
|
|
END_IF;
|
|
IF tupled THEN
|
|
RETURN (one_tuples_of(idomn));
|
|
ELSE
|
|
RETURN (idomn);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
FUNCTION derive_dimensional_exponents
|
|
(x : unit ) : dimensional_exponents;
|
|
LOCAL
|
|
result : dimensional_exponents := dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION derive_elementary_function_domain
|
|
(ef_val : elementary_function_enumerators ) : tuple_space;
|
|
IF NOT EXISTS(ef_val) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
CASE ef_val OF
|
|
ef_and :
|
|
RETURN (make_extended_tuple_space(the_zero_tuple_space, the_logicals));
|
|
ef_or :
|
|
RETURN (make_extended_tuple_space(the_zero_tuple_space, the_logicals));
|
|
ef_not :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_xor :
|
|
RETURN (make_uniform_product_space(the_logicals, 2));
|
|
ef_negate_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_add_i :
|
|
RETURN (the_integer_tuples);
|
|
ef_subtract_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_multiply_i :
|
|
RETURN (the_integer_tuples);
|
|
ef_divide_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_mod_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_exponentiate_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_eq_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_ne_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_gt_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_lt_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_ge_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_le_i :
|
|
RETURN (make_uniform_product_space(the_integers, 2));
|
|
ef_abs_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_if_i :
|
|
RETURN (make_listed_product_space([ the_logicals, the_integers, the_integers ]));
|
|
ef_negate_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_reciprocal_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_add_r :
|
|
RETURN (the_real_tuples);
|
|
ef_subtract_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_multiply_r :
|
|
RETURN (the_real_tuples);
|
|
ef_divide_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_mod_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_exponentiate_r :
|
|
RETURN (make_listed_product_space([ the_nonnegative_reals, the_reals ]));
|
|
ef_exponentiate_ri :
|
|
RETURN (make_listed_product_space([ the_reals, the_integers ]));
|
|
ef_eq_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_ne_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_gt_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_lt_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_ge_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_le_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_abs_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_acos_r :
|
|
RETURN (make_uniform_product_space(the_neg1_one_interval, 1));
|
|
ef_asin_r :
|
|
RETURN (make_uniform_product_space(the_neg1_one_interval, 1));
|
|
ef_atan2_r :
|
|
RETURN (make_uniform_product_space(the_reals, 2));
|
|
ef_cos_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_exp_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_ln_r :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_log2_r :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_log10_r :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_sin_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_sqrt_r :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_tan_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_if_r :
|
|
RETURN (make_listed_product_space([ the_logicals, the_reals, the_reals ]));
|
|
ef_negate_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_reciprocal_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_add_c :
|
|
RETURN (the_complex_tuples);
|
|
ef_subtract_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 2));
|
|
ef_multiply_c :
|
|
RETURN (the_complex_tuples);
|
|
ef_divide_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 2));
|
|
ef_exponentiate_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 2));
|
|
ef_exponentiate_ci :
|
|
RETURN (make_listed_product_space([ the_complex_numbers, the_integers ]));
|
|
ef_eq_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 2));
|
|
ef_ne_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 2));
|
|
ef_conjugate_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_abs_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_arg_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_cos_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_exp_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_ln_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_sin_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_sqrt_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_tan_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_if_c :
|
|
RETURN (make_listed_product_space([ the_logicals, the_complex_numbers, the_complex_numbers ]));
|
|
ef_subscript_s :
|
|
RETURN (make_listed_product_space([ the_strings, the_integers ]));
|
|
ef_eq_s :
|
|
RETURN (make_uniform_product_space(the_strings, 2));
|
|
ef_ne_s :
|
|
RETURN (make_uniform_product_space(the_strings, 2));
|
|
ef_gt_s :
|
|
RETURN (make_uniform_product_space(the_strings, 2));
|
|
ef_lt_s :
|
|
RETURN (make_uniform_product_space(the_strings, 2));
|
|
ef_ge_s :
|
|
RETURN (make_uniform_product_space(the_strings, 2));
|
|
ef_le_s :
|
|
RETURN (make_uniform_product_space(the_strings, 2));
|
|
ef_subsequence_s :
|
|
RETURN (make_listed_product_space([ the_strings, the_integers, the_integers ]));
|
|
ef_concat_s :
|
|
RETURN (make_extended_tuple_space(the_zero_tuple_space, the_strings));
|
|
ef_size_s :
|
|
RETURN (make_uniform_product_space(the_strings, 1));
|
|
ef_format :
|
|
RETURN (make_listed_product_space([ the_numbers, the_strings ]));
|
|
ef_value :
|
|
RETURN (make_uniform_product_space(the_strings, 1));
|
|
ef_like :
|
|
RETURN (make_uniform_product_space(the_strings, 2));
|
|
ef_if_s :
|
|
RETURN (make_listed_product_space([ the_logicals, the_strings, the_strings ]));
|
|
ef_subscript_b :
|
|
RETURN (make_listed_product_space([ the_binarys, the_integers ]));
|
|
ef_eq_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 2));
|
|
ef_ne_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 2));
|
|
ef_gt_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 2));
|
|
ef_lt_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 2));
|
|
ef_ge_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 2));
|
|
ef_le_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 2));
|
|
ef_subsequence_b :
|
|
RETURN (make_listed_product_space([ the_binarys, the_integers, the_integers ]));
|
|
ef_concat_b :
|
|
RETURN (make_extended_tuple_space(the_zero_tuple_space, the_binarys));
|
|
ef_size_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 1));
|
|
ef_if_b :
|
|
RETURN (make_listed_product_space([ the_logicals, the_binarys, the_binarys ]));
|
|
ef_subscript_t :
|
|
RETURN (make_listed_product_space([ the_tuples, the_integers ]));
|
|
ef_eq_t :
|
|
RETURN (make_uniform_product_space(the_tuples, 2));
|
|
ef_ne_t :
|
|
RETURN (make_uniform_product_space(the_tuples, 2));
|
|
ef_concat_t :
|
|
RETURN (make_extended_tuple_space(the_zero_tuple_space, the_tuples));
|
|
ef_size_t :
|
|
RETURN (make_uniform_product_space(the_tuples, 1));
|
|
ef_entuple :
|
|
RETURN (the_tuples);
|
|
ef_detuple :
|
|
RETURN (make_uniform_product_space(the_generics, 1));
|
|
ef_insert :
|
|
RETURN (make_listed_product_space([ the_tuples, the_generics, the_integers ]));
|
|
ef_remove :
|
|
RETURN (make_listed_product_space([ the_tuples, the_integers ]));
|
|
ef_if_t :
|
|
RETURN (make_listed_product_space([ the_logicals, the_tuples, the_tuples ]));
|
|
ef_sum_it :
|
|
RETURN (make_uniform_product_space(the_integer_tuples, 1));
|
|
ef_product_it :
|
|
RETURN (make_uniform_product_space(the_integer_tuples, 1));
|
|
ef_add_it :
|
|
RETURN (make_extended_tuple_space(the_integer_tuples, the_integer_tuples));
|
|
ef_subtract_it :
|
|
RETURN (make_uniform_product_space(the_integer_tuples, 2));
|
|
ef_scalar_mult_it :
|
|
RETURN (make_listed_product_space([ the_integers, the_integer_tuples ]));
|
|
ef_dot_prod_it :
|
|
RETURN (make_uniform_product_space(the_integer_tuples, 2));
|
|
ef_sum_rt :
|
|
RETURN (make_uniform_product_space(the_real_tuples, 1));
|
|
ef_product_rt :
|
|
RETURN (make_uniform_product_space(the_real_tuples, 1));
|
|
ef_add_rt :
|
|
RETURN (make_extended_tuple_space(the_real_tuples, the_real_tuples));
|
|
ef_subtract_rt :
|
|
RETURN (make_uniform_product_space(the_real_tuples, 2));
|
|
ef_scalar_mult_rt :
|
|
RETURN (make_listed_product_space([ the_reals, the_real_tuples ]));
|
|
ef_dot_prod_rt :
|
|
RETURN (make_uniform_product_space(the_real_tuples, 2));
|
|
ef_norm_rt :
|
|
RETURN (make_uniform_product_space(the_real_tuples, 1));
|
|
ef_sum_ct :
|
|
RETURN (make_uniform_product_space(the_complex_tuples, 1));
|
|
ef_product_ct :
|
|
RETURN (make_uniform_product_space(the_complex_tuples, 1));
|
|
ef_add_ct :
|
|
RETURN (make_extended_tuple_space(the_complex_tuples, the_complex_tuples));
|
|
ef_subtract_ct :
|
|
RETURN (make_uniform_product_space(the_complex_tuples, 2));
|
|
ef_scalar_mult_ct :
|
|
RETURN (make_listed_product_space([ the_complex_numbers, the_complex_tuples ]));
|
|
ef_dot_prod_ct :
|
|
RETURN (make_uniform_product_space(the_complex_tuples, 2));
|
|
ef_norm_ct :
|
|
RETURN (make_uniform_product_space(the_complex_tuples, 1));
|
|
ef_if :
|
|
RETURN (make_listed_product_space([ the_logicals, the_generics, the_generics ]));
|
|
ef_ensemble :
|
|
RETURN (the_tuples);
|
|
ef_member_of :
|
|
RETURN (make_listed_product_space([ the_generics, the_maths_spaces ]));
|
|
OTHERWISE :
|
|
RETURN (?);
|
|
END_CASE;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION derive_elementary_function_range
|
|
(ef_val : elementary_function_enumerators ) : tuple_space;
|
|
IF NOT EXISTS(ef_val) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
CASE ef_val OF
|
|
ef_and :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_or :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_not :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_xor :
|
|
RETURN (make_uniform_product_space(the_logicals, 2));
|
|
ef_negate_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_add_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_subtract_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_multiply_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_divide_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_mod_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_exponentiate_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_eq_i :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ne_i :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_gt_i :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_lt_i :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ge_i :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_le_i :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_abs_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_if_i :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_negate_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_reciprocal_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_add_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_subtract_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_multiply_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_divide_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_mod_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_exponentiate_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_exponentiate_ri :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_eq_r :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ne_r :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_gt_r :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_lt_r :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ge_r :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_le_r :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_abs_r :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_acos_r :
|
|
RETURN (make_uniform_product_space(the_zero_pi_interval, 1));
|
|
ef_asin_r :
|
|
RETURN (make_uniform_product_space(the_neghalfpi_halfpi_interval, 1));
|
|
ef_atan2_r :
|
|
RETURN (make_uniform_product_space(the_negpi_pi_interval, 1));
|
|
ef_cos_r :
|
|
RETURN (make_uniform_product_space(the_neg1_one_interval, 1));
|
|
ef_exp_r :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_ln_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_log2_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_log10_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_sin_r :
|
|
RETURN (make_uniform_product_space(the_neg1_one_interval, 1));
|
|
ef_sqrt_r :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_tan_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_if_r :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_negate_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_reciprocal_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_add_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_subtract_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_multiply_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_divide_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_exponentiate_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_exponentiate_ci :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_eq_c :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ne_c :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_conjugate_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_abs_c :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_arg_c :
|
|
RETURN (make_uniform_product_space(the_negpi_pi_interval, 1));
|
|
ef_cos_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_exp_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_ln_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_sin_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_sqrt_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_tan_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_if_c :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_subscript_s :
|
|
RETURN (make_uniform_product_space(the_strings, 1));
|
|
ef_eq_s :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ne_s :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_gt_s :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_lt_s :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ge_s :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_le_s :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_subsequence_s :
|
|
RETURN (make_uniform_product_space(the_strings, 1));
|
|
ef_concat_s :
|
|
RETURN (make_uniform_product_space(the_strings, 1));
|
|
ef_size_s :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_format :
|
|
RETURN (make_uniform_product_space(the_strings, 1));
|
|
ef_value :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_like :
|
|
RETURN (make_uniform_product_space(the_booleans, 1));
|
|
ef_if_s :
|
|
RETURN (make_uniform_product_space(the_strings, 1));
|
|
ef_subscript_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 1));
|
|
ef_eq_b :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ne_b :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_gt_b :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_lt_b :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ge_b :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_le_b :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_subsequence_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 1));
|
|
ef_concat_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 1));
|
|
ef_size_b :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_if_b :
|
|
RETURN (make_uniform_product_space(the_binarys, 1));
|
|
ef_subscript_t :
|
|
RETURN (make_uniform_product_space(the_generics, 1));
|
|
ef_eq_t :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_ne_t :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
ef_concat_t :
|
|
RETURN (make_uniform_product_space(the_tuples, 1));
|
|
ef_size_t :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_entuple :
|
|
RETURN (make_uniform_product_space(the_tuples, 1));
|
|
ef_detuple :
|
|
RETURN (the_tuples);
|
|
ef_insert :
|
|
RETURN (make_uniform_product_space(the_tuples, 1));
|
|
ef_remove :
|
|
RETURN (make_uniform_product_space(the_tuples, 1));
|
|
ef_if_t :
|
|
RETURN (make_uniform_product_space(the_tuples, 1));
|
|
ef_sum_it :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_product_it :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_add_it :
|
|
RETURN (make_uniform_product_space(the_integer_tuples, 1));
|
|
ef_subtract_it :
|
|
RETURN (make_uniform_product_space(the_integer_tuples, 1));
|
|
ef_scalar_mult_it :
|
|
RETURN (make_uniform_product_space(the_integer_tuples, 1));
|
|
ef_dot_prod_it :
|
|
RETURN (make_uniform_product_space(the_integers, 1));
|
|
ef_sum_rt :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_product_rt :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_add_rt :
|
|
RETURN (make_uniform_product_space(the_real_tuples, 1));
|
|
ef_subtract_rt :
|
|
RETURN (make_uniform_product_space(the_real_tuples, 1));
|
|
ef_scalar_mult_rt :
|
|
RETURN (make_uniform_product_space(the_real_tuples, 1));
|
|
ef_dot_prod_rt :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_norm_rt :
|
|
RETURN (make_uniform_product_space(the_reals, 1));
|
|
ef_sum_ct :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_product_ct :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_add_ct :
|
|
RETURN (make_uniform_product_space(the_complex_tuples, 1));
|
|
ef_subtract_ct :
|
|
RETURN (make_uniform_product_space(the_complex_tuples, 1));
|
|
ef_scalar_mult_ct :
|
|
RETURN (make_uniform_product_space(the_complex_tuples, 1));
|
|
ef_dot_prod_ct :
|
|
RETURN (make_uniform_product_space(the_complex_numbers, 1));
|
|
ef_norm_ct :
|
|
RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
|
|
ef_if :
|
|
RETURN (make_uniform_product_space(the_generics, 1));
|
|
ef_ensemble :
|
|
RETURN (make_uniform_product_space(the_maths_spaces, 1));
|
|
ef_member_of :
|
|
RETURN (make_uniform_product_space(the_logicals, 1));
|
|
OTHERWISE :
|
|
RETURN (?);
|
|
END_CASE;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION derive_finite_function_domain
|
|
(pairs : SET [1:?] OF LIST [2:2] OF maths_value ) : tuple_space;
|
|
LOCAL
|
|
result : SET OF maths_value := [];
|
|
END_LOCAL;
|
|
result := result + list_selected_components(pairs, 1);
|
|
RETURN (one_tuples_of(make_finite_space(result)));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION derive_finite_function_range
|
|
(pairs : SET [1:?] OF LIST [2:2] OF maths_value ) : tuple_space;
|
|
LOCAL
|
|
result : SET OF maths_value := [];
|
|
END_LOCAL;
|
|
result := result + list_selected_components(pairs, 2);
|
|
RETURN (one_tuples_of(make_finite_space(result)));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION derive_function_domain
|
|
(func : maths_function ) : tuple_space;
|
|
LOCAL
|
|
typenames : SET OF STRING := stripped_typeof(func);
|
|
tspace : tuple_space := make_listed_product_space([]);
|
|
shape : LIST OF positive_integer;
|
|
sidxs : LIST OF INTEGER := [ 0 ];
|
|
itvl : finite_integer_interval;
|
|
factors : LIST OF finite_integer_interval := [];
|
|
is_uniform : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
IF 'FINITE_FUNCTION' IN typenames THEN
|
|
RETURN (derive_finite_function_domain(func\finite_function.pairs));
|
|
END_IF;
|
|
IF 'CONSTANT_FUNCTION' IN typenames THEN
|
|
RETURN (domain_from(func\constant_function.source_of_domain));
|
|
END_IF;
|
|
IF 'SELECTOR_FUNCTION' IN typenames THEN
|
|
RETURN (domain_from(func\selector_function.source_of_domain));
|
|
END_IF;
|
|
IF 'ELEMENTARY_FUNCTION' IN typenames THEN
|
|
RETURN (derive_elementary_function_domain(func\elementary_function.func_id));
|
|
END_IF;
|
|
IF 'RESTRICTION_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(func\restriction_function.operand));
|
|
END_IF;
|
|
IF 'REPACKAGING_FUNCTION' IN typenames THEN
|
|
IF func\repackaging_function.input_repack = ro_nochange THEN
|
|
RETURN (func\repackaging_function.operand.domain);
|
|
END_IF;
|
|
IF func\repackaging_function.input_repack = ro_wrap_as_tuple THEN
|
|
RETURN (factor1(func\repackaging_function.operand.domain));
|
|
END_IF;
|
|
IF func\repackaging_function.input_repack = ro_unwrap_tuple THEN
|
|
RETURN (one_tuples_of(func\repackaging_function.operand.domain));
|
|
END_IF;
|
|
RETURN (?);
|
|
END_IF;
|
|
IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN
|
|
shape := shape_of_array(func\unary_generic_expression.operand);
|
|
sidxs := func\reindexed_array_function.starting_indices;
|
|
REPEAT i := 1 TO SIZEOF(shape);
|
|
itvl := make_finite_integer_interval(sidxs[i], sidxs[i] + shape[i] - 1);
|
|
INSERT( factors, itvl, i - 1 );
|
|
IF shape[i] <> shape[1] THEN
|
|
is_uniform := FALSE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF is_uniform THEN
|
|
RETURN (make_uniform_product_space(factors[1], SIZEOF(shape)));
|
|
END_IF;
|
|
RETURN (make_listed_product_space(factors));
|
|
END_IF;
|
|
IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN
|
|
RETURN (func\series_composed_function.operands[1].domain);
|
|
END_IF;
|
|
IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN
|
|
RETURN (domain_from(func\parallel_composed_function.source_of_domain));
|
|
END_IF;
|
|
IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN
|
|
shape := func\explicit_table_function.shape;
|
|
sidxs[1] := func\explicit_table_function.index_base;
|
|
REPEAT i := 1 TO SIZEOF(shape);
|
|
itvl := make_finite_integer_interval(sidxs[1], sidxs[1] + shape[i] - 1);
|
|
INSERT( factors, itvl, i - 1 );
|
|
IF shape[i] <> shape[1] THEN
|
|
is_uniform := FALSE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF is_uniform THEN
|
|
RETURN (make_uniform_product_space(factors[1], SIZEOF(shape)));
|
|
END_IF;
|
|
RETURN (make_listed_product_space(factors));
|
|
END_IF;
|
|
IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(make_uniform_product_space(factor1(func\homogeneous_linear_function.mat.range), func\homogeneous_linear_function.mat\explicit_table_function.shape[func\homogeneous_linear_function.sum_index])));
|
|
END_IF;
|
|
IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(make_uniform_product_space(factor1(func\general_linear_function.mat.range), func\general_linear_function.mat\explicit_table_function.shape[func\general_linear_function.sum_index] - 1)));
|
|
END_IF;
|
|
IF 'B_SPLINE_BASIS' IN typenames THEN
|
|
RETURN (one_tuples_of(make_finite_real_interval(func\b_spline_basis.repeated_knots[func\b_spline_basis.order], closed, func\b_spline_basis.repeated_knots[(func\b_spline_basis.num_basis + 1)], closed)));
|
|
END_IF;
|
|
IF 'B_SPLINE_FUNCTION' IN typenames THEN
|
|
REPEAT i := 1 TO SIZEOF(func\b_spline_function.basis);
|
|
tspace := assoc_product_space(tspace, func\b_spline_function.basis[i].domain);
|
|
END_REPEAT;
|
|
RETURN (one_tuples_of(tspace));
|
|
END_IF;
|
|
IF 'RATIONALIZE_FUNCTION' IN typenames THEN
|
|
RETURN (func\rationalize_function.fun.domain);
|
|
END_IF;
|
|
IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN
|
|
RETURN (func\partial_derivative_function.derivand.domain);
|
|
END_IF;
|
|
IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN
|
|
RETURN (derive_definite_integral_domain(func));
|
|
END_IF;
|
|
IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN
|
|
REPEAT i := 1 TO SIZEOF(func\abstracted_expression_function.variables);
|
|
tspace := assoc_product_space(tspace, one_tuples_of(values_space_of(func\abstracted_expression_function.variables[i])));
|
|
END_REPEAT;
|
|
RETURN (tspace);
|
|
END_IF;
|
|
IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN
|
|
RETURN (values_space_of(func\expression_denoted_function.expr)\function_space.domain_argument);
|
|
END_IF;
|
|
IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(make_listed_product_space([])));
|
|
END_IF;
|
|
IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN
|
|
RETURN (func\imported_curve_function.parametric_domain);
|
|
END_IF;
|
|
IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN
|
|
RETURN (func\imported_surface_function.parametric_domain);
|
|
END_IF;
|
|
IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN
|
|
RETURN (func\imported_volume_function.parametric_domain);
|
|
END_IF;
|
|
IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN
|
|
RETURN (func\application_defined_function.explicit_domain);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION derive_function_range
|
|
(func : maths_function ) : tuple_space;
|
|
LOCAL
|
|
typenames : SET OF STRING := stripped_typeof(func);
|
|
tspace : tuple_space := make_listed_product_space([]);
|
|
m : nonnegative_integer := 0;
|
|
n : nonnegative_integer := 0;
|
|
temp : INTEGER := 0;
|
|
END_LOCAL;
|
|
IF 'FINITE_FUNCTION' IN typenames THEN
|
|
RETURN (derive_finite_function_range(func\finite_function.pairs));
|
|
END_IF;
|
|
IF 'CONSTANT_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(make_finite_space([ func\constant_function.sole_output ])));
|
|
END_IF;
|
|
IF 'SELECTOR_FUNCTION' IN typenames THEN
|
|
tspace := func.domain;
|
|
IF (space_dimension(tspace) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(tspace)) THEN
|
|
tspace := factor1(tspace);
|
|
END_IF;
|
|
RETURN (one_tuples_of(factor_space(tspace, func\selector_function.selector)));
|
|
END_IF;
|
|
IF 'ELEMENTARY_FUNCTION' IN typenames THEN
|
|
RETURN (derive_elementary_function_range(func\elementary_function.func_id));
|
|
END_IF;
|
|
IF 'RESTRICTION_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(func\restriction_function.operand));
|
|
END_IF;
|
|
IF 'REPACKAGING_FUNCTION' IN typenames THEN
|
|
tspace := func\repackaging_function.operand.range;
|
|
IF func\repackaging_function.output_repack = ro_wrap_as_tuple THEN
|
|
tspace := one_tuples_of(tspace);
|
|
END_IF;
|
|
IF func\repackaging_function.output_repack = ro_unwrap_tuple THEN
|
|
tspace := factor1(tspace);
|
|
END_IF;
|
|
IF func\repackaging_function.selected_output > 0 THEN
|
|
tspace := one_tuples_of(factor_space(tspace, func\repackaging_function.selected_output));
|
|
END_IF;
|
|
RETURN (tspace);
|
|
END_IF;
|
|
IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN
|
|
RETURN (func\unary_generic_expression.operand\maths_function.range);
|
|
END_IF;
|
|
IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN
|
|
RETURN (func\series_composed_function.operands[SIZEOF(func\series_composed_function.operands)].range);
|
|
END_IF;
|
|
IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN
|
|
RETURN (func\parallel_composed_function.final_function.range);
|
|
END_IF;
|
|
IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN
|
|
IF 'LISTED_REAL_DATA' IN typenames THEN
|
|
RETURN (one_tuples_of(the_reals));
|
|
END_IF;
|
|
IF 'LISTED_INTEGER_DATA' IN typenames THEN
|
|
RETURN (one_tuples_of(the_integers));
|
|
END_IF;
|
|
IF 'LISTED_LOGICAL_DATA' IN typenames THEN
|
|
RETURN (one_tuples_of(the_logicals));
|
|
END_IF;
|
|
IF 'LISTED_STRING_DATA' IN typenames THEN
|
|
RETURN (one_tuples_of(the_strings));
|
|
END_IF;
|
|
IF 'LISTED_COMPLEX_NUMBER_DATA' IN typenames THEN
|
|
RETURN (one_tuples_of(the_complex_numbers));
|
|
END_IF;
|
|
IF 'LISTED_DATA' IN typenames THEN
|
|
RETURN (one_tuples_of(func\listed_data.value_range));
|
|
END_IF;
|
|
IF 'EXTERNALLY_LISTED_DATA' IN typenames THEN
|
|
RETURN (one_tuples_of(func\externally_listed_data.value_range));
|
|
END_IF;
|
|
IF 'LINEARIZED_TABLE_FUNCTION' IN typenames THEN
|
|
RETURN (func\linearized_table_function.source.range);
|
|
END_IF;
|
|
IF 'BASIC_SPARSE_MATRIX' IN typenames THEN
|
|
RETURN (func\basic_sparse_matrix.val.range);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_IF;
|
|
IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(make_uniform_product_space(factor1(func\homogeneous_linear_function.mat.range), func\homogeneous_linear_function.mat\explicit_table_function.shape[(3 - func\homogeneous_linear_function.sum_index)])));
|
|
END_IF;
|
|
IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(make_uniform_product_space(factor1(func\general_linear_function.mat.range), func\general_linear_function.mat\explicit_table_function.shape[(3 - func\general_linear_function.sum_index)])));
|
|
END_IF;
|
|
IF 'B_SPLINE_BASIS' IN typenames THEN
|
|
RETURN (one_tuples_of(make_uniform_product_space(the_reals, func\b_spline_basis.num_basis)));
|
|
END_IF;
|
|
IF 'B_SPLINE_FUNCTION' IN typenames THEN
|
|
tspace := factor1(func\b_spline_function.coef.domain);
|
|
m := SIZEOF(func\b_spline_function.basis);
|
|
n := space_dimension(tspace);
|
|
IF m = n THEN
|
|
RETURN (one_tuples_of(the_reals));
|
|
END_IF;
|
|
IF m = n - 1 THEN
|
|
RETURN (one_tuples_of(make_uniform_product_space(the_reals, factor_space(tspace, n)\finite_integer_interval.size)));
|
|
END_IF;
|
|
tspace := extract_factors(tspace, m + 1, n);
|
|
RETURN (one_tuples_of(make_function_space(sc_equal, tspace, sc_subspace, number_superspace_of(func\b_spline_function.coef.range))));
|
|
END_IF;
|
|
IF 'RATIONALIZE_FUNCTION' IN typenames THEN
|
|
tspace := factor1(func\rationalize_function.fun.range);
|
|
n := space_dimension(tspace);
|
|
RETURN (one_tuples_of(make_uniform_product_space(number_superspace_of(factor1(tspace)), n - 1)));
|
|
END_IF;
|
|
IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN
|
|
RETURN (drop_numeric_constraints(func\partial_derivative_function.derivand.range));
|
|
END_IF;
|
|
IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN
|
|
RETURN (drop_numeric_constraints(func\definite_integral_function.integrand.range));
|
|
END_IF;
|
|
IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN
|
|
RETURN (one_tuples_of(values_space_of(func\abstracted_expression_function.expr)));
|
|
END_IF;
|
|
IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN
|
|
RETURN (values_space_of(func\expression_denoted_function.expr)\function_space.range_argument);
|
|
END_IF;
|
|
IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN
|
|
temp := dimension_of(func\imported_point_function.geometry);
|
|
RETURN (one_tuples_of(make_uniform_product_space(the_reals, temp)));
|
|
END_IF;
|
|
IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN
|
|
temp := dimension_of(func\imported_curve_function.geometry);
|
|
RETURN (one_tuples_of(make_uniform_product_space(the_reals, temp)));
|
|
END_IF;
|
|
IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN
|
|
temp := dimension_of(func\imported_surface_function.geometry);
|
|
RETURN (one_tuples_of(make_uniform_product_space(the_reals, temp)));
|
|
END_IF;
|
|
IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN
|
|
temp := dimension_of(func\imported_volume_function.geometry);
|
|
RETURN (one_tuples_of(make_uniform_product_space(the_reals, temp)));
|
|
END_IF;
|
|
IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN
|
|
RETURN (func\application_defined_function.explicit_range);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION dimension_of
|
|
(item : geometric_representation_item ) : dimension_count;
|
|
LOCAL
|
|
x : SET OF representation;
|
|
y : representation_context;
|
|
dim : dimension_count;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(item) THEN
|
|
dim := SIZEOF(item\cartesian_point.coordinates);
|
|
RETURN (dim);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.DIRECTION' IN TYPEOF(item) THEN
|
|
dim := SIZEOF(item\direction.direction_ratios);
|
|
RETURN (dim);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(item) THEN
|
|
dim := SIZEOF(item\vector.orientation\direction.direction_ratios);
|
|
RETURN (dim);
|
|
END_IF;
|
|
x := using_representations(item);
|
|
IF SIZEOF(x) > 0 THEN
|
|
y := x[1].context_of_items;
|
|
dim := y\geometric_representation_context.coordinate_space_dimension;
|
|
RETURN (dim);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION dimensions_for_si_unit
|
|
(n : si_unit_name ) : dimensional_exponents;
|
|
CASE n OF
|
|
metre :
|
|
RETURN (dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
|
|
gram :
|
|
RETURN (dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0));
|
|
second :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0));
|
|
ampere :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0));
|
|
kelvin :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
|
|
mole :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0));
|
|
candela :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
|
|
radian :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
|
|
steradian :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
|
|
hertz :
|
|
RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
|
|
newton :
|
|
RETURN (dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
|
|
pascal :
|
|
RETURN (dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
|
|
joule :
|
|
RETURN (dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
|
|
watt :
|
|
RETURN (dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0));
|
|
coulomb :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0));
|
|
volt :
|
|
RETURN (dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0));
|
|
farad :
|
|
RETURN (dimensional_exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0));
|
|
ohm :
|
|
RETURN (dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0));
|
|
siemens :
|
|
RETURN (dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0));
|
|
weber :
|
|
RETURN (dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
|
|
tesla :
|
|
RETURN (dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
|
|
henry :
|
|
RETURN (dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0));
|
|
degree_Celsius :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
|
|
lumen :
|
|
RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
|
|
lux :
|
|
RETURN (dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
|
|
becquerel :
|
|
RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
|
|
gray :
|
|
RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
|
|
sievert :
|
|
RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
|
|
OTHERWISE :
|
|
RETURN (?);
|
|
END_CASE;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION domain_from
|
|
(ref : maths_space_or_function ) : tuple_space;
|
|
LOCAL
|
|
typenames : SET OF STRING := stripped_typeof(ref);
|
|
func : maths_function;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(ref) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
IF 'TUPLE_SPACE' IN typenames THEN
|
|
RETURN (ref);
|
|
END_IF;
|
|
IF 'MATHS_SPACE' IN typenames THEN
|
|
RETURN (one_tuples_of(ref));
|
|
END_IF;
|
|
func := ref;
|
|
IF 'CONSTANT_FUNCTION' IN typenames THEN
|
|
RETURN (domain_from(func\constant_function.source_of_domain));
|
|
END_IF;
|
|
IF 'SELECTOR_FUNCTION' IN typenames THEN
|
|
RETURN (domain_from(func\selector_function.source_of_domain));
|
|
END_IF;
|
|
IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN
|
|
RETURN (domain_from(func\parallel_composed_function.source_of_domain));
|
|
END_IF;
|
|
RETURN (func.domain);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION dot_product
|
|
(arg1 : direction;
|
|
arg2 : direction ) : REAL;
|
|
LOCAL
|
|
scalar : REAL;
|
|
vec1 : direction;
|
|
vec2 : direction;
|
|
ndim : INTEGER;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(arg1) OR NOT EXISTS(arg2) THEN
|
|
scalar := ?;
|
|
ELSE
|
|
IF arg1.dim <> arg2.dim THEN
|
|
scalar := ?;
|
|
ELSE
|
|
BEGIN
|
|
vec1 := normalise(arg1);
|
|
vec2 := normalise(arg2);
|
|
ndim := arg1.dim;
|
|
scalar := 0.0;
|
|
REPEAT i := 1 TO ndim;
|
|
scalar := scalar + vec1.direction_ratios[i] * vec2.direction_ratios[i];
|
|
END_REPEAT;
|
|
END;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (scalar);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION drop_numeric_constraints
|
|
(spc : maths_space ) : maths_space;
|
|
LOCAL
|
|
typenames : SET OF STRING := stripped_typeof(spc);
|
|
tspc : listed_product_space;
|
|
factors : LIST OF maths_space := [];
|
|
xspc : extended_tuple_space;
|
|
END_LOCAL;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN typenames THEN
|
|
RETURN (make_uniform_product_space(drop_numeric_constraints(spc\uniform_product_space.base), spc\uniform_product_space.exponent));
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN typenames THEN
|
|
tspc := spc;
|
|
REPEAT i := 1 TO SIZEOF(tspc.factors);
|
|
INSERT( factors, drop_numeric_constraints(tspc.factors[i]), i - 1 );
|
|
END_REPEAT;
|
|
RETURN (make_listed_product_space(factors));
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN typenames THEN
|
|
xspc := spc;
|
|
RETURN (make_extended_tuple_space(drop_numeric_constraints(xspc.base), drop_numeric_constraints(xspc.extender)));
|
|
END_IF;
|
|
IF subspace_of_es(spc, es_numbers) THEN
|
|
RETURN (number_superspace_of(spc));
|
|
END_IF;
|
|
RETURN (spc);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION edge_reversed
|
|
(an_edge : edge ) : oriented_edge;
|
|
LOCAL
|
|
the_reverse : oriented_edge;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION enclose_cregion_in_pregion
|
|
(crgn : cartesian_complex_number_region;
|
|
centre : complex_number_literal ) : polar_complex_number_region;
|
|
FUNCTION angle
|
|
(a : REAL ) : REAL;
|
|
REPEAT WHILE a > 3.14159;
|
|
a := a - 2.0 * 3.14159;
|
|
END_REPEAT;
|
|
REPEAT WHILE a <= -3.14159;
|
|
a := a + 2.0 * 3.14159;
|
|
END_REPEAT;
|
|
RETURN (a);
|
|
END_FUNCTION;
|
|
FUNCTION strictly_in
|
|
(z : REAL;
|
|
zitv : real_interval ) : LOGICAL;
|
|
RETURN ((NOT min_exists(zitv) OR (z > real_min(zitv))) AND (NOT max_exists(zitv) OR (z < real_max(zitv))));
|
|
END_FUNCTION;
|
|
PROCEDURE angle_minmax
|
|
(ab : REAL;
|
|
a : REAL;
|
|
a_in : BOOLEAN;
|
|
VAR amin : REAL;
|
|
VAR amax : REAL;
|
|
VAR amin_in : BOOLEAN;
|
|
VAR amax_in : BOOLEAN );
|
|
a := angle(a - ab);
|
|
IF amin = a THEN
|
|
amin_in := amin_in OR a_in;
|
|
END_IF;
|
|
IF amin > a THEN
|
|
amin := a;
|
|
amin_in := a_in;
|
|
END_IF;
|
|
IF amax = a THEN
|
|
amax_in := amax_in OR a_in;
|
|
END_IF;
|
|
IF amax < a THEN
|
|
amax := a;
|
|
amax_in := a_in;
|
|
END_IF;
|
|
END_PROCEDURE;
|
|
PROCEDURE range_max
|
|
(r : REAL;
|
|
incl : BOOLEAN;
|
|
VAR rmax : REAL;
|
|
VAR rmax_in : BOOLEAN );
|
|
IF rmax = r THEN
|
|
rmax_in := rmax_in OR incl;
|
|
END_IF;
|
|
IF rmax < r THEN
|
|
rmax := r;
|
|
rmax_in := incl;
|
|
END_IF;
|
|
END_PROCEDURE;
|
|
PROCEDURE range_min
|
|
(r : REAL;
|
|
incl : BOOLEAN;
|
|
VAR rmin : REAL;
|
|
VAR rmin_in : BOOLEAN );
|
|
IF rmin = r THEN
|
|
rmin_in := rmin_in OR incl;
|
|
END_IF;
|
|
IF (rmin < 0.0) OR (rmin > r) THEN
|
|
rmin := r;
|
|
rmin_in := incl;
|
|
END_IF;
|
|
END_PROCEDURE;
|
|
LOCAL
|
|
xitv : real_interval;
|
|
yitv : real_interval;
|
|
is_xmin : BOOLEAN;
|
|
is_xmax : BOOLEAN;
|
|
is_ymin : BOOLEAN;
|
|
is_ymax : BOOLEAN;
|
|
xmin : REAL := 0.0;
|
|
xmax : REAL := 0.0;
|
|
ymin : REAL := 0.0;
|
|
ymax : REAL := 0.0;
|
|
xc : REAL := 0.0;
|
|
yc : REAL := 0.0;
|
|
xmin_in : BOOLEAN := FALSE;
|
|
xmax_in : BOOLEAN := FALSE;
|
|
ymin_in : BOOLEAN := FALSE;
|
|
ymax_in : BOOLEAN := FALSE;
|
|
rmin : REAL := -1.0;
|
|
rmax : REAL := -1.0;
|
|
amin : REAL := 4.0;
|
|
amax : REAL := -4.0;
|
|
rmax_exists : BOOLEAN := TRUE;
|
|
outside : BOOLEAN := TRUE;
|
|
rmin_in : BOOLEAN := FALSE;
|
|
rmax_in : BOOLEAN := FALSE;
|
|
amin_in : BOOLEAN := FALSE;
|
|
amax_in : BOOLEAN := FALSE;
|
|
ab : REAL := 0.0;
|
|
a : REAL := 0.0;
|
|
r : REAL := 0.0;
|
|
incl : BOOLEAN;
|
|
ritv : real_interval;
|
|
aitv : finite_real_interval;
|
|
minclo : open_closed := open;
|
|
maxclo : open_closed := open;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(crgn) OR NOT EXISTS(centre) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
xitv := crgn.real_constraint;
|
|
yitv := crgn.imag_constraint;
|
|
xc := centre.real_part;
|
|
yc := centre.imag_part;
|
|
is_xmin := min_exists(xitv);
|
|
is_xmax := max_exists(xitv);
|
|
is_ymin := min_exists(yitv);
|
|
is_ymax := max_exists(yitv);
|
|
IF is_xmin THEN
|
|
xmin := real_min(xitv);
|
|
xmin_in := min_included(xitv);
|
|
END_IF;
|
|
IF is_xmax THEN
|
|
xmax := real_max(xitv);
|
|
xmax_in := max_included(xitv);
|
|
END_IF;
|
|
IF is_ymin THEN
|
|
ymin := real_min(yitv);
|
|
ymin_in := min_included(yitv);
|
|
END_IF;
|
|
IF is_ymax THEN
|
|
ymax := real_max(yitv);
|
|
ymax_in := max_included(yitv);
|
|
END_IF;
|
|
rmax_exists := ((is_xmin AND is_xmax) AND is_ymin) AND is_ymax;
|
|
IF is_xmin AND (xc <= xmin) THEN
|
|
ab := 0.0;
|
|
ELSE
|
|
IF is_ymin AND (yc <= ymin) THEN
|
|
ab := 0.500000 * 3.14159;
|
|
ELSE
|
|
IF is_ymax AND (yc >= ymax) THEN
|
|
ab := -0.500000 * 3.14159;
|
|
ELSE
|
|
IF is_xmax AND (xc >= xmax) THEN
|
|
ab := 3.14159;
|
|
ELSE
|
|
outside := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
IF NOT outside AND NOT rmax_exists THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
IF (is_xmin AND (xc <= xmin)) AND strictly_in(yc, yitv) THEN
|
|
rmin := xmin - xc;
|
|
rmin_in := xmin_in;
|
|
ELSE
|
|
IF (is_ymin AND (yc <= ymin)) AND strictly_in(xc, xitv) THEN
|
|
rmin := ymin - yc;
|
|
rmin_in := ymin_in;
|
|
ELSE
|
|
IF (is_ymax AND (yc >= ymax)) AND strictly_in(xc, xitv) THEN
|
|
rmin := yc - ymax;
|
|
rmin_in := ymax_in;
|
|
ELSE
|
|
IF (is_xmax AND (xc >= xmax)) AND strictly_in(yc, yitv) THEN
|
|
rmin := xc - xmax;
|
|
rmin_in := xmax_in;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
IF is_xmin THEN
|
|
IF is_ymin THEN
|
|
r := SQRT((xmin - xc) ** 2 + (ymin - yc) ** 2);
|
|
incl := xmin_in AND ymin_in;
|
|
IF rmax_exists THEN
|
|
range_max( r, incl, rmax, rmax_in );
|
|
END_IF;
|
|
IF outside THEN
|
|
IF r > 0.0 THEN
|
|
range_min( r, incl, rmin, rmin_in );
|
|
a := angle(atan2(ymin - yc, xmin - xc) - ab);
|
|
IF xc = xmin THEN
|
|
incl := xmin_in;
|
|
END_IF;
|
|
IF yc = ymin THEN
|
|
incl := ymin_in;
|
|
END_IF;
|
|
angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in );
|
|
ELSE
|
|
rmin := 0.0;
|
|
rmin_in := xmin_in AND ymin_in;
|
|
amin := angle(0.0 - ab);
|
|
amin_in := ymin_in;
|
|
amax := angle(0.500000 * 3.14159 - ab);
|
|
amax_in := xmin_in;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF xc <= xmin THEN
|
|
angle_minmax( ab, -0.500000 * 3.14159, (xc = xmin) AND xmin_in, amin, amax, amin_in, amax_in );
|
|
END_IF;
|
|
END_IF;
|
|
IF NOT is_ymax AND (xc <= xmin) THEN
|
|
angle_minmax( ab, 0.500000 * 3.14159, (xc = xmin) AND xmin_in, amin, amax, amin_in, amax_in );
|
|
END_IF;
|
|
END_IF;
|
|
IF is_ymin THEN
|
|
IF is_xmax THEN
|
|
r := SQRT((xmax - xc) ** 2 + (ymin - yc) ** 2);
|
|
incl := xmax_in AND ymin_in;
|
|
IF rmax_exists THEN
|
|
range_max( r, incl, rmax, rmax_in );
|
|
END_IF;
|
|
IF outside THEN
|
|
IF r > 0.0 THEN
|
|
range_min( r, incl, rmin, rmin_in );
|
|
a := angle(atan2(ymin - yc, xmax - xc) - ab);
|
|
IF xc = xmax THEN
|
|
incl := xmax_in;
|
|
END_IF;
|
|
IF yc = ymin THEN
|
|
incl := ymin_in;
|
|
END_IF;
|
|
angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in );
|
|
ELSE
|
|
rmin := 0.0;
|
|
rmin_in := xmax_in AND ymin_in;
|
|
amin := angle(0.500000 * 3.14159 - ab);
|
|
amin_in := ymin_in;
|
|
amax := angle(3.14159 - ab);
|
|
amax_in := xmax_in;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF yc <= ymin THEN
|
|
angle_minmax( ab, 0.0, (yc = ymin) AND ymin_in, amin, amax, amin_in, amax_in );
|
|
END_IF;
|
|
END_IF;
|
|
IF NOT is_xmin AND (yc <= ymin) THEN
|
|
angle_minmax( ab, 3.14159, (yc = ymin) AND ymin_in, amin, amax, amin_in, amax_in );
|
|
END_IF;
|
|
END_IF;
|
|
IF is_xmax THEN
|
|
IF is_ymax THEN
|
|
r := SQRT((xmax - xc) ** 2 + (ymax - yc) ** 2);
|
|
incl := xmax_in AND ymax_in;
|
|
IF rmax_exists THEN
|
|
range_max( r, incl, rmax, rmax_in );
|
|
END_IF;
|
|
IF outside THEN
|
|
IF r > 0.0 THEN
|
|
range_min( r, incl, rmin, rmin_in );
|
|
a := angle(atan2(ymax - yc, xmax - xc) - ab);
|
|
IF xc = xmax THEN
|
|
incl := xmax_in;
|
|
END_IF;
|
|
IF yc = ymax THEN
|
|
incl := ymax_in;
|
|
END_IF;
|
|
angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in );
|
|
ELSE
|
|
rmin := 0.0;
|
|
rmin_in := xmax_in AND ymax_in;
|
|
amin := angle(-3.14159 - ab);
|
|
amin_in := ymax_in;
|
|
amax := angle(-0.500000 * 3.14159 - ab);
|
|
amax_in := xmax_in;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF xc >= xmax THEN
|
|
angle_minmax( ab, 0.500000 * 3.14159, (xc = xmax) AND xmax_in, amin, amax, amin_in, amax_in );
|
|
END_IF;
|
|
END_IF;
|
|
IF NOT is_ymin AND (xc >= xmax) THEN
|
|
angle_minmax( ab, -0.500000 * 3.14159, (xc = xmax) AND xmax_in, amin, amax, amin_in, amax_in );
|
|
END_IF;
|
|
END_IF;
|
|
IF is_ymax THEN
|
|
IF is_xmin THEN
|
|
r := SQRT((xmin - xc) ** 2 + (ymax - yc) ** 2);
|
|
incl := xmin_in AND ymax_in;
|
|
IF rmax_exists THEN
|
|
range_max( r, incl, rmax, rmax_in );
|
|
END_IF;
|
|
IF outside THEN
|
|
IF r > 0.0 THEN
|
|
range_min( r, incl, rmin, rmin_in );
|
|
a := angle(atan2(ymax - yc, xmin - xc) - ab);
|
|
IF xc = xmin THEN
|
|
incl := xmin_in;
|
|
END_IF;
|
|
IF yc = ymax THEN
|
|
incl := ymax_in;
|
|
END_IF;
|
|
angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in );
|
|
ELSE
|
|
rmin := 0.0;
|
|
rmin_in := xmin_in AND ymax_in;
|
|
amin := angle(0.500000 * 3.14159 - ab);
|
|
amin_in := ymax_in;
|
|
amax := angle(3.14159 - ab);
|
|
amax_in := xmin_in;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF yc >= ymax THEN
|
|
angle_minmax( ab, 3.14159, (yc = ymax) AND ymax_in, amin, amax, amin_in, amax_in );
|
|
END_IF;
|
|
END_IF;
|
|
IF NOT is_xmax AND (yc >= ymax) THEN
|
|
angle_minmax( ab, 0.0, (yc = ymax) AND ymax_in, amin, amax, amin_in, amax_in );
|
|
END_IF;
|
|
END_IF;
|
|
IF outside THEN
|
|
amin := angle(amin + ab);
|
|
IF amin = 3.14159 THEN
|
|
amin := -3.14159;
|
|
END_IF;
|
|
amax := angle(amax + ab);
|
|
IF amax <= amin THEN
|
|
amax := amax + 2.0 * 3.14159;
|
|
END_IF;
|
|
ELSE
|
|
amin := -3.14159;
|
|
amin_in := FALSE;
|
|
amax := 3.14159;
|
|
amax_in := FALSE;
|
|
END_IF;
|
|
IF amin_in THEN
|
|
minclo := closed;
|
|
END_IF;
|
|
IF amax_in THEN
|
|
maxclo := closed;
|
|
END_IF;
|
|
aitv := make_finite_real_interval(amin, minclo, amax, maxclo);
|
|
minclo := open;
|
|
IF rmin_in THEN
|
|
minclo := closed;
|
|
END_IF;
|
|
IF rmax_exists THEN
|
|
maxclo := open;
|
|
IF rmax_in THEN
|
|
maxclo := closed;
|
|
END_IF;
|
|
ritv := make_finite_real_interval(rmin, minclo, rmax, maxclo);
|
|
ELSE
|
|
ritv := make_real_interval_from_min(rmin, minclo);
|
|
END_IF;
|
|
RETURN (make_polar_complex_number_region(centre, ritv, aitv));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION enclose_pregion_in_cregion
|
|
(prgn : polar_complex_number_region ) : cartesian_complex_number_region;
|
|
PROCEDURE nearest_good_direction
|
|
(acart : REAL;
|
|
aitv : finite_real_interval;
|
|
VAR a : REAL;
|
|
VAR a_in : BOOLEAN );
|
|
a := acart;
|
|
a_in := TRUE;
|
|
IF a < aitv.min THEN
|
|
IF a + 2.0 * 3.14159 < aitv.max THEN
|
|
RETURN;
|
|
END_IF;
|
|
IF a + 2.0 * 3.14159 = aitv.max THEN
|
|
a_in := max_included(aitv);
|
|
RETURN;
|
|
END_IF;
|
|
ELSE
|
|
IF a = aitv.min THEN
|
|
a_in := min_included(aitv);
|
|
RETURN;
|
|
ELSE
|
|
IF a < aitv.max THEN
|
|
RETURN;
|
|
ELSE
|
|
IF a = aitv.max THEN
|
|
a_in := max_included(aitv);
|
|
RETURN;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
IF cos(acart - aitv.max) >= cos(acart - aitv.min) THEN
|
|
a := aitv.max;
|
|
a_in := max_included(aitv);
|
|
ELSE
|
|
a := aitv.min;
|
|
a_in := min_included(aitv);
|
|
END_IF;
|
|
END_PROCEDURE;
|
|
LOCAL
|
|
xc : REAL := 0.0;
|
|
yc : REAL := 0.0;
|
|
xmin : REAL := 0.0;
|
|
xmax : REAL := 0.0;
|
|
ymin : REAL := 0.0;
|
|
ymax : REAL := 0.0;
|
|
ritv : real_interval;
|
|
xitv : real_interval;
|
|
yitv : real_interval;
|
|
aitv : finite_real_interval;
|
|
xmin_exists : BOOLEAN;
|
|
xmax_exists : BOOLEAN;
|
|
ymin_exists : BOOLEAN;
|
|
ymax_exists : BOOLEAN;
|
|
xmin_in : BOOLEAN := FALSE;
|
|
xmax_in : BOOLEAN := FALSE;
|
|
ymin_in : BOOLEAN := FALSE;
|
|
ymax_in : BOOLEAN := FALSE;
|
|
a : REAL := 0.0;
|
|
r : REAL := 0.0;
|
|
a_in : BOOLEAN := FALSE;
|
|
min_clo : open_closed := open;
|
|
max_clo : open_closed := open;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(prgn) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
xc := prgn.centre.real_part;
|
|
yc := prgn.centre.imag_part;
|
|
ritv := prgn.distance_constraint;
|
|
aitv := prgn.direction_constraint;
|
|
nearest_good_direction( 3.14159, aitv, a, a_in );
|
|
IF cos(a) >= 0.0 THEN
|
|
xmin_exists := TRUE;
|
|
xmin := xc + real_min(ritv) * cos(a);
|
|
xmin_in := a_in AND (min_included(ritv) OR (cos(a) = 0.0));
|
|
ELSE
|
|
IF max_exists(ritv) THEN
|
|
xmin_exists := TRUE;
|
|
xmin := xc + real_max(ritv) * cos(a);
|
|
xmin_in := a_in AND max_included(ritv);
|
|
ELSE
|
|
xmin_exists := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
nearest_good_direction( 0.0, aitv, a, a_in );
|
|
IF cos(a) <= 0.0 THEN
|
|
xmax_exists := TRUE;
|
|
xmax := xc + real_min(ritv) * cos(a);
|
|
xmax_in := a_in AND (min_included(ritv) OR (cos(a) = 0.0));
|
|
ELSE
|
|
IF max_exists(ritv) THEN
|
|
xmax_exists := TRUE;
|
|
xmax := xc + real_max(ritv) * cos(a);
|
|
xmax_in := a_in AND max_included(ritv);
|
|
ELSE
|
|
xmax_exists := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
nearest_good_direction( -0.500000 * 3.14159, aitv, a, a_in );
|
|
IF sin(a) >= 0.0 THEN
|
|
ymin_exists := TRUE;
|
|
ymin := yc + real_min(ritv) * sin(a);
|
|
ymin_in := a_in AND (min_included(ritv) OR (sin(a) = 0.0));
|
|
ELSE
|
|
IF max_exists(ritv) THEN
|
|
ymin_exists := TRUE;
|
|
ymin := yc + real_max(ritv) * sin(a);
|
|
ymin_in := a_in AND max_included(ritv);
|
|
ELSE
|
|
ymin_exists := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
nearest_good_direction( 0.500000 * 3.14159, aitv, a, a_in );
|
|
IF sin(a) <= 0.0 THEN
|
|
ymax_exists := TRUE;
|
|
ymax := yc + real_min(ritv) * sin(a);
|
|
ymax_in := a_in AND (min_included(ritv) OR (sin(a) = 0.0));
|
|
ELSE
|
|
IF max_exists(ritv) THEN
|
|
ymax_exists := TRUE;
|
|
ymax := yc + real_max(ritv) * sin(a);
|
|
ymax_in := a_in AND max_included(ritv);
|
|
ELSE
|
|
ymax_exists := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
IF NOT (((xmin_exists OR xmax_exists) OR ymin_exists) OR ymax_exists) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
IF xmin_exists THEN
|
|
IF xmin_in THEN
|
|
min_clo := closed;
|
|
ELSE
|
|
min_clo := open;
|
|
END_IF;
|
|
IF xmax_exists THEN
|
|
IF xmax_in THEN
|
|
max_clo := closed;
|
|
ELSE
|
|
max_clo := open;
|
|
END_IF;
|
|
xitv := make_finite_real_interval(xmin, min_clo, xmax, max_clo);
|
|
ELSE
|
|
xitv := make_real_interval_from_min(xmin, min_clo);
|
|
END_IF;
|
|
ELSE
|
|
IF xmax_exists THEN
|
|
IF xmax_in THEN
|
|
max_clo := closed;
|
|
ELSE
|
|
max_clo := open;
|
|
END_IF;
|
|
xitv := make_real_interval_to_max(xmax, max_clo);
|
|
ELSE
|
|
xitv := the_reals;
|
|
END_IF;
|
|
END_IF;
|
|
IF ymin_exists THEN
|
|
IF ymin_in THEN
|
|
min_clo := closed;
|
|
ELSE
|
|
min_clo := open;
|
|
END_IF;
|
|
IF ymax_exists THEN
|
|
IF ymax_in THEN
|
|
max_clo := closed;
|
|
ELSE
|
|
max_clo := open;
|
|
END_IF;
|
|
yitv := make_finite_real_interval(ymin, min_clo, ymax, max_clo);
|
|
ELSE
|
|
yitv := make_real_interval_from_min(ymin, min_clo);
|
|
END_IF;
|
|
ELSE
|
|
IF ymax_exists THEN
|
|
IF ymax_in THEN
|
|
max_clo := closed;
|
|
ELSE
|
|
max_clo := open;
|
|
END_IF;
|
|
yitv := make_real_interval_to_max(ymax, max_clo);
|
|
ELSE
|
|
yitv := the_reals;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (make_cartesian_complex_number_region(xitv, yitv));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION enclose_pregion_in_pregion
|
|
(prgn : polar_complex_number_region;
|
|
centre : complex_number_literal ) : polar_complex_number_region;
|
|
FUNCTION angle
|
|
(a : REAL ) : REAL;
|
|
REPEAT WHILE a > 3.14159;
|
|
a := a - 2.0 * 3.14159;
|
|
END_REPEAT;
|
|
REPEAT WHILE a <= -3.14159;
|
|
a := a + 2.0 * 3.14159;
|
|
END_REPEAT;
|
|
RETURN (a);
|
|
END_FUNCTION;
|
|
PROCEDURE angle_range
|
|
(VAR amin : REAL;
|
|
VAR amax : REAL );
|
|
amin := angle(amin);
|
|
IF amin = 3.14159 THEN
|
|
amin := -3.14159;
|
|
END_IF;
|
|
amax := angle(amax);
|
|
IF amax <= amin THEN
|
|
amax := amax + 2.0 * 3.14159;
|
|
END_IF;
|
|
END_PROCEDURE;
|
|
FUNCTION strictly_in
|
|
(a : REAL;
|
|
aitv : finite_real_interval ) : LOGICAL;
|
|
a := angle(a);
|
|
RETURN ((aitv.min < a) AND (a < aitv.max) OR (aitv.min < a + 2.0 * 3.14159) AND (a + 2.0 * 3.14159 < aitv.max));
|
|
END_FUNCTION;
|
|
PROCEDURE find_aminmax
|
|
(ab : REAL;
|
|
a0 : REAL;
|
|
a1 : REAL;
|
|
a2 : REAL;
|
|
a3 : REAL;
|
|
in0 : BOOLEAN;
|
|
in1 : BOOLEAN;
|
|
in2 : BOOLEAN;
|
|
in3 : BOOLEAN;
|
|
VAR amin : REAL;
|
|
VAR amax : REAL;
|
|
VAR amin_in : BOOLEAN;
|
|
VAR amax_in : BOOLEAN );
|
|
LOCAL
|
|
a : REAL;
|
|
END_LOCAL;
|
|
amin := angle(a0 - ab);
|
|
amin_in := in0;
|
|
amax := amin;
|
|
amax_in := in0;
|
|
a := angle(a1 - ab);
|
|
IF a = amin THEN
|
|
amin_in := amin_in OR in1;
|
|
END_IF;
|
|
IF a < amin THEN
|
|
amin := a;
|
|
amin_in := in1;
|
|
END_IF;
|
|
IF a = amax THEN
|
|
amax_in := amax_in OR in1;
|
|
END_IF;
|
|
IF a > amax THEN
|
|
amax := a;
|
|
amax_in := in1;
|
|
END_IF;
|
|
a := angle(a2 - ab);
|
|
IF a = amin THEN
|
|
amin_in := amin_in OR in2;
|
|
END_IF;
|
|
IF a < amin THEN
|
|
amin := a;
|
|
amin_in := in2;
|
|
END_IF;
|
|
IF a = amax THEN
|
|
amax_in := amax_in OR in2;
|
|
END_IF;
|
|
IF a > amax THEN
|
|
amax := a;
|
|
amax_in := in2;
|
|
END_IF;
|
|
a := angle(a3 - ab);
|
|
IF a = amin THEN
|
|
amin_in := amin_in OR in3;
|
|
END_IF;
|
|
IF a < amin THEN
|
|
amin := a;
|
|
amin_in := in3;
|
|
END_IF;
|
|
IF a = amax THEN
|
|
amax_in := amax_in OR in3;
|
|
END_IF;
|
|
IF a > amax THEN
|
|
amax := a;
|
|
amax_in := in3;
|
|
END_IF;
|
|
amin := amin + ab;
|
|
amax := amax + ab;
|
|
angle_range( amin, amax );
|
|
END_PROCEDURE;
|
|
LOCAL
|
|
ritp : real_interval;
|
|
ritv : real_interval;
|
|
aitp : finite_real_interval;
|
|
aitv : finite_real_interval;
|
|
xp : REAL := 0.0;
|
|
yp : REAL := 0.0;
|
|
xc : REAL := 0.0;
|
|
yc : REAL := 0.0;
|
|
rmax : REAL := 0.0;
|
|
rmin : REAL := 0.0;
|
|
amin : REAL := 0.0;
|
|
amax : REAL := 0.0;
|
|
rc : REAL := 0.0;
|
|
acp : REAL := 0.0;
|
|
apc : REAL := 0.0;
|
|
rmax_in : BOOLEAN := FALSE;
|
|
rmin_in : BOOLEAN := FALSE;
|
|
amin_in : BOOLEAN := FALSE;
|
|
amax_in : BOOLEAN := FALSE;
|
|
rmxp : REAL := 0.0;
|
|
rmnp : REAL := 0.0;
|
|
x : REAL := 0.0;
|
|
y : REAL := 0.0;
|
|
r : REAL := 0.0;
|
|
a : REAL := 0.0;
|
|
ab : REAL := 0.0;
|
|
r0 : REAL := 0.0;
|
|
a0 : REAL := 0.0;
|
|
r1 : REAL := 0.0;
|
|
a1 : REAL := 0.0;
|
|
r2 : REAL := 0.0;
|
|
a2 : REAL := 0.0;
|
|
r3 : REAL := 0.0;
|
|
a3 : REAL := 0.0;
|
|
in0 : BOOLEAN := FALSE;
|
|
in1 : BOOLEAN := FALSE;
|
|
in2 : BOOLEAN := FALSE;
|
|
in3 : BOOLEAN := FALSE;
|
|
inn : BOOLEAN := FALSE;
|
|
minclo : open_closed := open;
|
|
maxclo : open_closed := open;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(prgn) OR NOT EXISTS(centre) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
xp := prgn.centre.real_part;
|
|
yp := prgn.centre.imag_part;
|
|
ritp := prgn.distance_constraint;
|
|
aitp := prgn.direction_constraint;
|
|
xc := centre.real_part;
|
|
yc := centre.imag_part;
|
|
IF (xc = xp) AND (yc = yp) THEN
|
|
RETURN (prgn);
|
|
END_IF;
|
|
rc := SQRT((xp - xc) ** 2 + (yp - yc) ** 2);
|
|
acp := atan2(yp - yc, xp - xc);
|
|
apc := atan2(yc - yp, xc - xp);
|
|
rmnp := real_min(ritp);
|
|
IF max_exists(ritp) THEN
|
|
rmxp := real_max(ritp);
|
|
IF aitp.max - aitp.min = 2.0 * 3.14159 THEN
|
|
inn := NOT max_included(aitp);
|
|
a := angle(aitp.min);
|
|
rmax := rc + rmxp;
|
|
rmax_in := max_included(ritp);
|
|
IF inn AND (acp = a) THEN
|
|
rmax_in := FALSE;
|
|
END_IF;
|
|
IF rc > rmxp THEN
|
|
a0 := ASIN(rmxp / rc);
|
|
amin := angle(acp - a0);
|
|
amin_in := max_included(ritp);
|
|
IF amin = 3.14159 THEN
|
|
amin := -3.14159;
|
|
END_IF;
|
|
amax := angle(acp + a0);
|
|
amax_in := amin_in;
|
|
IF amax < amin THEN
|
|
amax := amax + 2.0 * 3.14159;
|
|
END_IF;
|
|
rmin := rc - rmxp;
|
|
rmin_in := amin_in;
|
|
IF inn THEN
|
|
IF apc = a THEN
|
|
rmin_in := FALSE;
|
|
END_IF;
|
|
IF angle(amin + 0.500000 * 3.14159) = a THEN
|
|
amin_in := FALSE;
|
|
END_IF;
|
|
IF angle(amax - 0.500000 * 3.14159) = a THEN
|
|
amax_in := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF rc = rmxp THEN
|
|
amin := angle(acp - 0.500000 * 3.14159);
|
|
amin_in := FALSE;
|
|
IF amin = 3.14159 THEN
|
|
amin := -3.14159;
|
|
END_IF;
|
|
amax := angle(acp + 0.500000 * 3.14159);
|
|
amax_in := FALSE;
|
|
IF amax < amin THEN
|
|
amax := amax + 2.0 * 3.14159;
|
|
END_IF;
|
|
rmin := 0.0;
|
|
rmin_in := max_included(ritp);
|
|
IF inn AND (apc = a) THEN
|
|
rmin_in := FALSE;
|
|
END_IF;
|
|
ELSE
|
|
IF rc > rmnp THEN
|
|
IF inn AND (apc = a) THEN
|
|
rmin := 0.0;
|
|
rmin_in := FALSE;
|
|
amin := aitp.min;
|
|
amin_in := FALSE;
|
|
amax := aitp.max;
|
|
amax_in := FALSE;
|
|
ELSE
|
|
rmin := 0.0;
|
|
rmin_in := TRUE;
|
|
amin := -3.14159;
|
|
amin_in := FALSE;
|
|
amax := 3.14159;
|
|
amax_in := TRUE;
|
|
END_IF;
|
|
ELSE
|
|
rmin := rmnp - rc;
|
|
rmin_in := min_included(ritp);
|
|
amin := -3.14159;
|
|
amin_in := FALSE;
|
|
amax := 3.14159;
|
|
amax_in := TRUE;
|
|
IF inn THEN
|
|
IF apc = a THEN
|
|
rmin_in := FALSE;
|
|
amin := aitp.min;
|
|
amin_in := FALSE;
|
|
amax := aitp.max;
|
|
amax_in := FALSE;
|
|
ELSE
|
|
IF acp = a THEN
|
|
amin := aitp.min;
|
|
amin_in := FALSE;
|
|
amax := aitp.max;
|
|
amax_in := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
x := xp + rmxp * cos(aitp.min) - xc;
|
|
y := yp + rmxp * sin(aitp.min) - yc;
|
|
r0 := SQRT(x ** 2 + y ** 2);
|
|
in0 := max_included(ritp) AND min_included(aitp);
|
|
IF r0 <> 0.0 THEN
|
|
a0 := atan2(y, x);
|
|
END_IF;
|
|
x := xp + rmxp * cos(aitp.max) - xc;
|
|
y := yp + rmxp * sin(aitp.max) - yc;
|
|
r1 := SQRT(x ** 2 + y ** 2);
|
|
in1 := max_included(ritp) AND max_included(aitp);
|
|
IF r1 <> 0.0 THEN
|
|
a1 := atan2(y, x);
|
|
END_IF;
|
|
x := xp + rmnp * cos(aitp.max) - xc;
|
|
y := yp + rmnp * sin(aitp.max) - yc;
|
|
r2 := SQRT(x ** 2 + y ** 2);
|
|
in2 := min_included(ritp) AND max_included(aitp);
|
|
IF r2 <> 0.0 THEN
|
|
a2 := atan2(y, x);
|
|
ELSE
|
|
a2 := a1;
|
|
in2 := in1;
|
|
END_IF;
|
|
IF r1 = 0.0 THEN
|
|
a1 := a2;
|
|
in1 := in2;
|
|
END_IF;
|
|
x := xp + rmnp * cos(aitp.min) - xc;
|
|
y := yp + rmnp * sin(aitp.min) - yc;
|
|
r3 := SQRT(x ** 2 + y ** 2);
|
|
in3 := min_included(ritp) AND min_included(aitp);
|
|
IF r3 <> 0.0 THEN
|
|
a3 := atan2(y, x);
|
|
ELSE
|
|
a3 := a0;
|
|
in3 := in0;
|
|
END_IF;
|
|
IF r0 = 0.0 THEN
|
|
a0 := a3;
|
|
in0 := in3;
|
|
END_IF;
|
|
IF rmnp = 0.0 THEN
|
|
in2 := min_included(ritp);
|
|
in3 := in2;
|
|
END_IF;
|
|
IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN
|
|
in0 := min_included(aitp);
|
|
in3 := in0;
|
|
ELSE
|
|
IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN
|
|
in1 := max_included(aitp);
|
|
in2 := in1;
|
|
END_IF;
|
|
END_IF;
|
|
IF strictly_in(acp, aitp) THEN
|
|
rmax := rc + rmxp;
|
|
rmax_in := max_included(ritp);
|
|
ELSE
|
|
rmax := r0;
|
|
rmax_in := in0;
|
|
IF rmax = r1 THEN
|
|
rmax_in := rmax_in OR in1;
|
|
END_IF;
|
|
IF rmax < r1 THEN
|
|
rmax := r1;
|
|
rmax_in := in1;
|
|
END_IF;
|
|
IF rmax = r2 THEN
|
|
rmax_in := rmax_in OR in2;
|
|
END_IF;
|
|
IF rmax < r2 THEN
|
|
rmax := r2;
|
|
rmax_in := in2;
|
|
END_IF;
|
|
IF rmax = r3 THEN
|
|
rmax_in := rmax_in OR in3;
|
|
END_IF;
|
|
IF rmax < r3 THEN
|
|
rmax := r3;
|
|
rmax_in := in3;
|
|
END_IF;
|
|
END_IF;
|
|
IF strictly_in(apc, aitp) THEN
|
|
IF rc >= rmxp THEN
|
|
rmin := rc - rmxp;
|
|
rmin_in := max_included(ritp);
|
|
ELSE
|
|
IF rc <= rmnp THEN
|
|
rmin := rmnp - rc;
|
|
rmin_in := min_included(ritp);
|
|
ELSE
|
|
rmin := 0.0;
|
|
rmin_in := TRUE;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
rmin := r0;
|
|
rmin_in := in0;
|
|
a := apc - aitp.min;
|
|
r := rc * cos(a);
|
|
IF (rmnp < r) AND (r < rmxp) THEN
|
|
rmin := rc * sin(ABS(a));
|
|
rmin_in := min_included(aitp);
|
|
END_IF;
|
|
a := apc - aitp.max;
|
|
r := rc * cos(a);
|
|
IF (rmnp < r) AND (r < rmxp) THEN
|
|
r := rc * sin(ABS(a));
|
|
inn := max_included(aitp);
|
|
IF r = rmin THEN
|
|
rmin_in := rmin_in OR inn;
|
|
END_IF;
|
|
IF r < rmin THEN
|
|
rmin := r;
|
|
rmin_in := inn;
|
|
END_IF;
|
|
END_IF;
|
|
IF r1 = rmin THEN
|
|
rmin_in := rmin_in OR in1;
|
|
END_IF;
|
|
IF r1 < rmin THEN
|
|
rmin := r1;
|
|
rmin_in := in1;
|
|
END_IF;
|
|
IF r2 = rmin THEN
|
|
rmin_in := rmin_in OR in2;
|
|
END_IF;
|
|
IF r2 < rmin THEN
|
|
rmin := r2;
|
|
rmin_in := in2;
|
|
END_IF;
|
|
IF r3 = rmin THEN
|
|
rmin_in := rmin_in OR in3;
|
|
END_IF;
|
|
IF r3 < rmin THEN
|
|
rmin := r3;
|
|
rmin_in := in3;
|
|
END_IF;
|
|
END_IF;
|
|
IF rc >= rmxp THEN
|
|
ab := acp;
|
|
find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in );
|
|
a := ACOS(rmxp / rc);
|
|
IF strictly_in(apc - a, aitp) THEN
|
|
amin := ab - ASIN(rmxp / rc);
|
|
amin_in := max_included(ritp);
|
|
END_IF;
|
|
IF strictly_in(apc + a, aitp) THEN
|
|
amax := ab + ASIN(rmxp / rc);
|
|
amax_in := max_included(ritp);
|
|
END_IF;
|
|
angle_range( amin, amax );
|
|
ELSE
|
|
IF rc > rmnp THEN
|
|
ab := angle(0.500000 * (aitp.min + aitp.max));
|
|
find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in );
|
|
ELSE
|
|
ab := angle(0.500000 * (aitp.min + aitp.max));
|
|
a0 := angle(a0 - ab);
|
|
a1 := angle(a1 - ab);
|
|
a2 := angle(a2 - ab);
|
|
a3 := angle(a3 - ab);
|
|
IF a3 > a2 THEN
|
|
a2 := a2 + 2.0 * 3.14159;
|
|
END_IF;
|
|
IF a0 > a1 THEN
|
|
a0 := a0 + 2.0 * 3.14159;
|
|
END_IF;
|
|
IF a3 < a0 THEN
|
|
amin := a3;
|
|
amin_in := in3;
|
|
ELSE
|
|
amin := a0;
|
|
amin_in := in0;
|
|
END_IF;
|
|
IF a2 > a1 THEN
|
|
amax := a2;
|
|
amax_in := in2;
|
|
ELSE
|
|
amax := a1;
|
|
amax_in := in1;
|
|
END_IF;
|
|
IF (amax - amin > 2.0 * 3.14159) OR (amax - amin = 2.0 * 3.14159) AND (amin_in OR amax_in) THEN
|
|
amin := -3.14159;
|
|
amin_in := FALSE;
|
|
amax := 3.14159;
|
|
amax_in := TRUE;
|
|
ELSE
|
|
amin := amin + ab;
|
|
amax := amax + ab;
|
|
angle_range( amin, amax );
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
IF rmin_in THEN
|
|
minclo := closed;
|
|
END_IF;
|
|
IF rmax_in THEN
|
|
maxclo := closed;
|
|
END_IF;
|
|
ritv := make_finite_real_interval(rmin, minclo, rmax, maxclo);
|
|
ELSE
|
|
IF (rc > rmnp) AND strictly_in(apc, aitp) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
IF aitp.max - aitp.min = 2.0 * 3.14159 THEN
|
|
a := angle(aitp.min);
|
|
IF rc > rmnp THEN
|
|
IF max_included(aitp) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
rmin := 0.0;
|
|
rmin_in := FALSE;
|
|
amin := aitp.min;
|
|
amin_in := FALSE;
|
|
amax := aitp.max;
|
|
amax_in := FALSE;
|
|
ELSE
|
|
rmin := rmnp - rc;
|
|
rmin_in := min_included(ritp);
|
|
amin := -3.14159;
|
|
amin_in := FALSE;
|
|
amax := 3.14159;
|
|
amax_in := TRUE;
|
|
IF NOT max_included(aitp) THEN
|
|
IF apc = a THEN
|
|
rmin_in := FALSE;
|
|
amin := aitp.min;
|
|
amin_in := FALSE;
|
|
amax := aitp.max;
|
|
amax_in := FALSE;
|
|
ELSE
|
|
IF acp = a THEN
|
|
amin := aitp.min;
|
|
amin_in := FALSE;
|
|
amax := aitp.max;
|
|
amax_in := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
a0 := angle(aitp.min);
|
|
in0 := FALSE;
|
|
a1 := angle(aitp.max);
|
|
in1 := FALSE;
|
|
x := xp + rmnp * cos(aitp.max) - xc;
|
|
y := yp + rmnp * sin(aitp.max) - yc;
|
|
r2 := SQRT(x ** 2 + y ** 2);
|
|
in2 := min_included(ritp) AND max_included(aitp);
|
|
IF r2 <> 0.0 THEN
|
|
a2 := atan2(y, x);
|
|
ELSE
|
|
a2 := a1;
|
|
in2 := in1;
|
|
END_IF;
|
|
x := xp + rmnp * cos(aitp.min) - xc;
|
|
y := yp + rmnp * sin(aitp.min) - yc;
|
|
r3 := SQRT(x ** 2 + y ** 2);
|
|
in3 := min_included(ritp) AND min_included(aitp);
|
|
IF r3 <> 0.0 THEN
|
|
a3 := atan2(y, x);
|
|
ELSE
|
|
a3 := a0;
|
|
in3 := in0;
|
|
END_IF;
|
|
IF rmnp = 0.0 THEN
|
|
in2 := min_included(ritp);
|
|
in3 := in2;
|
|
END_IF;
|
|
IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN
|
|
in0 := min_included(aitp);
|
|
in3 := in0;
|
|
ELSE
|
|
IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN
|
|
in1 := max_included(aitp);
|
|
in2 := in1;
|
|
END_IF;
|
|
END_IF;
|
|
IF strictly_in(apc, aitp) THEN
|
|
rmin := rmnp - rc;
|
|
rmin_in := min_included(ritp);
|
|
ELSE
|
|
rmin := r2;
|
|
rmin_in := in2;
|
|
a := apc - aitp.min;
|
|
r := rc * cos(a);
|
|
IF rmnp < r THEN
|
|
rmin := rc * sin(ABS(a));
|
|
rmin_in := min_included(aitp);
|
|
END_IF;
|
|
a := apc - aitp.max;
|
|
r := rc * cos(a);
|
|
IF rmnp < r THEN
|
|
r := rc * sin(ABS(a));
|
|
inn := max_included(aitp);
|
|
IF r = rmin THEN
|
|
rmin_in := rmin_in OR inn;
|
|
END_IF;
|
|
IF r < rmin THEN
|
|
rmin := r;
|
|
rmin_in := inn;
|
|
END_IF;
|
|
END_IF;
|
|
IF r3 = rmin THEN
|
|
rmin_in := rmin_in OR in3;
|
|
END_IF;
|
|
IF r3 < rmin THEN
|
|
rmin := r3;
|
|
rmin_in := in3;
|
|
END_IF;
|
|
END_IF;
|
|
ab := angle(0.500000 * (aitp.min + aitp.max));
|
|
IF rc > rmnp THEN
|
|
find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in );
|
|
ELSE
|
|
a0 := angle(a0 - ab);
|
|
a1 := angle(a1 - ab);
|
|
a2 := angle(a2 - ab);
|
|
a3 := angle(a3 - ab);
|
|
IF a3 > a2 THEN
|
|
a2 := a2 + 2.0 * 3.14159;
|
|
END_IF;
|
|
IF a0 > a1 THEN
|
|
a0 := a0 + 2.0 * 3.14159;
|
|
END_IF;
|
|
IF a3 < a0 THEN
|
|
amin := a3;
|
|
amin_in := in3;
|
|
ELSE
|
|
amin := a0;
|
|
amin_in := in0;
|
|
END_IF;
|
|
IF a2 > a1 THEN
|
|
amax := a2;
|
|
amax_in := in2;
|
|
ELSE
|
|
amax := a1;
|
|
amax_in := in1;
|
|
END_IF;
|
|
IF (amax - amin > 2.0 * 3.14159) OR (amax - amin = 2.0 * 3.14159) AND (amin_in OR amax_in) THEN
|
|
amin := -3.14159;
|
|
amin_in := FALSE;
|
|
amax := 3.14159;
|
|
amax_in := TRUE;
|
|
IF (rmin = 0.0) AND rmin_in THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
ELSE
|
|
amin := amin + ab;
|
|
amax := amax + ab;
|
|
angle_range( amin, amax );
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
IF rmin_in THEN
|
|
minclo := closed;
|
|
END_IF;
|
|
ritv := make_real_interval_from_min(rmin, minclo);
|
|
END_IF;
|
|
minclo := open;
|
|
maxclo := open;
|
|
IF amin_in THEN
|
|
minclo := closed;
|
|
END_IF;
|
|
IF amax_in THEN
|
|
maxclo := closed;
|
|
END_IF;
|
|
aitv := make_finite_real_interval(amin, minclo, amax, maxclo);
|
|
RETURN (make_polar_complex_number_region(centre, ritv, aitv));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION equal_cregion_pregion
|
|
(crgn : cartesian_complex_number_region;
|
|
prgn : polar_complex_number_region ) : LOGICAL;
|
|
LOCAL
|
|
arng : REAL;
|
|
amin : REAL;
|
|
xc : REAL;
|
|
yc : REAL;
|
|
aitv : real_interval;
|
|
xitv : real_interval;
|
|
yitv : real_interval;
|
|
c_in : BOOLEAN;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(crgn) OR NOT EXISTS(prgn) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF max_exists(prgn.distance_constraint) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF real_min(prgn.distance_constraint) <> 0.0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
c_in := min_included(prgn.distance_constraint);
|
|
aitv := prgn.direction_constraint;
|
|
amin := aitv.min;
|
|
arng := aitv.max - amin;
|
|
xc := prgn.centre.real_part;
|
|
yc := prgn.centre.imag_part;
|
|
xitv := crgn.real_constraint;
|
|
yitv := crgn.imag_constraint;
|
|
IF arng = 0.500000 * 3.14159 THEN
|
|
IF amin = 0.0 THEN
|
|
RETURN ((((((NOT max_exists(xitv) AND NOT max_exists(yitv)) AND min_exists(xitv)) AND min_exists(yitv)) AND (real_min(xitv) = xc)) AND (real_min(yitv) = yc)) AND ((((((c_in AND min_included(aitv)) AND max_included(aitv)) AND min_included(xitv)) AND min_included(yitv) OR (((NOT c_in AND NOT min_included(aitv)) AND max_included(aitv)) AND min_included(xitv)) AND NOT min_included(yitv)) OR (((NOT c_in AND min_included(aitv)) AND NOT max_included(aitv)) AND NOT min_included(xitv)) AND min_included(yitv)) OR (((NOT c_in AND NOT min_included(aitv)) AND NOT max_included(aitv)) AND NOT min_included(xitv)) AND NOT min_included(yitv)));
|
|
END_IF;
|
|
IF amin = 0.500000 * 3.14159 THEN
|
|
RETURN ((((((max_exists(xitv) AND NOT max_exists(yitv)) AND NOT min_exists(xitv)) AND min_exists(yitv)) AND (real_max(xitv) = xc)) AND (real_min(yitv) = yc)) AND ((((((c_in AND min_included(aitv)) AND max_included(aitv)) AND max_included(xitv)) AND min_included(yitv) OR (((NOT c_in AND NOT min_included(aitv)) AND max_included(aitv)) AND max_included(xitv)) AND NOT min_included(yitv)) OR (((NOT c_in AND min_included(aitv)) AND NOT max_included(aitv)) AND NOT max_included(xitv)) AND min_included(yitv)) OR (((NOT c_in AND NOT min_included(aitv)) AND NOT max_included(aitv)) AND NOT max_included(xitv)) AND NOT min_included(yitv)));
|
|
END_IF;
|
|
IF amin = -3.14159 THEN
|
|
RETURN ((((((max_exists(xitv) AND max_exists(yitv)) AND NOT min_exists(xitv)) AND NOT min_exists(yitv)) AND (real_max(xitv) = xc)) AND (real_max(yitv) = yc)) AND ((((((c_in AND min_included(aitv)) AND max_included(aitv)) AND max_included(xitv)) AND max_included(yitv) OR (((NOT c_in AND NOT min_included(aitv)) AND max_included(aitv)) AND max_included(xitv)) AND NOT max_included(yitv)) OR (((NOT c_in AND min_included(aitv)) AND NOT max_included(aitv)) AND NOT max_included(xitv)) AND max_included(yitv)) OR (((NOT c_in AND NOT min_included(aitv)) AND NOT max_included(aitv)) AND NOT max_included(xitv)) AND NOT max_included(yitv)));
|
|
END_IF;
|
|
IF amin = -0.500000 * 3.14159 THEN
|
|
RETURN ((((((NOT max_exists(xitv) AND max_exists(yitv)) AND min_exists(xitv)) AND NOT min_exists(yitv)) AND (real_min(xitv) = xc)) AND (real_max(yitv) = yc)) AND ((((((c_in AND min_included(aitv)) AND max_included(aitv)) AND min_included(xitv)) AND max_included(yitv) OR (((NOT c_in AND NOT min_included(aitv)) AND max_included(aitv)) AND min_included(xitv)) AND NOT max_included(yitv)) OR (((NOT c_in AND min_included(aitv)) AND NOT max_included(aitv)) AND NOT min_included(xitv)) AND max_included(yitv)) OR (((NOT c_in AND NOT min_included(aitv)) AND NOT max_included(aitv)) AND NOT min_included(xitv)) AND NOT max_included(yitv)));
|
|
END_IF;
|
|
END_IF;
|
|
IF arng = 3.14159 THEN
|
|
IF amin = 0.0 THEN
|
|
RETURN (((((NOT max_exists(xitv) AND NOT max_exists(yitv)) AND NOT min_exists(xitv)) AND min_exists(yitv)) AND (real_min(yitv) = yc)) AND (((c_in AND min_included(aitv)) AND max_included(aitv)) AND min_included(yitv) OR ((NOT c_in AND NOT min_included(aitv)) AND NOT max_included(aitv)) AND NOT min_included(yitv)));
|
|
END_IF;
|
|
IF amin = 0.500000 * 3.14159 THEN
|
|
RETURN (((((max_exists(xitv) AND NOT max_exists(yitv)) AND NOT min_exists(xitv)) AND NOT min_exists(yitv)) AND (real_max(xitv) = xc)) AND (((c_in AND min_included(aitv)) AND max_included(aitv)) AND max_included(xitv) OR ((NOT c_in AND NOT min_included(aitv)) AND NOT max_included(aitv)) AND NOT max_included(xitv)));
|
|
END_IF;
|
|
IF amin = -3.14159 THEN
|
|
RETURN (((((NOT max_exists(xitv) AND max_exists(yitv)) AND NOT min_exists(xitv)) AND NOT min_exists(yitv)) AND (real_max(yitv) = yc)) AND (((c_in AND min_included(aitv)) AND max_included(aitv)) AND max_included(yitv) OR ((NOT c_in AND NOT min_included(aitv)) AND NOT max_included(aitv)) AND NOT max_included(yitv)));
|
|
END_IF;
|
|
IF amin = -0.500000 * 3.14159 THEN
|
|
RETURN (((((NOT max_exists(xitv) AND NOT max_exists(yitv)) AND min_exists(xitv)) AND NOT min_exists(yitv)) AND (real_min(xitv) = xc)) AND (((c_in AND min_included(aitv)) AND max_included(aitv)) AND min_included(xitv) OR ((NOT c_in AND NOT min_included(aitv)) AND NOT max_included(aitv)) AND NOT min_included(xitv)));
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION equal_maths_functions
|
|
(fun1 : maths_function;
|
|
fun2 : maths_function ) : LOGICAL;
|
|
LOCAL
|
|
cum : LOGICAL;
|
|
END_LOCAL;
|
|
IF fun1 = fun2 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
cum := equal_maths_spaces(fun1.domain, fun2.domain);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
cum := cum AND equal_maths_spaces(fun1.range, fun2.range);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION equal_maths_spaces
|
|
(spc1 : maths_space;
|
|
spc2 : maths_space ) : LOGICAL;
|
|
LOCAL
|
|
spc1types : SET OF STRING := stripped_typeof(spc1);
|
|
spc2types : SET OF STRING := stripped_typeof(spc2);
|
|
set1 : SET OF maths_value;
|
|
set2 : SET OF maths_value;
|
|
cum : LOGICAL := TRUE;
|
|
base : maths_space;
|
|
expnt : INTEGER;
|
|
factors : LIST OF maths_space;
|
|
factors2 : LIST OF maths_space;
|
|
fs1 : function_space;
|
|
fs2 : function_space;
|
|
cum2 : LOGICAL;
|
|
END_LOCAL;
|
|
IF spc1 = spc2 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'FINITE_SPACE' IN spc1types THEN
|
|
set1 := spc1\finite_space.members;
|
|
IF 'FINITE_SPACE' IN spc2types THEN
|
|
set2 := spc2\finite_space.members;
|
|
REPEAT i := 1 TO SIZEOF(set1);
|
|
cum := cum AND member_of(set1[i], spc2);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF cum = TRUE THEN
|
|
REPEAT i := 1 TO SIZEOF(set2);
|
|
cum := cum AND member_of(set2[i], spc1);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (cum);
|
|
END_IF;
|
|
IF 'FINITE_INTEGER_INTERVAL' IN spc2types THEN
|
|
set2 := [];
|
|
REPEAT i := spc2\finite_integer_interval.min TO spc2\finite_integer_interval.max;
|
|
set2 := set2 + [ i ];
|
|
END_REPEAT;
|
|
RETURN (equal_maths_spaces(spc1, make_finite_space(set2)));
|
|
END_IF;
|
|
END_IF;
|
|
IF ('FINITE_INTEGER_INTERVAL' IN spc1types) AND ('FINITE_SPACE' IN spc2types) THEN
|
|
set1 := [];
|
|
REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max;
|
|
set1 := set1 + [ i ];
|
|
END_REPEAT;
|
|
RETURN (equal_maths_spaces(make_finite_space(set1), spc2));
|
|
END_IF;
|
|
IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc1types) AND ('POLAR_COMPLEX_NUMBER_REGION' IN spc2types) THEN
|
|
RETURN (equal_cregion_pregion(spc1, spc2));
|
|
END_IF;
|
|
IF ('POLAR_COMPLEX_NUMBER_REGION' IN spc1types) AND ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types) THEN
|
|
RETURN (equal_cregion_pregion(spc2, spc1));
|
|
END_IF;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN spc1types THEN
|
|
base := spc1\uniform_product_space.base;
|
|
expnt := spc1\uniform_product_space.exponent;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN
|
|
IF expnt <> spc2\uniform_product_space.exponent THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (equal_maths_spaces(base, spc2\uniform_product_space.base));
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN
|
|
factors := spc2\listed_product_space.factors;
|
|
IF expnt <> SIZEOF(factors) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(factors);
|
|
cum := cum AND equal_maths_spaces(base, factors[i]);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN spc1types THEN
|
|
factors := spc1\listed_product_space.factors;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN
|
|
IF spc2\uniform_product_space.exponent <> SIZEOF(factors) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
base := spc2\uniform_product_space.base;
|
|
REPEAT i := 1 TO SIZEOF(factors);
|
|
cum := cum AND equal_maths_spaces(base, factors[i]);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN
|
|
factors2 := spc2\listed_product_space.factors;
|
|
IF SIZEOF(factors) <> SIZEOF(factors2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(factors);
|
|
cum := cum AND equal_maths_spaces(factors[i], factors2[i]);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
END_IF;
|
|
IF ('EXTENDED_TUPLE_SPACE' IN spc1types) AND ('EXTENDED_TUPLE_SPACE' IN spc2types) THEN
|
|
RETURN (equal_maths_spaces(spc1\extended_tuple_space.extender, spc2\extended_tuple_space.extender) AND equal_maths_spaces(spc1\extended_tuple_space.base, spc2\extended_tuple_space.base));
|
|
END_IF;
|
|
IF ('FUNCTION_SPACE' IN spc1types) AND ('FUNCTION_SPACE' IN spc2types) THEN
|
|
fs1 := spc1;
|
|
fs2 := spc2;
|
|
IF fs1.domain_constraint <> fs2.domain_constraint THEN
|
|
IF (fs1.domain_constraint = sc_equal) OR (fs2.domain_constraint = sc_equal) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF fs1.domain_constraint <> sc_subspace THEN
|
|
fs1 := spc2;
|
|
fs2 := spc1;
|
|
END_IF;
|
|
IF (fs1.domain_constraint <> sc_subspace) OR (fs2.domain_constraint <> sc_member) THEN
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF any_space_satisfies(fs1.domain_constraint, fs1.domain_argument) <> any_space_satisfies(fs2.domain_constraint, fs2.domain_argument) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.domain_argument)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF SIZEOF([ 'FINITE_SPACE', 'FINITE_INTEGER_INTERVAL' ] * stripped_typeof(fs1.domain_argument)) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
cum := equal_maths_spaces(fs1.domain_argument, fs2.domain_argument);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF fs1.range_constraint <> fs2.range_constraint THEN
|
|
IF (fs1.range_constraint = sc_equal) OR (fs2.range_constraint = sc_equal) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF fs1.range_constraint <> sc_subspace THEN
|
|
fs1 := spc2;
|
|
fs2 := spc1;
|
|
END_IF;
|
|
IF (fs1.range_constraint <> sc_subspace) OR (fs2.range_constraint <> sc_member) THEN
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF any_space_satisfies(fs1.range_constraint, fs1.range_argument) <> any_space_satisfies(fs2.range_constraint, fs2.range_argument) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.range_argument)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF SIZEOF([ 'FINITE_SPACE', 'FINITE_INTEGER_INTERVAL' ] * stripped_typeof(fs1.range_argument)) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
cum := cum AND equal_maths_spaces(fs1.range_argument, fs2.range_argument);
|
|
RETURN (cum);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION equal_maths_values
|
|
(val1 : maths_value;
|
|
val2 : maths_value ) : LOGICAL;
|
|
FUNCTION mem_of_vs
|
|
(val1 : maths_value;
|
|
val2 : maths_value ) : LOGICAL;
|
|
IF NOT has_values_space(val2) THEN
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF NOT member_of(val1, values_space_of(val2)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION;
|
|
LOCAL
|
|
types1 : SET OF STRING;
|
|
types2 : SET OF STRING;
|
|
list1 : LIST OF maths_value;
|
|
list2 : LIST OF maths_value;
|
|
cum : LOGICAL := TRUE;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(val1) OR NOT EXISTS(val2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF val1 = val2 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
types1 := stripped_typeof(val1);
|
|
types2 := stripped_typeof(val2);
|
|
IF ('MATHS_ATOM' IN types1) OR ('COMPLEX_NUMBER_LITERAL' IN types1) THEN
|
|
IF 'MATHS_ATOM' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'COMPLEX_NUMBER_LITERAL' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'LIST' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'MATHS_SPACE' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'MATHS_FUNCTION' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'GENERIC_EXPRESSION' IN types2 THEN
|
|
RETURN (mem_of_vs(val1, val2));
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF ('MATHS_ATOM' IN types2) OR ('COMPLEX_NUMBER_LITERAL' IN types2) THEN
|
|
RETURN (equal_maths_values(val2, val1));
|
|
END_IF;
|
|
IF 'LIST' IN types1 THEN
|
|
IF 'LIST' IN types2 THEN
|
|
list1 := val1;
|
|
list2 := val2;
|
|
IF SIZEOF(list1) <> SIZEOF(list2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(list1);
|
|
cum := cum AND equal_maths_values(list1[i], list2[i]);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
IF 'MATHS_SPACE' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'MATHS_FUNCTION' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'GENERIC_EXPRESSION' IN types2 THEN
|
|
RETURN (mem_of_vs(val1, val2));
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF 'LIST' IN types2 THEN
|
|
RETURN (equal_maths_values(val2, val1));
|
|
END_IF;
|
|
IF 'MATHS_SPACE' IN types1 THEN
|
|
IF 'MATHS_SPACE' IN types2 THEN
|
|
RETURN (equal_maths_spaces(val1, val2));
|
|
END_IF;
|
|
IF 'MATHS_FUNCTION' IN types2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'GENERIC_EXPRESSION' IN types2 THEN
|
|
RETURN (mem_of_vs(val1, val2));
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF 'MATHS_SPACE' IN types2 THEN
|
|
RETURN (equal_maths_values(val2, val1));
|
|
END_IF;
|
|
IF 'MATHS_FUNCTION' IN types1 THEN
|
|
IF 'MATHS_FUNCTION' IN types2 THEN
|
|
RETURN (equal_maths_functions(val1, val2));
|
|
END_IF;
|
|
IF 'GENERIC_EXPRESSION' IN types2 THEN
|
|
RETURN (mem_of_vs(val1, val2));
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF 'MATHS_FUNCTION' IN types2 THEN
|
|
RETURN (equal_maths_values(val2, val1));
|
|
END_IF;
|
|
IF ('GENERIC_EXPRESSION' IN types1) AND ('GENERIC_EXPRESSION' IN types2) THEN
|
|
IF NOT has_values_space(val1) OR NOT has_values_space(val2) THEN
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF NOT compatible_spaces(values_space_of(val1), values_space_of(val2)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION es_subspace_of_es
|
|
(es1 : elementary_space_enumerators;
|
|
es2 : elementary_space_enumerators ) : BOOLEAN;
|
|
IF NOT EXISTS(es1) OR NOT EXISTS(es2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF es1 = es2 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF es2 = es_generics THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF (es1 = es_booleans) AND (es2 = es_logicals) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF (es2 = es_numbers) AND (((es1 = es_complex_numbers) OR (es1 = es_reals)) OR (es1 = es_integers)) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION expression_is_constant
|
|
(expr : generic_expression ) : BOOLEAN;
|
|
RETURN (bool(SIZEOF(free_variables_of(expr)) = 0));
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
FUNCTION external_version_assignment_is_valid
|
|
(aia : applied_external_identification_assignment ) : BOOLEAN;
|
|
LOCAL
|
|
item : external_identification_item;
|
|
role : identification_role;
|
|
END_LOCAL;
|
|
role := aia.role;
|
|
IF role.name = 'version' THEN
|
|
REPEAT i := LOINDEX(aia\applied_external_identification_assignment.items) TO HIINDEX(aia\applied_external_identification_assignment.items);
|
|
item := aia\applied_external_identification_assignment.items[i];
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EXTERNALLY_DEFINED_GENERAL_PROPERTY' ] * TYPEOF(item)) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION extract_factors
|
|
(tspace : tuple_space;
|
|
m : INTEGER;
|
|
n : INTEGER ) : tuple_space;
|
|
LOCAL
|
|
tsp : tuple_space := the_zero_tuple_space;
|
|
END_LOCAL;
|
|
REPEAT i := m TO n;
|
|
tsp := assoc_product_space(tsp, factor_space(tspace, i));
|
|
END_REPEAT;
|
|
RETURN (tsp);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION face_bound_reversed
|
|
(a_face_bound : face_bound ) : face_bound;
|
|
LOCAL
|
|
the_reverse : face_bound;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION factor1
|
|
(tspace : tuple_space ) : maths_space;
|
|
LOCAL
|
|
typenames : SET OF STRING := TYPEOF(tspace);
|
|
END_LOCAL;
|
|
IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN typenames THEN
|
|
RETURN (tspace\uniform_product_space.base);
|
|
END_IF;
|
|
IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN typenames THEN
|
|
RETURN (tspace\listed_product_space.factors[1]);
|
|
END_IF;
|
|
IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN typenames THEN
|
|
RETURN (factor1(tspace\extended_tuple_space.base));
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION factor_space
|
|
(tspace : tuple_space;
|
|
idx : positive_integer ) : maths_space;
|
|
LOCAL
|
|
typenames : SET OF STRING := TYPEOF(tspace);
|
|
END_LOCAL;
|
|
IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN typenames THEN
|
|
IF idx <= tspace\uniform_product_space.exponent THEN
|
|
RETURN (tspace\uniform_product_space.base);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_IF;
|
|
IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN typenames THEN
|
|
IF idx <= SIZEOF(tspace\listed_product_space.factors) THEN
|
|
RETURN (tspace\listed_product_space.factors[idx]);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_IF;
|
|
IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN typenames THEN
|
|
IF idx <= space_dimension(tspace\extended_tuple_space.base) THEN
|
|
RETURN (factor_space(tspace\extended_tuple_space.base, idx));
|
|
END_IF;
|
|
RETURN (tspace\extended_tuple_space.extender);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION find_assembly_root
|
|
(constituent : SET [0:?] OF product_definition ) : SET [0:?] OF product_definition;
|
|
LOCAL
|
|
local_relation : SET OF assembly_component_usage := [];
|
|
local_relation2 : BAG OF assembly_component_usage := [];
|
|
local_parent : SET OF product_definition := [];
|
|
root : SET OF product_definition;
|
|
i : INTEGER := 0;
|
|
j : INTEGER := 0;
|
|
END_LOCAL;
|
|
IF (SIZEOF(constituent) = 1) AND assembly_root(constituent[1]) THEN
|
|
RETURN ([ constituent[1] ]);
|
|
ELSE
|
|
IF SIZEOF(constituent) = 0 THEN
|
|
RETURN ([]);
|
|
ELSE
|
|
REPEAT j := 1 TO HIINDEX(constituent);
|
|
local_relation2 := local_relation2 + QUERY (pdr <* USEDIN(constituent[j], 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)));
|
|
END_REPEAT;
|
|
local_relation := bag_to_set(local_relation2);
|
|
IF SIZEOF(local_relation) = 0 THEN
|
|
IF SIZEOF(constituent) = 1 THEN
|
|
RETURN ([ constituent[1] ]);
|
|
ELSE
|
|
RETURN ([]);
|
|
END_IF;
|
|
ELSE
|
|
REPEAT i := 1 TO HIINDEX(local_relation);
|
|
REPEAT j := 1 TO HIINDEX(constituent);
|
|
IF local_relation[i].relating_product_definition <> constituent[j] THEN
|
|
local_parent := local_parent + local_relation[i].relating_product_definition;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
IF (SIZEOF(local_parent) = 1) AND assembly_root(local_parent[1]) THEN
|
|
RETURN ([ local_parent[1] ]);
|
|
ELSE
|
|
IF SIZEOF(local_parent) = 0 THEN
|
|
RETURN ([]);
|
|
ELSE
|
|
root := find_assembly_root(local_parent);
|
|
IF SIZEOF(root) = 1 THEN
|
|
RETURN (root);
|
|
ELSE
|
|
IF SIZEOF(root) = 0 THEN
|
|
RETURN ([]);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN ([]);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION find_representative_shape_representation_of_product_definition
|
|
(item : product_definition ) : shape_representation;
|
|
LOCAL
|
|
local_s_r : SET OF shape_representation := [];
|
|
END_LOCAL;
|
|
local_s_r := QUERY (z <* find_shape_representation_of_product_definition(item)| 'STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z));
|
|
IF SIZEOF(local_s_r) = 1 THEN
|
|
RETURN (local_s_r[1]);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION find_representative_shape_representation_of_shape_aspect
|
|
(item : shape_aspect ) : shape_representation;
|
|
LOCAL
|
|
local_s_r : SET OF shape_representation := [];
|
|
END_LOCAL;
|
|
local_s_r := QUERY (z <* find_shape_representation_of_shape_aspect(item)| 'STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z));
|
|
IF SIZEOF(local_s_r) = 1 THEN
|
|
RETURN (local_s_r[1]);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION find_shape_representation_of_product_definition
|
|
(item : product_definition ) : SET [0:?] OF shape_representation;
|
|
LOCAL
|
|
local_p_d_s : SET OF product_definition_shape := [];
|
|
local_p_d_s2 : BAG OF product_definition_shape := [];
|
|
local_s_d_r : SET OF shape_definition_representation := [];
|
|
local_s_d_r2 : BAG OF shape_definition_representation := [];
|
|
local_s_r : SET OF shape_representation := [];
|
|
i : INTEGER;
|
|
END_LOCAL;
|
|
local_p_d_s2 := local_p_d_s2 + QUERY (pd <* USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)));
|
|
local_p_d_s := bag_to_set(local_p_d_s2);
|
|
REPEAT i := 1 TO HIINDEX(local_p_d_s);
|
|
local_s_d_r2 := local_s_d_r2 + QUERY (pdr <* USEDIN(local_p_d_s[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
|
|
END_REPEAT;
|
|
local_s_d_r := bag_to_set(local_s_d_r2);
|
|
REPEAT i := 1 TO HIINDEX(local_s_d_r);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(local_s_d_r[i].used_representation) THEN
|
|
local_s_r := local_s_r + local_s_d_r[i].used_representation;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (local_s_r);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION find_shape_representation_of_shape_aspect
|
|
(item : shape_aspect ) : SET [0:?] OF shape_representation;
|
|
LOCAL
|
|
local_p_d : SET OF property_definition := [];
|
|
local_s_d_r : SET OF shape_definition_representation := [];
|
|
local_s_d_r2 : BAG OF shape_definition_representation := [];
|
|
local_s_r : SET OF shape_representation := [];
|
|
i : INTEGER;
|
|
END_LOCAL;
|
|
local_p_d := bag_to_set(USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
|
|
REPEAT i := 1 TO HIINDEX(local_p_d);
|
|
local_s_d_r2 := local_s_d_r2 + QUERY (pdr <* USEDIN(local_p_d[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
|
|
END_REPEAT;
|
|
local_s_d_r := bag_to_set(local_s_d_r2);
|
|
REPEAT i := 1 TO HIINDEX(local_s_d_r);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(local_s_d_r[i].used_representation) THEN
|
|
local_s_r := local_s_r + local_s_d_r[i].used_representation;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (local_s_r);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION first_proj_axis
|
|
(z_axis : direction;
|
|
arg : direction ) : direction;
|
|
LOCAL
|
|
x_axis : direction;
|
|
v : direction;
|
|
z : direction;
|
|
x_vec : vector;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(z_axis) THEN
|
|
RETURN (?);
|
|
ELSE
|
|
z := normalise(z_axis);
|
|
IF NOT EXISTS(arg) THEN
|
|
IF (z.direction_ratios <> [ 1.0, 0.0, 0.0 ]) AND (z.direction_ratios <> [ -1.0, 0.0, 0.0 ]) THEN
|
|
v := dummy_gri || direction([ 1.0, 0.0, 0.0 ]);
|
|
ELSE
|
|
v := dummy_gri || direction([ 0.0, 1.0, 0.0 ]);
|
|
END_IF;
|
|
ELSE
|
|
IF arg.dim <> 3 THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
IF cross_product(arg, z).magnitude = 0.0 THEN
|
|
RETURN (?);
|
|
ELSE
|
|
v := normalise(arg);
|
|
END_IF;
|
|
END_IF;
|
|
x_vec := scalar_times_vector(dot_product(v, z), z);
|
|
x_axis := vector_difference(v, x_vec).orientation;
|
|
x_axis := normalise(x_axis);
|
|
END_IF;
|
|
RETURN (x_axis);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION frame_associated_to_background
|
|
(frame : rigid_placement;
|
|
background : kinematic_frame_background ) : BOOLEAN;
|
|
LOCAL
|
|
rep_bag : BAG OF kinematic_frame_background_representation;
|
|
trf_bag : BAG OF kinematic_frame_based_transformation;
|
|
trm_bag : BAG OF kinematic_frame_based_transformation;
|
|
ass_bag : BAG OF kinematic_frame_background_representation_association;
|
|
rep : kinematic_frame_background_representation;
|
|
ass : kinematic_frame_background_representation_association;
|
|
END_LOCAL;
|
|
rep_bag := QUERY (bg <* USEDIN(background, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| 'STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION' IN TYPEOF(bg));
|
|
IF SIZEOF(rep_bag) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
trf_bag := USEDIN(frame, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_FRAME_BASED_TRANSFORMATION.TRANSFORMATOR');
|
|
IF SIZEOF(trf_bag) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO HIINDEX(rep_bag);
|
|
rep := rep_bag[i];
|
|
ass_bag := QUERY (kfbra <* USEDIN(rep, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_RELATIONSHIP.REP_2')| 'STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION_ASSOCIATION' IN TYPEOF(kfbra));
|
|
IF SIZEOF(ass_bag) > 0 THEN
|
|
REPEAT j := 1 TO HIINDEX(ass_bag);
|
|
ass := ass_bag[j];
|
|
trm_bag := QUERY (trm <* trf_bag| trm :=: ass\representation_relationship_with_transformation.transformation_operator);
|
|
IF SIZEOF(trm_bag) > 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION free_variables_of
|
|
(expr : generic_expression ) : SET [0:?] OF generic_variable;
|
|
LOCAL
|
|
typenames : SET OF STRING := stripped_typeof(expr);
|
|
result : SET OF generic_variable := [];
|
|
exprs : LIST OF generic_expression := [];
|
|
END_LOCAL;
|
|
IF 'GENERIC_LITERAL' IN typenames THEN
|
|
RETURN (result);
|
|
END_IF;
|
|
IF 'GENERIC_VARIABLE' IN typenames THEN
|
|
result := result + expr;
|
|
RETURN (result);
|
|
END_IF;
|
|
IF 'QUANTIFIER_EXPRESSION' IN typenames THEN
|
|
exprs := QUERY (ge <* expr\multiple_arity_generic_expression.operands| NOT (ge IN expr\quantifier_expression.variables));
|
|
REPEAT i := 1 TO SIZEOF(exprs);
|
|
result := result + free_variables_of(exprs[i]);
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(expr\quantifier_expression.variables);
|
|
result := result - expr\quantifier_expression.variables[i];
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_IF;
|
|
IF 'UNARY_GENERIC_EXPRESSION' IN typenames THEN
|
|
RETURN (free_variables_of(expr\unary_generic_expression.operand));
|
|
END_IF;
|
|
IF 'BINARY_GENERIC_EXPRESSION' IN typenames THEN
|
|
result := free_variables_of(expr\binary_generic_expression.operands[1]);
|
|
RETURN (result + free_variables_of(expr\binary_generic_expression.operands[2]));
|
|
END_IF;
|
|
IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames THEN
|
|
REPEAT i := 1 TO SIZEOF(expr\multiple_arity_generic_expression.operands);
|
|
result := result + free_variables_of(expr\multiple_arity_generic_expression.operands[i]);
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_IF;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION function_applicability
|
|
(func : maths_function_select;
|
|
arguments : LIST [1:?] OF maths_value ) : BOOLEAN;
|
|
LOCAL
|
|
domain : tuple_space := convert_to_maths_function(func).domain;
|
|
domain_types : SET OF STRING := TYPEOF(domain);
|
|
narg : positive_integer := SIZEOF(arguments);
|
|
arg : generic_expression;
|
|
END_LOCAL;
|
|
IF schema_prefix + 'PRODUCT_SPACE' IN domain_types THEN
|
|
IF space_dimension(domain) <> narg THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
ELSE
|
|
IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN domain_types THEN
|
|
IF space_dimension(domain) > narg THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
REPEAT i := 1 TO narg;
|
|
arg := convert_to_operand(arguments[i]);
|
|
IF NOT has_values_space(arg) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF NOT compatible_spaces(factor_space(domain, i), values_space_of(arg)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION function_is_1d_array
|
|
(func : maths_function ) : BOOLEAN;
|
|
LOCAL
|
|
temp : maths_space;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(func) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF space_dimension(func.domain) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
temp := factor1(func.domain);
|
|
IF schema_prefix + 'PRODUCT_SPACE' IN TYPEOF(temp) THEN
|
|
IF space_dimension(temp) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
temp := factor1(temp);
|
|
END_IF;
|
|
IF schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION function_is_1d_table
|
|
(func : maths_function ) : BOOLEAN;
|
|
LOCAL
|
|
temp : maths_space;
|
|
itvl : finite_integer_interval;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(func) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF space_dimension(func.domain) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
temp := factor1(func.domain);
|
|
IF schema_prefix + 'PRODUCT_SPACE' IN TYPEOF(temp) THEN
|
|
IF space_dimension(temp) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
temp := factor1(temp);
|
|
END_IF;
|
|
IF schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp) THEN
|
|
itvl := temp;
|
|
RETURN (bool((itvl.min = 0) OR (itvl.min = 1)));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION function_is_2d_table
|
|
(func : maths_function ) : BOOLEAN;
|
|
LOCAL
|
|
temp : maths_space;
|
|
pspace : product_space;
|
|
itvl1 : finite_integer_interval;
|
|
itvl2 : finite_integer_interval;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(func) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF space_dimension(func.domain) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
temp := factor1(func.domain);
|
|
IF NOT ('PRODUCT_SPACE' IN stripped_typeof(temp)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
pspace := temp;
|
|
IF space_dimension(pspace) <> 2 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
temp := factor1(pspace);
|
|
IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
itvl1 := temp;
|
|
temp := factor_space(pspace, 2);
|
|
IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
itvl2 := temp;
|
|
RETURN (bool((itvl1.min = itvl2.min) AND ((itvl1.min = 0) OR (itvl1.min = 1))));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION function_is_array
|
|
(func : maths_function ) : BOOLEAN;
|
|
LOCAL
|
|
tspace : tuple_space;
|
|
temp : maths_space;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(func) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
tspace := func.domain;
|
|
IF (space_dimension(tspace) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(tspace))) THEN
|
|
tspace := factor1(tspace);
|
|
END_IF;
|
|
IF NOT (schema_prefix + 'PRODUCT_SPACE' IN TYPEOF(tspace)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO space_dimension(tspace);
|
|
temp := factor_space(tspace, i);
|
|
IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION function_is_table
|
|
(func : maths_function ) : BOOLEAN;
|
|
LOCAL
|
|
tspace : tuple_space;
|
|
temp : maths_space;
|
|
base : INTEGER;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(func) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
tspace := func.domain;
|
|
IF (space_dimension(tspace) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(tspace))) THEN
|
|
tspace := factor1(tspace);
|
|
END_IF;
|
|
IF NOT (schema_prefix + 'PRODUCT_SPACE' IN TYPEOF(tspace)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
temp := factor1(tspace);
|
|
IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
base := temp\finite_integer_interval.min;
|
|
IF (base <> 0) AND (base <> 1) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 2 TO space_dimension(tspace);
|
|
temp := factor_space(tspace, i);
|
|
IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF temp\finite_integer_interval.min <> base THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION gbsf_check_curve
|
|
(cv : representation_item ) : BOOLEAN;
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.BOUNDED_CURVE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA', 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' ] * TYPEOF(cv)) > 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCLE', 'STEP_MERGED_CAD_SCHEMA.ELLIPSE', 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' ] * TYPEOF(cv)) = 1 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN
|
|
RETURN (gbsf_check_curve(cv\curve_replica.parent_curve));
|
|
ELSE
|
|
IF (('STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN))) AND NOT ('STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)) THEN
|
|
RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN
|
|
IF SIZEOF(cv\polyline.points) >= 3 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE' IN TYPEOF(pnt) THEN
|
|
RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN
|
|
RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.SPHERICAL_SURFACE', 'STEP_MERGED_CAD_SCHEMA.TOROIDAL_SURFACE', 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_TRIMMED_SURFACE' ] * TYPEOF(sf)) = 1 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.SURFACE_REPLICA' IN TYPEOF(sf) THEN
|
|
RETURN (gbsf_check_surface(sf\surface_replica.parent_surface));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION get_associated_mandatory_document_ids
|
|
(pdc : product_definition_context ) : SET [0:?] OF STRING;
|
|
LOCAL
|
|
result : SET OF STRING := [];
|
|
adrs_raw : SET OF applied_document_reference := bag_to_set(USEDIN(pdc, 'STEP_MERGED_CAD_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS'));
|
|
adrs_filtered : SET OF applied_document_reference := [];
|
|
ras : SET OF role_association;
|
|
dpas : SET OF document_product_association;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO HIINDEX(adrs_raw);
|
|
IF adrs_raw[i]\document_reference.role\object_role.name = 'mandatory' THEN
|
|
adrs_filtered := adrs_filtered + adrs_raw[i];
|
|
END_IF;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(adrs_filtered);
|
|
dpas := bag_to_set(USEDIN(adrs_filtered[i]\document_reference.assigned_document, 'STEP_MERGED_CAD_SCHEMA.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT'));
|
|
REPEAT j := 1 TO HIINDEX(dpas);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF(dpas[j]) THEN
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(dpas[j]\document_product_association.related_product) THEN
|
|
result := result + dpas[j]\document_product_association.related_product\product_definition_formation.of_product\product.id;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT' IN TYPEOF(dpas[j].related_product) THEN
|
|
result := result + dpas[j]\document_product_association.related_product\product.id;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION get_basis_surface
|
|
(c : curve_on_surface ) : SET [0:2] OF surface;
|
|
LOCAL
|
|
surfs : SET [0:2] OF surface;
|
|
n : INTEGER;
|
|
END_LOCAL;
|
|
surfs := [];
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(c) THEN
|
|
surfs := [ c\pcurve.basis_surface ];
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c) THEN
|
|
n := SIZEOF(c\composite_curve.segments);
|
|
surfs := get_basis_surface(c\composite_curve.segments[1].parent_curve);
|
|
IF n > 1 THEN
|
|
REPEAT i := 2 TO n;
|
|
surfs := surfs * get_basis_surface(c\composite_curve.segments[i].parent_curve);
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (surfs);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION get_description_value
|
|
(obj : description_attribute_select ) : text;
|
|
LOCAL
|
|
description_bag : BAG OF description_attribute := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM');
|
|
END_LOCAL;
|
|
IF SIZEOF(description_bag) = 1 THEN
|
|
RETURN (description_bag[1].attribute_value);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION get_diameter_for_round_hole
|
|
(rh : round_hole ) : REAL;
|
|
LOCAL
|
|
sa_set : SET OF shape_aspect;
|
|
sar_set : SET OF shape_aspect_relationship;
|
|
pdr_set : SET OF property_definition_representation;
|
|
ri_set : SET OF representation_item;
|
|
END_LOCAL;
|
|
sa_set := get_shape_aspects(rh);
|
|
REPEAT i := 1 TO HIINDEX(sa_set);
|
|
IF sa_set[i].description = 'diameter occurrence' THEN
|
|
sar_set := bag_to_set(USEDIN(sa_set[i], 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT'));
|
|
REPEAT j := 1 TO HIINDEX(sar_set);
|
|
IF (((sar_set[j].name = 'diameter') AND (sar_set[j].description = 'profile usage')) AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar_set[j]))) AND ('STEP_MERGED_CAD_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sar_set[j].relating_shape_aspect)) THEN
|
|
pdr_set := get_shape_aspect_property_definition_representations(sar_set[j].relating_shape_aspect);
|
|
REPEAT k := 1 TO HIINDEX(pdr_set);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr_set[k].used_representation) THEN
|
|
ri_set := pdr_set[k].used_representation.items;
|
|
REPEAT l := 1 TO HIINDEX(ri_set);
|
|
IF ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(ri_set[l])) AND ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(ri_set[l])) THEN
|
|
RETURN (ri_set[l]\measure_with_unit.value_component);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION get_directed_link
|
|
(nodes : LIST [0:?] OF representation;
|
|
undirected_link : LIST [0:?] OF chained_representation_link ) : LIST [0:?] OF representation_relationship;
|
|
LOCAL
|
|
directed_link : LIST OF representation_relationship := [];
|
|
END_LOCAL;
|
|
IF (SIZEOF(nodes) <> SIZEOF(undirected_link) + 1) OR (VALUE_UNIQUE(nodes) = FALSE) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(undirected_link);
|
|
CASE TRUE OF
|
|
'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_CONTEXT' IN TYPEOF(undirected_link[i]) :
|
|
BEGIN
|
|
IF (nodes[i]\representation.context_of_items :=: undirected_link[i]) AND (nodes[(i + 1)]\representation.context_of_items :=: undirected_link[i]) THEN
|
|
INSERT( directed_link, representation_relationship('', '', nodes[(i + 1)], nodes[i]), i - 1 );
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END;
|
|
'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_RELATIONSHIP' IN TYPEOF(undirected_link[i]) :
|
|
BEGIN
|
|
IF (nodes[i] :=: undirected_link[i]\representation_relationship.rep_1) AND (nodes[(i + 1)] :=: undirected_link[i]\representation_relationship.rep_2) OR (nodes[i] :=: undirected_link[i]\representation_relationship.rep_2) AND (nodes[(i + 1)] :=: undirected_link[i]\representation_relationship.rep_1) THEN
|
|
INSERT( directed_link, representation_relationship('', '', nodes[(i + 1)], nodes[i]), i - 1 );
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END;
|
|
'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(undirected_link[i]) :
|
|
BEGIN
|
|
IF (nodes[i] IN using_representations(undirected_link[i])) AND (nodes[(i + 1)] :=: undirected_link[i]\mapped_item.mapping_source\representation_map.mapped_representation) THEN
|
|
INSERT( directed_link, representation_relationship('', '', nodes[(i + 1)], nodes[i]), i - 1 );
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END;
|
|
OTHERWISE :
|
|
RETURN (?);
|
|
END_CASE;
|
|
END_REPEAT;
|
|
IF VALUE_UNIQUE(directed_link) = FALSE THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
RETURN (directed_link);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION get_id_value
|
|
(obj : id_attribute_select ) : identifier;
|
|
LOCAL
|
|
id_bag : BAG OF id_attribute := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM');
|
|
END_LOCAL;
|
|
IF SIZEOF(id_bag) = 1 THEN
|
|
RETURN (id_bag[1].attribute_value);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION get_kinematic_joints_from_kinematic_loops
|
|
(kls : SET [0:?] OF kinematic_loop ) : SET [0:?] OF kinematic_joint;
|
|
LOCAL
|
|
result : SET OF oriented_joint := [];
|
|
END_LOCAL;
|
|
IF SIZEOF(kls) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(kls);
|
|
result := result + kls[i].edge_list;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (get_kinematic_joints_from_oriented_joints(result));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION get_kinematic_joints_from_oriented_joints
|
|
(ors : SET [0:?] OF oriented_joint ) : SET [0:?] OF kinematic_joint;
|
|
LOCAL
|
|
result : SET OF kinematic_joint := [];
|
|
END_LOCAL;
|
|
IF SIZEOF(ors) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(ors);
|
|
result := result + ors[i].edge_element;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION get_multi_language
|
|
(x : multi_language_attribute_assignment ) : label;
|
|
-- LOCAL
|
|
-- alas : BAG OF attribute_language_assignment := USEDIN(x, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS');
|
|
-- END_LOCAL;
|
|
-- IF SIZEOF(alas) > 0 THEN
|
|
-- RETURN (alas[1].language);
|
|
-- END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION get_name_value
|
|
(obj : name_attribute_select ) : label;
|
|
LOCAL
|
|
name_bag : BAG OF name_attribute := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.' + 'NAMED_ITEM');
|
|
END_LOCAL;
|
|
IF SIZEOF(name_bag) = 1 THEN
|
|
RETURN (name_bag[1].attribute_value);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION get_plane_of_implicit_geometry
|
|
(ps : positioned_sketch ) : plane;
|
|
LOCAL
|
|
sb : sketch_basis_select := ps.sketch_basis;
|
|
result : plane := ?;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(sb) THEN
|
|
result := sb\face_surface.face_geometry;
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE' IN TYPEOF(sb) THEN
|
|
result := sb\curve_bounded_surface.basis_surface;
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PLANAR_CURVE_SELECT' IN TYPEOF(sb) THEN
|
|
BEGIN
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CONIC' IN TYPEOF(sb) THEN
|
|
result := dummy_gri || surface() || elementary_surface(sb\conic.position) || plane();
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' IN TYPEOF(sb) THEN
|
|
BEGIN
|
|
result := get_plane_of_implicit_geometry(dummy_gri || positioned_sketch(sb\trimmed_curve.basis_curve, []));
|
|
END;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(sb) THEN
|
|
result := sb\pcurve.basis_surface;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(sb) THEN
|
|
BEGIN
|
|
IF (SIZEOF(sb\surface_curve.basis_surface) = 1) AND ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1])) THEN
|
|
result := sb\surface_curve.basis_surface[1];
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1])) AND ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[2])) THEN
|
|
result := ?;
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1]) THEN
|
|
result := sb\surface_curve.basis_surface[1];
|
|
ELSE
|
|
result := sb\surface_curve.basis_surface[2];
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END;
|
|
END_IF;
|
|
END;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
FUNCTION get_property_definition_representations
|
|
(c_def_instance : characterized_definition ) : 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(c_def_instance, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
|
|
IF SIZEOF(pd_set) < 1 THEN
|
|
RETURN (pdr_set);
|
|
END_IF;
|
|
REPEAT i := 1 TO HIINDEX(pd_set);
|
|
pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
|
|
END_REPEAT;
|
|
RETURN (pdr_set);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION get_relative_direction_2points
|
|
(cp1 : cartesian_point;
|
|
cp2 : cartesian_point ) : direction;
|
|
LOCAL
|
|
d1 : REAL;
|
|
d2 : REAL;
|
|
d3 : REAL;
|
|
magnitude : REAL;
|
|
result : direction := ?;
|
|
END_LOCAL;
|
|
IF (cp1.dim <> 3) OR (cp2.dim <> 3) THEN
|
|
RETURN (result);
|
|
ELSE
|
|
BEGIN
|
|
d1 := cp2.coordinates[1] - cp1.coordinates[1];
|
|
d2 := cp2.coordinates[2] - cp1.coordinates[2];
|
|
d3 := cp2.coordinates[3] - cp1.coordinates[3];
|
|
magnitude := SQRT(d1 * d1 + d2 * d2 + d3 * d3);
|
|
IF magnitude = 0 THEN
|
|
RETURN (result);
|
|
END_IF;
|
|
result := dummy_gri || direction([ d1, d2, d3 ]);
|
|
END;
|
|
END_IF;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION get_role
|
|
(obj : role_select ) : object_role;
|
|
LOCAL
|
|
role_bag : BAG OF role_association := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE');
|
|
END_LOCAL;
|
|
IF SIZEOF(role_bag) = 1 THEN
|
|
RETURN (role_bag[1].role);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION get_round_holes_for_composite_hole
|
|
(sar_instance_set : SET OF shape_aspect_relationship ) : SET OF round_hole;
|
|
LOCAL
|
|
rh_set : SET OF round_hole := [];
|
|
pdr_set : SET OF property_definition_representation;
|
|
pdr_set1 : SET OF property_definition_representation;
|
|
ri_set : SET OF representation_item;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO HIINDEX(sar_instance_set);
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.INSTANCED_FEATURE', 'STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' ] * TYPEOF(sar_instance_set[i].related_shape_aspect)) >= 2 THEN
|
|
rh_set := rh_set + sar_instance_set[i].related_shape_aspect\round_hole;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PLACED_FEATURE' IN TYPEOF(sar_instance_set[i]) THEN
|
|
pdr_set := get_shape_aspect_property_definition_representations(sar_instance_set[i].related_shape_aspect);
|
|
REPEAT j := 1 TO HIINDEX(pdr_set);
|
|
IF (pdr_set[j].used_representation.name = 'feature definition placement') AND ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(pdr_set[j].used_representation)) THEN
|
|
ri_set := pdr_set[j].used_representation.items;
|
|
REPEAT k := 1 TO HIINDEX(ri_set);
|
|
IF ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(ri_set[k])) AND ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(ri_set[k]\mapped_item.mapping_source.mapped_representation)) THEN
|
|
pdr_set1 := bag_to_set(USEDIN(ri_set[k]\mapped_item.mapping_source.mapped_representation, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'));
|
|
REPEAT l := 1 TO HIINDEX(pdr_set1);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' IN TYPEOF(pdr_set1[l].definition.definition) THEN
|
|
rh_set := rh_set + pdr_set1[l].definition.definition;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (rh_set);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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, 'STEP_MERGED_CAD_SCHEMA.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], 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
|
|
END_REPEAT;
|
|
RETURN (pdr_set);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
FUNCTION get_shape_aspects
|
|
(c_def_instance : characterized_definition ) : SET [0:?] OF shape_aspect;
|
|
LOCAL
|
|
pd_set : SET OF product_definition_shape := [];
|
|
pdr_set : SET OF shape_aspect := [];
|
|
END_LOCAL;
|
|
pd_set := bag_to_set(QUERY (pd <* USEDIN(c_def_instance, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)));
|
|
IF SIZEOF(pd_set) < 1 THEN
|
|
RETURN (pdr_set);
|
|
END_IF;
|
|
REPEAT i := 1 TO HIINDEX(pd_set);
|
|
pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE'));
|
|
END_REPEAT;
|
|
RETURN (pdr_set);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION has_values_space
|
|
(expr : generic_expression ) : BOOLEAN;
|
|
LOCAL
|
|
typenames : SET OF STRING := stripped_typeof(expr);
|
|
END_LOCAL;
|
|
IF 'EXPRESSION' IN typenames THEN
|
|
RETURN (bool((('NUMERIC_EXPRESSION' IN typenames) OR ('STRING_EXPRESSION' IN typenames)) OR ('BOOLEAN_EXPRESSION' IN typenames)));
|
|
END_IF;
|
|
IF 'MATHS_FUNCTION' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'FUNCTION_APPLICATION' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'MATHS_SPACE' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'MATHS_VARIABLE' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN
|
|
RETURN (has_values_space(expr\unary_generic_expression.operand));
|
|
END_IF;
|
|
IF 'COMPLEX_NUMBER_LITERAL' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'LOGICAL_LITERAL' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'BINARY_LITERAL' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'MATHS_ENUM_LITERAL' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'REAL_TUPLE_LITERAL' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'INTEGER_TUPLE_LITERAL' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'ATOM_BASED_LITERAL' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'MATHS_TUPLE_LITERAL' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION inspected_product_definition
|
|
(dqir : data_quality_inspection_result_representation ) : BAG [0:?] OF product_definition;
|
|
LOCAL
|
|
dqdr : BAG OF data_quality_definition_representation_relationship := [];
|
|
pdqdr : BAG OF product_data_and_data_quality_relationship := [];
|
|
pd : BAG OF product_definition := [];
|
|
END_LOCAL;
|
|
dqdr := USEDIN(dqir, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.' + 'USED_REPRESENTATION');
|
|
REPEAT i := 1 TO SIZEOF(dqdr);
|
|
pdqdr := USEDIN(dqdr[i].definition, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.' + 'DATA_QUALITY');
|
|
REPEAT j := 1 TO SIZEOF(pdqdr);
|
|
pd := pd + pdqdr[j].product_data;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
RETURN (pd);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION invalidate_vrep_item
|
|
(item : representation_item ) : BOOLEAN;
|
|
LOCAL
|
|
reps : SET [1:?] OF representation := using_representations(item);
|
|
ri : SET [1:?] OF variational_representation_item;
|
|
iar : instance_attribute_reference;
|
|
i : INTEGER;
|
|
n : INTEGER := HIINDEX(reps);
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item) THEN
|
|
IF 'STEP_MERGED_CAD_SCHEMA.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF(item\generic_variable.interpretation\environment.semantics) THEN
|
|
BEGIN
|
|
iar := item\generic_variable.interpretation\environment.semantics;
|
|
IF reps <> using_representations(iar\instance_attribute_reference.owning_instance) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END;
|
|
ELSE
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item) THEN
|
|
BEGIN
|
|
REPEAT i := 1 TO n;
|
|
ri := QUERY (q <* reps[i]\representation.items| 'STEP_MERGED_CAD_SCHEMA.FREE_FORM_CONSTRAINT' IN TYPEOF(q));
|
|
IF SIZEOF(QUERY (r <* ri| (item IN r\free_form_constraint.reference_elements + r\free_form_constraint.constrained_elements))) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF(item) THEN
|
|
REPEAT i := 1 TO SIZEOF(item\fixed_instance_attribute_set.fixed_attributes);
|
|
IF reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i]\instance_attribute_reference.owning_instance) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.EXPLICIT_CONSTRAINT' IN TYPEOF(item) THEN
|
|
IF SIZEOF(QUERY (q <* item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements| (reps <> using_representations(q)))) > 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item) THEN
|
|
BEGIN
|
|
REPEAT i := 1 TO n;
|
|
ri := QUERY (q <* reps[i]\representation.items| 'STEP_MERGED_CAD_SCHEMA.EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF(q));
|
|
IF SIZEOF(QUERY (r <* ri| (item IN r\explicit_geometric_constraint.reference_elements))) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION is_acyclic
|
|
(arg : generic_expression ) : BOOLEAN;
|
|
RETURN (acyclic(arg, []));
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION is_int_expr
|
|
(arg : numeric_expression ) : BOOLEAN;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.INT_LITERAL' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.REAL_LITERAL' IN TYPEOF(arg) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.ABS_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (is_int_expr(arg\unary_numeric_expression.operand));
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.MINUS_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (is_int_expr(arg\unary_numeric_expression.operand));
|
|
END_IF;
|
|
IF (((((((((('STEP_MERGED_CAD_SCHEMA.SIN_FUNCTION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.COS_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.TAN_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.ASIN_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.ACOS_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.ATAN_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.EXP_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.LOG_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.LOG2_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.LOG10_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF ((('STEP_MERGED_CAD_SCHEMA.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.MULT_EXPRESSION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.MAXIMUM_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.MOD_EXPRESSION' IN TYPEOF(arg)) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SLASH_EXPRESSION' IN TYPEOF(arg) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.LENGTH_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.VALUE_FUNCTION' IN TYPEOF(arg) THEN
|
|
IF 'STEP_MERGED_CAD_SCHEMA.INT_VALUE_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.STRING_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION is_SQL_mappable
|
|
(arg : expression ) : BOOLEAN;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.MINUS_FUNCTION' IN TYPEOF(arg) THEN
|
|
RETURN (is_SQL_mappable(arg\unary_numeric_expression.operand));
|
|
END_IF;
|
|
IF ((((((((((((('STEP_MERGED_CAD_SCHEMA.ABS_FUNCTION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.SIN_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.COS_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.TAN_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.ASIN_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.ACOS_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.ATAN_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.EXP_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.LOG_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.LOG2_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.LOG10_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.VALUE_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.LENGTH_FUNCTION' IN TYPEOF(arg)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF ((('STEP_MERGED_CAD_SCHEMA.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.MULT_EXPRESSION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.MAXIMUM_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.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 ('STEP_MERGED_CAD_SCHEMA.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.MOD_EXPRESSION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.POWER_EXPRESSION' IN TYPEOF(arg)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.NOT_EXPRESSION' IN TYPEOF(arg) THEN
|
|
RETURN (is_SQL_mappable(arg\unary_generic_expression.operand));
|
|
END_IF;
|
|
IF ('STEP_MERGED_CAD_SCHEMA.ODD_FUNCTION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.XOR_EXPRESSION' IN TYPEOF(arg)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF ('STEP_MERGED_CAD_SCHEMA.AND_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 (((((('STEP_MERGED_CAD_SCHEMA.COMPARISON_EQUAL' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.COMPARISON_GREATER' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.COMPARISON_GREATER_EQUAL' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.COMPARISON_LESS' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.COMPARISON_LESS_EQUAL' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.COMPARISON_NOT_EQUAL' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 (('STEP_MERGED_CAD_SCHEMA.NUMERIC_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.STRING_DEFINED_FUNCTION' IN TYPEOF(arg)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SIMPLE_STRING_EXPRESSION' IN TYPEOF(arg) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF ((('STEP_MERGED_CAD_SCHEMA.INDEX_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.SUBSTRING_EXPRESSION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.CONCAT_EXPRESSION' IN TYPEOF(arg))) OR ('STEP_MERGED_CAD_SCHEMA.FORMAT_FUNCTION' IN TYPEOF(arg)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION item_correlation
|
|
(items : SET OF GENERIC;
|
|
c_items : SET OF STRING ) : LOGICAL;
|
|
LOCAL
|
|
c_types : SET OF STRING := [];
|
|
c_hit : INTEGER := 0;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO HIINDEX(c_items);
|
|
c_types := c_types + [ 'STEP_MERGED_CAD_SCHEMA.' + c_items[i] ];
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(items);
|
|
IF SIZEOF(c_types * TYPEOF(items[i])) = 1 THEN
|
|
c_hit := c_hit + 1;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(items) = c_hit THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
FUNCTION item_in_context
|
|
(item : representation_item;
|
|
cntxt : representation_context ) : BOOLEAN;
|
|
LOCAL
|
|
y : BAG OF representation_item;
|
|
END_LOCAL;
|
|
IF SIZEOF(USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS') * cntxt.representations_in_context) > 0 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
y := QUERY (z <* USEDIN(item, '')| 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z));
|
|
IF SIZEOF(y) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(y);
|
|
IF item_in_context(y[i], cntxt) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION leap_year
|
|
(year : year_number ) : BOOLEAN;
|
|
IF (year MOD 4 = 0) AND (year MOD 100 <> 0) OR (year MOD 400 = 0) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- IN AP242
|
|
FUNCTION list_selected_components
|
|
(aggr : AGGREGATE OF LIST [0:?] OF maths_value;
|
|
k : positive_integer ) : LIST [0:?] OF maths_value;
|
|
LOCAL
|
|
result : LIST OF maths_value := [];
|
|
j : INTEGER := 0;
|
|
END_LOCAL;
|
|
REPEAT i := LOINDEX(aggr) TO HIINDEX(aggr);
|
|
IF k <= SIZEOF(aggr[i]) THEN
|
|
INSERT( result, aggr[i][k], j );
|
|
j := j + 1;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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] ];
|
|
REPEAT i := 2 TO n;
|
|
res[(low + i - 1)] := lis[i];
|
|
END_REPEAT;
|
|
RETURN (res);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- CASE DIFF IN AP214
|
|
FUNCTION make_array_of_array
|
|
(lis : LIST [1:?] OF LIST [1:?] OF GENERIC : T;
|
|
low1 : INTEGER;
|
|
u1 : INTEGER;
|
|
low2 : INTEGER;
|
|
u2 : INTEGER ) : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC : T;
|
|
LOCAL
|
|
res : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC : T;
|
|
END_LOCAL;
|
|
IF u1 - low1 + 1 <> SIZEOF(lis) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
IF u2 - low2 + 1 <> SIZEOF(lis[1]) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
res := [ list_to_array(lis[1], low2, u2) ];
|
|
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;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_atom_based_literal
|
|
(lit_value : atom_based_value ) : atom_based_literal;
|
|
RETURN (atom_based_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_binary_literal
|
|
(lit_value : BINARY ) : binary_literal;
|
|
RETURN (binary_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_boolean_literal
|
|
(lit_value : BOOLEAN ) : boolean_literal;
|
|
RETURN (boolean_literal(lit_value) || simple_boolean_expression() || boolean_expression() || expression() || generic_expression() || simple_generic_expression() || generic_literal());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_cartesian_complex_number_region
|
|
(real_constraint : real_interval;
|
|
imag_constraint : real_interval ) : cartesian_complex_number_region;
|
|
RETURN (cartesian_complex_number_region(real_constraint, imag_constraint) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_complex_number_literal
|
|
(rpart : REAL;
|
|
ipart : REAL ) : complex_number_literal;
|
|
RETURN (complex_number_literal(rpart, ipart) || generic_literal() || simple_generic_expression() || generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_elementary_function
|
|
(func_id : elementary_function_enumerators ) : elementary_function;
|
|
RETURN (elementary_function(func_id) || maths_function() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_elementary_space
|
|
(space_id : elementary_space_enumerators ) : elementary_space;
|
|
RETURN (elementary_space(space_id) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_extended_tuple_space
|
|
(base : product_space;
|
|
extender : maths_space ) : extended_tuple_space;
|
|
RETURN (extended_tuple_space(base, extender) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_finite_integer_interval
|
|
(min : INTEGER;
|
|
max : INTEGER ) : finite_integer_interval;
|
|
RETURN (finite_integer_interval(min, max) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_finite_real_interval
|
|
(min : REAL;
|
|
minclo : open_closed;
|
|
max : REAL;
|
|
maxclo : open_closed ) : finite_real_interval;
|
|
RETURN (finite_real_interval(min, minclo, max, maxclo) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_finite_space
|
|
(members : SET [0:?] OF maths_value ) : finite_space;
|
|
RETURN (finite_space(members) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_function_application
|
|
(afunction : maths_function_select;
|
|
arguments : LIST [1:?] OF maths_value ) : function_application;
|
|
RETURN (function_application(afunction, arguments) || multiple_arity_generic_expression((convert_to_maths_function(afunction) + convert_to_operands(arguments))) || generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_function_space
|
|
(domain_constraint : space_constraint_type;
|
|
domain_argument : maths_space;
|
|
range_constraint : space_constraint_type;
|
|
range_argument : maths_space ) : function_space;
|
|
RETURN (function_space(domain_constraint, domain_argument, range_constraint, range_argument) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_int_literal
|
|
(lit_value : INTEGER ) : int_literal;
|
|
RETURN (int_literal() || literal_number(lit_value) || simple_numeric_expression() || numeric_expression() || expression() || generic_expression() || simple_generic_expression() || generic_literal());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_listed_product_space
|
|
(factors : LIST [0:?] OF maths_space ) : listed_product_space;
|
|
RETURN (listed_product_space(factors) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_logical_literal
|
|
(lit_value : LOGICAL ) : logical_literal;
|
|
RETURN (logical_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_maths_enum_literal
|
|
(lit_value : maths_enum_atom ) : maths_enum_literal;
|
|
RETURN (maths_enum_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_maths_tuple_literal
|
|
(lit_value : LIST [0:?] OF maths_value ) : maths_tuple_literal;
|
|
RETURN (maths_tuple_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_numeric_set
|
|
(start : maths_number;
|
|
delta : maths_number;
|
|
incs : positive_integer ) : SET [2:?] OF maths_number;
|
|
LOCAL
|
|
i : INTEGER;
|
|
numeric_set : SET [2:?] OF maths_number := [ start, start + delta ];
|
|
END_LOCAL;
|
|
IF incs > 1 THEN
|
|
REPEAT i := 2 TO incs;
|
|
numeric_set := numeric_set + start + i * delta;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (numeric_set);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_parallel_composed_function
|
|
(srcdom : maths_space_or_function;
|
|
prepfuncs : LIST [2:?] OF maths_function;
|
|
finfunc : maths_function_select ) : parallel_composed_function;
|
|
RETURN (parallel_composed_function(srcdom, prepfuncs, finfunc) || maths_function() || generic_expression() || multiple_arity_generic_expression(convert_to_operands_prcmfn(srcdom, prepfuncs, finfunc)));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_polar_complex_number_region
|
|
(centre : complex_number_literal;
|
|
dis_constraint : real_interval;
|
|
dir_constraint : finite_real_interval ) : polar_complex_number_region;
|
|
RETURN (polar_complex_number_region(centre, dis_constraint, dir_constraint) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_real_interval_from_min
|
|
(min : REAL;
|
|
minclo : open_closed ) : real_interval_from_min;
|
|
RETURN (real_interval_from_min(min, minclo) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_real_interval_to_max
|
|
(max : REAL;
|
|
maxclo : open_closed ) : real_interval_to_max;
|
|
RETURN (real_interval_to_max(max, maxclo) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_real_literal
|
|
(lit_value : REAL ) : real_literal;
|
|
RETURN (real_literal() || literal_number(lit_value) || simple_numeric_expression() || numeric_expression() || expression() || generic_expression() || simple_generic_expression() || generic_literal());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_string_literal
|
|
(lit_value : STRING ) : string_literal;
|
|
RETURN (string_literal(lit_value) || simple_string_expression() || string_expression() || expression() || generic_expression() || simple_generic_expression() || generic_literal());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION make_uniform_product_space
|
|
(base : maths_space;
|
|
exponent : positive_integer ) : uniform_product_space;
|
|
RETURN (uniform_product_space(base, exponent) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression());
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION max_exists
|
|
(spc : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(spc);
|
|
END_LOCAL;
|
|
RETURN (bool((((schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types) OR (schema_prefix + 'INTEGER_INTERVAL_TO_MAX' IN types)) OR (schema_prefix + 'FINITE_REAL_INTERVAL' IN types)) OR (schema_prefix + 'REAL_INTERVAL_TO_MAX' IN types)));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION max_included
|
|
(spc : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(spc);
|
|
END_LOCAL;
|
|
IF (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types) OR (schema_prefix + 'INTEGER_INTERVAL_TO_MAX' IN types) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF schema_prefix + 'FINITE_REAL_INTERVAL' IN types THEN
|
|
RETURN (bool(spc\finite_real_interval.max_closure = closed));
|
|
END_IF;
|
|
IF schema_prefix + 'REAL_INTERVAL_TO_MAX' IN types THEN
|
|
RETURN (bool(spc\real_interval_to_max.max_closure = closed));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION member_of
|
|
(val : GENERIC : G;
|
|
spc : maths_space ) : LOGICAL;
|
|
FUNCTION fedex
|
|
(val : AGGREGATE OF GENERIC : x;
|
|
i : INTEGER ) : GENERIC : x;
|
|
RETURN (val[i]);
|
|
END_FUNCTION;
|
|
LOCAL
|
|
v : maths_value := simplify_maths_value(convert_to_maths_value(val));
|
|
vtypes : SET OF STRING := stripped_typeof(v);
|
|
s : maths_space := simplify_maths_space(spc);
|
|
stypes : SET OF STRING := stripped_typeof(s);
|
|
tmp_int : INTEGER;
|
|
tmp_real : REAL;
|
|
tmp_cmplx : complex_number_literal;
|
|
lgcl : LOGICAL;
|
|
cum : LOGICAL;
|
|
vspc : maths_space;
|
|
sspc : maths_space;
|
|
smem : SET OF maths_value;
|
|
factors : LIST OF maths_space;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(s) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF NOT EXISTS(v) THEN
|
|
RETURN (s = the_generics);
|
|
END_IF;
|
|
IF ((('GENERIC_EXPRESSION' IN vtypes) AND NOT ('MATHS_SPACE' IN vtypes)) AND NOT ('MATHS_FUNCTION' IN vtypes)) AND NOT ('COMPLEX_NUMBER_LITERAL' IN vtypes) THEN
|
|
IF has_values_space(v) THEN
|
|
vspc := values_space_of(v);
|
|
IF subspace_of(vspc, s) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF NOT compatible_spaces(vspc, s) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF 'ELEMENTARY_SPACE' IN stypes THEN
|
|
CASE s\elementary_space.space_id OF
|
|
es_numbers :
|
|
RETURN (('NUMBER' IN vtypes) OR ('COMPLEX_NUMBER_LITERAL' IN vtypes));
|
|
es_complex_numbers :
|
|
RETURN ('COMPLEX_NUMBER_LITERAL' IN vtypes);
|
|
es_reals :
|
|
RETURN (('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes));
|
|
es_integers :
|
|
RETURN ('INTEGER' IN vtypes);
|
|
es_logicals :
|
|
RETURN ('LOGICAL' IN vtypes);
|
|
es_booleans :
|
|
RETURN ('BOOLEAN' IN vtypes);
|
|
es_strings :
|
|
RETURN ('STRING' IN vtypes);
|
|
es_binarys :
|
|
RETURN ('BINARY' IN vtypes);
|
|
es_maths_spaces :
|
|
RETURN ('MATHS_SPACE' IN vtypes);
|
|
es_maths_functions :
|
|
RETURN ('MATHS_FUNCTION' IN vtypes);
|
|
es_generics :
|
|
RETURN (TRUE);
|
|
END_CASE;
|
|
END_IF;
|
|
IF 'FINITE_INTEGER_INTERVAL' IN stypes THEN
|
|
IF 'INTEGER' IN vtypes THEN
|
|
tmp_int := v;
|
|
RETURN ((s\finite_integer_interval.min <= tmp_int) AND (tmp_int <= s\finite_integer_interval.max));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'INTEGER_INTERVAL_FROM_MIN' IN stypes THEN
|
|
IF 'INTEGER' IN vtypes THEN
|
|
tmp_int := v;
|
|
RETURN (s\integer_interval_from_min.min <= tmp_int);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'INTEGER_INTERVAL_TO_MAX' IN stypes THEN
|
|
IF 'INTEGER' IN vtypes THEN
|
|
tmp_int := v;
|
|
RETURN (tmp_int <= s\integer_interval_to_max.max);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FINITE_REAL_INTERVAL' IN stypes THEN
|
|
IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN
|
|
tmp_real := v;
|
|
IF s\finite_real_interval.min_closure = closed THEN
|
|
IF s\finite_real_interval.max_closure = closed THEN
|
|
RETURN ((s\finite_real_interval.min <= tmp_real) AND (tmp_real <= s\finite_real_interval.max));
|
|
ELSE
|
|
RETURN ((s\finite_real_interval.min <= tmp_real) AND (tmp_real < s\finite_real_interval.max));
|
|
END_IF;
|
|
ELSE
|
|
IF s\finite_real_interval.max_closure = closed THEN
|
|
RETURN ((s\finite_real_interval.min < tmp_real) AND (tmp_real <= s\finite_real_interval.max));
|
|
ELSE
|
|
RETURN ((s\finite_real_interval.min < tmp_real) AND (tmp_real < s\finite_real_interval.max));
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'REAL_INTERVAL_FROM_MIN' IN stypes THEN
|
|
IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN
|
|
tmp_real := v;
|
|
IF s\real_interval_from_min.min_closure = closed THEN
|
|
RETURN (s\real_interval_from_min.min <= tmp_real);
|
|
ELSE
|
|
RETURN (s\real_interval_from_min.min < tmp_real);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'REAL_INTERVAL_TO_MAX' IN stypes THEN
|
|
IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN
|
|
tmp_real := v;
|
|
IF s\real_interval_to_max.max_closure = closed THEN
|
|
RETURN (tmp_real <= s\real_interval_to_max.max);
|
|
ELSE
|
|
RETURN (tmp_real < s\real_interval_to_max.max);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes THEN
|
|
IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN
|
|
RETURN (member_of(v\complex_number_literal.real_part, s\cartesian_complex_number_region.real_constraint) AND member_of(v\complex_number_literal.imag_part, s\cartesian_complex_number_region.imag_constraint));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'POLAR_COMPLEX_NUMBER_REGION' IN stypes THEN
|
|
IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN
|
|
tmp_cmplx := v;
|
|
tmp_cmplx.real_part := tmp_cmplx.real_part - s\polar_complex_number_region.centre.real_part;
|
|
tmp_cmplx.imag_part := tmp_cmplx.imag_part - s\polar_complex_number_region.centre.imag_part;
|
|
tmp_real := SQRT(tmp_cmplx.real_part ** 2 + tmp_cmplx.imag_part ** 2);
|
|
IF NOT member_of(tmp_real, s\polar_complex_number_region.distance_constraint) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF tmp_real = 0.0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
tmp_real := atan2(tmp_cmplx.imag_part, tmp_cmplx.real_part);
|
|
RETURN (member_of(tmp_real, s\polar_complex_number_region.direction_constraint) OR member_of(tmp_real + 2.0 * 3.14159, s\polar_complex_number_region.direction_constraint));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FINITE_SPACE' IN stypes THEN
|
|
smem := s\finite_space.members;
|
|
cum := FALSE;
|
|
REPEAT i := 1 TO SIZEOF(smem);
|
|
cum := cum OR equal_maths_values(v, smem[i]);
|
|
IF cum = TRUE THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN
|
|
IF 'LIST' IN vtypes THEN
|
|
IF SIZEOF(v) = s\uniform_product_space.exponent THEN
|
|
sspc := s\uniform_product_space.base;
|
|
cum := TRUE;
|
|
REPEAT i := 1 TO SIZEOF(v);
|
|
cum := cum AND member_of(v[i], sspc);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN stypes THEN
|
|
IF 'LIST' IN vtypes THEN
|
|
factors := s\listed_product_space.factors;
|
|
IF SIZEOF(v) = SIZEOF(factors) THEN
|
|
cum := TRUE;
|
|
REPEAT i := 1 TO SIZEOF(v);
|
|
cum := cum AND member_of(v[i], factors[i]);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN
|
|
IF 'LIST' IN vtypes THEN
|
|
sspc := s\extended_tuple_space.base;
|
|
tmp_int := space_dimension(sspc);
|
|
IF SIZEOF(v) >= tmp_int THEN
|
|
cum := TRUE;
|
|
REPEAT i := 1 TO tmp_int;
|
|
cum := cum AND member_of(v[i], factor_space(sspc, i));
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
sspc := s\extended_tuple_space.extender;
|
|
REPEAT i := tmp_int + 1 TO SIZEOF(v);
|
|
cum := cum AND member_of(v[i], sspc);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN stypes THEN
|
|
IF 'MATHS_FUNCTION' IN vtypes THEN
|
|
vspc := v\maths_function.domain;
|
|
sspc := s\function_space.domain_argument;
|
|
CASE s\function_space.domain_constraint OF
|
|
sc_equal :
|
|
cum := equal_maths_spaces(vspc, sspc);
|
|
sc_subspace :
|
|
cum := subspace_of(vspc, sspc);
|
|
sc_member :
|
|
cum := member_of(vspc, sspc);
|
|
END_CASE;
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
vspc := v\maths_function.range;
|
|
sspc := s\function_space.range_argument;
|
|
CASE s\function_space.range_constraint OF
|
|
sc_equal :
|
|
cum := cum AND equal_maths_spaces(vspc, sspc);
|
|
sc_subspace :
|
|
cum := cum AND subspace_of(vspc, sspc);
|
|
sc_member :
|
|
cum := cum AND member_of(vspc, sspc);
|
|
END_CASE;
|
|
RETURN (cum);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION min_exists
|
|
(spc : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(spc);
|
|
END_LOCAL;
|
|
RETURN (bool((((schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types) OR (schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' IN types)) OR (schema_prefix + 'FINITE_REAL_INTERVAL' IN types)) OR (schema_prefix + 'REAL_INTERVAL_FROM_MIN' IN types)));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION min_included
|
|
(spc : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(spc);
|
|
END_LOCAL;
|
|
IF (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types) OR (schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' IN types) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF schema_prefix + 'FINITE_REAL_INTERVAL' IN types THEN
|
|
RETURN (bool(spc\finite_real_interval.min_closure = closed));
|
|
END_IF;
|
|
IF schema_prefix + 'REAL_INTERVAL_FROM_MIN' IN types THEN
|
|
RETURN (bool(spc\real_interval_from_min.min_closure = closed));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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 := 'STEP_MERGED_CAD_SCHEMA.POLY_LOOP' IN TYPEOF(l[1]);
|
|
REPEAT i := 2 TO SIZEOF(l);
|
|
IF ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.BOUNDED_CURVE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA', 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' ] * TYPEOF(cv)) > 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF ('STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect = UNKNOWN) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.LINE' ] * TYPEOF(cv)) = 1 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN
|
|
RETURN (msf_curve_check(cv\curve_replica.parent_curve));
|
|
ELSE
|
|
IF (('STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN))) AND NOT ('STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)) THEN
|
|
RETURN (msf_curve_check(cv\offset_curve_3d.basis_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv) THEN
|
|
RETURN (msf_curve_check(cv\pcurve.reference_to_curve\representation.items[1]) AND msf_surface_check(cv\pcurve.basis_surface));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv) THEN
|
|
IF msf_curve_check(cv\surface_curve.curve_3d) THEN
|
|
REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
|
|
IF NOT msf_curve_check(cv\surface_curve.associated_geometry[i]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN
|
|
IF SIZEOF(cv\polyline.points) >= 3 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION msf_surface_check
|
|
(surf : surface ) : BOOLEAN;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SWEPT_SURFACE' IN TYPEOF(surf) THEN
|
|
RETURN (msf_curve_check(surf\swept_surface.swept_curve));
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.OFFSET_SURFACE' IN TYPEOF(surf)) AND (surf\offset_surface.self_intersect = FALSE) OR (surf\offset_surface.self_intersect = UNKNOWN) THEN
|
|
RETURN (msf_surface_check(surf\offset_surface.basis_surface));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_REPLICA' IN TYPEOF(surf) THEN
|
|
RETURN (msf_surface_check(surf\surface_replica.parent_surface));
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.BOUNDED_CURVE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA', 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' ] * TYPEOF(cv)) > 1 THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect = UNKNOWN) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.LINE' ] * TYPEOF(cv)) = 1 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN
|
|
RETURN (nmsf_curve_check(cv\curve_replica.parent_curve));
|
|
ELSE
|
|
IF (('STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN))) AND NOT ('STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)) THEN
|
|
RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv) THEN
|
|
RETURN (nmsf_curve_check(cv\pcurve.reference_to_curve\representation.items[1]) AND nmsf_surface_check(cv\pcurve.basis_surface));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv) THEN
|
|
IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN
|
|
REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
|
|
IF NOT nmsf_curve_check(cv\surface_curve.associated_geometry[i]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN
|
|
IF SIZEOF(cv\polyline.points) >= 3 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION nmsf_surface_check
|
|
(surf : surface ) : BOOLEAN;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SWEPT_SURFACE' IN TYPEOF(surf) THEN
|
|
RETURN (nmsf_curve_check(surf\swept_surface.swept_curve));
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.OFFSET_SURFACE' IN TYPEOF(surf)) AND (surf\offset_surface.self_intersect = FALSE) OR (surf\offset_surface.self_intersect = UNKNOWN) THEN
|
|
RETURN (nmsf_surface_check(surf\offset_surface.basis_surface));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_REPLICA' IN TYPEOF(surf) THEN
|
|
RETURN (nmsf_surface_check(surf\surface_replica.parent_surface));
|
|
ELSE
|
|
IF ('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION no_cyclic_domain_reference
|
|
(ref : maths_space_or_function;
|
|
used : SET [0:?] OF maths_function ) : BOOLEAN;
|
|
LOCAL
|
|
typenames : SET OF STRING := TYPEOF(ref);
|
|
func : maths_function;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(ref) OR NOT EXISTS(used) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF schema_prefix + 'MATHS_SPACE' IN typenames THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
func := ref;
|
|
IF func IN used THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF schema_prefix + 'CONSTANT_FUNCTION' IN typenames THEN
|
|
RETURN (no_cyclic_domain_reference(func\constant_function.source_of_domain, used + [ func ]));
|
|
END_IF;
|
|
IF schema_prefix + 'SELECTOR_FUNCTION' IN typenames THEN
|
|
RETURN (no_cyclic_domain_reference(func\selector_function.source_of_domain, used + [ func ]));
|
|
END_IF;
|
|
IF schema_prefix + 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN
|
|
RETURN (no_cyclic_domain_reference(func\parallel_composed_function.source_of_domain, used + [ func ]));
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION no_cyclic_space_reference
|
|
(spc : maths_space;
|
|
refs : SET [0:?] OF maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
types : SET OF STRING;
|
|
refs_plus : SET OF maths_space;
|
|
END_LOCAL;
|
|
IF spc IN refs THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
types := TYPEOF(spc);
|
|
refs_plus := refs + spc;
|
|
IF schema_prefix + 'FINITE_SPACE' IN types THEN
|
|
RETURN (bool(SIZEOF(QUERY (sp <* QUERY (mem <* spc\finite_space.members| (schema_prefix + 'MATHS_SPACE' IN TYPEOF(mem)))| NOT no_cyclic_space_reference(sp, refs_plus))) = 0));
|
|
END_IF;
|
|
IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN types THEN
|
|
RETURN (no_cyclic_space_reference(spc\uniform_product_space.base, refs_plus));
|
|
END_IF;
|
|
IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN types THEN
|
|
RETURN (bool(SIZEOF(QUERY (fac <* spc\listed_product_space.factors| NOT no_cyclic_space_reference(fac, refs_plus))) = 0));
|
|
END_IF;
|
|
IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN types THEN
|
|
RETURN (no_cyclic_space_reference(spc\extended_tuple_space.base, refs_plus) AND no_cyclic_space_reference(spc\extended_tuple_space.extender, refs_plus));
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION nondecreasing
|
|
(lr : LIST [0:?] OF REAL ) : BOOLEAN;
|
|
IF NOT EXISTS(lr) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT j := 2 TO SIZEOF(lr);
|
|
IF lr[j] < lr[(j - 1)] THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION normalise
|
|
(arg : vector_or_direction ) : vector_or_direction;
|
|
LOCAL
|
|
ndim : INTEGER;
|
|
v : direction := dummy_gri || direction([ 1.0, 0.0, 0.0 ]);
|
|
result : vector_or_direction;
|
|
vec : vector := dummy_gri || vector(v, 1.0);
|
|
mag : REAL;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(arg) THEN
|
|
result := ?;
|
|
ELSE
|
|
ndim := arg.dim;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(arg) THEN
|
|
BEGIN
|
|
v := dummy_gri || direction(arg\vector.orientation.direction_ratios);
|
|
IF arg\vector.magnitude = 0.0 THEN
|
|
RETURN (?);
|
|
ELSE
|
|
vec := dummy_gri || vector(v, 1.0);
|
|
END_IF;
|
|
END;
|
|
ELSE
|
|
v := dummy_gri || direction(arg.direction_ratios);
|
|
END_IF;
|
|
mag := 0.0;
|
|
REPEAT i := 1 TO ndim;
|
|
mag := mag + v.direction_ratios[i] * v.direction_ratios[i];
|
|
END_REPEAT;
|
|
IF mag > 0.0 THEN
|
|
mag := SQRT(mag);
|
|
REPEAT i := 1 TO ndim;
|
|
v.direction_ratios[i] := v.direction_ratios[i] / mag;
|
|
END_REPEAT;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION number_superspace_of
|
|
(spc : maths_space ) : elementary_space;
|
|
IF subspace_of_es(spc, es_integers) THEN
|
|
RETURN (the_integers);
|
|
END_IF;
|
|
IF subspace_of_es(spc, es_reals) THEN
|
|
RETURN (the_reals);
|
|
END_IF;
|
|
IF subspace_of_es(spc, es_complex_numbers) THEN
|
|
RETURN (the_complex_numbers);
|
|
END_IF;
|
|
IF subspace_of_es(spc, es_numbers) THEN
|
|
RETURN (the_numbers);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION number_tuple_subspace_check
|
|
(spc : maths_space ) : LOGICAL;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof(spc);
|
|
factors : LIST OF maths_space;
|
|
cum : LOGICAL := TRUE;
|
|
END_LOCAL;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN types THEN
|
|
RETURN (subspace_of_es(spc\uniform_product_space.base, es_numbers));
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN types THEN
|
|
factors := spc\listed_product_space.factors;
|
|
REPEAT i := 1 TO SIZEOF(factors);
|
|
cum := cum AND subspace_of_es(factors[i], es_numbers);
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN types THEN
|
|
cum := subspace_of_es(spc\extended_tuple_space.extender, es_numbers);
|
|
cum := cum AND number_tuple_subspace_check(spc\extended_tuple_space.base);
|
|
RETURN (cum);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION one_tuples_of
|
|
(spc : maths_space ) : tuple_space;
|
|
RETURN (make_uniform_product_space(spc, 1));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION open_path_based_inner_boundary
|
|
(input : SET [0:?] OF primitive_2d ) : BOOLEAN;
|
|
LOCAL
|
|
pass : BOOLEAN := TRUE;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF(input);
|
|
IF ('STEP_MERGED_CAD_SCHEMA.PATH_AREA_WITH_PARAMETERS' IN TYPEOF(input[i])) AND (('STEP_MERGED_CAD_SCHEMA.CIRCLE' IN TYPEOF(input[i]\mapped_item.mapping_source\representation_map.mapping_origin)) OR ('STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE' IN TYPEOF(input[i]\mapped_item.mapping_source\representation_map.mapping_origin)) AND (input[i]\mapped_item.mapping_source\representation_map.mapping_origin\composite_curve.closed_curve = TRUE)) THEN
|
|
pass := FALSE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (pass);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION open_shell_reversed
|
|
(a_shell : open_shell ) : oriented_open_shell;
|
|
LOCAL
|
|
the_reverse : oriented_open_shell;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION parallel_composed_function_composability_check
|
|
(funcs : LIST [0:?] OF maths_function;
|
|
final : maths_function_select ) : BOOLEAN;
|
|
LOCAL
|
|
tplsp : tuple_space := the_zero_tuple_space;
|
|
finfun : maths_function := convert_to_maths_function(final);
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF(funcs);
|
|
tplsp := assoc_product_space(tplsp, funcs[i].range);
|
|
END_REPEAT;
|
|
RETURN (compatible_spaces(tplsp, finfun.domain));
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION parallel_composed_function_domain_check
|
|
(comdom : tuple_space;
|
|
funcs : LIST [0:?] OF maths_function ) : BOOLEAN;
|
|
REPEAT i := 1 TO SIZEOF(funcs);
|
|
IF NOT compatible_spaces(comdom, funcs[i].domain) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION partial_derivative_check
|
|
(domain : tuple_space;
|
|
d_vars : LIST [1:?] OF input_selector ) : BOOLEAN;
|
|
LOCAL
|
|
domn : tuple_space := domain;
|
|
fspc : maths_space;
|
|
dim : INTEGER;
|
|
k : INTEGER;
|
|
END_LOCAL;
|
|
IF (space_dimension(domain) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(domain))) THEN
|
|
domn := factor1(domain);
|
|
END_IF;
|
|
dim := space_dimension(domn);
|
|
REPEAT i := 1 TO SIZEOF(d_vars);
|
|
k := d_vars[i];
|
|
IF k > dim THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
fspc := factor_space(domn, k);
|
|
IF NOT subspace_of_es(fspc, es_reals) AND NOT subspace_of_es(fspc, es_complex_numbers) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION path_head_to_tail
|
|
(a_path : path ) : LOGICAL;
|
|
LOCAL
|
|
n : INTEGER;
|
|
p : LOGICAL := TRUE;
|
|
END_LOCAL;
|
|
n := SIZEOF(a_path.edge_list);
|
|
REPEAT i := 2 TO n;
|
|
p := p AND (a_path.edge_list[(i - 1)].edge_end :=: a_path.edge_list[i].edge_start);
|
|
END_REPEAT;
|
|
RETURN (p);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION path_reversed
|
|
(a_path : path ) : oriented_path;
|
|
LOCAL
|
|
the_reverse : oriented_path;
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
FUNCTION plane_angle_for_pair_in_radian
|
|
(pair : kinematic_pair;
|
|
angle : plane_angle_measure ) : plane_angle_measure;
|
|
LOCAL
|
|
converted_angle : plane_angle_measure := angle;
|
|
link_rep : kinematic_link_representation := representation_of_link(pair.joint.edge_start);
|
|
link_cntxt : representation_context;
|
|
pa_units : SET OF unit := [];
|
|
pau : unit;
|
|
END_LOCAL;
|
|
link_cntxt := link_rep\representation.context_of_items;
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(link_cntxt)) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
pa_units := QUERY (unit <* link_cntxt\global_unit_assigned_context.units| 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(unit));
|
|
IF SIZEOF(pa_units) <> 1 THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
pau := pa_units[1];
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.SI_UNIT' IN TYPEOF(pau)) AND NOT ('STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT WHILE 'STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau);
|
|
converted_angle := converted_angle * pau\conversion_based_unit.conversion_factor.value_component;
|
|
pau := pau\conversion_based_unit.conversion_factor.unit_component;
|
|
IF NOT ('STEP_MERGED_CAD_SCHEMA.SI_UNIT' IN TYPEOF(pau)) AND NOT ('STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) OR NOT ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(pau)) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF pau\si_unit.name <> si_unit_name.radian THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
CASE pau\si_unit.prefix OF
|
|
si_prefix.exa :
|
|
RETURN (1.0E+018 * converted_angle);
|
|
si_prefix.peta :
|
|
RETURN (1.0E+015 * converted_angle);
|
|
si_prefix.tera :
|
|
RETURN (1.0E+012 * converted_angle);
|
|
si_prefix.giga :
|
|
RETURN (1.0E+009 * converted_angle);
|
|
si_prefix.mega :
|
|
RETURN (1.0E+006 * converted_angle);
|
|
si_prefix.kilo :
|
|
RETURN (1000.00 * converted_angle);
|
|
si_prefix.hecto :
|
|
RETURN (100.000 * converted_angle);
|
|
si_prefix.deca :
|
|
RETURN (10.0 * converted_angle);
|
|
si_prefix.deci :
|
|
RETURN (0.100000 * converted_angle);
|
|
si_prefix.centi :
|
|
RETURN (0.0100000 * converted_angle);
|
|
si_prefix.milli :
|
|
RETURN (0.00100000 * converted_angle);
|
|
si_prefix.micro :
|
|
RETURN (1.0E-006 * converted_angle);
|
|
si_prefix.nano :
|
|
RETURN (1.0E-009 * converted_angle);
|
|
si_prefix.pico :
|
|
RETURN (1.0E-012 * converted_angle);
|
|
si_prefix.femto :
|
|
RETURN (1.0E-015 * converted_angle);
|
|
si_prefix.atto :
|
|
RETURN (1.0E-018 * converted_angle);
|
|
OTHERWISE :
|
|
RETURN (converted_angle);
|
|
END_CASE;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION real_max
|
|
(spc : maths_space ) : REAL;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(spc);
|
|
END_LOCAL;
|
|
IF schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types THEN
|
|
RETURN (spc\finite_integer_interval.max);
|
|
END_IF;
|
|
IF schema_prefix + 'INTEGER_INTERVAL_TO_MAX' IN types THEN
|
|
RETURN (spc\integer_interval_to_max.max);
|
|
END_IF;
|
|
IF schema_prefix + 'FINITE_REAL_INTERVAL' IN types THEN
|
|
RETURN (spc\finite_real_interval.max);
|
|
END_IF;
|
|
IF schema_prefix + 'REAL_INTERVAL_TO_MAX' IN types THEN
|
|
RETURN (spc\real_interval_to_max.max);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION real_min
|
|
(spc : maths_space ) : REAL;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(spc);
|
|
END_LOCAL;
|
|
IF schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types THEN
|
|
RETURN (spc\finite_integer_interval.min);
|
|
END_IF;
|
|
IF schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' IN types THEN
|
|
RETURN (spc\integer_interval_from_min.min);
|
|
END_IF;
|
|
IF schema_prefix + 'FINITE_REAL_INTERVAL' IN types THEN
|
|
RETURN (spc\finite_real_interval.min);
|
|
END_IF;
|
|
IF schema_prefix + 'REAL_INTERVAL_FROM_MIN' IN types THEN
|
|
RETURN (spc\real_interval_from_min.min);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION relating_shape_representations_of_extreme_values
|
|
(item : location_of_extreme_value_select ) : SET [0:?] OF shape_representation;
|
|
LOCAL
|
|
results : SET OF shape_representation := [];
|
|
exti : SET OF extreme_instance := [];
|
|
ii_ei : SET OF instance_report_item_with_extreme_instances := [];
|
|
sdiir : SET OF shape_data_quality_inspection_instance_report := [];
|
|
sdqr : SET OF shape_data_quality_inspection_result_representation := [];
|
|
sdisr : SET OF shape_data_quality_inspected_shape_and_result_relationship := [];
|
|
END_LOCAL;
|
|
exti := exti + bag_to_set(USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.' + 'EXTREME_INSTANCE.' + 'LOCATIONS_OF_EXTREME_VALUE'));
|
|
REPEAT i := 1 TO HIINDEX(exti);
|
|
ii_ei := ii_ei + bag_to_set(USEDIN(exti[i], 'STEP_MERGED_CAD_SCHEMA.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.' + 'EXTREME_INSTANCES'));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(ii_ei);
|
|
sdiir := sdiir + bag_to_set(USEDIN(ii_ei[i], 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES'));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(sdiir);
|
|
sdqr := sdqr + QUERY (i1 <* bag_to_set(USEDIN(sdiir[i].inspection_result, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN TYPEOF(i1)));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(sdqr);
|
|
sdisr := sdisr + bag_to_set(USEDIN(sdqr[i], 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2'));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(sdisr);
|
|
results := results + sdisr[i].rep_1;
|
|
END_REPEAT;
|
|
RETURN (results);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION remove_first
|
|
(alist : LIST [0:?] OF GENERIC : GEN ) : LIST [0:?] OF GENERIC : GEN;
|
|
LOCAL
|
|
blist : LIST OF GENERIC : GEN := alist;
|
|
END_LOCAL;
|
|
IF SIZEOF(blist) > 0 THEN
|
|
REMOVE( blist, 1 );
|
|
END_IF;
|
|
RETURN (blist);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION repackage
|
|
(tspace : tuple_space;
|
|
repckg : repackage_options ) : tuple_space;
|
|
CASE repckg OF
|
|
ro_nochange :
|
|
RETURN (tspace);
|
|
ro_wrap_as_tuple :
|
|
RETURN (one_tuples_of(tspace));
|
|
ro_unwrap_tuple :
|
|
RETURN (factor1(tspace));
|
|
OTHERWISE :
|
|
RETURN (?);
|
|
END_CASE;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- IN AP214/AP242
|
|
FUNCTION representation_of_link
|
|
(link : kinematic_link ) : kinematic_link_representation;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION representations_mapped_into
|
|
(rep : representation ) : SET OF representation;
|
|
LOCAL
|
|
results : SET OF representation := [];
|
|
rm : SET OF representation_map;
|
|
mi : SET OF mapped_item := [];
|
|
END_LOCAL;
|
|
rm := bag_to_set(USEDIN(rep, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
|
|
REPEAT i := 1 TO HIINDEX(rm);
|
|
mi := mi + rm[i].map_usage;
|
|
END_REPEAT;
|
|
REPEAT j := 1 TO HIINDEX(mi);
|
|
results := results + USEDIN(mi[j], 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS');
|
|
END_REPEAT;
|
|
RETURN (results);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
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 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(vec) THEN
|
|
v := dummy_gri || direction(vec\vector.orientation.direction_ratios);
|
|
mag := scalar * vec\vector.magnitude;
|
|
ELSE
|
|
v := dummy_gri || direction(vec.direction_ratios);
|
|
mag := scalar;
|
|
END_IF;
|
|
IF mag < 0.0 THEN
|
|
REPEAT i := 1 TO SIZEOF(v.direction_ratios);
|
|
v.direction_ratios[i] := -v.direction_ratios[i];
|
|
END_REPEAT;
|
|
mag := -mag;
|
|
END_IF;
|
|
result := dummy_gri || vector(normalise(v), mag);
|
|
END_IF;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION second_proj_axis
|
|
(z_axis : direction;
|
|
x_axis : direction;
|
|
arg : direction ) : direction;
|
|
LOCAL
|
|
y_axis : vector;
|
|
v : direction;
|
|
temp : vector;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(arg) THEN
|
|
v := dummy_gri || direction([ 0.0, 1.0, 0.0 ]);
|
|
ELSE
|
|
v := arg;
|
|
END_IF;
|
|
temp := scalar_times_vector(dot_product(v, z_axis), z_axis);
|
|
y_axis := vector_difference(v, temp);
|
|
temp := scalar_times_vector(dot_product(v, x_axis), x_axis);
|
|
y_axis := vector_difference(y_axis, temp);
|
|
y_axis := normalise(y_axis);
|
|
RETURN (y_axis.orientation);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION set_of_topology_reversed
|
|
(a_set : set_of_reversible_topology_item ) : set_of_reversible_topology_item;
|
|
LOCAL
|
|
the_reverse : set_of_reversible_topology_item;
|
|
END_LOCAL;
|
|
the_reverse := [];
|
|
REPEAT i := 1 TO SIZEOF(a_set);
|
|
the_reverse := the_reverse + topology_reversed(a_set[i]);
|
|
END_REPEAT;
|
|
RETURN (the_reverse);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION shape_of_array
|
|
(func : maths_function ) : LIST [0:?] OF positive_integer;
|
|
LOCAL
|
|
tspace : tuple_space;
|
|
temp : maths_space;
|
|
result : LIST OF positive_integer := [];
|
|
END_LOCAL;
|
|
IF schema_prefix + 'EXPLICIT_TABLE_FUNCTION' IN TYPEOF(func) THEN
|
|
RETURN (func\explicit_table_function.shape);
|
|
END_IF;
|
|
tspace := func.domain;
|
|
IF (space_dimension(tspace) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(tspace))) THEN
|
|
tspace := factor1(tspace);
|
|
END_IF;
|
|
REPEAT i := 1 TO space_dimension(tspace);
|
|
temp := factor_space(tspace, i);
|
|
IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
INSERT( result, temp\finite_integer_interval.size, i - 1 );
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION shell_reversed
|
|
(a_shell : shell ) : shell;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.OPEN_SHELL' IN TYPEOF(a_shell) THEN
|
|
RETURN (open_shell_reversed(a_shell));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CLOSED_SHELL' IN TYPEOF(a_shell) THEN
|
|
RETURN (closed_shell_reversed(a_shell));
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION simplify_function_application
|
|
(expr : function_application ) : maths_value;
|
|
FUNCTION ctmv
|
|
(x : GENERIC : G ) : maths_value;
|
|
RETURN (convert_to_maths_value(x));
|
|
END_FUNCTION;
|
|
PROCEDURE parts
|
|
(c : complex_number_literal;
|
|
VAR x : REAL;
|
|
VAR y : REAL );
|
|
x := c.real_part;
|
|
y := c.imag_part;
|
|
END_PROCEDURE;
|
|
FUNCTION makec
|
|
(x : REAL;
|
|
y : REAL ) : complex_number_literal;
|
|
RETURN (make_complex_number_literal(x, y));
|
|
END_FUNCTION;
|
|
FUNCTION good_t
|
|
(v : maths_value;
|
|
tn : STRING ) : BOOLEAN;
|
|
LOCAL
|
|
tpl : LIST OF maths_value;
|
|
END_LOCAL;
|
|
IF 'LIST' IN TYPEOF(v) THEN
|
|
tpl := v;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
IF NOT (tn IN TYPEOF(tpl[i])) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
CONSTANT
|
|
cnlit : STRING := schema_prefix + 'COMPLEX_NUMBER_LITERAL';
|
|
END_CONSTANT;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof(expr.func);
|
|
ef_val : elementary_function_enumerators;
|
|
is_elementary : BOOLEAN := FALSE;
|
|
v : maths_value;
|
|
v1 : maths_value;
|
|
v2 : maths_value;
|
|
v3 : maths_value;
|
|
vlist : LIST OF maths_value := [];
|
|
gexpr : generic_expression;
|
|
pairs : SET [1:?] OF LIST [2:2] OF maths_value;
|
|
boo : BOOLEAN;
|
|
lgc : LOGICAL;
|
|
cum : LOGICAL;
|
|
j : INTEGER;
|
|
k : INTEGER;
|
|
n : INTEGER;
|
|
p : REAL;
|
|
q : REAL;
|
|
r : REAL;
|
|
s : REAL;
|
|
T : REAL;
|
|
u : REAL;
|
|
str : STRING;
|
|
st2 : STRING;
|
|
bin : BINARY;
|
|
bi2 : BINARY;
|
|
tpl : LIST OF maths_value;
|
|
tp2 : LIST OF maths_value;
|
|
mem : SET OF maths_value := [];
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF(expr.arguments);
|
|
v := simplify_maths_value(expr.arguments[i]);
|
|
INSERT( vlist, v, i - 1 );
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) >= 1 THEN
|
|
v1 := vlist[1];
|
|
END_IF;
|
|
IF SIZEOF(vlist) >= 2 THEN
|
|
v2 := vlist[2];
|
|
END_IF;
|
|
IF SIZEOF(vlist) >= 3 THEN
|
|
v3 := vlist[3];
|
|
END_IF;
|
|
IF 'ELEMENTARY_FUNCTION_ENUMERATORS' IN types THEN
|
|
ef_val := expr.func;
|
|
is_elementary := TRUE;
|
|
END_IF;
|
|
IF 'ELEMENTARY_FUNCTION' IN types THEN
|
|
ef_val := expr.func\elementary_function.func_id;
|
|
is_elementary := TRUE;
|
|
END_IF;
|
|
IF is_elementary THEN
|
|
CASE ef_val OF
|
|
ef_and :
|
|
BEGIN
|
|
cum := TRUE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'LOGICAL' IN TYPEOF(vlist[i]) THEN
|
|
lgc := vlist[i];
|
|
cum := cum AND lgc;
|
|
IF lgc = FALSE THEN
|
|
RETURN (ctmv(FALSE));
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(cum));
|
|
END_IF;
|
|
IF cum <> TRUE THEN
|
|
INSERT( vlist, ctmv(cum), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_or :
|
|
BEGIN
|
|
cum := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'LOGICAL' IN TYPEOF(vlist[i]) THEN
|
|
lgc := vlist[i];
|
|
cum := cum OR lgc;
|
|
IF lgc = TRUE THEN
|
|
RETURN (ctmv(TRUE));
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(cum));
|
|
END_IF;
|
|
IF cum <> FALSE THEN
|
|
INSERT( vlist, ctmv(cum), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_not :
|
|
IF 'LOGICAL' IN TYPEOF(v1) THEN
|
|
lgc := v1;
|
|
RETURN (ctmv(NOT lgc));
|
|
END_IF;
|
|
ef_xor :
|
|
BEGIN
|
|
IF 'LOGICAL' IN TYPEOF(v1) THEN
|
|
lgc := v1;
|
|
IF 'LOGICAL' IN TYPEOF(v2) THEN
|
|
cum := v2;
|
|
RETURN (ctmv(lgc XOR cum));
|
|
ELSE
|
|
IF lgc = FALSE THEN
|
|
RETURN (ctmv(v2));
|
|
ELSE
|
|
IF lgc = UNKNOWN THEN
|
|
RETURN (ctmv(UNKNOWN));
|
|
ELSE
|
|
RETURN (make_function_application(ef_not, [ v2 ]));
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
IF 'LOGICAL' IN TYPEOF(v2) THEN
|
|
lgc := v2;
|
|
IF lgc = FALSE THEN
|
|
RETURN (ctmv(v1));
|
|
ELSE
|
|
IF lgc = UNKNOWN THEN
|
|
RETURN (ctmv(UNKNOWN));
|
|
ELSE
|
|
RETURN (make_function_application(ef_not, [ v1 ]));
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END;
|
|
ef_negate_i :
|
|
IF 'INTEGER' IN TYPEOF(v1) THEN
|
|
j := v1;
|
|
RETURN (ctmv(-j));
|
|
END_IF;
|
|
ef_add_i :
|
|
BEGIN
|
|
j := 0;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'INTEGER' IN TYPEOF(vlist[i]) THEN
|
|
k := vlist[i];
|
|
j := j + k;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(j));
|
|
END_IF;
|
|
IF j <> 0 THEN
|
|
INSERT( vlist, ctmv(j), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_subtract_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j - k));
|
|
END_IF;
|
|
ef_multiply_i :
|
|
BEGIN
|
|
j := 1;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'INTEGER' IN TYPEOF(vlist[i]) THEN
|
|
k := vlist[i];
|
|
j := j * k;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(j));
|
|
END_IF;
|
|
IF j <> 1 THEN
|
|
INSERT( vlist, ctmv(j), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_divide_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j DIV k));
|
|
END_IF;
|
|
ef_mod_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j MOD k));
|
|
END_IF;
|
|
ef_exponentiate_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
n := 1;
|
|
REPEAT i := 1 TO ABS(k);
|
|
n := n * j;
|
|
END_REPEAT;
|
|
IF k < 0 THEN
|
|
n := 1 DIV n;
|
|
END_IF;
|
|
RETURN (ctmv(n));
|
|
END_IF;
|
|
ef_eq_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j = k));
|
|
END_IF;
|
|
ef_ne_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j <> k));
|
|
END_IF;
|
|
ef_gt_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j > k));
|
|
END_IF;
|
|
ef_lt_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j < k));
|
|
END_IF;
|
|
ef_ge_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j >= k));
|
|
END_IF;
|
|
ef_le_i :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
j := v1;
|
|
k := v2;
|
|
RETURN (ctmv(j <= k));
|
|
END_IF;
|
|
ef_abs_i :
|
|
IF 'INTEGER' IN TYPEOF(v1) THEN
|
|
j := v1;
|
|
RETURN (ctmv(ABS(j)));
|
|
END_IF;
|
|
ef_max_i :
|
|
BEGIN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'INTEGER' IN TYPEOF(vlist[i]) THEN
|
|
IF boo THEN
|
|
k := vlist[i];
|
|
IF k > j THEN
|
|
j := k;
|
|
END_IF;
|
|
ELSE
|
|
j := vlist[i];
|
|
boo := TRUE;
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(j));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(j), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_min_i :
|
|
BEGIN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'INTEGER' IN TYPEOF(vlist[i]) THEN
|
|
IF boo THEN
|
|
k := vlist[i];
|
|
IF k < j THEN
|
|
j := k;
|
|
END_IF;
|
|
ELSE
|
|
j := vlist[i];
|
|
boo := TRUE;
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(j));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(j), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_negate_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(-r));
|
|
END_IF;
|
|
ef_reciprocal_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(1.0 / r));
|
|
END_IF;
|
|
ef_add_r :
|
|
BEGIN
|
|
r := 0.0;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'REAL' IN TYPEOF(vlist[i]) THEN
|
|
s := vlist[i];
|
|
r := r + s;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(r));
|
|
END_IF;
|
|
IF r <> 0.0 THEN
|
|
INSERT( vlist, ctmv(r), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_subtract_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r - s));
|
|
END_IF;
|
|
ef_multiply_r :
|
|
BEGIN
|
|
r := 1.0;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'REAL' IN TYPEOF(vlist[i]) THEN
|
|
s := vlist[i];
|
|
r := r * s;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(r));
|
|
END_IF;
|
|
IF r <> 1.0 THEN
|
|
INSERT( vlist, ctmv(r), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_divide_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r / s));
|
|
END_IF;
|
|
ef_mod_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
T := r / s;
|
|
j := T DIV 1;
|
|
IF (T < 0.0) AND (j <> T) THEN
|
|
j := j - 1;
|
|
END_IF;
|
|
RETURN (ctmv(r - j * s));
|
|
END_IF;
|
|
ef_exponentiate_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r ** s));
|
|
END_IF;
|
|
ef_exponentiate_ri :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
k := v2;
|
|
T := 1.0;
|
|
REPEAT i := 1 TO ABS(k);
|
|
T := T * r;
|
|
END_REPEAT;
|
|
IF k < 0 THEN
|
|
T := 1.0 / T;
|
|
END_IF;
|
|
RETURN (ctmv(T));
|
|
END_IF;
|
|
ef_eq_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r = s));
|
|
END_IF;
|
|
ef_ne_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r <> s));
|
|
END_IF;
|
|
ef_gt_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r > s));
|
|
END_IF;
|
|
ef_lt_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r < s));
|
|
END_IF;
|
|
ef_ge_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r >= s));
|
|
END_IF;
|
|
ef_le_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(r <= s));
|
|
END_IF;
|
|
ef_abs_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(ABS(r)));
|
|
END_IF;
|
|
ef_max_r :
|
|
BEGIN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'REAL' IN TYPEOF(vlist[i]) THEN
|
|
IF boo THEN
|
|
s := vlist[i];
|
|
IF s > r THEN
|
|
r := s;
|
|
END_IF;
|
|
ELSE
|
|
r := vlist[i];
|
|
boo := TRUE;
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(r));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(r), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_min_r :
|
|
BEGIN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'REAL' IN TYPEOF(vlist[i]) THEN
|
|
IF boo THEN
|
|
s := vlist[i];
|
|
IF s < r THEN
|
|
r := s;
|
|
END_IF;
|
|
ELSE
|
|
r := vlist[i];
|
|
boo := TRUE;
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(r));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(r), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_acos_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(ACOS(r)));
|
|
END_IF;
|
|
ef_asin_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(ASIN(r)));
|
|
END_IF;
|
|
ef_atan2_r :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (ctmv(atan2(r, s)));
|
|
END_IF;
|
|
ef_cos_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(cos(r)));
|
|
END_IF;
|
|
ef_exp_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(EXP(r)));
|
|
END_IF;
|
|
ef_ln_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(LOG(r)));
|
|
END_IF;
|
|
ef_log2_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(LOG2(r)));
|
|
END_IF;
|
|
ef_log10_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(LOG10(r)));
|
|
END_IF;
|
|
ef_sin_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(sin(r)));
|
|
END_IF;
|
|
ef_sqrt_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(SQRT(r)));
|
|
END_IF;
|
|
ef_tan_r :
|
|
IF 'REAL' IN TYPEOF(v1) THEN
|
|
r := v1;
|
|
RETURN (ctmv(TAN(r)));
|
|
END_IF;
|
|
ef_form_c :
|
|
IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN
|
|
r := v1;
|
|
s := v2;
|
|
RETURN (makec(r, s));
|
|
END_IF;
|
|
ef_rpart_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
RETURN (ctmv(v1\complex_number_literal.real_part));
|
|
END_IF;
|
|
ef_ipart_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
RETURN (ctmv(v1\complex_number_literal.imag_part));
|
|
END_IF;
|
|
ef_negate_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
RETURN (makec(-p, -q));
|
|
END_IF;
|
|
ef_reciprocal_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
T := p * p + q * q;
|
|
RETURN (makec(p / T, -q / T));
|
|
END_IF;
|
|
ef_add_c :
|
|
BEGIN
|
|
p := 0.0;
|
|
q := 0.0;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF cnlit IN TYPEOF(vlist[i]) THEN
|
|
parts( vlist[i], r, s );
|
|
p := p + r;
|
|
q := q + s;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (makec(p, q));
|
|
END_IF;
|
|
IF p * p + q * q <> 0.0 THEN
|
|
INSERT( vlist, makec(p, q), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_subtract_c :
|
|
IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN
|
|
parts( v1, p, q );
|
|
parts( v2, r, s );
|
|
RETURN (makec(p - r, q - s));
|
|
END_IF;
|
|
ef_multiply_c :
|
|
BEGIN
|
|
p := 1.0;
|
|
q := 0.0;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF cnlit IN TYPEOF(vlist[i]) THEN
|
|
parts( vlist[i], r, s );
|
|
p := p * r - q * s;
|
|
q := p * s + q * r;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (makec(p, q));
|
|
END_IF;
|
|
IF (p <> 1.0) OR (q <> 0.0) THEN
|
|
INSERT( vlist, makec(p, q), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_divide_c :
|
|
IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN
|
|
parts( v1, p, q );
|
|
parts( v2, r, s );
|
|
T := r * r + s * s;
|
|
RETURN (makec((p * r + q * s) / T, (q * r - p * s) / T));
|
|
END_IF;
|
|
ef_exponentiate_c :
|
|
IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN
|
|
parts( v1, p, q );
|
|
parts( v2, r, s );
|
|
T := 0.500000 * LOG((p * p + q * q));
|
|
u := atan2(q, p);
|
|
p := r * T - s * u;
|
|
q := r * u + s * T;
|
|
r := EXP(p);
|
|
RETURN (makec(r * cos(q), r * sin(q)));
|
|
END_IF;
|
|
ef_exponentiate_ci :
|
|
IF (cnlit IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
parts( v1, p, q );
|
|
k := v2;
|
|
r := 1.0;
|
|
s := 0.0;
|
|
REPEAT i := 1 TO ABS(k);
|
|
r := p * r - q * s;
|
|
s := p * s + q * r;
|
|
END_REPEAT;
|
|
IF k < 0 THEN
|
|
T := r * r + s * s;
|
|
r := r / T;
|
|
s := -s / T;
|
|
END_IF;
|
|
RETURN (makec(r, s));
|
|
END_IF;
|
|
ef_eq_c :
|
|
IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN
|
|
parts( v1, p, q );
|
|
parts( v2, r, s );
|
|
RETURN (ctmv((p = r) AND (q = s)));
|
|
END_IF;
|
|
ef_ne_c :
|
|
IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN
|
|
parts( v1, p, q );
|
|
parts( v2, r, s );
|
|
RETURN (ctmv((p <> r) OR (q <> s)));
|
|
END_IF;
|
|
ef_conjugate_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
RETURN (makec(p, -q));
|
|
END_IF;
|
|
ef_abs_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
RETURN (ctmv(SQRT(p * p + q * q)));
|
|
END_IF;
|
|
ef_arg_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
RETURN (ctmv(atan2(q, p)));
|
|
END_IF;
|
|
ef_cos_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
T := 0.500000 * EXP(-q);
|
|
u := 0.500000 * EXP(q);
|
|
RETURN (makec((T + u) * cos(p), (T - u) * sin(p)));
|
|
END_IF;
|
|
ef_exp_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
RETURN (makec(EXP(p) * cos(q), EXP(p) * sin(q)));
|
|
END_IF;
|
|
ef_ln_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
RETURN (makec(0.500000 * LOG((p * p + q * q)), atan2(q, p)));
|
|
END_IF;
|
|
ef_sin_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
T := 0.500000 * EXP(-q);
|
|
u := 0.500000 * EXP(q);
|
|
RETURN (makec((T + u) * sin(p), (u - T) * cos(p)));
|
|
END_IF;
|
|
ef_sqrt_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
T := SQRT(SQRT(p * p + q * q));
|
|
u := 0.500000 * atan2(q, p);
|
|
RETURN (makec(T * cos(u), T * sin(u)));
|
|
END_IF;
|
|
ef_tan_c :
|
|
IF cnlit IN TYPEOF(v1) THEN
|
|
parts( v1, p, q );
|
|
T := EXP(2.0 * q) + EXP(-2.0 * q) + 2.0 * cos(2.0 * p);
|
|
RETURN (makec(2.0 * sin(2.0 * p) / T, (EXP(-2.0 * q) - EXP(2.0 * q)) / T));
|
|
END_IF;
|
|
ef_subscript_s :
|
|
IF ('STRING' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
str := v1;
|
|
k := v2;
|
|
RETURN (ctmv(str[k]));
|
|
END_IF;
|
|
ef_eq_s :
|
|
IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
str := v1;
|
|
st2 := v2;
|
|
RETURN (ctmv(str = st2));
|
|
END_IF;
|
|
ef_ne_s :
|
|
IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
str := v1;
|
|
st2 := v2;
|
|
RETURN (ctmv(str <> st2));
|
|
END_IF;
|
|
ef_gt_s :
|
|
IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
str := v1;
|
|
st2 := v2;
|
|
RETURN (ctmv(str > st2));
|
|
END_IF;
|
|
ef_lt_s :
|
|
IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
str := v1;
|
|
st2 := v2;
|
|
RETURN (ctmv(str < st2));
|
|
END_IF;
|
|
ef_ge_s :
|
|
IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
str := v1;
|
|
st2 := v2;
|
|
RETURN (ctmv(str >= st2));
|
|
END_IF;
|
|
ef_le_s :
|
|
IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
str := v1;
|
|
st2 := v2;
|
|
RETURN (ctmv(str <= st2));
|
|
END_IF;
|
|
ef_subsequence_s :
|
|
IF (('STRING' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2))) AND ('INTEGER' IN TYPEOF(v3)) THEN
|
|
str := v1;
|
|
j := v2;
|
|
k := v3;
|
|
RETURN (ctmv(str[ j : k ]));
|
|
END_IF;
|
|
ef_concat_s :
|
|
BEGIN
|
|
str := '';
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'STRING' IN TYPEOF(vlist[i]) THEN
|
|
st2 := vlist[i];
|
|
str := str + st2;
|
|
REMOVE( vlist, i );
|
|
ELSE
|
|
IF str <> '' THEN
|
|
INSERT( vlist, ctmv(str), i );
|
|
str := '';
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(str));
|
|
END_IF;
|
|
IF str <> '' THEN
|
|
INSERT( vlist, ctmv(str), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_size_s :
|
|
IF 'STRING' IN TYPEOF(v1) THEN
|
|
str := v1;
|
|
RETURN (ctmv(LENGTH(str)));
|
|
END_IF;
|
|
ef_format :
|
|
IF ('NUMBER' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
RETURN (ctmv(FORMAT(v1, v2)));
|
|
END_IF;
|
|
ef_value :
|
|
IF 'STRING' IN TYPEOF(v1) THEN
|
|
str := v1;
|
|
RETURN (ctmv(VALUE(str)));
|
|
END_IF;
|
|
ef_like :
|
|
IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
RETURN (ctmv(v1 LIKE v2));
|
|
END_IF;
|
|
ef_subscript_b :
|
|
IF ('BINARY' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
bin := v1;
|
|
k := v2;
|
|
RETURN (ctmv(bin[k]));
|
|
END_IF;
|
|
ef_eq_b :
|
|
IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN
|
|
bin := v1;
|
|
bi2 := v2;
|
|
RETURN (ctmv(bin = bi2));
|
|
END_IF;
|
|
ef_ne_b :
|
|
IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN
|
|
bin := v1;
|
|
bi2 := v2;
|
|
RETURN (ctmv(bin <> bi2));
|
|
END_IF;
|
|
ef_gt_b :
|
|
IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN
|
|
bin := v1;
|
|
bi2 := v2;
|
|
RETURN (ctmv(bin > bi2));
|
|
END_IF;
|
|
ef_lt_b :
|
|
IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN
|
|
bin := v1;
|
|
bi2 := v2;
|
|
RETURN (ctmv(bin < bi2));
|
|
END_IF;
|
|
ef_ge_b :
|
|
IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN
|
|
bin := v1;
|
|
bi2 := v2;
|
|
RETURN (ctmv(bin >= bi2));
|
|
END_IF;
|
|
ef_le_b :
|
|
IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN
|
|
bin := v1;
|
|
bi2 := v2;
|
|
RETURN (ctmv(bin <= bi2));
|
|
END_IF;
|
|
ef_subsequence_b :
|
|
IF (('BINARY' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2))) AND ('INTEGER' IN TYPEOF(v3)) THEN
|
|
bin := v1;
|
|
j := v2;
|
|
k := v3;
|
|
RETURN (ctmv(bin[ j : k ]));
|
|
END_IF;
|
|
ef_concat_b :
|
|
BEGIN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'BINARY' IN TYPEOF(vlist[i]) THEN
|
|
IF boo THEN
|
|
bi2 := vlist[i];
|
|
bin := bin + bi2;
|
|
ELSE
|
|
bin := vlist[i];
|
|
boo := TRUE;
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
ELSE
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(bin), i );
|
|
boo := FALSE;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(bin));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(bin), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_size_b :
|
|
IF 'BINARY' IN TYPEOF(v1) THEN
|
|
bin := v1;
|
|
RETURN (ctmv(BLENGTH(bin)));
|
|
END_IF;
|
|
ef_subscript_t :
|
|
IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
tpl := v1;
|
|
k := v2;
|
|
RETURN (ctmv(tpl[k]));
|
|
END_IF;
|
|
ef_eq_t :
|
|
IF ('LIST' IN TYPEOF(v1)) AND ('LIST' IN TYPEOF(v2)) THEN
|
|
lgc := equal_maths_values(v1, v2);
|
|
IF lgc <> UNKNOWN THEN
|
|
RETURN (ctmv(lgc));
|
|
END_IF;
|
|
END_IF;
|
|
ef_ne_t :
|
|
IF ('LIST' IN TYPEOF(v1)) AND ('LIST' IN TYPEOF(v2)) THEN
|
|
lgc := equal_maths_values(v1, v2);
|
|
IF lgc <> UNKNOWN THEN
|
|
RETURN (ctmv(NOT lgc));
|
|
END_IF;
|
|
END_IF;
|
|
ef_concat_t :
|
|
BEGIN
|
|
tpl := [];
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'STRING' IN TYPEOF(vlist[i]) THEN
|
|
tp2 := vlist[i];
|
|
tpl := tpl + tp2;
|
|
REMOVE( vlist, i );
|
|
ELSE
|
|
IF SIZEOF(tpl) <> 0 THEN
|
|
INSERT( vlist, ctmv(tpl), i );
|
|
tpl := [];
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
IF SIZEOF(tpl) <> 0 THEN
|
|
INSERT( vlist, ctmv(tpl), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_size_t :
|
|
IF 'LIST' IN TYPEOF(v1) THEN
|
|
tpl := v1;
|
|
RETURN (ctmv(SIZEOF(tpl)));
|
|
END_IF;
|
|
ef_entuple :
|
|
RETURN (ctmv(vlist));
|
|
ef_detuple :
|
|
IF 'LIST' IN TYPEOF(v1) THEN
|
|
tpl := v1;
|
|
RETURN (ctmv(tpl[1]));
|
|
END_IF;
|
|
ef_insert :
|
|
IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v3)) THEN
|
|
tpl := v1;
|
|
k := v3;
|
|
INSERT( tpl, v2, k );
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
ef_remove :
|
|
IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN
|
|
tpl := v1;
|
|
k := v2;
|
|
REMOVE( tpl, k );
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
ef_sum_it :
|
|
IF good_t(v1, 'INTEGER') THEN
|
|
tpl := v1;
|
|
j := 0;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
j := j + tpl[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(j));
|
|
END_IF;
|
|
ef_product_it :
|
|
IF good_t(v1, 'INTEGER') THEN
|
|
tpl := v1;
|
|
j := 1;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
j := j * tpl[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(j));
|
|
END_IF;
|
|
ef_add_it :
|
|
BEGIN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF good_t(vlist[i], 'INTEGER') THEN
|
|
IF NOT boo THEN
|
|
tpl := vlist[i];
|
|
boo := TRUE;
|
|
ELSE
|
|
tp2 := vlist[i];
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT l := 1 TO SIZEOF(tpl);
|
|
tpl[j] := tpl[j] + tp2[j];
|
|
END_REPEAT;
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(tpl), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_subtract_it :
|
|
IF good_t(v1, 'INTEGER') AND good_t(v2, 'INTEGER') THEN
|
|
tpl := v1;
|
|
tp2 := v2;
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
tpl[i] := tpl[i] - tp2[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
ef_scalar_mult_it :
|
|
IF ('INTEGER' IN TYPEOF(v1)) AND good_t(v2, 'INTEGER') THEN
|
|
j := v1;
|
|
tpl := v2;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
tpl[i] := j * tpl[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
ef_dot_prod_it :
|
|
IF good_t(v1, 'INTEGER') AND good_t(v2, 'INTEGER') THEN
|
|
tpl := v1;
|
|
tp2 := v2;
|
|
j := 0;
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
j := j + tpl[i] * tp2[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(j));
|
|
END_IF;
|
|
ef_sum_rt :
|
|
IF good_t(v1, 'REAL') THEN
|
|
tpl := v1;
|
|
r := 0.0;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
r := r + tpl[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(r));
|
|
END_IF;
|
|
ef_product_rt :
|
|
IF good_t(v1, 'REAL') THEN
|
|
tpl := v1;
|
|
r := 1.0;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
r := r * tpl[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(r));
|
|
END_IF;
|
|
ef_add_rt :
|
|
BEGIN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF good_t(vlist[i], 'REAL') THEN
|
|
IF NOT boo THEN
|
|
tpl := vlist[i];
|
|
boo := TRUE;
|
|
ELSE
|
|
tp2 := vlist[i];
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT l := 1 TO SIZEOF(tpl);
|
|
tpl[j] := tpl[j] + tp2[j];
|
|
END_REPEAT;
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(tpl), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_subtract_rt :
|
|
IF good_t(v1, 'REAL') AND good_t(v2, 'REAL') THEN
|
|
tpl := v1;
|
|
tp2 := v2;
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
tpl[i] := tpl[i] - tp2[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
ef_scalar_mult_rt :
|
|
IF ('REAL' IN TYPEOF(v1)) AND good_t(v2, 'REAL') THEN
|
|
r := v1;
|
|
tpl := v2;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
tpl[i] := r * tpl[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
ef_dot_prod_rt :
|
|
IF good_t(v1, 'REAL') AND good_t(v2, 'REAL') THEN
|
|
tpl := v1;
|
|
tp2 := v2;
|
|
r := 0;
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
r := r + tpl[i] * tp2[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(r));
|
|
END_IF;
|
|
ef_norm_rt :
|
|
IF good_t(v1, 'REAL') THEN
|
|
tpl := v1;
|
|
r := 0.0;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
r := r + tpl[i] * tpl[i];
|
|
END_REPEAT;
|
|
RETURN (ctmv(SQRT(r)));
|
|
END_IF;
|
|
ef_sum_ct :
|
|
IF good_t(v1, cnlit) THEN
|
|
tpl := v1;
|
|
p := 0.0;
|
|
q := 0.0;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
parts( tpl[i], r, s );
|
|
p := p + r;
|
|
q := q + s;
|
|
END_REPEAT;
|
|
RETURN (makec(p, q));
|
|
END_IF;
|
|
ef_product_ct :
|
|
IF good_t(v1, cnlit) THEN
|
|
tpl := v1;
|
|
p := 1.0;
|
|
q := 0.0;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
parts( tpl[i], r, s );
|
|
p := p * r - q * s;
|
|
q := p * s + q * r;
|
|
END_REPEAT;
|
|
RETURN (makec(p, q));
|
|
END_IF;
|
|
ef_add_ct :
|
|
BEGIN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF good_t(vlist[i], cnlit) THEN
|
|
IF NOT boo THEN
|
|
tpl := vlist[i];
|
|
boo := TRUE;
|
|
ELSE
|
|
tp2 := vlist[i];
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT l := 1 TO SIZEOF(tpl);
|
|
parts( tpl[j], p, q );
|
|
parts( tp2[j], r, s );
|
|
tpl[j] := makec(p + r, q + s);
|
|
END_REPEAT;
|
|
END_IF;
|
|
REMOVE( vlist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(vlist) = 0 THEN
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( vlist, ctmv(tpl), 0 );
|
|
END_IF;
|
|
IF SIZEOF(vlist) = 1 THEN
|
|
RETURN (vlist[1]);
|
|
END_IF;
|
|
END;
|
|
ef_subtract_ct :
|
|
IF good_t(v1, cnlit) AND good_t(v2, cnlit) THEN
|
|
tpl := v1;
|
|
tp2 := v2;
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
parts( tpl[i], p, q );
|
|
parts( tp2[i], r, s );
|
|
tpl[i] := makec(p - r, q - s);
|
|
END_REPEAT;
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
ef_scalar_mult_ct :
|
|
IF (cnlit IN TYPEOF(v1)) AND good_t(v2, cnlit) THEN
|
|
parts( v1, p, q );
|
|
tpl := v2;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
parts( tpl[i], r, s );
|
|
tpl[i] := makec(p * r - q * s, p * s + q * r);
|
|
END_REPEAT;
|
|
RETURN (ctmv(tpl));
|
|
END_IF;
|
|
ef_dot_prod_ct :
|
|
IF good_t(v1, cnlit) AND good_t(v2, cnlit) THEN
|
|
tpl := v1;
|
|
tp2 := v2;
|
|
T := 0.0;
|
|
u := 0.0;
|
|
IF SIZEOF(tpl) <> SIZEOF(tp2) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
parts( tpl[i], p, q );
|
|
parts( tp2[i], r, s );
|
|
T := T + p * r + q * s;
|
|
u := u + q * r - p * s;
|
|
END_REPEAT;
|
|
RETURN (makec(T, u));
|
|
END_IF;
|
|
ef_norm_ct :
|
|
IF good_t(v1, cnlit) THEN
|
|
tpl := v1;
|
|
r := 0.0;
|
|
REPEAT i := 1 TO SIZEOF(tpl);
|
|
parts( tpl[i], p, q );
|
|
r := r + p * p + q * q;
|
|
END_REPEAT;
|
|
RETURN (ctmv(SQRT(r)));
|
|
END_IF;
|
|
ef_if, ef_if_i, ef_if_r, ef_if_c, ef_if_s, ef_if_b, ef_if_t :
|
|
IF 'LOGICAL' IN TYPEOF(v1) THEN
|
|
lgc := v1;
|
|
IF lgc THEN
|
|
RETURN (v2);
|
|
ELSE
|
|
RETURN (v3);
|
|
END_IF;
|
|
END_IF;
|
|
ef_ensemble :
|
|
RETURN (make_finite_space(mem + vlist));
|
|
ef_member_of :
|
|
IF schema_prefix + 'MATHS_SPACE' IN TYPEOF(v2) THEN
|
|
lgc := member_of(v1, v2);
|
|
IF lgc <> UNKNOWN THEN
|
|
RETURN (ctmv(lgc));
|
|
END_IF;
|
|
END_IF;
|
|
END_CASE;
|
|
RETURN (make_function_application(expr.func, vlist));
|
|
END_IF;
|
|
IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN types THEN
|
|
gexpr := substitute(expr.func\abstracted_expression_function.expr, expr.func\quantifier_expression.variables, vlist);
|
|
RETURN (simplify_generic_expression(gexpr));
|
|
END_IF;
|
|
IF 'FINITE_FUNCTION' IN types THEN
|
|
pairs := expr.func\finite_function.pairs;
|
|
REPEAT i := 1 TO SIZEOF(pairs);
|
|
IF equal_maths_values(vlist[1], pairs[i][1]) THEN
|
|
RETURN (simplify_maths_value(pairs[i][2]));
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (make_function_application(expr.func, vlist));
|
|
END_IF;
|
|
RETURN (expr);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION simplify_generic_expression
|
|
(expr : generic_expression ) : maths_value;
|
|
FUNCTION restore_unary
|
|
(expr : unary_generic_expression;
|
|
opnd : generic_expression ) : generic_expression;
|
|
expr.operand := opnd;
|
|
RETURN (expr);
|
|
END_FUNCTION;
|
|
FUNCTION restore_binary
|
|
(expr : binary_generic_expression;
|
|
opd1 : generic_expression;
|
|
opd2 : generic_expression ) : generic_expression;
|
|
expr.operands[1] := opd1;
|
|
expr.operands[2] := opd2;
|
|
RETURN (expr);
|
|
END_FUNCTION;
|
|
FUNCTION restore_mulary
|
|
(expr : multiple_arity_generic_expression;
|
|
ops : LIST OF generic_expression ) : generic_expression;
|
|
expr.operands := ops;
|
|
RETURN (expr);
|
|
END_FUNCTION;
|
|
FUNCTION make_number_literal
|
|
(nmb : NUMBER ) : generic_literal;
|
|
IF 'INTEGER' IN TYPEOF(nmb) THEN
|
|
RETURN (make_int_literal(nmb));
|
|
END_IF;
|
|
RETURN (make_real_literal(nmb));
|
|
END_FUNCTION;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof(expr);
|
|
v1 : maths_value;
|
|
v2 : maths_value;
|
|
vlist : LIST OF maths_value := [];
|
|
op1 : generic_expression;
|
|
op2 : generic_expression;
|
|
oplist : LIST OF generic_expression := [];
|
|
opnds : LIST [2:?] OF generic_expression;
|
|
n : INTEGER;
|
|
m : INTEGER;
|
|
finfun : maths_function_select;
|
|
boo : BOOLEAN;
|
|
str : STRING;
|
|
nmb : NUMBER;
|
|
END_LOCAL;
|
|
IF 'INT_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\int_literal.the_value));
|
|
END_IF;
|
|
IF 'REAL_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\real_literal.the_value));
|
|
END_IF;
|
|
IF 'BOOLEAN_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\boolean_literal.the_value));
|
|
END_IF;
|
|
IF 'STRING_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\string_literal.the_value));
|
|
END_IF;
|
|
IF 'COMPLEX_NUMBER_LITERAL' IN types THEN
|
|
RETURN (expr);
|
|
END_IF;
|
|
IF 'LOGICAL_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\logical_literal.lit_value));
|
|
END_IF;
|
|
IF 'BINARY_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\binary_literal.lit_value));
|
|
END_IF;
|
|
IF 'MATHS_ENUM_LITERAL' IN types THEN
|
|
RETURN (expr\maths_enum_literal.lit_value);
|
|
END_IF;
|
|
IF 'REAL_TUPLE_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\real_tuple_literal.lit_value));
|
|
END_IF;
|
|
IF 'INTEGER_TUPLE_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\integer_tuple_literal.lit_value));
|
|
END_IF;
|
|
IF 'ATOM_BASED_LITERAL' IN types THEN
|
|
RETURN (expr\atom_based_literal.lit_value);
|
|
END_IF;
|
|
IF 'MATHS_TUPLE_LITERAL' IN types THEN
|
|
RETURN (convert_to_maths_value(expr\maths_tuple_literal.lit_value));
|
|
END_IF;
|
|
IF 'MATHS_SPACE' IN types THEN
|
|
RETURN (simplify_maths_space(expr));
|
|
END_IF;
|
|
IF 'FUNCTION_APPLICATION' IN types THEN
|
|
RETURN (simplify_function_application(expr));
|
|
END_IF;
|
|
IF 'UNARY_GENERIC_EXPRESSION' IN types THEN
|
|
v1 := simplify_generic_expression(expr\unary_generic_expression.operand);
|
|
op1 := convert_to_operand(v1);
|
|
END_IF;
|
|
IF 'BINARY_GENERIC_EXPRESSION' IN types THEN
|
|
v1 := simplify_generic_expression(expr\binary_generic_expression.operands[1]);
|
|
op1 := convert_to_operand(v1);
|
|
v2 := simplify_generic_expression(expr\binary_generic_expression.operands[2]);
|
|
op2 := convert_to_operand(v2);
|
|
END_IF;
|
|
IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN
|
|
opnds := expr\multiple_arity_generic_expression.operands;
|
|
REPEAT i := 1 TO SIZEOF(opnds);
|
|
v1 := simplify_generic_expression(opnds[i]);
|
|
INSERT( vlist, v1, i - 1 );
|
|
INSERT( oplist, convert_to_operand(v1), i - 1 );
|
|
END_REPEAT;
|
|
END_IF;
|
|
IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN
|
|
v1 := vlist[1];
|
|
n := SIZEOF(vlist);
|
|
finfun := vlist[n];
|
|
REMOVE( vlist, n );
|
|
REMOVE( vlist, 1 );
|
|
RETURN (make_parallel_composed_function(v1, vlist, finfun));
|
|
END_IF;
|
|
IF ('ABS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(ABS(v1)));
|
|
END_IF;
|
|
IF ('ACOS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(ACOS(v1)));
|
|
END_IF;
|
|
IF 'AND_EXPRESSION' IN types THEN
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'BOOLEAN' IN TYPEOF(vlist[i]) THEN
|
|
boo := vlist[i];
|
|
IF NOT boo THEN
|
|
RETURN (convert_to_maths_value(FALSE));
|
|
END_IF;
|
|
REMOVE( oplist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(oplist) = 0 THEN
|
|
RETURN (convert_to_maths_value(TRUE));
|
|
END_IF;
|
|
IF SIZEOF(oplist) = 1 THEN
|
|
RETURN (oplist[1]);
|
|
END_IF;
|
|
END_IF;
|
|
IF ('ASIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(ASIN(v1)));
|
|
END_IF;
|
|
IF (('ATAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN
|
|
RETURN (convert_to_maths_value(atan(v1, v2)));
|
|
END_IF;
|
|
IF ('COMPARISON_EXPRESSION' IN types) AND ((('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) OR ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2))) OR ('BOOLEAN' IN TYPEOF(v1)) AND ('BOOLEAN' IN TYPEOF(v2))) THEN
|
|
IF 'COMPARISON_EQUAL' IN types THEN
|
|
boo := bool(v1 = v2);
|
|
ELSE
|
|
IF 'COMPARISON_GREATER' IN types THEN
|
|
boo := bool(v1 > v2);
|
|
ELSE
|
|
IF 'COMPARISON_GREATER_EQUAL' IN types THEN
|
|
boo := bool(v1 >= v2);
|
|
ELSE
|
|
IF 'COMPARISON_LESS' IN types THEN
|
|
boo := bool(v1 < v2);
|
|
ELSE
|
|
IF 'COMPARISON_LESS_EQUAL' IN types THEN
|
|
boo := bool(v1 <= v2);
|
|
ELSE
|
|
IF 'COMPARISON_NOT_EQUAL' IN types THEN
|
|
boo := bool(v1 <> v2);
|
|
ELSE
|
|
IF 'LIKE_EXPRESSION' IN types THEN
|
|
boo := bool(v1 LIKE v2);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (convert_to_maths_value(boo));
|
|
END_IF;
|
|
IF 'CONCAT_EXPRESSION' IN types THEN
|
|
str := '';
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'STRING' IN TYPEOF(vlist[i]) THEN
|
|
str := vlist[i] + str;
|
|
REMOVE( oplist, i );
|
|
ELSE
|
|
IF LENGTH(str) > 0 THEN
|
|
INSERT( oplist, make_string_literal(str), i );
|
|
str := '';
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(oplist) = 0 THEN
|
|
RETURN (convert_to_maths_value(str));
|
|
END_IF;
|
|
IF LENGTH(str) > 0 THEN
|
|
INSERT( oplist, make_string_literal(str), 0 );
|
|
END_IF;
|
|
IF SIZEOF(oplist) = 1 THEN
|
|
RETURN (oplist[1]);
|
|
END_IF;
|
|
END_IF;
|
|
IF ('COS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(cos(v1)));
|
|
END_IF;
|
|
IF (('DIV_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN
|
|
RETURN (convert_to_maths_value(v1 DIV v2));
|
|
END_IF;
|
|
IF 'EQUALS_EXPRESSION' IN types THEN
|
|
opnds := expr\binary_generic_expression.operands;
|
|
RETURN (convert_to_maths_value(opnds[1] :=: opnds[2]));
|
|
END_IF;
|
|
IF ('EXP_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(EXP(v1)));
|
|
END_IF;
|
|
IF (('FORMAT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('STRING' IN TYPEOF(v2)) THEN
|
|
RETURN (convert_to_maths_value(FORMAT(v1, v2)));
|
|
END_IF;
|
|
IF (('INDEX_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN
|
|
str := v1;
|
|
n := v2;
|
|
RETURN (convert_to_maths_value(str[n]));
|
|
END_IF;
|
|
IF ('INT_VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(VALUE(v1)));
|
|
END_IF;
|
|
IF 'INTERVAL_EXPRESSION' IN types THEN
|
|
str := '';
|
|
IF 'NUMBER' IN TYPEOF(vlist[1]) THEN
|
|
str := 'NUMBER';
|
|
END_IF;
|
|
IF 'STRING' IN TYPEOF(vlist[1]) THEN
|
|
str := 'STRING';
|
|
END_IF;
|
|
IF 'BOOLEAN' IN TYPEOF(vlist[1]) THEN
|
|
str := 'BOOLEAN';
|
|
END_IF;
|
|
IF ((LENGTH(str) > 0) AND (str IN TYPEOF(vlist[2]))) AND (str IN TYPEOF(vlist[3])) THEN
|
|
RETURN (convert_to_maths_value((vlist[1] <= vlist[2]) AND (vlist[2] <= vlist[3])));
|
|
END_IF;
|
|
END_IF;
|
|
IF ('LENGTH_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(LENGTH(v1)));
|
|
END_IF;
|
|
IF ('LOG_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(LOG(v1)));
|
|
END_IF;
|
|
IF ('LOG10_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(LOG10(v1)));
|
|
END_IF;
|
|
IF ('LOG2_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(LOG2(v1)));
|
|
END_IF;
|
|
IF 'MAXIMUM_EXPRESSION' IN types THEN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'NUMBER' IN TYPEOF(vlist[i]) THEN
|
|
IF boo THEN
|
|
IF nmb < vlist[i] THEN
|
|
nmb := vlist[i];
|
|
END_IF;
|
|
ELSE
|
|
nmb := vlist[i];
|
|
boo := TRUE;
|
|
END_IF;
|
|
REMOVE( oplist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(oplist) = 0 THEN
|
|
RETURN (convert_to_maths_value(nmb));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( oplist, make_number_literal(nmb), 0 );
|
|
END_IF;
|
|
END_IF;
|
|
IF 'MINIMUM_EXPRESSION' IN types THEN
|
|
boo := FALSE;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'NUMBER' IN TYPEOF(vlist[i]) THEN
|
|
IF boo THEN
|
|
IF nmb > vlist[i] THEN
|
|
nmb := vlist[i];
|
|
END_IF;
|
|
ELSE
|
|
nmb := vlist[i];
|
|
boo := TRUE;
|
|
END_IF;
|
|
REMOVE( oplist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(oplist) = 0 THEN
|
|
RETURN (convert_to_maths_value(nmb));
|
|
END_IF;
|
|
IF boo THEN
|
|
INSERT( oplist, make_number_literal(nmb), 0 );
|
|
END_IF;
|
|
END_IF;
|
|
IF (('MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN
|
|
RETURN (convert_to_maths_value(v1 - v2));
|
|
END_IF;
|
|
IF (('MOD_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN
|
|
RETURN (convert_to_maths_value(v1 MOD v2));
|
|
END_IF;
|
|
IF 'MULT_EXPRESSION' IN types THEN
|
|
nmb := 1;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'NUMBER' IN TYPEOF(vlist[i]) THEN
|
|
nmb := nmb * vlist[i];
|
|
REMOVE( oplist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(oplist) = 0 THEN
|
|
RETURN (convert_to_maths_value(nmb));
|
|
END_IF;
|
|
IF nmb <> 1 THEN
|
|
INSERT( oplist, make_number_literal(nmb), 0 );
|
|
END_IF;
|
|
IF SIZEOF(oplist) = 1 THEN
|
|
RETURN (oplist[1]);
|
|
END_IF;
|
|
END_IF;
|
|
IF ('NOT_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF(v1)) THEN
|
|
boo := v1;
|
|
RETURN (convert_to_maths_value(NOT boo));
|
|
END_IF;
|
|
IF ('ODD_EXPRESSION' IN types) AND ('INTEGER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(ODD(v1)));
|
|
END_IF;
|
|
IF 'OR_EXPRESSION' IN types THEN
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'BOOLEAN' IN TYPEOF(vlist[i]) THEN
|
|
boo := vlist[i];
|
|
IF boo THEN
|
|
RETURN (convert_to_maths_value(TRUE));
|
|
END_IF;
|
|
REMOVE( oplist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(oplist) = 0 THEN
|
|
RETURN (convert_to_maths_value(FALSE));
|
|
END_IF;
|
|
IF SIZEOF(oplist) = 1 THEN
|
|
RETURN (oplist[1]);
|
|
END_IF;
|
|
END_IF;
|
|
IF 'PLUS_EXPRESSION' IN types THEN
|
|
nmb := 0;
|
|
REPEAT i := SIZEOF(vlist) TO 1 BY -1;
|
|
IF 'NUMBER' IN TYPEOF(vlist[i]) THEN
|
|
nmb := nmb + vlist[i];
|
|
REMOVE( oplist, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF SIZEOF(oplist) = 0 THEN
|
|
RETURN (convert_to_maths_value(nmb));
|
|
END_IF;
|
|
IF nmb <> 0 THEN
|
|
INSERT( oplist, make_number_literal(nmb), 0 );
|
|
END_IF;
|
|
IF SIZEOF(oplist) = 1 THEN
|
|
RETURN (oplist[1]);
|
|
END_IF;
|
|
END_IF;
|
|
IF (('POWER_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN
|
|
RETURN (convert_to_maths_value(v1 ** v2));
|
|
END_IF;
|
|
IF ('SIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(sin(v1)));
|
|
END_IF;
|
|
IF (('SLASH_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN
|
|
RETURN (convert_to_maths_value(v1 / v2));
|
|
END_IF;
|
|
IF ('SQUARE_ROOT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(SQRT(v1)));
|
|
END_IF;
|
|
IF ((('SUBSTRING_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(vlist[1]))) AND ('NUMBER' IN TYPEOF(vlist[2]))) AND ('NUMBER' IN TYPEOF(vlist[3])) THEN
|
|
str := vlist[1];
|
|
n := vlist[2];
|
|
m := vlist[3];
|
|
RETURN (convert_to_maths_value(str[ n : m ]));
|
|
END_IF;
|
|
IF ('TAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(TAN(v1)));
|
|
END_IF;
|
|
IF ('UNARY_MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN
|
|
nmb := v1;
|
|
RETURN (convert_to_maths_value(-nmb));
|
|
END_IF;
|
|
IF ('VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN
|
|
RETURN (convert_to_maths_value(VALUE(v1)));
|
|
END_IF;
|
|
IF (('XOR_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF(v1))) AND ('BOOLEAN' IN TYPEOF(v2)) THEN
|
|
RETURN (convert_to_maths_value(v1 XOR v2));
|
|
END_IF;
|
|
IF 'UNARY_GENERIC_EXPRESSION' IN types THEN
|
|
RETURN (restore_unary(expr, op1));
|
|
END_IF;
|
|
IF 'BINARY_GENERIC_EXPRESSION' IN types THEN
|
|
RETURN (restore_binary(expr, op1, op2));
|
|
END_IF;
|
|
IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN
|
|
RETURN (restore_mulary(expr, oplist));
|
|
END_IF;
|
|
RETURN (expr);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION simplify_maths_space
|
|
(spc : maths_space ) : maths_space;
|
|
LOCAL
|
|
stypes : SET OF STRING := stripped_typeof(spc);
|
|
sset : SET OF maths_value;
|
|
zset : SET OF maths_value := [];
|
|
zval : maths_value;
|
|
zspc : maths_space;
|
|
zallint : BOOLEAN := TRUE;
|
|
zint : INTEGER;
|
|
zmin : INTEGER;
|
|
zmax : INTEGER;
|
|
factors : LIST OF maths_space;
|
|
zfactors : LIST OF maths_space := [];
|
|
rspc : maths_space;
|
|
END_LOCAL;
|
|
IF 'FINITE_SPACE' IN stypes THEN
|
|
sset := spc\finite_space.members;
|
|
REPEAT i := 1 TO SIZEOF(sset);
|
|
zval := simplify_maths_value(sset[i]);
|
|
zset := zset + [ zval ];
|
|
IF zallint AND ('INTEGER' IN TYPEOF(zval)) THEN
|
|
zint := zval;
|
|
IF i = 1 THEN
|
|
zmin := zint;
|
|
zmax := zint;
|
|
ELSE
|
|
IF zint < zmin THEN
|
|
zmin := zint;
|
|
END_IF;
|
|
IF zint > zmax THEN
|
|
zmax := zint;
|
|
END_IF;
|
|
END_IF;
|
|
ELSE
|
|
zallint := FALSE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF zallint AND (SIZEOF(zset) = zmax - zmin + 1) THEN
|
|
RETURN (make_finite_integer_interval(zmin, zmax));
|
|
END_IF;
|
|
RETURN (make_finite_space(zset));
|
|
END_IF;
|
|
IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN
|
|
zspc := simplify_maths_space(spc\uniform_product_space.base);
|
|
RETURN (make_uniform_product_space(zspc, spc\uniform_product_space.exponent));
|
|
END_IF;
|
|
IF 'LISTED_PRODUCT_SPACE' IN stypes THEN
|
|
factors := spc\listed_product_space.factors;
|
|
REPEAT i := 1 TO SIZEOF(factors);
|
|
INSERT( zfactors, simplify_maths_space(factors[i]), i - 1 );
|
|
END_REPEAT;
|
|
RETURN (make_listed_product_space(zfactors));
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN
|
|
zspc := simplify_maths_space(spc\extended_tuple_space.base);
|
|
rspc := simplify_maths_space(spc\extended_tuple_space.extender);
|
|
RETURN (make_extended_tuple_space(zspc, rspc));
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN stypes THEN
|
|
zspc := simplify_maths_space(spc\function_space.domain_argument);
|
|
rspc := simplify_maths_space(spc\function_space.range_argument);
|
|
RETURN (make_function_space(spc\function_space.domain_constraint, zspc, spc\function_space.range_constraint, rspc));
|
|
END_IF;
|
|
RETURN (spc);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION simplify_maths_value
|
|
(val : maths_value ) : maths_value;
|
|
LOCAL
|
|
vtypes : SET OF STRING := stripped_typeof(val);
|
|
vlist : LIST OF maths_value;
|
|
nlist : LIST OF maths_value := [];
|
|
END_LOCAL;
|
|
IF 'GENERIC_EXPRESSION' IN vtypes THEN
|
|
RETURN (simplify_generic_expression(val));
|
|
END_IF;
|
|
IF 'LIST' IN vtypes THEN
|
|
vlist := val;
|
|
REPEAT i := 1 TO SIZEOF(vlist);
|
|
INSERT( nlist, simplify_maths_value(vlist[i]), i - 1 );
|
|
END_REPEAT;
|
|
RETURN (convert_to_maths_value(nlist));
|
|
END_IF;
|
|
RETURN (val);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION singleton_member_of
|
|
(spc : maths_space ) : maths_value;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof(spc);
|
|
END_LOCAL;
|
|
IF 'FINITE_SPACE' IN types THEN
|
|
IF SIZEOF(spc\finite_space.members) = 1 THEN
|
|
RETURN (spc\finite_space.members[1]);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_IF;
|
|
IF 'FINITE_INTEGER_INTERVAL' IN types THEN
|
|
IF spc\finite_integer_interval.size = 1 THEN
|
|
RETURN (spc\finite_integer_interval.min);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION sort_link_associations
|
|
(aprr : SET [1:?] OF pair_representation_relationship;
|
|
one_not_two : BOOLEAN ) : SET [0:?] OF kinematic_link_representation;
|
|
LOCAL
|
|
result : SET OF kinematic_link_representation := [];
|
|
END_LOCAL;
|
|
IF one_not_two THEN
|
|
REPEAT i := 1 TO HIINDEX(aprr);
|
|
result := result + aprr[i].rep_1;
|
|
END_REPEAT;
|
|
ELSE
|
|
REPEAT i := 1 TO HIINDEX(aprr);
|
|
result := result + aprr[i].rep_2;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION space_dimension
|
|
(tspace : tuple_space ) : nonnegative_integer;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(tspace);
|
|
END_LOCAL;
|
|
IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN types THEN
|
|
RETURN (tspace\uniform_product_space.exponent);
|
|
END_IF;
|
|
IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN types THEN
|
|
RETURN (SIZEOF(tspace\listed_product_space.factors));
|
|
END_IF;
|
|
IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN types THEN
|
|
RETURN (space_dimension(tspace\extended_tuple_space.base));
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION space_is_continuum
|
|
(space : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
typenames : SET OF STRING := TYPEOF(space);
|
|
factors : LIST OF maths_space;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(space) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF subspace_of_es(space, es_reals) OR subspace_of_es(space, es_complex_numbers) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN typenames THEN
|
|
RETURN (space_is_continuum(space\uniform_product_space.base));
|
|
END_IF;
|
|
IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN typenames THEN
|
|
factors := space\listed_product_space.factors;
|
|
IF SIZEOF(factors) = 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(factors);
|
|
IF NOT space_is_continuum(factors[i]) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION space_is_singleton
|
|
(spc : maths_space ) : BOOLEAN;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof(spc);
|
|
END_LOCAL;
|
|
IF 'FINITE_SPACE' IN types THEN
|
|
RETURN (bool(SIZEOF(spc\finite_space.members) = 1));
|
|
END_IF;
|
|
IF 'FINITE_INTEGER_INTERVAL' IN types THEN
|
|
RETURN (bool(spc\finite_integer_interval.size = 1));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION stripped_typeof
|
|
(arg : GENERIC : G ) : SET [0:?] OF STRING;
|
|
LOCAL
|
|
types : SET OF STRING := TYPEOF(arg);
|
|
stypes : SET OF STRING := [];
|
|
n : INTEGER := LENGTH(schema_prefix);
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF(types);
|
|
IF types[i][ 1 : n ] = schema_prefix THEN
|
|
stypes := stypes + types[i][ (n + 1) : LENGTH(types[i]) ];
|
|
ELSE
|
|
stypes := stypes + types[i];
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (stypes);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION sts_get_general_datum_reference
|
|
(input : datum_reference_element ) : general_datum_reference;
|
|
LOCAL
|
|
general_datum_reference_bag : BAG OF general_datum_reference := USEDIN(input, 'STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_DATUM_REFERENCE.' + 'BASE');
|
|
END_LOCAL;
|
|
IF SIZEOF(general_datum_reference_bag) = 1 THEN
|
|
RETURN (general_datum_reference_bag[1]);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION sts_get_product_definition_shape
|
|
(input : geometric_tolerance_target ) : product_definition_shape;
|
|
CASE TRUE OF
|
|
'STEP_MERGED_CAD_SCHEMA.DIMENSIONAL_LOCATION' IN TYPEOF(input) :
|
|
RETURN (input\shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape);
|
|
'STEP_MERGED_CAD_SCHEMA.DIMENSIONAL_SIZE' IN TYPEOF(input) :
|
|
RETURN (input\dimensional_size.applies_to\shape_aspect.of_shape);
|
|
'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(input) :
|
|
RETURN (input);
|
|
'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(input) :
|
|
RETURN (input\shape_aspect.of_shape);
|
|
OTHERWISE :
|
|
RETURN (?);
|
|
END_CASE;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION subspace_of
|
|
(space1 : maths_space;
|
|
space2 : maths_space ) : LOGICAL;
|
|
LOCAL
|
|
spc1 : maths_space := simplify_maths_space(space1);
|
|
spc2 : maths_space := simplify_maths_space(space2);
|
|
types1 : SET OF STRING := stripped_typeof(spc1);
|
|
types2 : SET OF STRING := stripped_typeof(spc2);
|
|
lgcl : LOGICAL;
|
|
cum : LOGICAL;
|
|
es_val : elementary_space_enumerators;
|
|
bnd1 : REAL;
|
|
bnd2 : REAL;
|
|
n : INTEGER;
|
|
sp1 : maths_space;
|
|
sp2 : maths_space;
|
|
prgn1 : polar_complex_number_region;
|
|
prgn2 : polar_complex_number_region;
|
|
aitv : finite_real_interval;
|
|
END_LOCAL;
|
|
IF NOT EXISTS(spc1) OR NOT EXISTS(spc2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF spc2 = the_generics THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF 'ELEMENTARY_SPACE' IN types1 THEN
|
|
IF NOT ('ELEMENTARY_SPACE' IN types2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
es_val := spc2\elementary_space.space_id;
|
|
IF spc1\elementary_space.space_id = es_val THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
CASE spc1\elementary_space.space_id OF
|
|
es_numbers :
|
|
RETURN (FALSE);
|
|
es_complex_numbers :
|
|
RETURN (es_val = es_numbers);
|
|
es_reals :
|
|
RETURN (es_val = es_numbers);
|
|
es_integers :
|
|
RETURN (es_val = es_numbers);
|
|
es_logicals :
|
|
RETURN (FALSE);
|
|
es_booleans :
|
|
RETURN (es_val = es_logicals);
|
|
es_strings :
|
|
RETURN (FALSE);
|
|
es_binarys :
|
|
RETURN (FALSE);
|
|
es_maths_spaces :
|
|
RETURN (FALSE);
|
|
es_maths_functions :
|
|
RETURN (FALSE);
|
|
es_generics :
|
|
RETURN (FALSE);
|
|
END_CASE;
|
|
RETURN (UNKNOWN);
|
|
END_IF;
|
|
IF 'FINITE_INTEGER_INTERVAL' IN types1 THEN
|
|
cum := TRUE;
|
|
REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max;
|
|
cum := cum AND member_of(i, spc2);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
IF 'INTEGER_INTERVAL_FROM_MIN' IN types1 THEN
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
es_val := spc2\elementary_space.space_id;
|
|
RETURN ((es_val = es_numbers) OR (es_val = es_integers));
|
|
END_IF;
|
|
IF 'INTEGER_INTERVAL_FROM_MIN' IN types2 THEN
|
|
RETURN (spc1\integer_interval_from_min.min >= spc2\integer_interval_from_min.min);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'INTEGER_INTERVAL_TO_MAX' IN types1 THEN
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
es_val := spc2\elementary_space.space_id;
|
|
RETURN ((es_val = es_numbers) OR (es_val = es_integers));
|
|
END_IF;
|
|
IF 'INTEGER_INTERVAL_TO_MAX' IN types2 THEN
|
|
RETURN (spc1\integer_interval_to_max.max <= spc2\integer_interval_to_max.max);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FINITE_REAL_INTERVAL' IN types1 THEN
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
es_val := spc2\elementary_space.space_id;
|
|
RETURN ((es_val = es_numbers) OR (es_val = es_reals));
|
|
END_IF;
|
|
IF (('FINITE_REAL_INTERVAL' IN types2) OR ('REAL_INTERVAL_FROM_MIN' IN types2)) OR ('REAL_INTERVAL_TO_MAX' IN types2) THEN
|
|
IF min_exists(spc2) THEN
|
|
bnd1 := spc1\finite_real_interval.min;
|
|
bnd2 := real_min(spc2);
|
|
IF (bnd1 < bnd2) OR ((bnd1 = bnd2) AND min_included(spc1)) AND NOT min_included(spc2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
IF max_exists(spc2) THEN
|
|
bnd1 := spc1\finite_real_interval.max;
|
|
bnd2 := real_max(spc2);
|
|
IF (bnd1 > bnd2) OR ((bnd1 = bnd2) AND max_included(spc1)) AND NOT max_included(spc2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'REAL_INTERVAL_FROM_MIN' IN types1 THEN
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
es_val := spc2\elementary_space.space_id;
|
|
RETURN ((es_val = es_numbers) OR (es_val = es_reals));
|
|
END_IF;
|
|
IF 'REAL_INTERVAL_FROM_MIN' IN types2 THEN
|
|
bnd1 := spc1\real_interval_from_min.min;
|
|
bnd2 := spc2\real_interval_from_min.min;
|
|
RETURN ((bnd2 < bnd1) OR (bnd2 = bnd1) AND (min_included(spc2) OR NOT min_included(spc1)));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'REAL_INTERVAL_TO_MAX' IN types1 THEN
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
es_val := spc2\elementary_space.space_id;
|
|
RETURN ((es_val = es_numbers) OR (es_val = es_reals));
|
|
END_IF;
|
|
IF 'REAL_INTERVAL_TO_MAX' IN types2 THEN
|
|
bnd1 := spc1\real_interval_to_max.max;
|
|
bnd2 := spc2\real_interval_to_max.max;
|
|
RETURN ((bnd2 > bnd1) OR (bnd2 = bnd1) AND (max_included(spc2) OR NOT max_included(spc1)));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 THEN
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
es_val := spc2\elementary_space.space_id;
|
|
RETURN ((es_val = es_numbers) OR (es_val = es_complex_numbers));
|
|
END_IF;
|
|
IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN
|
|
RETURN (subspace_of(spc1\cartesian_complex_number_region.real_constraint, spc2\cartesian_complex_number_region.real_constraint) AND subspace_of(spc1\cartesian_complex_number_region.imag_constraint, spc2\cartesian_complex_number_region.imag_constraint));
|
|
END_IF;
|
|
IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN
|
|
RETURN (subspace_of(enclose_cregion_in_pregion(spc1, spc2\polar_complex_number_region.centre), spc2));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'POLAR_COMPLEX_NUMBER_REGION' IN types1 THEN
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
es_val := spc2\elementary_space.space_id;
|
|
RETURN ((es_val = es_numbers) OR (es_val = es_complex_numbers));
|
|
END_IF;
|
|
IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN
|
|
RETURN (subspace_of(enclose_pregion_in_cregion(spc1), spc2));
|
|
END_IF;
|
|
IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN
|
|
prgn1 := spc1;
|
|
prgn2 := spc2;
|
|
IF prgn1.centre = prgn2.centre THEN
|
|
IF prgn2.direction_constraint.max > 3.14159 THEN
|
|
aitv := make_finite_real_interval(-3.14159, open, prgn2.direction_constraint.max - 2.0 * 3.14159, prgn2.direction_constraint.max_closure);
|
|
RETURN (subspace_of(prgn1.distance_constraint, prgn2.distance_constraint) AND (subspace_of(prgn1.direction_constraint, prgn2.direction_constraint) OR subspace_of(prgn1.direction_constraint, aitv)));
|
|
ELSE
|
|
RETURN (subspace_of(prgn1.distance_constraint, prgn2.distance_constraint) AND subspace_of(prgn1.direction_constraint, prgn2.direction_constraint));
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (subspace_of(enclose_pregion_in_pregion(prgn1, prgn2.centre), prgn2));
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FINITE_SPACE' IN types1 THEN
|
|
cum := TRUE;
|
|
REPEAT i := 1 TO SIZEOF(spc1\finite_space.members);
|
|
cum := cum AND member_of(spc1\finite_space.members[i], spc2);
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
IF 'PRODUCT_SPACE' IN types1 THEN
|
|
IF 'PRODUCT_SPACE' IN types2 THEN
|
|
IF space_dimension(spc1) = space_dimension(spc2) THEN
|
|
cum := TRUE;
|
|
REPEAT i := 1 TO space_dimension(spc1);
|
|
cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i));
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN
|
|
IF space_dimension(spc1) >= space_dimension(spc2) THEN
|
|
cum := TRUE;
|
|
REPEAT i := 1 TO space_dimension(spc1);
|
|
cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i));
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN
|
|
IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN
|
|
n := space_dimension(spc1);
|
|
IF n < space_dimension(spc2) THEN
|
|
n := space_dimension(spc2);
|
|
END_IF;
|
|
cum := TRUE;
|
|
REPEAT i := 1 TO n + 1;
|
|
cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i));
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (cum);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN types1 THEN
|
|
IF 'ELEMENTARY_SPACE' IN types2 THEN
|
|
RETURN (spc2\elementary_space.space_id = es_maths_functions);
|
|
END_IF;
|
|
IF 'FUNCTION_SPACE' IN types2 THEN
|
|
cum := TRUE;
|
|
sp1 := spc1\function_space.domain_argument;
|
|
sp2 := spc2\function_space.domain_argument;
|
|
CASE spc1\function_space.domain_constraint OF
|
|
sc_equal :
|
|
BEGIN
|
|
CASE spc2\function_space.domain_constraint OF
|
|
sc_equal :
|
|
cum := cum AND equal_maths_spaces(sp1, sp2);
|
|
sc_subspace :
|
|
cum := cum AND subspace_of(sp1, sp2);
|
|
sc_member :
|
|
cum := cum AND member_of(sp1, sp2);
|
|
END_CASE;
|
|
END;
|
|
sc_subspace :
|
|
BEGIN
|
|
CASE spc2\function_space.domain_constraint OF
|
|
sc_equal :
|
|
RETURN (FALSE);
|
|
sc_subspace :
|
|
cum := cum AND subspace_of(sp1, sp2);
|
|
sc_member :
|
|
BEGIN
|
|
IF NOT member_of(sp1, sp2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
cum := UNKNOWN;
|
|
END;
|
|
END_CASE;
|
|
END;
|
|
sc_member :
|
|
BEGIN
|
|
CASE spc2\function_space.domain_constraint OF
|
|
sc_equal :
|
|
cum := (cum AND space_is_singleton(sp1)) AND equal_maths_spaces(singleton_member_of(sp1), sp2);
|
|
sc_subspace :
|
|
BEGIN
|
|
IF NOT member_of(sp2, sp1) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
cum := UNKNOWN;
|
|
END;
|
|
sc_member :
|
|
cum := cum AND subspace_of(sp1, sp2);
|
|
END_CASE;
|
|
END;
|
|
END_CASE;
|
|
IF cum = FALSE THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
sp1 := spc1\function_space.range_argument;
|
|
sp2 := spc2\function_space.range_argument;
|
|
CASE spc1\function_space.range_constraint OF
|
|
sc_equal :
|
|
BEGIN
|
|
CASE spc2\function_space.range_constraint OF
|
|
sc_equal :
|
|
cum := cum AND equal_maths_spaces(sp1, sp2);
|
|
sc_subspace :
|
|
cum := cum AND subspace_of(sp1, sp2);
|
|
sc_member :
|
|
cum := cum AND member_of(sp1, sp2);
|
|
END_CASE;
|
|
END;
|
|
sc_subspace :
|
|
BEGIN
|
|
CASE spc2\function_space.domain_constraint OF
|
|
sc_equal :
|
|
RETURN (FALSE);
|
|
sc_subspace :
|
|
cum := cum AND subspace_of(sp1, sp2);
|
|
sc_member :
|
|
BEGIN
|
|
IF NOT member_of(sp1, sp2) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
cum := UNKNOWN;
|
|
END;
|
|
END_CASE;
|
|
END;
|
|
sc_member :
|
|
BEGIN
|
|
CASE spc2\function_space.domain_constraint OF
|
|
sc_equal :
|
|
cum := (cum AND space_is_singleton(sp1)) AND equal_maths_spaces(singleton_member_of(sp1), sp2);
|
|
sc_subspace :
|
|
BEGIN
|
|
IF NOT member_of(sp2, sp1) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
cum := UNKNOWN;
|
|
END;
|
|
sc_member :
|
|
cum := cum AND subspace_of(sp1, sp2);
|
|
END_CASE;
|
|
END;
|
|
END_CASE;
|
|
RETURN (cum);
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION subspace_of_es
|
|
(spc : maths_space;
|
|
es : elementary_space_enumerators ) : LOGICAL;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof(spc);
|
|
END_LOCAL;
|
|
IF NOT EXISTS(spc) OR NOT EXISTS(es) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF 'ELEMENTARY_SPACE' IN types THEN
|
|
RETURN (es_subspace_of_es(spc\elementary_space.space_id, es));
|
|
END_IF;
|
|
IF 'FINITE_SPACE' IN types THEN
|
|
RETURN (all_members_of_es(spc\finite_space.members, es));
|
|
END_IF;
|
|
CASE es OF
|
|
es_numbers :
|
|
RETURN (((((((('FINITE_INTEGER_INTERVAL' IN types) OR ('INTEGER_INTERVAL_FROM_MIN' IN types)) OR ('INTEGER_INTERVAL_TO_MAX' IN types)) OR ('FINITE_REAL_INTERVAL' IN types)) OR ('REAL_INTERVAL_FROM_MIN' IN types)) OR ('REAL_INTERVAL_TO_MAX' IN types)) OR ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types)) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types));
|
|
es_complex_numbers :
|
|
RETURN (('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types));
|
|
es_reals :
|
|
RETURN ((('FINITE_REAL_INTERVAL' IN types) OR ('REAL_INTERVAL_FROM_MIN' IN types)) OR ('REAL_INTERVAL_TO_MAX' IN types));
|
|
es_integers :
|
|
RETURN ((('FINITE_INTEGER_INTERVAL' IN types) OR ('INTEGER_INTERVAL_FROM_MIN' IN types)) OR ('INTEGER_INTERVAL_TO_MAX' IN types));
|
|
es_logicals :
|
|
RETURN (FALSE);
|
|
es_booleans :
|
|
RETURN (FALSE);
|
|
es_strings :
|
|
RETURN (FALSE);
|
|
es_binarys :
|
|
RETURN (FALSE);
|
|
es_maths_spaces :
|
|
RETURN (FALSE);
|
|
es_maths_functions :
|
|
RETURN ('FUNCTION_SPACE' IN types);
|
|
es_generics :
|
|
RETURN (TRUE);
|
|
END_CASE;
|
|
RETURN (UNKNOWN);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION substitute
|
|
(expr : generic_expression;
|
|
vars : LIST [1:?] OF generic_variable;
|
|
vals : LIST [1:?] OF maths_value ) : generic_expression;
|
|
LOCAL
|
|
types : SET OF STRING := stripped_typeof(expr);
|
|
opnds : LIST OF generic_expression;
|
|
op1 : generic_expression;
|
|
op2 : generic_expression;
|
|
qvars : LIST OF generic_variable;
|
|
srcdom : maths_space_or_function;
|
|
prpfun : LIST [1:?] OF maths_function;
|
|
finfun : maths_function_select;
|
|
END_LOCAL;
|
|
IF SIZEOF(vars) <> SIZEOF(vals) THEN
|
|
RETURN (?);
|
|
END_IF;
|
|
IF 'GENERIC_LITERAL' IN types THEN
|
|
RETURN (expr);
|
|
END_IF;
|
|
IF 'GENERIC_VARIABLE' IN types THEN
|
|
REPEAT i := 1 TO SIZEOF(vars);
|
|
IF expr :=: vars[i] THEN
|
|
RETURN (vals[i]);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (expr);
|
|
END_IF;
|
|
IF 'QUANTIFIER_EXPRESSION' IN types THEN
|
|
qvars := expr\quantifier_expression.variables;
|
|
REPEAT i := SIZEOF(vars) TO 1 BY -1;
|
|
IF vars[i] IN qvars THEN
|
|
REMOVE( vars, i );
|
|
REMOVE( vals, i );
|
|
END_IF;
|
|
END_REPEAT;
|
|
opnds := expr\multiple_arity_generic_expression.operands;
|
|
REPEAT i := 1 TO SIZEOF(opnds);
|
|
IF NOT (opnds[i] IN qvars) THEN
|
|
expr\multiple_arity_generic_expression.operands[i] := substitute(opnds[i], vars, vals);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (expr);
|
|
END_IF;
|
|
IF 'UNARY_GENERIC_EXPRESSION' IN types THEN
|
|
op1 := expr\unary_generic_expression.operand;
|
|
expr\unary_generic_expression.operand := substitute(op1, vars, vals);
|
|
END_IF;
|
|
IF 'BINARY_GENERIC_EXPRESSION' IN types THEN
|
|
op1 := expr\binary_generic_expression.operands[1];
|
|
expr\binary_generic_expression.operands[1] := substitute(op1, vars, vals);
|
|
op2 := expr\binary_generic_expression.operands[2];
|
|
expr\binary_generic_expression.operands[2] := substitute(op2, vars, vals);
|
|
END_IF;
|
|
IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN
|
|
srcdom := expr\parallel_composed_function.source_of_domain;
|
|
prpfun := expr\parallel_composed_function.prep_functions;
|
|
finfun := expr\parallel_composed_function.final_function;
|
|
srcdom := substitute(srcdom, vars, vals);
|
|
REPEAT i := 1 TO SIZEOF(prpfun);
|
|
prpfun[i] := substitute(prpfun[i], vars, vals);
|
|
END_REPEAT;
|
|
IF 'MATHS_FUNCTION' IN stripped_typeof(finfun) THEN
|
|
finfun := substitute(finfun, vars, vals);
|
|
END_IF;
|
|
RETURN (make_parallel_composed_function(srcdom, prpfun, finfun));
|
|
END_IF;
|
|
IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN
|
|
opnds := expr\multiple_arity_generic_expression.operands;
|
|
REPEAT i := 1 TO SIZEOF(opnds);
|
|
expr\multiple_arity_generic_expression.operands[i] := substitute(opnds[i], vars, vals);
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (expr);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION suitably_based_mechanism
|
|
(mbp : mechanism_base_placement;
|
|
mech : mechanism ) : BOOLEAN;
|
|
LOCAL
|
|
kprop : kinematic_property_definition;
|
|
kgrep : kinematic_ground_representation;
|
|
klrep : kinematic_link_representation;
|
|
klnk : kinematic_link;
|
|
kjnts : BAG OF kinematic_joint;
|
|
nmechs : BAG OF mechanism;
|
|
nmbps : BAG OF mechanism_base_placement;
|
|
END_LOCAL;
|
|
kprop := mech.containing_property;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(mbp\representation_relationship.rep_1) THEN
|
|
kgrep := mbp\representation_relationship.rep_1;
|
|
IF kgrep.property\property_definition_representation.definition :=: kprop THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
ELSE
|
|
klrep := mbp\representation_relationship.rep_1;
|
|
-- klnk := klrep.link_representation_relation.topological_aspects;
|
|
kjnts := USEDIN(klnk, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_JOINT.FIRST_LINK') + USEDIN(klnk, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_JOINT.SECOND_LINK');
|
|
-- nmechs := USEDIN(kjnts[1].structure, 'STEP_MERGED_CAD_SCHEMA.MECHANISM.STRUCTURE_DEFINITION');
|
|
IF nmechs[1] :=: mech THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
IF nmechs[1].containing_property :<>: kprop THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
nmbps := USEDIN(nmechs[1], 'STEP_MERGED_CAD_SCHEMA.MECHANISM_BASE_PLACEMENT.BASE_OF_MECHANISM');
|
|
IF SIZEOF(nmbps) = 0 THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
RETURN (suitably_based_mechanism(nmbps[1], mech));
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
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 'STEP_MERGED_CAD_SCHEMA.EDGE' IN TYPEOF(an_item) THEN
|
|
RETURN (edge_reversed(an_item));
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PATH' IN TYPEOF(an_item) THEN
|
|
RETURN (path_reversed(an_item));
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.FACE_BOUND' IN TYPEOF(an_item) THEN
|
|
RETURN (face_bound_reversed(an_item));
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.FACE' IN TYPEOF(an_item) THEN
|
|
RETURN (face_reversed(an_item));
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION type_check_function
|
|
(the_type : GENERIC;
|
|
sub_names : SET [0:?] OF STRING;
|
|
criterion : INTEGER ) : LOGICAL;
|
|
IF NOT EXISTS(the_type) OR (SIZEOF(sub_names) = 0) THEN
|
|
RETURN (UNKNOWN);
|
|
ELSE
|
|
CASE criterion OF
|
|
0 :
|
|
RETURN (SIZEOF(sub_names * TYPEOF(the_type)) > 0);
|
|
1 :
|
|
RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 0);
|
|
2 :
|
|
RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 1);
|
|
3 :
|
|
RETURN (SIZEOF(sub_names * TYPEOF(the_type)) <= 1);
|
|
OTHERWISE :
|
|
RETURN (UNKNOWN);
|
|
END_CASE;
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION unambiguously_specified_multi_level_reference_designator
|
|
(links : LIST [1:?] OF next_assembly_usage_occurrence ) : BOOLEAN;
|
|
REPEAT i := 1 TO SIZEOF(links) - 1;
|
|
CASE TRUE OF
|
|
(('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.relating_product_definition)) AND ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition))) AND ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(links[(i + 1)]\product_definition_relationship.relating_product_definition)) :
|
|
BEGIN
|
|
IF NOT ((links[i]\product_definition_relationship.related_product_definition :=: links[(i + 1)]\product_definition_relationship.relating_product_definition) OR (SIZEOF(QUERY (pdr <* USEDIN(links[i]\product_definition_relationship.related_product_definition, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')| (pdr\product_definition_relationship.relating_product_definition :=: links[(i + 1)]\product_definition_relationship.relating_product_definition))) = 1) AND (links[i]\product_definition_relationship.related_product_definition\product_definition.formation\product_definition_formation.of_product :=: links[(i + 1)]\product_definition_relationship.relating_product_definition\product_definition.formation\product_definition_formation.of_product)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END;
|
|
('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition)) AND ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[(i + 1)]\product_definition_relationship.relating_product_definition)) :
|
|
BEGIN
|
|
IF NOT ((links[i]\product_definition_relationship.related_product_definition :=: links[(i + 1)]\product_definition_relationship.relating_product_definition) OR (((SIZEOF(QUERY (pdr <* USEDIN(links[i]\product_definition_relationship.related_product_definition, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')| (pdr\product_definition_relationship.relating_product_definition :=: links[(i + 1)]\product_definition_relationship.relating_product_definition))) = 1) AND (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_id = links[(i + 1)]\product_definition_relationship.relating_product_definition\product_definition_reference.product_id)) AND (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.id_owning_organization_name = links[(i + 1)]\product_definition_relationship.relating_product_definition\product_definition_reference.id_owning_organization_name)) AND (links[i]\product_definition_relationship.related_product_definition\product_definition_reference.product_definition_id <> links[(i + 1)]\product_definition_relationship.relating_product_definition\product_definition_reference.product_definition_id)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END;
|
|
('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i]\product_definition_relationship.relating_product_definition)) AND ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(links[i]\product_definition_relationship.related_product_definition)) :
|
|
RETURN (FALSE);
|
|
OTHERWISE :
|
|
RETURN (FALSE);
|
|
END_CASE;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION unique_in_product_definition
|
|
(item : representative_shape_representation ) : BOOLEAN;
|
|
LOCAL
|
|
local_p_d : SET OF product_definition := [];
|
|
local_s_r : SET OF shape_representation := [];
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
END_LOCAL;
|
|
local_p_d := using_product_definition_of_shape_representation(item);
|
|
IF SIZEOF(local_p_d) <> 1 THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
REPEAT i := 1 TO HIINDEX(local_p_d);
|
|
local_s_r := find_shape_representation_of_product_definition(local_p_d[i]);
|
|
REPEAT j := 1 TO HIINDEX(local_s_r);
|
|
IF ('STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(local_s_r[j])) AND (local_s_r[j] :<>: item) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION unique_in_shape_aspect
|
|
(item : representative_shape_representation ) : BOOLEAN;
|
|
LOCAL
|
|
local_s_a : SET OF shape_aspect := [];
|
|
local_s_r : SET OF shape_representation := [];
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
END_LOCAL;
|
|
local_s_a := using_shape_aspect_of_shape_representation(item);
|
|
IF SIZEOF(local_s_a) <> 1 THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
REPEAT i := 1 TO HIINDEX(local_s_a);
|
|
local_s_r := find_shape_representation_of_shape_aspect(local_s_a[i]);
|
|
REPEAT j := 1 TO HIINDEX(local_s_r);
|
|
IF ('STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(local_s_r[j])) AND (local_s_r[j] :<>: item) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214
|
|
FUNCTION unique_link_usage
|
|
(link : kinematic_link ) : BOOLEAN;
|
|
LOCAL
|
|
mechs : SET OF mechanism;
|
|
joints : SET OF kinematic_joint;
|
|
struct : kinematic_structure;
|
|
END_LOCAL;
|
|
joints := bag_to_set(USEDIN(link, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_JOINT.FIRST_LINK') + USEDIN(link, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_JOINT.SECOND_LINK'));
|
|
-- struct := joints[1].structure;
|
|
REPEAT i := 2 TO SIZEOF(joints);
|
|
-- IF joints[i].structure :<>: struct THEN
|
|
-- RETURN (FALSE);
|
|
-- END_IF;
|
|
END_REPEAT;
|
|
mechs := bag_to_set(USEDIN(struct, 'STEP_MERGED_CAD_SCHEMA.MECHANISM.STRUCTURE_DEFINITION'));
|
|
IF SIZEOF(mechs) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION used_variables
|
|
(arg : generic_expression ) : SET [0:?] OF generic_variable;
|
|
LOCAL
|
|
result : SET OF generic_variable := [];
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.GENERIC_VARIABLE' IN TYPEOF(arg) THEN
|
|
RETURN ([ arg ]);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN
|
|
RETURN (used_variables(arg\unary_generic_expression.operand));
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN
|
|
RETURN (used_variables(arg\binary_generic_expression.operands[1]) + used_variables(arg\binary_generic_expression.operands[2]));
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN
|
|
REPEAT i := 1 TO SIZEOF(arg\multiple_arity_generic_expression.operands);
|
|
result := result + used_variables(arg\multiple_arity_generic_expression.operands[i]);
|
|
END_REPEAT;
|
|
RETURN (result);
|
|
END_IF;
|
|
RETURN ([]);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
next_items := QUERY (z <* bag_to_set(USEDIN(item, ''))| ('STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z)) OR ('STEP_MERGED_CAD_SCHEMA.FOUNDED_ITEM' IN TYPEOF(z)));
|
|
IF SIZEOF(next_items) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(next_items);
|
|
IF NOT (next_items[i] IN new_check_items) THEN
|
|
result_items := result_items + next_items[i] + using_items(next_items[i], new_check_items);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (result_items);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION using_product_definition_of_shape_aspect
|
|
(item : shape_aspect ) : product_definition;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(item.of_shape.definition) THEN
|
|
RETURN (item.of_shape.definition);
|
|
ELSE
|
|
RETURN (?);
|
|
END_IF;
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION using_product_definition_of_shape_representation
|
|
(item : shape_representation ) : SET [0:?] OF product_definition;
|
|
LOCAL
|
|
local_s_d_r : SET OF shape_definition_representation := [];
|
|
local_p_d : SET OF product_definition := [];
|
|
i : INTEGER;
|
|
END_LOCAL;
|
|
local_s_d_r := QUERY (i1 <* bag_to_set(USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))| 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(i1));
|
|
REPEAT i := 1 TO HIINDEX(local_s_d_r);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(local_s_d_r[i]\property_definition_representation.definition) THEN
|
|
IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(local_s_d_r[i]\property_definition_representation.definition\property_definition.definition) THEN
|
|
local_p_d := local_p_d + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (local_p_d);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION using_representation_with_mapping
|
|
(item : representation_item ) : SET [0:?] OF representation;
|
|
LOCAL
|
|
results : SET OF representation := [];
|
|
local_results : SET OF representation := [];
|
|
local_representation_map : SET OF representation_map := [];
|
|
intermediate_items : SET OF representation_item := [];
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
END_LOCAL;
|
|
local_results := QUERY (z <* using_representations(item)| SIZEOF(USEDIN(z, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION')) > 0);
|
|
IF SIZEOF(local_results) = 0 THEN
|
|
RETURN ([]);
|
|
ELSE
|
|
REPEAT i := 1 TO HIINDEX(local_results);
|
|
local_representation_map := local_representation_map + bag_to_set(USEDIN(local_results[i], 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO HIINDEX(local_representation_map);
|
|
intermediate_items := intermediate_items + bag_to_set(USEDIN(local_representation_map[i], 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE'));
|
|
END_REPEAT;
|
|
REPEAT j := 1 TO HIINDEX(intermediate_items);
|
|
results := results + bag_to_set(using_representation_with_mapping(intermediate_items[j]));
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (results);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
results := [];
|
|
result_bag := USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS');
|
|
IF SIZEOF(result_bag) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(result_bag);
|
|
results := results + result_bag[i];
|
|
END_REPEAT;
|
|
END_IF;
|
|
intermediate_items := using_items(item, []);
|
|
IF SIZEOF(intermediate_items) > 0 THEN
|
|
REPEAT i := 1 TO HIINDEX(intermediate_items);
|
|
result_bag := USEDIN(intermediate_items[i], 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS');
|
|
IF SIZEOF(result_bag) > 0 THEN
|
|
REPEAT j := 1 TO HIINDEX(result_bag);
|
|
results := results + result_bag[j];
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
RETURN (results);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION using_shape_aspect_of_shape_representation
|
|
(item : shape_representation ) : SET [0:?] OF shape_aspect;
|
|
LOCAL
|
|
local_s_d_r : SET OF shape_definition_representation := [];
|
|
local_s_d_r2 : BAG OF shape_definition_representation := [];
|
|
local_s_a : SET OF shape_aspect := [];
|
|
i : INTEGER;
|
|
END_LOCAL;
|
|
local_s_d_r2 := local_s_d_r2 + QUERY (pdr <* USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')| ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
|
|
local_s_d_r := bag_to_set(local_s_d_r2);
|
|
REPEAT i := 1 TO HIINDEX(local_s_d_r);
|
|
IF 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(local_s_d_r[i]\property_definition_representation.definition\property_definition.definition) THEN
|
|
local_s_a := local_s_a + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (local_s_a);
|
|
END_FUNCTION;
|
|
|
|
FUNCTION valid_basis_curve_in_2d_wireframe
|
|
(crv : curve ) : BOOLEAN;
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.POLYLINE', 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE', 'STEP_MERGED_CAD_SCHEMA.ELLIPSE', 'STEP_MERGED_CAD_SCHEMA.CIRCLE' ] * TYPEOF(crv)) = 1 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' IN TYPEOF(crv) THEN
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.PARABOLA', 'STEP_MERGED_CAD_SCHEMA.HYPERBOLA' ] * TYPEOF(crv\trimmed_curve.basis_curve)) = 1 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (valid_basis_curve_in_2d_wireframe(crv\trimmed_curve.basis_curve));
|
|
END_IF;
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_2D' IN TYPEOF(crv) THEN
|
|
RETURN (valid_basis_curve_in_2d_wireframe(crv\offset_curve_2d.basis_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv) THEN
|
|
RETURN (valid_basis_curve_in_2d_wireframe(crv\curve_replica.parent_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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) AND (date.day_component <= 31));
|
|
2 :
|
|
BEGIN
|
|
IF leap_year(date.year_component) THEN
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 29));
|
|
ELSE
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 28));
|
|
END_IF;
|
|
END;
|
|
3 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 31));
|
|
4 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 30));
|
|
5 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 31));
|
|
6 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 30));
|
|
7 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 31));
|
|
8 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 31));
|
|
9 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 30));
|
|
10 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 31));
|
|
11 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 30));
|
|
12 :
|
|
RETURN ((1 <= date.day_component) AND (date.day_component <= 31));
|
|
END_CASE;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION valid_csg_2d_primitives
|
|
(input : csg_solid_2d ) : BOOLEAN;
|
|
CASE TRUE OF
|
|
'STEP_MERGED_CAD_SCHEMA.PRIMITIVE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression) :
|
|
BEGIN
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCULAR_AREA', 'STEP_MERGED_CAD_SCHEMA.COMPLEX_AREA', 'STEP_MERGED_CAD_SCHEMA.ELLIPTIC_AREA', 'STEP_MERGED_CAD_SCHEMA.POLYGONAL_AREA', 'STEP_MERGED_CAD_SCHEMA.PRIMITIVE_2D_WITH_INNER_BOUNDARY', 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_AREA' ] * TYPEOF(input\csg_solid_2d.tree_root_expression)) > 0 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END;
|
|
'STEP_MERGED_CAD_SCHEMA.BOOLEAN_RESULT_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression) :
|
|
RETURN (valid_csg_2d_primitives(input\csg_solid_2d.tree_root_expression\boolean_result_2d.first_operand) AND valid_csg_2d_primitives(input\csg_solid_2d.tree_root_expression\boolean_result_2d.second_operand));
|
|
'STEP_MERGED_CAD_SCHEMA.HALF_SPACE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression) :
|
|
RETURN (TRUE);
|
|
OTHERWISE :
|
|
RETURN (FALSE);
|
|
END_CASE;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP203e2
|
|
-- IN AP203e2/AP242
|
|
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| 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(rep));
|
|
IF SIZEOF(QUERY (srwp <* parameter_representations| (SIZEOF(QUERY (i <* srwp.items| (i.name = 'orientation') AND ('STEP_MERGED_CAD_SCHEMA.PLACEMENT' IN TYPEOF(i)))) = 1))) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
CASE pdf\shape_aspect.description OF
|
|
'point' :
|
|
RETURN (SIZEOF(QUERY (srwp <* parameter_representations| (SIZEOF(srwp.items) = 1))) = 1);
|
|
'circle', 'circular curve' :
|
|
RETURN ((SIZEOF(QUERY (srwp <* parameter_representations| (SIZEOF(srwp.items) = 2))) = 1) AND (SIZEOF(QUERY (srwp <* parameter_representations| (SIZEOF(QUERY (i <* srwp.items| (i.name = 'target diameter') AND (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.POLYLINE', 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE', 'STEP_MERGED_CAD_SCHEMA.ELLIPSE', 'STEP_MERGED_CAD_SCHEMA.CIRCLE' ] * TYPEOF(crv)) = 1 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' IN TYPEOF(crv) THEN
|
|
IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.PARABOLA', 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(crv) THEN
|
|
RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv) THEN
|
|
RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE' IN TYPEOF(pnt) THEN
|
|
RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP203e2/AP242
|
|
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, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| prd.name = 'occurrence selection'));
|
|
property_definition_representations : SET OF property_definition_representation := bag_to_set(QUERY (pdr <* USEDIN(properties[1], 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.VALUE_RANGE' ] * TYPEOF(i)) = 1) AND (i.name = 'selection quantity'))) <> 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF SIZEOF(QUERY (i <* selected_representation\representation.items| ('STEP_MERGED_CAD_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'selection control'))) > 1 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
IF (SIZEOF(QUERY (i <* selected_representation\representation.items| ('STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.QUALIFIED_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION valid_units
|
|
(m : measure_with_unit ) : BOOLEAN;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component) THEN
|
|
IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.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([ 'STEP_MERGED_CAD_SCHEMA.LINE', 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE', 'STEP_MERGED_CAD_SCHEMA.POLYLINE' ] * TYPEOF(crv)) = 1 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv) THEN
|
|
RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve));
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.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 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
IF 'STEP_MERGED_CAD_SCHEMA.POINT_REPLICA' IN TYPEOF(pnt) THEN
|
|
RETURN (valid_wireframe_vertex_point(pnt\point_replica.parent_pt));
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (FALSE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION validate_accuracy_types
|
|
(ei : shape_data_quality_criterion;
|
|
type_list : BAG [0:?] OF STRING ) : LOGICAL;
|
|
LOCAL
|
|
sdqca : BAG OF shape_data_quality_criterion_and_accuracy_association := [];
|
|
sma : BAG OF shape_measurement_accuracy := [];
|
|
sdqir : SET OF shape_data_quality_inspection_result := [];
|
|
scraa : BAG OF shape_inspection_result_accuracy_association := [];
|
|
t_logic : BOOLEAN;
|
|
END_LOCAL;
|
|
sdqca := USEDIN(ei, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_CRITERION');
|
|
IF SIZEOF(sdqca) <> 0 THEN
|
|
REPEAT i := 1 TO SIZEOF(sdqca);
|
|
sma := sma + sdqca[i].required_specific_accuracy;
|
|
END_REPEAT;
|
|
IF SIZEOF(type_list) < SIZEOF(sma) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sma);
|
|
t_logic := FALSE;
|
|
REPEAT j := 1 TO SIZEOF(type_list);
|
|
IF type_list[j] IN value_limit_type(sma[i].range) THEN
|
|
t_logic := TRUE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF NOT t_logic THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
sdqir := QUERY (q <* bag_to_set(USEDIN(ei, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED'))| 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q));
|
|
IF SIZEOF(sdqir) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdqir);
|
|
scraa := USEDIN(sdqir[i], 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_RESULT');
|
|
IF SIZEOF(scraa) <> 0 THEN
|
|
sma := [];
|
|
REPEAT j := 1 TO SIZEOF(scraa);
|
|
sma := sma + scraa[j].applied_specific_accuracy;
|
|
END_REPEAT;
|
|
IF SIZEOF(type_list) < SIZEOF(sma) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT j := 1 TO SIZEOF(sma);
|
|
t_logic := FALSE;
|
|
REPEAT k := 1 TO SIZEOF(type_list);
|
|
IF type_list[k] IN value_limit_type(sma[j].range) THEN
|
|
t_logic := TRUE;
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
IF NOT t_logic THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION validate_attribute_id
|
|
(attid : attribute_identifier ) : BOOLEAN;
|
|
CONSTANT
|
|
letters : SET [52:52] OF STRING := [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ];
|
|
numbers_etc : SET [15:15] OF STRING := [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_', '[', ']', '.', '\' ];
|
|
valid_chars : SET [67:67] OF STRING := letters + numbers_etc;
|
|
END_CONSTANT;
|
|
LOCAL
|
|
id_length : INTEGER := LENGTH(attid);
|
|
id_valid : BOOLEAN := TRUE;
|
|
i : INTEGER;
|
|
END_LOCAL;
|
|
IF NOT (attid[1] IN letters) THEN
|
|
id_valid := FALSE;
|
|
END_IF;
|
|
REPEAT i := 2 TO id_length WHILE id_valid = TRUE;
|
|
IF NOT (attid[i] IN valid_chars) THEN
|
|
id_valid := FALSE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (id_valid);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP203e2/AP242
|
|
FUNCTION validate_countersink_radii
|
|
(cskhole : solid_with_stepped_round_hole_and_conical_transitions ) : BOOLEAN;
|
|
LOCAL
|
|
i : INTEGER;
|
|
j : INTEGER;
|
|
n : INTEGER := 1 + cskhole\solid_with_stepped_round_hole.segments;
|
|
smaller : positive_length_measure;
|
|
larger : positive_length_measure;
|
|
END_LOCAL;
|
|
REPEAT i := 1 TO SIZEOF(cskhole.conical_transitions);
|
|
IF (cskhole.conical_transitions[i].transition_number = 1) AND (cskhole.conical_transitions[i].cone_apex_angle < 0) XOR (cskhole.conical_transitions[i].transition_number = n) AND (cskhole.conical_transitions[i].cone_apex_angle > 0) THEN
|
|
RETURN (FALSE);
|
|
ELSE
|
|
IF (cskhole.conical_transitions[i].transition_number <> 1) AND (cskhole.conical_transitions[i].transition_number <> n) THEN
|
|
BEGIN
|
|
j := cskhole.conical_transitions[i].transition_number;
|
|
IF cskhole\solid_with_stepped_round_hole.segment_radii[j] > cskhole\solid_with_stepped_round_hole.segment_radii[(j - 1)] THEN
|
|
BEGIN
|
|
IF cskhole.conical_transitions[i].cone_apex_angle > 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
larger := cskhole\solid_with_stepped_round_hole.segment_radii[j];
|
|
smaller := cskhole\solid_with_stepped_round_hole.segment_radii[(j - 1)];
|
|
END;
|
|
ELSE
|
|
BEGIN
|
|
IF cskhole.conical_transitions[i].cone_apex_angle < 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
larger := cskhole\solid_with_stepped_round_hole.segment_radii[(j - 1)];
|
|
smaller := cskhole\solid_with_stepped_round_hole.segment_radii[j];
|
|
END;
|
|
END_IF;
|
|
IF (cskhole.conical_transitions[i].cone_base_radius > larger) OR (cskhole.conical_transitions[i].cone_base_radius < smaller) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END;
|
|
END_IF;
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION validate_ecdq_inspected_elements_type
|
|
(ei : externally_conditioned_data_quality_criterion;
|
|
type_list : BAG [0:?] OF STRING ) : LOGICAL;
|
|
LOCAL
|
|
sdqir : SET OF externally_conditioned_data_quality_inspection_result := [];
|
|
dir : SET OF data_quality_inspection_instance_report := [];
|
|
sdiri : SET OF externally_conditioned_data_quality_inspection_instance_report_item := [];
|
|
t_type_list : BAG OF STRING := [];
|
|
END_LOCAL;
|
|
sdqir := QUERY (q <* bag_to_set(USEDIN(ei, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED'))| 'STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q));
|
|
IF SIZEOF(sdqir) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdqir);
|
|
dir := dir + QUERY (q <* bag_to_set(USEDIN(sdqir[i], 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT'))| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
IF SIZEOF(dir) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(dir);
|
|
sdiri := sdiri + QUERY (q <* dir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
IF SIZEOF(sdiri) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdiri);
|
|
IF SIZEOF(sdiri[i].inspected_elements) <> SIZEOF(type_list) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
t_type_list := type_list;
|
|
REPEAT j := 1 TO SIZEOF(sdiri[i].inspected_elements);
|
|
REPEAT k := 1 TO SIZEOF(t_type_list);
|
|
IF t_type_list[k] IN TYPEOF(sdiri[i].inspected_elements[j]) THEN
|
|
t_type_list := t_type_list - t_type_list[k];
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
IF SIZEOF(t_type_list) > 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION validate_inspected_elements_type
|
|
(ei : shape_data_quality_criterion;
|
|
type_list : BAG [0:?] OF STRING ) : LOGICAL;
|
|
LOCAL
|
|
sdqir : SET OF shape_data_quality_inspection_result := [];
|
|
sdir : SET OF shape_data_quality_inspection_instance_report := [];
|
|
sdiri : SET OF shape_data_quality_inspection_instance_report_item := [];
|
|
t_type_list : BAG OF STRING := [];
|
|
END_LOCAL;
|
|
sdqir := QUERY (q <* bag_to_set(USEDIN(ei, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED'))| 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q));
|
|
IF SIZEOF(sdqir) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdqir);
|
|
sdir := sdir + QUERY (q <* bag_to_set(USEDIN(sdqir[i], 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
IF SIZEOF(sdir) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdir);
|
|
sdiri := sdiri + QUERY (q <* sdir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
IF SIZEOF(sdiri) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdiri);
|
|
IF SIZEOF(sdiri[i].inspected_elements) <> SIZEOF(type_list) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
t_type_list := type_list;
|
|
REPEAT j := 1 TO SIZEOF(sdiri[i].inspected_elements);
|
|
REPEAT k := 1 TO SIZEOF(t_type_list);
|
|
IF t_type_list[k] IN TYPEOF(sdiri[i].inspected_elements[j]) THEN
|
|
t_type_list := t_type_list - t_type_list[k];
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
IF SIZEOF(t_type_list) > 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION validate_locations_of_extreme_value_type
|
|
(ei : shape_data_quality_criterion;
|
|
type_list : BAG [0:?] OF STRING ) : LOGICAL;
|
|
LOCAL
|
|
sdqir : SET OF shape_data_quality_inspection_result := [];
|
|
sdir : SET OF shape_data_quality_inspection_instance_report := [];
|
|
sdei : SET OF instance_report_item_with_extreme_instances := [];
|
|
t_type_list : BAG OF STRING := [];
|
|
END_LOCAL;
|
|
sdqir := QUERY (q <* bag_to_set(USEDIN(ei, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED'))| 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q));
|
|
IF SIZEOF(sdqir) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdqir);
|
|
sdir := sdir + QUERY (q <* bag_to_set(USEDIN(sdqir[i], 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(sdir);
|
|
sdei := sdei + QUERY (q <* sdir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
IF SIZEOF(sdei) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
IF (SIZEOF(type_list) = 0) AND (SIZEOF(sdei) <> 0) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdei);
|
|
REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances);
|
|
IF SIZEOF(sdei[i].extreme_instances[j].locations_of_extreme_value) <> SIZEOF(type_list) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
t_type_list := type_list;
|
|
REPEAT k := 1 TO SIZEOF(sdei[i].extreme_instances[j].locations_of_extreme_value);
|
|
REPEAT l := 1 TO SIZEOF(t_type_list);
|
|
IF t_type_list[l] IN TYPEOF(sdei[i].extreme_instances[j].locations_of_extreme_value[k]) THEN
|
|
t_type_list := t_type_list - t_type_list[l];
|
|
ESCAPE;
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
IF SIZEOF(t_type_list) > 0 THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION validate_measured_data_type
|
|
(ei : shape_data_quality_criterion;
|
|
type_string : STRING ) : LOGICAL;
|
|
LOCAL
|
|
sdqir : SET OF shape_data_quality_inspection_result := [];
|
|
sdcr : SET OF shape_data_quality_inspection_criterion_report := [];
|
|
sdir : SET OF shape_data_quality_inspection_instance_report := [];
|
|
sdii : SET OF shape_data_quality_inspection_instance_report_item := [];
|
|
sdei : BAG OF instance_report_item_with_extreme_instances := [];
|
|
END_LOCAL;
|
|
sdqir := QUERY (q <* bag_to_set(USEDIN(ei, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED'))| 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q));
|
|
IF SIZEOF(sdqir) = 0 THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdqir);
|
|
sdcr := sdcr + QUERY (q <* bag_to_set(USEDIN(sdqir[i], 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(sdqir);
|
|
sdir := sdir + QUERY (q <* bag_to_set(USEDIN(sdqir[i], 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT'))| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
IF (SIZEOF(sdcr) = 0) AND (SIZEOF(sdir) = 0) THEN
|
|
RETURN (TRUE);
|
|
END_IF;
|
|
REPEAT i := 1 TO SIZEOF(sdir);
|
|
sdii := sdii + QUERY (q <* sdir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(sdir);
|
|
sdei := sdei + QUERY (q <* sdir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' IN TYPEOF(q)));
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(sdcr);
|
|
IF NOT (type_string IN TYPEOF(sdcr[i].representative_measured_value)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(sdii);
|
|
IF NOT (type_string IN TYPEOF(sdii[i].measured_value)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
REPEAT i := 1 TO SIZEOF(sdei);
|
|
REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances);
|
|
IF NOT (type_string IN TYPEOF(sdei[i].extreme_instances[j].measured_value)) THEN
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END_REPEAT;
|
|
END_REPEAT;
|
|
RETURN (TRUE);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP242
|
|
FUNCTION value_limit_type
|
|
(iv : shape_data_quality_value_limit_type_select ) : SET [0:?] OF STRING;
|
|
LOCAL
|
|
retval : SET OF STRING := [];
|
|
END_LOCAL;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' IN TYPEOF(iv) THEN
|
|
retval := TYPEOF(iv\compound_representation_item.item_element[1].value_component);
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_VALUE_LIMIT' IN TYPEOF(iv) THEN
|
|
IF 'STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_WITH_UNIT' IN TYPEOF(iv) THEN
|
|
retval := TYPEOF(iv\measure_with_unit.value_component);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (retval);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION value_range_aggregate_rep_item
|
|
(agg : AGGREGATE OF representation_item ) : BOOLEAN;
|
|
BEGIN
|
|
IF SIZEOF(QUERY (i1 <* agg| ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 6 THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION value_range_wr1
|
|
(agg : compound_item_definition ) : BOOLEAN;
|
|
BEGIN
|
|
IF (SIZEOF(agg) = 2) AND ((SIZEOF(QUERY (i1 <* agg| ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 2) OR (SIZEOF(QUERY (i2 <* agg| ('STEP_MERGED_CAD_SCHEMA.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2)))) = 2)) THEN
|
|
RETURN (TRUE);
|
|
ELSE
|
|
RETURN (FALSE);
|
|
END_IF;
|
|
END;
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
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;
|
|
|
|
-- DIFF IN AP214
|
|
FUNCTION value_range_wr3
|
|
(agg : compound_item_definition ) : BOOLEAN;
|
|
BEGIN
|
|
IF SIZEOF(QUERY (i1 <* agg| ('STEP_MERGED_CAD_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) AND (SIZEOF(QUERY (i2 <* agg| (('STEP_MERGED_CAD_SCHEMA.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;
|
|
|
|
-- IN AP242
|
|
FUNCTION values_space_of
|
|
(expr : generic_expression ) : maths_space;
|
|
LOCAL
|
|
e_prefix : STRING := 'STEP_MERGED_CAD_SCHEMA.';
|
|
typenames : SET OF STRING := TYPEOF(expr);
|
|
END_LOCAL;
|
|
IF schema_prefix + 'MATHS_VARIABLE' IN typenames THEN
|
|
RETURN (expr\maths_variable.values_space);
|
|
END_IF;
|
|
IF e_prefix + 'EXPRESSION' IN typenames THEN
|
|
IF e_prefix + 'NUMERIC_EXPRESSION' IN typenames THEN
|
|
IF expr\numeric_expression.is_int THEN
|
|
IF e_prefix + 'INT_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\int_literal.the_value ]));
|
|
ELSE
|
|
RETURN (the_integers);
|
|
END_IF;
|
|
ELSE
|
|
IF e_prefix + 'REAL_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\real_literal.the_value ]));
|
|
ELSE
|
|
RETURN (the_reals);
|
|
END_IF;
|
|
END_IF;
|
|
END_IF;
|
|
IF e_prefix + 'BOOLEAN_EXPRESSION' IN typenames THEN
|
|
IF e_prefix + 'BOOLEAN_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\boolean_literal.the_value ]));
|
|
ELSE
|
|
RETURN (the_booleans);
|
|
END_IF;
|
|
END_IF;
|
|
IF e_prefix + 'STRING_EXPRESSION' IN typenames THEN
|
|
IF e_prefix + 'STRING_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\string_literal.the_value ]));
|
|
ELSE
|
|
RETURN (the_strings);
|
|
END_IF;
|
|
END_IF;
|
|
RETURN (?);
|
|
END_IF;
|
|
IF schema_prefix + 'MATHS_FUNCTION' IN typenames THEN
|
|
IF expression_is_constant(expr) THEN
|
|
RETURN (make_finite_space([ expr ]));
|
|
ELSE
|
|
RETURN (make_function_space(sc_equal, expr\maths_function.domain, sc_equal, expr\maths_function.range));
|
|
END_IF;
|
|
END_IF;
|
|
IF schema_prefix + 'FUNCTION_APPLICATION' IN typenames THEN
|
|
RETURN (expr\function_application.func.range);
|
|
END_IF;
|
|
IF schema_prefix + 'MATHS_SPACE' IN typenames THEN
|
|
IF expression_is_constant(expr) THEN
|
|
RETURN (make_finite_space([ expr ]));
|
|
ELSE
|
|
RETURN (make_elementary_space(es_maths_spaces));
|
|
END_IF;
|
|
END_IF;
|
|
IF schema_prefix + 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN
|
|
RETURN (values_space_of(expr\unary_generic_expression.operand));
|
|
END_IF;
|
|
IF schema_prefix + 'COMPLEX_NUMBER_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr ]));
|
|
END_IF;
|
|
IF schema_prefix + 'LOGICAL_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\logical_literal.lit_value ]));
|
|
END_IF;
|
|
IF schema_prefix + 'BINARY_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\binary_literal.lit_value ]));
|
|
END_IF;
|
|
IF schema_prefix + 'MATHS_ENUM_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\maths_enum_literal.lit_value ]));
|
|
END_IF;
|
|
IF schema_prefix + 'REAL_TUPLE_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\real_tuple_literal.lit_value ]));
|
|
END_IF;
|
|
IF schema_prefix + 'INTEGER_TUPLE_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\integer_tuple_literal.lit_value ]));
|
|
END_IF;
|
|
IF schema_prefix + 'ATOM_BASED_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\atom_based_literal.lit_value ]));
|
|
END_IF;
|
|
IF schema_prefix + 'MATHS_TUPLE_LITERAL' IN typenames THEN
|
|
RETURN (make_finite_space([ expr\maths_tuple_literal.lit_value ]));
|
|
END_IF;
|
|
IF schema_prefix + 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN
|
|
RETURN (drop_numeric_constraints(values_space_of(expr\partial_derivative_expression.derivand)));
|
|
END_IF;
|
|
IF schema_prefix + 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN
|
|
RETURN (drop_numeric_constraints(values_space_of(expr\definite_integral_expression.integrand)));
|
|
END_IF;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
-- DIFF IN AP214
|
|
-- DIFF IN AP203e2
|
|
FUNCTION vector_difference
|
|
(arg1 : vector_or_direction;
|
|
arg2 : vector_or_direction ) : vector;
|
|
LOCAL
|
|
result : vector;
|
|
res : direction;
|
|
vec1 : direction;
|
|
vec2 : direction;
|
|
mag : REAL;
|
|
mag1 : REAL;
|
|
mag2 : REAL;
|
|
ndim : INTEGER;
|
|
END_LOCAL;
|
|
IF (NOT EXISTS(arg1) OR NOT EXISTS(arg2)) OR (arg1.dim <> arg2.dim) THEN
|
|
RETURN (?);
|
|
ELSE
|
|
BEGIN
|
|
IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(arg1) THEN
|
|
mag1 := arg1\vector.magnitude;
|
|
vec1 := arg1\vector.orientation;
|
|
ELSE
|
|
mag1 := 1.0;
|
|
vec1 := arg1;
|
|
END_IF;
|
|
IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(arg2) THEN
|
|
mag2 := arg2\vector.magnitude;
|
|
vec2 := arg2\vector.orientation;
|
|
ELSE
|
|
mag2 := 1.0;
|
|
vec2 := arg2;
|
|
END_IF;
|
|
vec1 := normalise(vec1);
|
|
vec2 := normalise(vec2);
|
|
ndim := SIZEOF(vec1.direction_ratios);
|
|
mag := 0.0;
|
|
res := dummy_gri || direction(vec1.direction_ratios);
|
|
REPEAT i := 1 TO ndim;
|
|
res.direction_ratios[i] := mag1 * vec1.direction_ratios[i] - mag2 * vec2.direction_ratios[i];
|
|
mag := mag + res.direction_ratios[i] * res.direction_ratios[i];
|
|
END_REPEAT;
|
|
IF mag > 0.0 THEN
|
|
result := dummy_gri || vector(res, SQRT(mag));
|
|
ELSE
|
|
result := dummy_gri || vector(vec1, 0.0);
|
|
END_IF;
|
|
END;
|
|
END_IF;
|
|
RETURN (result);
|
|
END_FUNCTION;
|
|
|
|
-- IN AP214/AP242
|
|
FUNCTION ypr_index
|
|
(ypr : ypr_enumeration ) : INTEGER;
|
|
CASE ypr OF
|
|
yaw :
|
|
RETURN (1);
|
|
pitch :
|
|
RETURN (2);
|
|
roll :
|
|
RETURN (3);
|
|
END_CASE;
|
|
RETURN (?);
|
|
END_FUNCTION;
|
|
|
|
END_SCHEMA;
|