1SCHEMA step_merged_cad_schema; 2 3(* this is a MODIFIED version of the merged schema 4 * original is at http://www.steptools.com/support/stdev_docs/stpcad/step_merged_cad_schema.exp 5 * 6 * modified to eliminate exp2cxx errors. To view changes, use one of 7 * - `git log -p data/STEPTools_merged_schema/step_merged_cad_schema.exp` 8 * - http://github.com/stepcode/stepcode/commits/master/data/STEPTools_merged_schema 9 *) 10 11 12(* Constructed by merging: 13 * - AP242 (wg12n8324_ap242dis.exp) 14 * - AP214 (wg3n2628_ap214e3.exp) 15 * - AP203e2 (wg3n2635_ap203e2.exp) 16 * - Deprecated AP203e1 (ap203e1_types.exp) 17 * - AP242 DIS Fixes (ap242_fixes.exp) 18 *) 19 20CONSTANT 21 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' ]; 22 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' ]; 23 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' ]; 24 dummy_gri : geometric_representation_item := representation_item('') || geometric_representation_item(); 25 dummy_tri : topological_representation_item := representation_item('') || topological_representation_item(); 26 pre_defined_picture_representation_types : SET [0:?] OF STRING := [ 'JPEG', 'PNG', 'TIFF', 'BMP', 'GIF' ]; 27 schema_date_stamp : STRING := 'Feb 19 18:28:57 2013'; 28schema_prefix : STRING := 'STEP_MERGED_CAD_SCHEMA.'; 29 the_binarys : elementary_space := make_elementary_space(es_binarys); 30 the_booleans : elementary_space := make_elementary_space(es_booleans); 31 the_complex_numbers : elementary_space := make_elementary_space(es_complex_numbers); 32 the_complex_tuples : extended_tuple_space := make_extended_tuple_space(the_zero_tuple_space, the_complex_numbers); 33 the_empty_maths_tuple : maths_tuple := []; 34 the_empty_space : finite_space := make_finite_space([]); 35 the_generics : elementary_space := make_elementary_space(es_generics); 36 the_integer_tuples : extended_tuple_space := make_extended_tuple_space(the_zero_tuple_space, the_integers); 37 the_integers : elementary_space := make_elementary_space(es_integers); 38 the_logicals : elementary_space := make_elementary_space(es_logicals); 39 the_maths_spaces : elementary_space := make_elementary_space(es_maths_spaces); 40 the_neg1_one_interval : finite_real_interval := make_finite_real_interval(-1, closed, 1, closed); 41 the_neghalfpi_halfpi_interval : finite_real_interval := make_finite_real_interval(-0.500000 * 3.14159, closed, 0.500000 * 3.14159, closed); 42 the_negpi_pi_interval : finite_real_interval := make_finite_real_interval(-3.14159, open, 3.14159, closed); 43 the_nonnegative_reals : real_interval_from_min := make_real_interval_from_min(0, closed); 44 the_numbers : elementary_space := make_elementary_space(es_numbers); 45 the_real_tuples : extended_tuple_space := make_extended_tuple_space(the_zero_tuple_space, the_reals); 46 the_reals : elementary_space := make_elementary_space(es_reals); 47 the_strings : elementary_space := make_elementary_space(es_strings); 48 the_tuples : extended_tuple_space := make_extended_tuple_space(the_zero_tuple_space, the_generics); 49 the_zero_pi_interval : finite_real_interval := make_finite_real_interval(0, closed, 3.14159, closed); 50 the_zero_tuple_space : listed_product_space := make_listed_product_space([]); 51END_CONSTANT; 52 53-- IN AP203e2/AP242 54TYPE absorbed_dose_measure = REAL; 55END_TYPE; 56 57-- IN AP203e2/AP242 58TYPE acceleration_measure = REAL; 59END_TYPE; 60 61-- DIFF IN AP214 62-- DIFF IN AP203e2 63TYPE action_item = SELECT 64 (action, -- AP214/AP242 65 action_directive, -- Common 66 action_method, -- AP214/AP242 67 action_property, -- AP214/AP242 68 action_relationship, -- AP214/AP242 69 action_request_solution, -- AP214/AP242 70 alternate_product_relationship, -- AP214/AP242 71 applied_action_assignment, -- AP214/AP242 72 applied_classification_assignment, -- AP214/AP242 73 applied_person_and_organization_assignment, -- AP214/AP242 74 approval_status, -- AP214/AP242 75 assembly_component_usage_substitute, -- AP214/AP242 76 certification, -- AP214/AP242 77 certification_item, -- AP203e2/AP242 78 characterized_object, -- AP203e2/AP242 79 class, -- AP214/AP242 80 class_system, -- AP214/AP242 81 classification_item, -- AP203e2/AP242 82 configuration_design, -- AP214/AP242 83 configuration_effectivity, -- Common 84 configuration_item, -- AP214/AP242 85 configured_effectivity_assignment, -- AP214/AP242 86 contract, -- AP214/AP242 87 document_file, -- AP214/AP242 88 document_reference_item, -- AP203e2/AP242 89 draughting_model, -- AP214/AP242 90 drawing_revision, -- AP214/AP242 91 evaluated_characteristic, -- AP242 92 executed_action, -- AP214/AP242 93 general_property, -- AP214/AP242 94 identification_item, -- AP203e2/AP242 95 material_designation, -- AP214/AP242 96 mechanical_design_geometric_presentation_representation, -- AP214/AP242 97 organization, -- AP203e2/AP242 98 organization_relationship, -- AP214/AP242 99 organizational_project, -- AP214/AP242 100 person_and_organization, -- Common 101 presentation_area, -- AP214/AP242 102 product, -- AP214/AP242 103 product_concept, -- AP214/AP242 104 product_concept_feature, -- AP214/AP242 105 product_concept_feature_association, -- AP214/AP242 106 product_concept_feature_category, -- AP214/AP242 107 product_concept_feature_category_usage, -- AP214/AP242 108 product_definition, -- Common 109 product_definition_formation, -- Common 110 product_definition_formation_relationship, -- Common 111 product_definition_relationship, -- Common 112 product_definition_substitute, -- AP214/AP242 113 property_definition, -- AP214/AP242 114 requirement_assigned_item, -- AP203e2/AP242 115 requirement_for_action_resource, -- AP214/AP242 116 resource_property, -- AP214/AP242 117 security_classification, -- AP214/AP242 118 security_classification_level, -- AP214/AP242 119 shape_aspect, -- AP214/AP242 120 shape_representation, -- AP214/AP242 121 versioned_action_request); -- AP214/AP242 122END_TYPE; 123 124-- DIFF IN AP203e2 125-- IN AP203e2/AP242 126TYPE action_method_items = SELECT 127 (action, -- AP242 128 action_method, -- AP242 129 action_property, -- AP242 130 applied_action_assignment, -- AP242 131 configuration_design, -- AP242 132 contract, -- AP242 133 document_file, -- AP242 134 event_occurrence, -- AP242 135 organization, -- AP242 136 organizational_project, -- AP242 137 person, -- AP242 138 person_and_organization, -- AP242 139 product, -- Common 140 product_concept, -- AP242 141 product_definition, -- AP242 142 product_definition_formation, -- Common 143 product_definition_formation_relationship, -- AP242 144 product_definition_relationship, -- AP242 145 property_definition); -- AP242 146END_TYPE; 147 148-- DIFF IN AP214 149-- DIFF IN AP203e2 150TYPE action_request_item = SELECT 151 (action, -- AP214/AP242 152 action_method, -- AP214/AP242 153 action_property, -- AP214/AP242 154 action_relationship, -- AP214/AP242 155 alternate_product_relationship, -- AP214/AP242 156 assembly_component_usage_substitute, -- AP214/AP242 157 configuration_design, -- AP214/AP242 158 configuration_effectivity, -- AP214/AP242 159 configuration_item, -- AP214/AP242 160 configured_effectivity_assignment, -- AP214/AP242 161 document_file, -- AP214/AP242 162 draughting_model, -- AP214/AP242 163 drawing_revision, -- AP214/AP242 164 general_property, -- AP214/AP242 165 material_designation, -- AP214/AP242 166 mechanical_design_geometric_presentation_representation, -- AP214/AP242 167 organizational_project, -- AP214/AP242 168 presentation_area, -- AP214/AP242 169 product, -- AP214/AP242 170 product_concept, -- AP214/AP242 171 product_concept_feature, -- AP214/AP242 172 product_concept_feature_association, -- AP214/AP242 173 product_concept_feature_category, -- AP214/AP242 174 product_concept_feature_category_usage, -- AP214/AP242 175 product_definition, -- Common 176 product_definition_formation, -- Common 177 product_definition_formation_relationship, -- AP203e2/AP242 178 product_definition_relationship, -- Common 179 product_definition_substitute, -- AP214/AP242 180 property_definition, -- Common 181 resource_property, -- AP214/AP242 182 shape_aspect, -- AP214/AP242 183 shape_representation, -- AP214/AP242 184 versioned_action_request); -- AP203e2/AP242 185END_TYPE; 186 187-- IN AP242 188TYPE actuated_direction = ENUMERATION OF 189 (bidirectional, 190 positive_only, 191 negative_only, 192 not_actuated); 193END_TYPE; 194 195TYPE ahead_or_behind = ENUMERATION OF 196 (ahead, 197 exact, 198 behind); 199END_TYPE; 200 201TYPE amount_of_substance_measure = REAL; 202END_TYPE; 203 204-- IN AP203e2/AP242 205TYPE angle_direction_reference_select = SELECT 206 (direction, 207 curve, 208 point_path); 209END_TYPE; 210 211-- IN AP203e2/AP242 212TYPE angle_direction_reference_with_a2p3d_select = SELECT 213 (angle_direction_reference_select, 214 axis2_placement_3d); 215END_TYPE; 216 217TYPE angle_relator = ENUMERATION OF 218 (equal, 219 large, 220 small); 221END_TYPE; 222 223TYPE annotation_plane_element = SELECT 224 (draughting_callout, 225 styled_item); 226END_TYPE; 227 228-- DIFF IN AP203e2 229-- IN AP203e2/AP242 230TYPE annotation_representation_select = SELECT 231 (draughting_model, -- AP242 232 presentation_area, -- Common 233 presentation_view, -- Common 234 symbol_representation); -- Common 235END_TYPE; 236 237TYPE annotation_symbol_occurrence_item = SELECT 238 (annotation_symbol, 239 defined_symbol); 240END_TYPE; 241 242-- DIFF IN AP203e2 243TYPE annotation_text_occurrence_item = SELECT 244 (annotation_text, -- Common 245 annotation_text_character, -- Common 246 composite_text, -- Common 247 defined_character_glyph, -- AP214/AP242 248 text_literal); -- Common 249END_TYPE; 250 251-- DIFF IN AP214 252-- DIFF IN AP203e2 253-- DIFF IN Deprecated AP203e1 254TYPE approval_item = SELECT 255 (action, -- AP203e2/AP214/AP242 256 action_directive, -- AP203e2/AP214/AP242 257 action_property, -- AP214/AP242 258 action_request_solution, -- AP214/AP242 259 alternate_product_relationship, -- AP203e2/AP214/AP242 260 applied_action_assignment, -- AP203e2/AP214/AP242 261 applied_classification_assignment, -- AP214/AP242 262 applied_usage_right, -- AP203e2/AP242 263 assembly_component_usage_substitute, -- AP203e2/AP214/AP242 264 certification, -- Common 265 change, -- Deprecated AP203e1 266 change_request, -- Deprecated AP203e1 267 class, -- AP214/AP242 268 class_system, -- AP214/AP242 269 configuration_design, -- AP214/AP242 270 configuration_effectivity, -- Common 271 configuration_item, -- AP203e2/AP242/Deprecated AP203e1 272 configured_effectivity_assignment, -- AP214/AP242 273 contract, -- Common 274 date, -- AP203e2/AP242 275 directed_action, -- AP203e2/AP242 276 document, -- AP203e2/AP242 277 document_file, -- AP203e2/AP214/AP242 278 draughting_model, -- AP214/AP242 279 drawing_revision, -- AP214/AP242 280 effectivity, -- AP203e2/AP242 281 executed_action, -- AP203e2/AP214/AP242 282 frozen_assignment, -- AP242 283 general_property, -- AP214/AP242 284 general_property_relationship, -- AP203e2/AP242 285 group, -- AP203e2/AP242 286 group_relationship, -- AP203e2/AP242 287 information_usage_right, -- AP203e2/AP242 288 material_designation, -- AP214/AP242 289 mechanical_design_geometric_presentation_representation, -- AP214/AP242 290 organizational_project, -- AP214/AP242 291 presentation_area, -- AP214/AP242 292 product, -- Common 293 product_concept, -- AP214/AP242 294 product_concept_feature, -- AP214/AP242 295 product_concept_feature_association, -- AP214/AP242 296 product_concept_feature_category, -- AP214/AP242 297 product_concept_feature_category_usage, -- AP214/AP242 298 product_definition, -- AP203e2/AP214/AP242 299 product_definition_formation, -- AP203e2/AP214/AP242 300 product_definition_formation_relationship, -- AP203e2/AP242 301 product_definition_relationship, -- AP203e2/AP214/AP242 302 product_definition_substitute, -- AP214/AP242 303 property_definition, -- AP214/AP242 304 representation, -- AP203e2/AP242 305 requirement_assignment, -- AP203e2/AP242 306 resource_property, -- AP214/AP242 307 security_classification, -- AP203e2/AP242/Deprecated AP203e1 308 shape_aspect_relationship, -- AP203e2/AP242 309 shape_representation, -- AP214/AP242 310 start_request, -- Deprecated AP203e1 311 start_work, -- Deprecated AP203e1 312 versioned_action_request); -- AP203e2/AP214/AP242 313END_TYPE; 314 315-- IN AP214 316TYPE approximation_method = ENUMERATION OF 317 (chordal_deviation, 318 chordal_length); 319END_TYPE; 320 321TYPE area_measure = REAL; 322END_TYPE; 323 324TYPE area_or_view = SELECT 325 (presentation_area, 326 presentation_view); 327END_TYPE; 328 329-- IN AP242 330TYPE area_unit_type = ENUMERATION OF 331 (circular, 332 rectangular, 333 square); 334END_TYPE; 335 336-- IN AP242 337TYPE atom_based_tuple = LIST [0:?] OF atom_based_value; 338END_TYPE; 339 340-- IN AP242 341TYPE atom_based_value = SELECT 342 (maths_atom, 343 atom_based_tuple); 344END_TYPE; 345 346-- IN AP203e2/AP242 347TYPE attribute_classification_item = SELECT 348 (action_directive, 349 action_method, 350 action_property, 351 action_property_representation, 352 action_relationship, 353 action_request_solution, 354 action_request_status, 355 alternate_product_relationship, 356 applied_action_assignment, 357 applied_action_request_assignment, 358 applied_approval_assignment, 359 applied_certification_assignment, 360 applied_document_reference, 361 applied_document_usage_constraint_assignment, 362 applied_effectivity_assignment, 363 applied_event_occurrence_assignment, 364 applied_external_identification_assignment, 365 applied_identification_assignment, 366 applied_organization_assignment, 367 applied_organizational_project_assignment, 368 applied_person_and_organization_assignment, 369 approval, 370 approval_person_organization, 371 approval_relationship, 372 approval_status, 373 certification, 374 context_dependent_unit, 375 contract, 376 date_and_time_assignment, 377 date_assignment, 378 derived_unit, 379 descriptive_representation_item, 380 document_file, 381 document_relationship, 382 effectivity, 383 event_occurrence_relationship, 384 executed_action, 385 general_property, 386 general_property_relationship, 387 group, 388 group_relationship, 389 information_right, 390 information_usage_right, 391 language, 392 measure_representation_item, 393 measure_with_unit, 394 named_unit, 395 organization_relationship, 396 organizational_address, 397 organizational_project_relationship, 398 person_and_organization, 399 person_and_organization_address, 400 product, 401 product_category, 402 product_concept, 403 product_concept_context, 404 product_definition, 405 product_definition_context, 406 product_definition_formation, 407 product_definition_formation_relationship, 408 product_definition_relationship, 409 property_definition, 410 property_definition_relationship, 411 property_definition_representation, 412 representation, 413 representation_context, 414 representation_item, 415 security_classification, 416 time_interval_relationship, 417 uncertainty_measure_with_unit, 418 usage_association, 419 versioned_action_request); 420END_TYPE; 421 422-- IN AP242 423TYPE attribute_identifier = identifier; 424 WHERE 425 WR1: 426 validate_attribute_id(SELF); 427END_TYPE; 428 429-- DIFF IN AP214 430-- DIFF IN AP203e2 431TYPE attribute_language_item = SELECT 432 (action, -- AP214/AP242 433 action_directive, -- AP214 434 action_method, -- AP214 435 action_property, -- AP214 436 action_relationship, -- AP214 437 actuated_kinematic_pair, -- AP242 438 alternate_product_relationship, -- Common 439 application_context, -- Common 440 applied_certification_assignment, -- AP203e2/AP242 441 applied_document_reference, -- AP203e2/AP242 442 applied_document_usage_constraint_assignment, -- AP203e2/AP242 443 applied_external_identification_assignment, -- AP203e2/AP242 444 applied_identification_assignment, -- AP203e2/AP242 445 applied_organizational_project_assignment, -- AP203e2/AP242 446 applied_security_classification_assignment, -- AP203e2/AP242 447 approval, -- AP203e2/AP242 448 approval_relationship, -- Common 449 approval_status, -- AP203e2/AP242 450 assembly_component_usage_substitute, -- Common 451 attribute_value_assignment, -- Common 452 certification, -- Common 453 certification_type, -- AP203e2/AP242 454 configuration_design, -- Common 455 configuration_item, -- Common 456 contract, -- Common 457 data_environment, -- AP214/AP242 458 date_role, -- Common 459 date_time_role, -- Common 460 descriptive_representation_item, -- Common 461 document_relationship, -- Common 462 document_usage_role, -- AP203e2/AP242 463 draughting_title, -- AP214/AP242 464 effectivity, -- Common 465 effectivity_relationship, -- Common 466 event_occurrence, -- Common 467 external_source, -- Common 468 general_property, -- Common 469 general_property_relationship, -- Common 470 geometric_representation_item, -- Common 471 geometric_tolerance, -- Common 472 group, -- AP214/AP242 473 group_relationship, -- AP214/AP242 474 identification_role, -- Common 475 information_right, -- AP203e2/AP242 476 information_usage_right, -- AP203e2/AP242 477 kinematic_pair, -- AP214/AP242 478 make_from_usage_option, -- AP203e2/AP242 479 mapped_item, -- Common 480 multi_language_attribute_assignment, -- AP203e2/AP242 481 name_assignment, -- AP214/AP242 482 object_role, -- AP203e2/AP242 483 organization_relationship, -- Common 484 organization_role, -- Common 485 organizational_project, -- Common 486 organizational_project_relationship, -- Common 487 organizational_project_role, -- AP203e2/AP242 488 pair_actuator, -- AP214 489 person_and_organization, -- AP203e2/AP242 490 person_and_organization_role, -- Common 491 presentation_layer_assignment, -- AP214/AP242 492 process_product_association, -- AP214/AP242 493 product, -- Common 494 product_concept, -- Common 495 product_concept_feature, -- AP214/AP242 496 product_concept_feature_association, -- AP214/AP242 497 product_concept_relationship, -- Common 498 product_definition, -- Common 499 product_definition_context, -- AP203e2/AP242 500 product_definition_formation, -- Common 501 product_definition_formation_relationship, -- Common 502 product_definition_relationship, -- Common 503 product_definition_shape, -- AP203e2/AP242 504 product_definition_substitute, -- AP214/AP242 505 product_related_product_category, -- Common 506 property_definition, -- Common 507 property_definition_relationship, -- AP214/AP242 508 representation, -- Common 509 representation_relationship, -- AP214/AP242 510 requirement_for_action_resource, -- AP214/AP242 511 resource_property, -- AP214/AP242 512 resource_requirement_type, -- AP214/AP242 513 security_classification, -- Common 514 security_classification_assignment, -- AP203e2/AP242 515 shape_aspect, -- Common 516 shape_aspect_relationship, -- Common 517 shape_representation, -- AP203e2/AP242 518 styled_item, -- AP214/AP242 519 time_interval_role, -- Common 520 topological_representation_item, -- Common 521 uncertainty_measure_with_unit, -- Common 522 uncertainty_qualifier, -- Common 523 usage_association, -- AP203e2/AP242 524 versioned_action_request, -- AP214/AP242 525 versioned_action_request_relationship); -- AP214/AP242 526END_TYPE; 527 528TYPE attribute_type = SELECT 529 (label, 530 text); 531END_TYPE; 532 533-- IN AP242 534TYPE axial_geometry_constraint_element = SELECT 535 (point, 536 line, 537 circle, 538 plane, 539 cylindrical_surface, 540 conical_surface, 541 spherical_surface, 542 toroidal_surface, 543 surface_of_revolution, 544 sphere, 545 right_circular_cone, 546 right_circular_cylinder, 547 torus, 548 revolved_face_solid, 549 revolved_area_solid); 550END_TYPE; 551 552TYPE axis2_placement = SELECT 553 (axis2_placement_2d, 554 axis2_placement_3d); 555END_TYPE; 556 557TYPE b_spline_curve_form = ENUMERATION OF 558 (polyline_form, 559 circular_arc, 560 elliptic_arc, 561 parabolic_arc, 562 hyperbolic_arc, 563 unspecified); 564END_TYPE; 565 566-- IN AP242 567TYPE b_spline_or_composite_curve_select = SELECT 568 (b_spline_curve, 569 composite_curve); 570END_TYPE; 571 572-- IN AP242 573TYPE b_spline_or_rectangular_composite_surface_select = SELECT 574 (b_spline_surface, 575 rectangular_composite_surface); 576END_TYPE; 577 578TYPE b_spline_surface_form = ENUMERATION OF 579 (plane_surf, 580 cylindrical_surf, 581 conical_surf, 582 spherical_surf, 583 toroidal_surf, 584 surf_of_revolution, 585 ruled_surf, 586 generalised_cone, 587 quadric_surf, 588 surf_of_linear_extrusion, 589 unspecified); 590END_TYPE; 591 592-- IN AP203e2/AP242 593TYPE base_solid_select = SELECT 594 (solid_model, 595 csg_primitive, 596 boolean_result); 597 WHERE 598 WR1: 599 NOT ('STEP_MERGED_CAD_SCHEMA.PRIMITIVE_2D' IN TYPEOF(SELF)); 600END_TYPE; 601 602-- IN AP203e2/AP242 603TYPE blend_end_condition_select = SELECT 604 (point_on_curve, 605 edge_curve, 606 vertex); 607END_TYPE; 608 609-- IN AP203e2/AP242 610TYPE blend_radius_variation_type = ENUMERATION OF 611 (linear_blend, 612 cubic_blend, 613 unspecified_blend); 614END_TYPE; 615 616-- DIFF IN AP214 617-- DIFF IN AP203e2 618TYPE boolean_operand = SELECT 619 (boolean_result, -- Common 620 csg_primitive, -- Common 621 half_space_2d, -- AP242 622 half_space_solid, -- Common 623 solid_model); -- Common 624END_TYPE; 625 626-- IN AP242 627TYPE boolean_operand_2d = SELECT 628 (bounded_primitive_2d, 629 boolean_result_2d); 630END_TYPE; 631 632TYPE boolean_operator = ENUMERATION OF 633 (union, 634 intersection, 635 difference); 636END_TYPE; 637 638-- IN AP242 639TYPE boolean_value = BOOLEAN; 640END_TYPE; 641 642-- IN AP242 643TYPE bounded_primitive_2d = SELECT 644 (area_with_outer_boundary, 645 circular_area, 646 elliptic_area, 647 path_area_with_parameters, 648 polygonal_area, 649 rectangular_area); 650END_TYPE; 651 652TYPE box_characteristic_select = SELECT 653 (box_height, 654 box_width, 655 box_slant_angle, 656 box_rotate_angle); 657END_TYPE; 658 659TYPE box_height = positive_ratio_measure; 660END_TYPE; 661 662TYPE box_rotate_angle = plane_angle_measure; 663END_TYPE; 664 665TYPE box_slant_angle = plane_angle_measure; 666END_TYPE; 667 668TYPE box_width = positive_ratio_measure; 669END_TYPE; 670 671-- IN AP203e2/AP242 672TYPE camera_model_d3_multi_clipping_interection_select = SELECT 673 (camera_model_d3_multi_clipping_union, 674 plane); 675END_TYPE; 676 677-- IN AP203e2/AP242 678TYPE camera_model_d3_multi_clipping_union_select = SELECT 679 (camera_model_d3_multi_clipping_intersection, 680 plane); 681END_TYPE; 682 683-- IN AP203e2/AP242 684TYPE capacitance_measure = REAL; 685END_TYPE; 686 687TYPE category_usage_item = SELECT 688 (product_class); 689END_TYPE; 690 691TYPE celsius_temperature_measure = REAL; 692END_TYPE; 693 694TYPE central_or_parallel = ENUMERATION OF 695 (central, 696 parallel); 697END_TYPE; 698 699-- DIFF IN AP214 700-- DIFF IN AP203e2 701-- DIFF IN Deprecated AP203e1 702TYPE certification_item = SELECT 703 (alternate_product_relationship, -- AP203e2/AP242 704 make_from_usage_option, -- AP203e2/AP242 705 product_definition, -- AP214/AP242 706 product_definition_formation, -- AP203e2/AP214/AP242 707 product_definition_formation_relationship, -- AP203e2/AP214/AP242 708 product_definition_relationship, -- AP214/AP242 709 supplied_part_relationship); -- Deprecated AP203e1 710END_TYPE; 711 712-- IN AP242 713TYPE chained_representation_link = SELECT 714 (mapped_item, 715 representation_context, 716 representation_relationship); 717END_TYPE; 718 719-- IN AP242 720TYPE change_management_object = SELECT 721 (action, 722 action_item, 723 action_relationship, 724 class, 725 event_occurrence, 726 project_item); 727END_TYPE; 728 729-- IN AP242 730TYPE change_relationship_select = SELECT 731 (action_relationship, 732 product_definition_formation_relationship, 733 product_definition_relationship, 734 shape_aspect_relationship); 735END_TYPE; 736 737-- IN AP203e2/AP242 738TYPE change_request_item = SELECT 739 (product_definition_formation); 740END_TYPE; 741 742TYPE character_spacing_select = SELECT 743 (length_measure, 744 ratio_measure, 745 measure_with_unit, 746 descriptive_measure); 747END_TYPE; 748 749-- DIFF IN AP214 750TYPE character_style_select = SELECT 751 (character_glyph_style_outline, -- AP203e2/AP242 752 character_glyph_style_stroke, -- AP203e2/AP242 753 text_style_for_defined_font); -- Common 754END_TYPE; 755 756TYPE characterized_action_definition = SELECT 757 (action, 758 action_method, 759 action_method_relationship, 760 action_relationship); 761END_TYPE; 762 763TYPE characterized_definition = SELECT 764 (characterized_object, 765 characterized_product_definition, 766 shape_definition); 767END_TYPE; 768 769-- DIFF IN AP214 770TYPE characterized_material_property = SELECT 771 (material_property_representation, -- Common 772 product_material_composition_relationship); -- AP203e2/AP242 773END_TYPE; 774 775-- IN AP203e2/AP242 776TYPE characterized_product_composition_value = SELECT 777 (measure_with_unit); 778END_TYPE; 779 780TYPE characterized_product_definition = SELECT 781 (product_definition, 782 product_definition_relationship); 783END_TYPE; 784 785-- IN AP214/AP242 786TYPE characterized_resource_definition = SELECT 787 (action_resource, 788 action_resource_requirement); 789END_TYPE; 790 791TYPE class_usage_effectivity_context_item = SELECT 792 (product_definition); 793END_TYPE; 794 795-- DIFF IN AP214 796-- DIFF IN AP203e2 797TYPE classification_item = SELECT 798 (action, -- Common 799 action_directive, -- Common 800 action_method, -- Common 801 action_property, -- Common 802 action_relationship, -- Common 803 action_request_solution, -- AP203e2/AP242 804 action_request_status, -- AP203e2/AP242 805 address, -- AP203e2/AP242 806 alternate_product_relationship, -- AP203e2/AP242 807 applied_action_assignment, -- AP203e2/AP242 808 applied_action_request_assignment, -- AP203e2/AP242 809 applied_approval_assignment, -- AP203e2/AP242 810 applied_certification_assignment, -- AP203e2/AP242 811 applied_contract_assignment, -- AP203e2/AP242 812 applied_date_and_time_assignment, -- AP203e2/AP242 813 applied_date_assignment, -- AP203e2/AP242 814 applied_document_reference, -- AP203e2/AP242 815 applied_document_usage_constraint_assignment, -- AP203e2/AP242 816 applied_effectivity_assignment, -- AP203e2/AP242 817 applied_event_occurrence_assignment, -- AP203e2/AP242 818 applied_external_identification_assignment, -- AP203e2/AP242 819 applied_identification_assignment, -- AP203e2/AP242 820 applied_organization_assignment, -- AP203e2/AP242 821 applied_organizational_project_assignment, -- AP203e2/AP242 822 applied_person_and_organization_assignment, -- AP203e2/AP242 823 applied_security_classification_assignment, -- AP203e2/AP242 824 approval, -- AP203e2/AP242 825 approval_person_organization, -- AP203e2/AP242 826 approval_relationship, -- AP203e2/AP242 827 approval_status, -- Common 828 assembly_component_usage_substitute, -- AP203e2/AP242 829 calendar_date, -- AP203e2/AP242 830 certification, -- AP203e2/AP242 831 characterized_class, -- AP203e2/AP242 832 characterized_object, -- AP203e2/AP242 833 class, -- Common 834 classified_item, -- AP203e2/AP242 835 configuration_item, -- Common 836 context_dependent_unit, -- AP203e2/AP242 837 contract, -- Common 838 conversion_based_unit, -- AP203e2/AP242 839 date_and_time, -- AP203e2/AP242 840 date_and_time_assignment, -- AP203e2/AP242 841 date_assignment, -- AP203e2/AP242 842 derived_unit, -- AP203e2/AP242 843 descriptive_representation_item, -- Common 844 directed_action, -- AP203e2/AP242 845 document_file, -- Common 846 document_relationship, -- AP203e2/AP242 847 document_type, -- AP214/AP242 848 effectivity, -- Common 849 event_occurrence, -- AP203e2/AP242 850 executed_action, -- Common 851 feature_definition, -- AP214/AP242 852 general_feature, -- AP214/AP242 853 general_property, -- Common 854 general_property_relationship, -- AP203e2/AP242 855 group, -- AP203e2/AP242 856 identification_assignment, -- AP203e2/AP242 857 information_right, -- AP203e2/AP242 858 information_usage_right, -- AP203e2/AP242 859 language, -- AP203e2/AP242 860 material_designation, -- AP214/AP242 861 measure_representation_item, -- AP203e2/AP242 862 measure_with_unit, -- AP203e2/AP242 863 multi_language_attribute_assignment, -- AP203e2/AP242 864 named_unit, -- AP203e2/AP242 865 organization, -- AP203e2/AP242 866 organization_relationship, -- AP203e2/AP242 867 organizational_address, -- AP203e2/AP242 868 organizational_project, -- Common 869 organizational_project_relationship, -- AP203e2/AP242 870 person, -- AP203e2/AP242 871 person_and_organization_address, -- AP203e2/AP242 872 plus_minus_tolerance, -- AP214/AP242 873 process_operation, -- AP214/AP242 874 product, -- Common 875 product_concept, -- Common 876 product_concept_feature, -- AP214/AP242 877 product_concept_feature_category, -- AP214/AP242 878 product_definition, -- Common 879 product_definition_context, -- AP203e2/AP242 880 product_definition_formation, -- Common 881 product_definition_formation_relationship, -- AP203e2/AP242 882 product_definition_relationship, -- Common 883 property_definition, -- Common 884 property_definition_representation, -- AP203e2/AP242 885 representation, -- AP203e2/AP242 886 representation_context, -- AP203e2/AP242 887 representation_item, -- AP203e2/AP242 888 resource_property, -- AP214/AP242 889 security_classification, -- AP203e2/AP242 890 security_classification_level, -- AP214/AP242 891 shape_aspect, -- AP214/AP242 892 uncertainty_measure_with_unit, -- AP203e2/AP242 893 usage_association, -- AP203e2/AP242 894 versioned_action_request); -- Common 895END_TYPE; 896 897-- IN AP203e2/AP242 898TYPE classified_item = SELECT 899 (product, 900 product_definition, 901 product_definition_formation); 902END_TYPE; 903 904-- IN AP242 905TYPE closed_or_open_shell_select = SELECT 906 (closed_shell, 907 open_shell); 908END_TYPE; 909 910-- IN AP242 911TYPE common_datum_list = LIST [2:?] OF datum_reference_element; 912 WHERE 913 WR1: 914 SIZEOF(QUERY (dre <* SELF| (dre\shape_aspect.of_shape <> SELF[1]\shape_aspect.of_shape))) = 0; 915END_TYPE; 916 917-- IN AP242 918TYPE compound_inner_area_boundary = SELECT 919 (set_inner_area_boundary); 920END_TYPE; 921 922TYPE compound_item_definition = SELECT 923 (list_representation_item, 924 set_representation_item); 925END_TYPE; 926 927-- IN AP203e2/AP242 928TYPE conductance_measure = REAL; 929END_TYPE; 930 931TYPE configuration_design_item = SELECT 932 (product_definition, 933 product_definition_formation); 934END_TYPE; 935 936TYPE configured_effectivity_context_item = SELECT 937 (product_concept_feature_association); 938END_TYPE; 939 940-- DIFF IN AP203e2 941TYPE configured_effectivity_item = SELECT 942 (action_relationship, -- AP214/AP242 943 process_plan, -- AP214/AP242 944 product_definition, -- Common 945 product_process_plan); -- AP214/AP242 946END_TYPE; 947 948-- IN AP242 949TYPE constraint_group_member = SELECT 950 (explicit_constraint, 951 simultaneous_constraint_group); 952END_TYPE; 953 954-- IN AP203e2/AP242 955TYPE constructive_geometry_representation_or_shape_represenation = SELECT 956 (constructive_geometry_representation, 957 shape_representation); 958END_TYPE; 959 960TYPE context_dependent_measure = REAL; 961END_TYPE; 962 963-- DIFF IN AP214 964-- DIFF IN AP203e2 965-- DIFF IN Deprecated AP203e1 966TYPE contract_item = SELECT 967 (action_directive, -- AP203e2/AP242 968 alternate_product_relationship, -- AP203e2/AP242 969 directed_action, -- AP203e2/AP242 970 drawing_revision, -- AP214/AP242 971 executed_action, -- AP203e2/AP214/AP242 972 information_usage_right, -- AP203e2/AP242 973 organization, -- AP203e2/AP242 974 person_and_organization, -- AP203e2/AP242 975 product, -- AP203e2/AP242 976 product_definition_formation); -- Common 977END_TYPE; 978 979TYPE count_measure = NUMBER; 980END_TYPE; 981 982-- IN AP242 983TYPE csg_2d_area_select = SELECT 984 (axis2_placement_2d, 985 csg_primitive_solid_2d); 986END_TYPE; 987 988-- IN AP242 989TYPE csg_2d_shape_select = SELECT 990 (mapped_item, 991 axis2_placement_2d, 992 csg_solid_2d); 993END_TYPE; 994 995-- DIFF IN AP214 996-- DIFF IN AP203e2 997TYPE csg_primitive = SELECT 998 (block, -- Common 999 bounded_primitive_2d, -- AP242 1000 right_angular_wedge, -- Common 1001 right_circular_cone, -- Common 1002 right_circular_cylinder, -- Common 1003 sphere, -- Common 1004 torus); -- Common 1005END_TYPE; 1006 1007TYPE csg_select = SELECT 1008 (boolean_result, 1009 csg_primitive); 1010END_TYPE; 1011 1012-- IN AP242 1013TYPE csg_select_2d = SELECT 1014 (bounded_primitive_2d, 1015 boolean_result_2d); 1016END_TYPE; 1017 1018-- IN AP242 1019TYPE current_element_assignment_select = SELECT 1020 (modify_element, 1021 add_element); 1022END_TYPE; 1023 1024-- DIFF IN AP214 1025TYPE curve_font_or_scaled_curve_font_select = SELECT 1026 (curve_style_font_and_scaling, -- AP203e2/AP242 1027 curve_style_font_select); -- Common 1028END_TYPE; 1029 1030-- DIFF IN AP214 1031-- DIFF IN AP203e2 1032TYPE curve_on_surface = SELECT 1033 (composite_curve_on_surface, 1034 pcurve, 1035 surface_curve); 1036END_TYPE; 1037 1038-- IN AP203e2/AP242 1039TYPE curve_or_annotation_curve_occurrence = SELECT 1040 (curve, 1041 annotation_curve_occurrence); 1042END_TYPE; 1043 1044-- IN AP242 1045TYPE curve_or_curve_set = SELECT 1046 (curve, 1047 geometric_curve_set); 1048END_TYPE; 1049 1050TYPE curve_or_render = SELECT 1051 (curve_style, 1052 curve_style_rendering); 1053END_TYPE; 1054 1055-- IN AP242 1056TYPE curve_or_surface_constraint_element = SELECT 1057 (curve, 1058 surface); 1059END_TYPE; 1060 1061TYPE curve_style_font_select = SELECT 1062 (curve_style_font, 1063 pre_defined_curve_font, 1064 externally_defined_curve_font); 1065END_TYPE; 1066 1067-- IN AP214 1068TYPE curve_tolerance_deviation = positive_length_measure; 1069END_TYPE; 1070 1071-- IN AP214 1072TYPE curve_tolerance_parameter = REAL; 1073END_TYPE; 1074 1075-- IN AP242 1076TYPE curves_or_area = ENUMERATION OF 1077 (curves, 1078 area); 1079END_TYPE; 1080 1081-- DIFF IN AP214 1082-- DIFF IN AP203e2 1083-- DIFF IN Deprecated AP203e1 1084TYPE date_and_time_item = SELECT 1085 (action, -- AP203e2/AP214/AP242 1086 action_directive, -- AP203e2/AP214/AP242 1087 action_method, -- AP214/AP242 1088 action_property, -- AP214/AP242 1089 action_relationship, -- AP214/AP242 1090 action_request_solution, -- AP214/AP242 1091 alternate_product_relationship, -- AP214/AP242 1092 applied_action_assignment, -- AP203e2/AP214/AP242 1093 applied_classification_assignment, -- AP214/AP242 1094 applied_organization_assignment, -- AP203e2/AP214/AP242 1095 applied_person_and_organization_assignment, -- AP203e2/AP214/AP242 1096 applied_security_classification_assignment, -- AP203e2/AP242 1097 approval_person_organization, -- Common 1098 approval_status, -- AP214/AP242 1099 assembly_component_usage_substitute, -- AP214/AP242 1100 certification, -- Common 1101 change, -- Deprecated AP203e1 1102 change_request, -- Deprecated AP203e1 1103 class, -- AP214/AP242 1104 class_system, -- AP214/AP242 1105 configuration_design, -- AP214/AP242 1106 configuration_item, -- AP214/AP242 1107 configured_effectivity_assignment, -- AP214/AP242 1108 contract, -- Common 1109 data_quality_definition, -- AP242 1110 directed_action, -- AP203e2/AP242 1111 document, -- AP203e2/AP242 1112 document_file, -- AP203e2/AP214/AP242 1113 draughting_model, -- AP214/AP242 1114 drawing_revision, -- AP214/AP242 1115 effectivity, -- AP214/AP242 1116 event_occurrence, -- AP203e2/AP214/AP242 1117 executed_action, -- AP203e2/AP214/AP242 1118 general_property, -- AP214/AP242 1119 information_usage_right, -- AP203e2/AP242 1120 material_designation, -- AP214/AP242 1121 mechanical_design_geometric_presentation_representation, -- AP214/AP242 1122 organization_relationship, -- AP214/AP242 1123 organizational_project, -- AP203e2/AP214/AP242 1124 person_and_organization, -- AP214/AP242 1125 presentation_area, -- AP214/AP242 1126 product, -- AP214/AP242 1127 product_concept, -- AP214/AP242 1128 product_concept_feature, -- AP214/AP242 1129 product_concept_feature_association, -- AP214/AP242 1130 product_concept_feature_category, -- AP214/AP242 1131 product_concept_feature_category_usage, -- AP214/AP242 1132 product_definition, -- Common 1133 product_definition_formation, -- AP203e2/AP214/AP242 1134 product_definition_formation_relationship, -- AP214/AP242 1135 product_definition_relationship, -- AP203e2/AP214/AP242 1136 product_definition_substitute, -- AP214/AP242 1137 property_definition, -- AP214/AP242 1138 requirement_for_action_resource, -- AP214/AP242 1139 resource_property, -- AP214/AP242 1140 rule_action, -- AP203e2/AP242 1141 security_classification, -- Common 1142 security_classification_level, -- AP214/AP242 1143 shape_representation, -- AP214/AP242 1144 start_request, -- Deprecated AP203e1 1145 start_work, -- Deprecated AP203e1 1146 versioned_action_request); -- AP203e2/AP214/AP242 1147END_TYPE; 1148 1149-- DIFF IN AP214 1150-- DIFF IN AP203e2 1151TYPE date_item = SELECT 1152 (action, -- Common 1153 action_directive, -- Common 1154 action_method, -- AP214/AP242 1155 action_property, -- AP214/AP242 1156 action_relationship, -- AP214/AP242 1157 action_request_solution, -- AP214/AP242 1158 alternate_product_relationship, -- AP214/AP242 1159 applied_action_assignment, -- Common 1160 applied_classification_assignment, -- AP214/AP242 1161 applied_organization_assignment, -- Common 1162 applied_person_and_organization_assignment, -- Common 1163 applied_security_classification_assignment, -- AP203e2/AP242 1164 approval_person_organization, -- Common 1165 approval_status, -- AP214/AP242 1166 assembly_component_usage_substitute, -- AP214/AP242 1167 certification, -- Common 1168 class, -- AP214/AP242 1169 class_system, -- AP214/AP242 1170 configuration_design, -- AP214/AP242 1171 configuration_item, -- AP214/AP242 1172 configured_effectivity_assignment, -- AP214/AP242 1173 contract, -- Common 1174 data_quality_definition, -- AP242 1175 directed_action, -- AP203e2/AP242 1176 document, -- AP203e2/AP242 1177 document_file, -- Common 1178 draughting_model, -- AP214/AP242 1179 drawing_revision, -- AP214/AP242 1180 effectivity, -- AP214/AP242 1181 event_occurrence, -- Common 1182 executed_action, -- Common 1183 general_property, -- AP214/AP242 1184 information_usage_right, -- AP203e2/AP242 1185 material_designation, -- AP214/AP242 1186 mechanical_design_geometric_presentation_representation, -- AP214/AP242 1187 organization_relationship, -- AP214/AP242 1188 organizational_project, -- Common 1189 person_and_organization, -- AP214/AP242 1190 presentation_area, -- AP214/AP242 1191 product, -- AP214/AP242 1192 product_concept, -- AP214/AP242 1193 product_concept_feature, -- AP214/AP242 1194 product_concept_feature_association, -- AP214/AP242 1195 product_concept_feature_category, -- AP214/AP242 1196 product_concept_feature_category_usage, -- AP214/AP242 1197 product_definition, -- Common 1198 product_definition_formation, -- Common 1199 product_definition_formation_relationship, -- AP214/AP242 1200 product_definition_relationship, -- Common 1201 product_definition_substitute, -- AP214/AP242 1202 property_definition, -- AP214/AP242 1203 requirement_for_action_resource, -- AP214/AP242 1204 resource_property, -- AP214/AP242 1205 security_classification, -- Common 1206 security_classification_level, -- AP214/AP242 1207 shape_representation, -- AP214/AP242 1208 versioned_action_request); -- Common 1209END_TYPE; 1210 1211TYPE date_time_or_event_occurrence = SELECT 1212 (date_time_select, 1213 event_occurrence); 1214END_TYPE; 1215 1216TYPE date_time_select = SELECT 1217 (date, 1218 date_and_time, 1219 local_time); 1220END_TYPE; 1221 1222-- IN AP242 1223TYPE datum_or_common_datum = SELECT 1224 (common_datum_list, 1225 datum); 1226END_TYPE; 1227 1228-- IN AP242 1229TYPE datum_reference_modifier = SELECT 1230 (datum_reference_modifier_with_value, 1231 simple_datum_reference_modifier); 1232END_TYPE; 1233 1234-- IN AP242 1235TYPE datum_reference_modifier_type = ENUMERATION OF 1236 (circular_or_cylindrical, 1237 distance, 1238 projected, 1239 spherical); 1240END_TYPE; 1241 1242-- IN AP242 1243TYPE datum_system_or_reference = SELECT 1244 (datum_reference, 1245 datum_system); 1246END_TYPE; 1247 1248TYPE day_in_month_number = INTEGER; 1249 WHERE 1250 WR1: 1251 (1 <= SELF) AND (SELF <= 31); 1252END_TYPE; 1253 1254-- IN AP203e2/AP242 1255TYPE day_in_week_number = INTEGER; 1256 WHERE 1257 WR1: 1258 (1 <= SELF) AND (SELF <= 7); 1259END_TYPE; 1260 1261-- IN AP203e2/AP242 1262TYPE day_in_year_number = INTEGER; 1263 WHERE 1264 WR1: 1265 (1 <= SELF) AND (SELF <= 366); 1266END_TYPE; 1267 1268-- DIFF IN AP214 1269-- IN AP214/AP242 1270TYPE defined_glyph_select = SELECT 1271 (externally_defined_character_glyph, -- Common 1272 pre_defined_character_glyph); -- AP242 1273END_TYPE; 1274 1275TYPE defined_symbol_select = SELECT 1276 (pre_defined_symbol, 1277 externally_defined_symbol); 1278END_TYPE; 1279 1280-- DIFF IN AP203e2 1281TYPE derived_property_select = SELECT 1282 (action_property, -- Common 1283 property_definition, -- Common 1284 resource_property); -- AP214/AP242 1285END_TYPE; 1286 1287-- DIFF IN AP214 1288-- DIFF IN AP203e2 1289TYPE description_attribute_select = SELECT 1290 (action_request_solution, -- Common 1291 application_context, -- Common 1292 approval_role, -- Common 1293 configuration_design, -- Common 1294 context_dependent_shape_representation, -- Common 1295 date_role, -- Common 1296 date_time_role, -- Common 1297 effectivity, -- Common 1298 external_source, -- Common 1299 organization_role, -- Common 1300 organizational_project, -- AP242 1301 person_and_organization, -- Common 1302 person_and_organization_role, -- Common 1303 property_definition_representation, -- Common 1304 representation); -- Common 1305END_TYPE; 1306 1307TYPE descriptive_measure = STRING; 1308END_TYPE; 1309 1310-- IN AP242 1311TYPE detailed_report_type = ENUMERATION OF 1312 (measured_element, 1313 inferior_quality_element); 1314END_TYPE; 1315 1316TYPE dimension_count = INTEGER; 1317 WHERE 1318 WR1: 1319 SELF > 0; 1320END_TYPE; 1321 1322TYPE dimension_extent_usage = ENUMERATION OF 1323 (origin, 1324 target); 1325END_TYPE; 1326 1327TYPE dimensional_characteristic = SELECT 1328 (dimensional_location, 1329 dimensional_size); 1330END_TYPE; 1331 1332TYPE direction_count_select = SELECT 1333 (u_direction_count, 1334 v_direction_count); 1335END_TYPE; 1336 1337-- IN AP203e2/AP242 1338TYPE document_identifier_assigned_item = SELECT 1339 (document); 1340END_TYPE; 1341 1342-- DIFF IN AP214 1343-- DIFF IN AP203e2 1344-- DIFF IN Deprecated AP203e1 1345TYPE document_reference_item = SELECT 1346 (action_directive, -- AP214/AP242 1347 action_method, -- AP203e2/AP214/AP242 1348 action_relationship, -- AP214/AP242 1349 applied_action_assignment, -- AP214/AP242 1350 applied_external_identification_assignment, -- AP203e2/AP242 1351 approval, -- AP214/AP242 1352 assembly_component_usage, -- AP203e2/AP242 1353 certification, -- AP214/AP242 1354 characterized_class, -- AP203e2/AP242 1355 characterized_object, -- AP203e2/AP242 1356 class, -- AP214/AP242 1357 class_system, -- AP214/AP242 1358 configuration_design, -- AP214/AP242 1359 configuration_item, -- AP203e2/AP214/AP242 1360 contract, -- AP214/AP242 1361 descriptive_representation_item, -- AP203e2/AP214/AP242 1362 dimensional_size, -- AP203e2/AP242 1363 executed_action, -- AP203e2/AP214/AP242 1364 externally_conditioned_data_quality_criterion, -- AP242 1365 externally_defined_dimension_definition, -- AP203e2/AP214/AP242 1366 externally_defined_item, -- AP203e2/AP242 1367 feature_definition, -- AP214/AP242 1368 general_property, -- AP214/AP242 1369 group, -- AP203e2/AP242 1370 group_relationship, -- AP203e2/AP242 1371 information_right, -- AP203e2/AP242 1372 information_usage_right, -- AP203e2/AP242 1373 material_designation, -- AP203e2/AP214/AP242 1374 measure_representation_item, -- AP203e2/AP242 1375 organization, -- AP214/AP242 1376 organizational_project, -- AP214/AP242 1377 person, -- AP214/AP242 1378 presentation_area, -- AP214/AP242 1379 process_plan, -- AP214/AP242 1380 product, -- AP203e2/AP214/AP242 1381 product_category, -- AP203e2/AP242 1382 product_concept, -- AP214/AP242 1383 product_concept_feature, -- AP214/AP242 1384 product_concept_feature_category, -- AP214/AP242 1385 product_definition, -- Common 1386 product_definition_context, -- AP242 1387 product_definition_formation, -- AP203e2/AP214/AP242 1388 product_definition_formation_relationship, -- AP203e2/AP214/AP242 1389 product_definition_process, -- AP214/AP242 1390 product_definition_relationship, -- AP203e2/AP214/AP242 1391 product_definition_substitute, -- AP214/AP242 1392 product_related_product_category, -- AP214/AP242 1393 property_definition, -- AP203e2/AP214/AP242 1394 representation, -- AP203e2/AP214/AP242 1395 representation_item, -- AP203e2/AP242 1396 resource_requirement_type, -- AP214/AP242 1397 retention, -- AP214/AP242 1398 rule_set, -- AP203e2/AP242 1399 security_classification, -- AP214/AP242 1400 shape_aspect, -- Common 1401 shape_aspect_relationship, -- AP203e2/AP214/AP242 1402 usage_association, -- AP203e2/AP242 1403 versioned_action_request); -- AP203e2/AP214/AP242 1404END_TYPE; 1405 1406-- IN AP203e2/AP242 1407TYPE dose_equivalent_measure = REAL; 1408END_TYPE; 1409 1410-- DIFF IN AP214 1411-- DIFF IN AP203e2 1412TYPE draughting_callout_element = SELECT 1413 (annotation_curve_occurrence, -- Common 1414 annotation_fill_area_occurrence, -- AP242 1415 annotation_symbol_occurrence, -- Common 1416 annotation_text_occurrence, -- Common 1417 tessellated_annotation_occurrence); -- AP242 1418END_TYPE; 1419 1420TYPE draughting_model_item_association_select = SELECT 1421 (annotation_occurrence, 1422 draughting_callout); 1423END_TYPE; 1424 1425-- IN AP242 1426TYPE draughting_model_item_definition = SELECT 1427 (applied_action_assignment, 1428 applied_action_method_assignment, 1429 applied_action_request_assignment, 1430 applied_approval_assignment, 1431 applied_certification_assignment, 1432 applied_classification_assignment, 1433 applied_contract_assignment, 1434 applied_date_and_time_assignment, 1435 applied_date_assignment, 1436 applied_document_reference, 1437 applied_document_usage_constraint_assignment, 1438 applied_effectivity_assignment, 1439 applied_event_occurrence_assignment, 1440 applied_external_identification_assignment, 1441 applied_group_assignment, 1442 applied_identification_assignment, 1443 applied_ineffectivity_assignment, 1444 applied_name_assignment, 1445 applied_organization_assignment, 1446 applied_organizational_project_assignment, 1447 applied_person_and_organization_assignment, 1448 applied_security_classification_assignment, 1449 applied_time_interval_assignment, 1450 applied_usage_right, 1451 dimensional_size, 1452 geometric_tolerance, 1453 product_definition_relationship, 1454 product_definition_shape, 1455 property_definition, 1456 shape_aspect, 1457 shape_aspect_relationship); 1458END_TYPE; 1459 1460-- IN AP203e2/AP242 1461TYPE draughting_model_item_select = SELECT 1462 (mapped_item, 1463 styled_item, 1464 axis2_placement, 1465 camera_model, 1466 draughting_callout); 1467END_TYPE; 1468 1469-- IN AP242 1470TYPE draughting_subfigure_representation_item = SELECT 1471 (annotation_occurrence, 1472 draughting_callout, 1473 axis2_placement); 1474END_TYPE; 1475 1476-- IN AP242 1477TYPE draughting_symbol_representation_item = SELECT 1478 (annotation_curve_occurrence, 1479 annotation_symbol_occurrence, 1480 annotation_fill_area_occurrence, 1481 annotation_text_occurrence, 1482 axis2_placement); 1483END_TYPE; 1484 1485TYPE draughting_titled_item = SELECT 1486 (drawing_revision, 1487 drawing_sheet_revision); 1488END_TYPE; 1489 1490-- IN AP242 1491TYPE edge_or_curve = SELECT 1492 (curve, 1493 edge); 1494END_TYPE; 1495 1496-- DIFF IN AP203e2 1497TYPE effectivity_item = SELECT 1498 (action, -- AP214/AP242 1499 action_method, -- AP214/AP242 1500 action_method_relationship, -- AP214/AP242 1501 action_property, -- AP214/AP242 1502 action_relationship, -- AP214/AP242 1503 assembly_component_usage_substitute, -- Common 1504 class, -- AP214/AP242 1505 class_system, -- AP214/AP242 1506 configuration_design, -- AP214/AP242 1507 configuration_item, -- AP214/AP242 1508 configured_effectivity_assignment, -- AP214/AP242 1509 document_file, -- AP214/AP242 1510 draughting_model, -- AP214/AP242 1511 drawing_revision, -- AP214/AP242 1512 general_property, -- AP214/AP242 1513 material_designation, -- AP214/AP242 1514 mechanical_design_geometric_presentation_representation, -- AP214/AP242 1515 presentation_area, -- AP214/AP242 1516 product, -- Common 1517 product_concept, -- AP214/AP242 1518 product_concept_feature, -- AP214/AP242 1519 product_concept_feature_association, -- AP214/AP242 1520 product_concept_feature_category, -- AP214/AP242 1521 product_concept_feature_category_usage, -- AP214/AP242 1522 product_definition, -- Common 1523 product_definition_formation, -- Common 1524 product_definition_formation_relationship, -- AP214/AP242 1525 product_definition_relationship, -- Common 1526 product_definition_substitute, -- Common 1527 property_definition, -- AP214/AP242 1528 requirement_for_action_resource, -- AP214/AP242 1529 resource_property, -- AP214/AP242 1530 security_classification, -- AP214/AP242 1531 shape_aspect, -- AP214/AP242 1532 shape_representation); -- AP214/AP242 1533END_TYPE; 1534 1535-- IN AP203e2/AP242 1536TYPE electric_charge_measure = REAL; 1537END_TYPE; 1538 1539TYPE electric_current_measure = REAL; 1540END_TYPE; 1541 1542-- IN AP203e2/AP242 1543TYPE electric_potential_measure = REAL; 1544END_TYPE; 1545 1546-- IN AP242 1547TYPE elementary_function_enumerators = ENUMERATION OF 1548 (ef_and, 1549 ef_or, 1550 ef_not, 1551 ef_xor, 1552 ef_negate_i, 1553 ef_add_i, 1554 ef_subtract_i, 1555 ef_multiply_i, 1556 ef_divide_i, 1557 ef_mod_i, 1558 ef_exponentiate_i, 1559 ef_eq_i, 1560 ef_ne_i, 1561 ef_gt_i, 1562 ef_lt_i, 1563 ef_ge_i, 1564 ef_le_i, 1565 ef_abs_i, 1566 ef_max_i, 1567 ef_min_i, 1568 ef_if_i, 1569 ef_negate_r, 1570 ef_reciprocal_r, 1571 ef_add_r, 1572 ef_subtract_r, 1573 ef_multiply_r, 1574 ef_divide_r, 1575 ef_mod_r, 1576 ef_exponentiate_r, 1577 ef_exponentiate_ri, 1578 ef_eq_r, 1579 ef_ne_r, 1580 ef_gt_r, 1581 ef_lt_r, 1582 ef_ge_r, 1583 ef_le_r, 1584 ef_abs_r, 1585 ef_max_r, 1586 ef_min_r, 1587 ef_acos_r, 1588 ef_asin_r, 1589 ef_atan2_r, 1590 ef_cos_r, 1591 ef_exp_r, 1592 ef_ln_r, 1593 ef_log2_r, 1594 ef_log10_r, 1595 ef_sin_r, 1596 ef_sqrt_r, 1597 ef_tan_r, 1598 ef_if_r, 1599 ef_form_c, 1600 ef_rpart_c, 1601 ef_ipart_c, 1602 ef_negate_c, 1603 ef_reciprocal_c, 1604 ef_add_c, 1605 ef_subtract_c, 1606 ef_multiply_c, 1607 ef_divide_c, 1608 ef_exponentiate_c, 1609 ef_exponentiate_ci, 1610 ef_eq_c, 1611 ef_ne_c, 1612 ef_conjugate_c, 1613 ef_abs_c, 1614 ef_arg_c, 1615 ef_cos_c, 1616 ef_exp_c, 1617 ef_ln_c, 1618 ef_sin_c, 1619 ef_sqrt_c, 1620 ef_tan_c, 1621 ef_if_c, 1622 ef_subscript_s, 1623 ef_eq_s, 1624 ef_ne_s, 1625 ef_gt_s, 1626 ef_lt_s, 1627 ef_ge_s, 1628 ef_le_s, 1629 ef_subsequence_s, 1630 ef_concat_s, 1631 ef_size_s, 1632 ef_format, 1633 ef_value, 1634 ef_like, 1635 ef_if_s, 1636 ef_subscript_b, 1637 ef_eq_b, 1638 ef_ne_b, 1639 ef_gt_b, 1640 ef_lt_b, 1641 ef_ge_b, 1642 ef_le_b, 1643 ef_subsequence_b, 1644 ef_concat_b, 1645 ef_size_b, 1646 ef_if_b, 1647 ef_subscript_t, 1648 ef_eq_t, 1649 ef_ne_t, 1650 ef_concat_t, 1651 ef_size_t, 1652 ef_entuple, 1653 ef_detuple, 1654 ef_insert, 1655 ef_remove, 1656 ef_if_t, 1657 ef_sum_it, 1658 ef_product_it, 1659 ef_add_it, 1660 ef_subtract_it, 1661 ef_scalar_mult_it, 1662 ef_dot_prod_it, 1663 ef_sum_rt, 1664 ef_product_rt, 1665 ef_add_rt, 1666 ef_subtract_rt, 1667 ef_scalar_mult_rt, 1668 ef_dot_prod_rt, 1669 ef_norm_rt, 1670 ef_sum_ct, 1671 ef_product_ct, 1672 ef_add_ct, 1673 ef_subtract_ct, 1674 ef_scalar_mult_ct, 1675 ef_dot_prod_ct, 1676 ef_norm_ct, 1677 ef_if, 1678 ef_ensemble, 1679 ef_member_of); 1680END_TYPE; 1681 1682-- IN AP242 1683TYPE elementary_space_enumerators = ENUMERATION OF 1684 (es_numbers, 1685 es_complex_numbers, 1686 es_reals, 1687 es_integers, 1688 es_logicals, 1689 es_booleans, 1690 es_strings, 1691 es_binarys, 1692 es_maths_spaces, 1693 es_maths_functions, 1694 es_generics); 1695END_TYPE; 1696 1697-- IN AP203e2/AP242 1698TYPE energy_measure = REAL; 1699END_TYPE; 1700 1701-- DIFF IN AP214 1702-- DIFF IN AP203e2 1703TYPE event_occurrence_item = SELECT 1704 (action, -- AP214/AP242 1705 action_directive, -- AP214/AP242 1706 action_method, -- AP214/AP242 1707 action_property, -- AP214/AP242 1708 action_relationship, -- AP214 1709 action_request_solution, -- AP214/AP242 1710 alternate_product_relationship, -- AP214/AP242 1711 applied_action_assignment, -- AP214/AP242 1712 applied_classification_assignment, -- AP214/AP242 1713 applied_person_and_organization_assignment, -- AP214 1714 approval_status, -- AP214 1715 assembly_component_usage_substitute, -- AP214/AP242 1716 certification, -- AP214/AP242 1717 class, -- AP214/AP242 1718 class_system, -- AP214/AP242 1719 configuration_design, -- AP214/AP242 1720 configuration_effectivity, -- AP214/AP242 1721 configuration_item, -- AP214/AP242 1722 configured_effectivity_assignment, -- AP214/AP242 1723 contract, -- AP214/AP242 1724 document_file, -- AP214 1725 draughting_model, -- AP214/AP242 1726 drawing_revision, -- AP214/AP242 1727 executed_action, -- AP214/AP242 1728 general_property, -- AP214/AP242 1729 material_designation, -- AP214/AP242 1730 mechanical_design_geometric_presentation_representation, -- AP214/AP242 1731 organization_relationship, -- AP214/AP242 1732 organizational_project, -- Common 1733 person_and_organization, -- AP214/AP242 1734 presentation_area, -- AP214/AP242 1735 product, -- AP214/AP242 1736 product_concept, -- AP214/AP242 1737 product_concept_feature, -- AP214/AP242 1738 product_concept_feature_association, -- AP214/AP242 1739 product_concept_feature_category, -- AP214/AP242 1740 product_concept_feature_category_usage, -- AP214/AP242 1741 product_definition, -- AP214 1742 product_definition_formation, -- AP214/AP242 1743 product_definition_formation_relationship, -- AP214/AP242 1744 product_definition_relationship, -- AP214/AP242 1745 product_definition_substitute, -- AP214/AP242 1746 property_definition, -- AP214/AP242 1747 requirement_for_action_resource, -- AP214/AP242 1748 resource_property, -- AP214/AP242 1749 security_classification, -- AP214 1750 security_classification_level, -- AP214/AP242 1751 shape_representation, -- AP214/AP242 1752 versioned_action_request); -- AP214 1753END_TYPE; 1754 1755-- IN AP242 1756TYPE expression_extension_select = SELECT 1757 (expression_extension_string, 1758 expression_extension_numeric); 1759END_TYPE; 1760 1761-- IN AP242 1762TYPE extension_options = ENUMERATION OF 1763 (eo_none, 1764 eo_cont, 1765 eo_cont_right, 1766 eo_cont_left); 1767END_TYPE; 1768 1769-- DIFF IN AP214 1770-- DIFF IN AP203e2 1771TYPE external_identification_item = SELECT 1772 (action_relationship, -- AP203e2/AP242 1773 action_request_status, -- AP203e2/AP242 1774 applied_organization_assignment, -- AP203e2/AP242 1775 applied_person_and_organization_assignment, -- AP203e2/AP242 1776 approval, -- AP203e2/AP242 1777 approval_status, -- AP203e2/AP242 1778 assembly_bond_definition, -- AP242 1779 date_and_time_assignment, -- AP203e2/AP242 1780 date_assignment, -- AP203e2/AP242 1781 document_file, -- Common 1782 external_source, -- AP203e2/AP242 1783 externally_defined_class, -- Common 1784 externally_defined_context_dependent_unit, -- AP203e2/AP242 1785 externally_defined_conversion_based_unit, -- AP203e2/AP242 1786 externally_defined_general_property, -- Common 1787 externally_defined_picture_representation_item, -- AP203e2/AP242 1788 externally_defined_representation_item, -- AP203e2/AP242 1789 generic_product_definition_reference, -- AP242 1790 organizational_address, -- AP203e2/AP242 1791 product_definition, -- Common 1792 security_classification, -- AP203e2/AP242 1793 trimmed_curve, -- AP203e2/AP242 1794 versioned_action_request); -- AP203e2/AP242 1795END_TYPE; 1796 1797-- IN AP242 1798TYPE face_or_surface = SELECT 1799 (face, 1800 surface); 1801END_TYPE; 1802 1803-- DIFF IN AP214 1804TYPE fill_area_style_tile_shape_select = SELECT 1805 (externally_defined_tile, -- AP203e2/AP242 1806 fill_area_style_tile_coloured_region, -- AP203e2/AP242 1807 fill_area_style_tile_curve_with_style, -- AP203e2/AP242 1808 fill_area_style_tile_symbol_with_style, -- Common 1809 pre_defined_tile); -- AP203e2/AP242 1810END_TYPE; 1811 1812TYPE fill_style_select = SELECT 1813 (fill_area_style_colour, 1814 externally_defined_tile_style, 1815 fill_area_style_tiles, 1816 externally_defined_hatch_style, 1817 fill_area_style_hatching); 1818END_TYPE; 1819 1820-- DIFF IN AP214 1821TYPE font_select = SELECT 1822 (externally_defined_text_font, -- Common 1823 pre_defined_text_font, -- Common 1824 text_font); -- AP203e2/AP242 1825END_TYPE; 1826 1827-- IN AP203e2/AP242 1828TYPE force_measure = REAL; 1829END_TYPE; 1830 1831TYPE founded_item_select = SELECT 1832 (founded_item, 1833 representation_item); 1834END_TYPE; 1835 1836-- IN AP203e2/AP242 1837TYPE frequency_measure = REAL; 1838END_TYPE; 1839 1840-- IN AP203e2/AP242 1841TYPE generalized_surface_select = SELECT 1842 (surface, 1843 face_surface, 1844 surfaced_open_shell); 1845END_TYPE; 1846 1847-- IN AP242 1848TYPE geometric_constraint_element = SELECT 1849 (point, 1850 curve, 1851 surface, 1852 vector, 1853 direction); 1854END_TYPE; 1855 1856-- IN AP203e2/AP242 1857TYPE geometric_item_specific_usage_select = SELECT 1858 (shape_aspect, 1859 shape_aspect_relationship); 1860END_TYPE; 1861 1862-- IN AP242 1863TYPE geometric_model_item = SELECT 1864 (connected_face_set, 1865 edge_loop, 1866 geometric_representation_item); 1867END_TYPE; 1868 1869-- DIFF IN AP214 1870-- DIFF IN AP203e2 1871TYPE geometric_set_select = SELECT 1872 (curve, 1873 point, 1874 surface); 1875END_TYPE; 1876 1877-- IN AP242 1878TYPE geometric_tolerance_modifier = ENUMERATION OF 1879 (any_cross_section, 1880 common_zone, 1881 each_radial_element, 1882 free_state, 1883 least_material_requirement, 1884 line_element, 1885 major_diameter, 1886 maximum_material_requirement, 1887 minor_diameter, 1888 not_convex, 1889 pitch_diameter, 1890 reciprocity_requirement, 1891 separate_requirement, 1892 statistical_tolerance, 1893 tangent_plane); 1894END_TYPE; 1895 1896-- IN AP242 1897TYPE geometric_tolerance_target = SELECT 1898 (dimensional_location, 1899 dimensional_size, 1900 product_definition_shape, 1901 shape_aspect); 1902END_TYPE; 1903 1904-- IN AP214 1905TYPE group_item = SELECT 1906 (geometric_representation_item, 1907 mapped_item, 1908 product_concept_feature, 1909 shape_aspect, 1910 styled_item, 1911 topological_representation_item); 1912END_TYPE; 1913 1914-- DIFF IN AP203e2 1915-- IN AP203e2/AP242 1916TYPE groupable_item = SELECT 1917 (applied_identification_assignment, 1918 applied_name_assignment, 1919 component_feature, 1920 geometric_representation_item, 1921 group_relationship, 1922 mapped_item, 1923 package_product_concept_feature, 1924 product_concept_feature, 1925 product_definition, 1926 product_definition_formation, 1927 property_definition_representation, 1928 representation, 1929 representation_item, 1930 representation_relationship_with_transformation, 1931 shape_aspect, 1932 shape_aspect_relationship, 1933 shape_representation_relationship, 1934 styled_item, 1935 topological_representation_item); 1936 WHERE 1937 WR1: 1938 NOT ('STEP_MERGED_CAD_SCHEMA.GROUP' IN TYPEOF(SELF)); 1939END_TYPE; 1940 1941TYPE hour_in_day = INTEGER; 1942 WHERE 1943 WR1: 1944 (0 <= SELF) AND (SELF < 24); 1945END_TYPE; 1946 1947-- DIFF IN AP214 1948-- DIFF IN AP203e2 1949TYPE id_attribute_select = SELECT 1950 (action, -- Common 1951 address, -- Common 1952 application_context, -- Common 1953 dimensional_size, -- AP242 1954 geometric_tolerance, -- AP242 1955 group, -- Common 1956 organizational_project, -- Common 1957 product_category, -- Common 1958 property_definition, -- Common 1959 representation, -- Common 1960 shape_aspect, -- Common 1961 shape_aspect_relationship); -- Common 1962END_TYPE; 1963 1964-- DIFF IN AP214 1965-- DIFF IN AP203e2 1966TYPE identification_item = SELECT 1967 (action, -- AP214/AP242 1968 action_directive, -- AP214/AP242 1969 action_method, -- AP214/AP242 1970 action_property, -- AP214/AP242 1971 applied_identification_assignment, -- AP214/AP242 1972 approval_status, -- Common 1973 characterized_class, -- AP203e2/AP242 1974 class, -- Common 1975 class_system, -- AP214/AP242 1976 configuration_item, -- Common 1977 contract, -- AP203e2/AP242 1978 dimensional_size, -- Common 1979 document_file, -- Common 1980 document_type, -- AP214/AP242 1981 draughting_model, -- AP214/AP242 1982 effectivity, -- AP214/AP242 1983 general_property, -- Common 1984 group, -- AP203e2/AP242 1985 group_relationship, -- AP203e2/AP242 1986 information_right, -- AP203e2/AP242 1987 information_usage_right, -- AP203e2/AP242 1988 material_designation, -- AP203e2/AP242 1989 measure_representation_item, -- AP214/AP242 1990 mechanical_design_geometric_presentation_representation, -- AP214/AP242 1991 organization, -- Common 1992 organizational_project, -- AP214/AP242 1993 person_and_organization, -- Common 1994 presentation_area, -- AP214/AP242 1995 product, -- Common 1996 product_category, -- AP203e2/AP242 1997 product_class, -- AP203e2/AP242 1998 product_concept, -- Common 1999 product_concept_feature, -- Common 2000 product_concept_feature_category, -- AP214/AP242 2001 product_definition, -- Common 2002 product_definition_formation, -- Common 2003 product_definition_relationship, -- AP214/AP242 2004 product_identification, -- AP203e2/AP242 2005 property_definition, -- AP214/AP242 2006 property_definition_relationship, -- AP214/AP242 2007 representation, -- AP203e2/AP242 2008 rule_set, -- AP203e2/AP242 2009 security_classification, -- AP203e2/AP242 2010 security_classification_level, -- Common 2011 shape_aspect_relationship, -- Common 2012 shape_representation, -- Common 2013 usage_association, -- AP203e2/AP242 2014 versioned_action_request); -- AP214/AP242 2015END_TYPE; 2016 2017TYPE identifier = STRING; 2018END_TYPE; 2019 2020-- IN AP203e2/AP242 2021TYPE illuminance_measure = REAL; 2022END_TYPE; 2023 2024-- IN AP203e2/AP242 2025TYPE inductance_measure = REAL; 2026END_TYPE; 2027 2028-- IN AP242 2029TYPE input_selector = positive_integer; 2030END_TYPE; 2031 2032-- IN AP242 2033TYPE inspected_ecdq_element_select = inspected_element_select; 2034END_TYPE; 2035 2036-- IN AP242 2037TYPE inspected_element_select = SELECT 2038 (assembly_component_usage, 2039 axis2_placement_3d, 2040 b_spline_or_composite_curve_select, 2041 b_spline_or_rectangular_composite_surface_select, 2042 cartesian_transformation_operator_3d, 2043 closed_or_open_shell_select, 2044 connected_face_set, 2045 curve, 2046 direction, 2047 edge_curve, 2048 edge_loop, 2049 face_surface, 2050 global_uncertainty_assigned_context, 2051 global_unit_assigned_context, 2052 group, 2053 manifold_solid_brep, 2054 placement, 2055 point, 2056 presentation_layer_assignment, 2057 representation_item, 2058 styled_item, 2059 surface, 2060 vertex_point); 2061END_TYPE; 2062 2063-- IN AP242 2064TYPE inspected_shape_element_select = inspected_element_select; 2065END_TYPE; 2066 2067-- IN AP203e2/AP242 2068TYPE instance_usage_context_select = SELECT 2069 (product_definition_relationship, 2070 product_definition_usage); 2071END_TYPE; 2072 2073-- IN AP242 2074TYPE internal_or_reflected_shape_aspect = SELECT 2075 (shape_aspect, 2076 identifier); 2077END_TYPE; 2078 2079-- DIFF IN AP214 2080-- IN AP214/AP242 2081TYPE interpolation_type = ENUMERATION OF 2082 (undefined_interpolation_type, 2083 discontinuous_interpolation_type, 2084 synchronous_interpolation_type, 2085 linear_interpolation_type); 2086END_TYPE; 2087 2088-- DIFF IN AP214 2089TYPE invisibility_context = SELECT 2090 (draughting_model, -- AP203e2/AP242 2091 presentation_representation, -- Common 2092 presentation_set); -- Common 2093END_TYPE; 2094 2095TYPE invisible_item = SELECT 2096 (draughting_callout, 2097 presentation_layer_assignment, 2098 representation, 2099 styled_item); 2100END_TYPE; 2101 2102-- IN AP203e2/AP242 2103TYPE ir_usage_item = action_item; 2104END_TYPE; 2105 2106-- IN AP242 2107TYPE item_identified_representation_usage_definition = SELECT 2108 (applied_action_assignment, 2109 applied_action_method_assignment, 2110 applied_action_request_assignment, 2111 applied_approval_assignment, 2112 applied_certification_assignment, 2113 applied_classification_assignment, 2114 applied_contract_assignment, 2115 applied_date_and_time_assignment, 2116 applied_date_assignment, 2117 applied_document_reference, 2118 applied_document_usage_constraint_assignment, 2119 applied_effectivity_assignment, 2120 applied_event_occurrence_assignment, 2121 applied_external_identification_assignment, 2122 applied_group_assignment, 2123 applied_identification_assignment, 2124 applied_ineffectivity_assignment, 2125 applied_name_assignment, 2126 applied_organization_assignment, 2127 applied_organizational_project_assignment, 2128 applied_person_and_organization_assignment, 2129 applied_security_classification_assignment, 2130 applied_time_interval_assignment, 2131 applied_usage_right, 2132 dimensional_size, 2133 geometric_tolerance, 2134 product_definition_relationship, 2135 property_definition, 2136 represented_definition); 2137END_TYPE; 2138 2139-- IN AP242 2140TYPE item_identified_representation_usage_select = SELECT 2141 (representation_item, 2142 list_representation_item, 2143 set_representation_item); 2144END_TYPE; 2145 2146-- DIFF IN AP214 2147-- IN AP214/AP242 2148TYPE kinematic_analysis_definition = SELECT 2149 (interpolated_configuration_sequence, -- Common 2150 prescribed_path); -- AP242 2151END_TYPE; 2152 2153-- IN AP214 2154TYPE kinematic_frame_background = SELECT 2155 (point, 2156 curve, 2157 surface); 2158END_TYPE; 2159 2160-- IN AP242 2161TYPE kinematic_link_representation_items = SELECT 2162 (curve, 2163 point, 2164 rigid_placement, 2165 surface); 2166END_TYPE; 2167 2168-- IN AP214/AP242 2169TYPE kinematic_result = SELECT 2170 (interpolated_configuration_sequence, 2171 resulting_path); 2172END_TYPE; 2173 2174-- IN AP242 2175TYPE kinematic_topology_representation_select = SELECT 2176 (kinematic_topology_structure, 2177 kinematic_topology_directed_structure, 2178 kinematic_topology_network_structure); 2179END_TYPE; 2180 2181TYPE knot_type = ENUMERATION OF 2182 (uniform_knots, 2183 quasi_uniform_knots, 2184 piecewise_bezier_knots, 2185 unspecified); 2186END_TYPE; 2187 2188TYPE label = STRING; 2189END_TYPE; 2190 2191-- IN AP214 2192TYPE language_item = SELECT 2193 (representation); 2194END_TYPE; 2195 2196TYPE layered_item = SELECT 2197 (presentation_representation, 2198 representation_item); 2199END_TYPE; 2200 2201TYPE length_measure = REAL; 2202END_TYPE; 2203 2204TYPE limit_condition = ENUMERATION OF 2205 (maximum_material_condition, 2206 least_material_condition, 2207 regardless_of_feature_size); 2208END_TYPE; 2209 2210-- IN AP242 2211TYPE linear_geometry_constraint_element = SELECT 2212 (line, 2213 plane, 2214 direction, 2215 vector); 2216END_TYPE; 2217 2218-- IN AP242 2219TYPE link_or_shape_representation = SELECT 2220 (kinematic_link_representation, 2221 shape_representation); 2222END_TYPE; 2223 2224-- DIFF IN AP214 2225TYPE list_of_reversible_topology_item = LIST [0:?] OF reversible_topology_item; 2226END_TYPE; 2227 2228TYPE list_representation_item = LIST [1:?] OF representation_item; 2229END_TYPE; 2230 2231-- IN AP242 2232TYPE location_in_aggregate_item = LIST [1:?] OF integer_representation_item; 2233END_TYPE; 2234 2235-- IN AP242 2236TYPE location_of_extreme_value_select = SELECT 2237 (inspected_shape_element_select, 2238 b_spline_surface_knot_locator, 2239 b_spline_curve_knot_locator, 2240 b_spline_curve_segment, 2241 b_spline_surface_strip, 2242 b_spline_surface_patch, 2243 composite_curve_transition_locator, 2244 rectangular_composite_surface_transition_locator, 2245 boundary_curve_of_b_spline_or_rectangular_composite_surface, 2246 oriented_edge, 2247 face_bound, 2248 point_on_edge_curve, 2249 point_on_face_surface, 2250 subedge, 2251 subface); 2252END_TYPE; 2253 2254-- IN AP203e2/AP242 2255TYPE luminous_flux_measure = REAL; 2256END_TYPE; 2257 2258TYPE luminous_intensity_measure = REAL; 2259END_TYPE; 2260 2261-- IN AP203e2/AP242 2262TYPE magnetic_flux_density_measure = REAL; 2263END_TYPE; 2264 2265-- IN AP203e2/AP242 2266TYPE magnetic_flux_measure = REAL; 2267END_TYPE; 2268 2269TYPE marker_select = SELECT 2270 (marker_type, 2271 pre_defined_marker); 2272END_TYPE; 2273 2274TYPE marker_type = ENUMERATION OF 2275 (dot, 2276 x, 2277 plus, 2278 asterisk, 2279 ring, 2280 square, 2281 triangle); 2282END_TYPE; 2283 2284TYPE mass_measure = REAL; 2285END_TYPE; 2286 2287-- IN AP242 2288TYPE maths_atom = SELECT 2289 (maths_simple_atom, 2290 maths_enum_atom); 2291END_TYPE; 2292 2293-- IN AP242 2294TYPE maths_binary = BINARY; 2295END_TYPE; 2296 2297-- IN AP242 2298TYPE maths_boolean = BOOLEAN; 2299END_TYPE; 2300 2301-- IN AP242 2302TYPE maths_enum_atom = SELECT 2303 (elementary_space_enumerators, 2304 ordering_type, 2305 elementary_function_enumerators, 2306 open_closed, 2307 space_constraint_type, 2308 repackage_options, 2309 extension_options); 2310END_TYPE; 2311 2312-- IN AP242 2313TYPE maths_expression = SELECT 2314 (atom_based_value, 2315 maths_tuple, 2316 generic_expression); 2317END_TYPE; 2318 2319-- IN AP242 2320TYPE maths_function_select = SELECT 2321 (maths_function, 2322 elementary_function_enumerators); 2323END_TYPE; 2324 2325-- IN AP242 2326TYPE maths_integer = INTEGER; 2327END_TYPE; 2328 2329-- IN AP242 2330TYPE maths_logical = LOGICAL; 2331END_TYPE; 2332 2333-- IN AP242 2334TYPE maths_number = NUMBER; 2335END_TYPE; 2336 2337-- IN AP242 2338TYPE maths_real = REAL; 2339END_TYPE; 2340 2341-- IN AP242 2342TYPE maths_simple_atom = SELECT 2343 (maths_number, 2344 maths_real, 2345 maths_integer, 2346 maths_logical, 2347 maths_boolean, 2348 maths_string, 2349 maths_binary); 2350END_TYPE; 2351 2352-- IN AP242 2353TYPE maths_space_or_function = SELECT 2354 (maths_space, 2355 maths_function); 2356END_TYPE; 2357 2358-- IN AP242 2359TYPE maths_string = STRING; 2360END_TYPE; 2361 2362-- IN AP242 2363TYPE maths_tuple = LIST [0:?] OF maths_value; 2364END_TYPE; 2365 2366-- IN AP242 2367TYPE maths_value = SELECT 2368 (atom_based_value, 2369 maths_tuple, 2370 generic_expression); 2371 WHERE 2372 constancy: 2373 NOT ('GENERIC_EXPRESSION' IN stripped_typeof(SELF)) OR expression_is_constant(SELF); 2374END_TYPE; 2375 2376-- DIFF IN AP214 2377TYPE measure_value = SELECT 2378 (absorbed_dose_measure, -- AP203e2/AP242 2379 acceleration_measure, -- AP203e2/AP242 2380 amount_of_substance_measure, -- Common 2381 area_measure, -- Common 2382 capacitance_measure, -- AP203e2/AP242 2383 celsius_temperature_measure, -- Common 2384 conductance_measure, -- AP203e2/AP242 2385 context_dependent_measure, -- Common 2386 count_measure, -- Common 2387 descriptive_measure, -- Common 2388 dose_equivalent_measure, -- AP203e2/AP242 2389 electric_charge_measure, -- AP203e2/AP242 2390 electric_current_measure, -- Common 2391 electric_potential_measure, -- AP203e2/AP242 2392 energy_measure, -- AP203e2/AP242 2393 force_measure, -- AP203e2/AP242 2394 frequency_measure, -- AP203e2/AP242 2395 illuminance_measure, -- AP203e2/AP242 2396 inductance_measure, -- AP203e2/AP242 2397 length_measure, -- Common 2398 luminous_flux_measure, -- AP203e2/AP242 2399 luminous_intensity_measure, -- Common 2400 magnetic_flux_density_measure, -- AP203e2/AP242 2401 magnetic_flux_measure, -- AP203e2/AP242 2402 mass_measure, -- Common 2403 non_negative_length_measure, -- Common 2404 numeric_measure, -- Common 2405 parameter_value, -- Common 2406 plane_angle_measure, -- Common 2407 positive_length_measure, -- Common 2408 positive_plane_angle_measure, -- Common 2409 positive_ratio_measure, -- Common 2410 power_measure, -- AP203e2/AP242 2411 pressure_measure, -- AP203e2/AP242 2412 radioactivity_measure, -- AP203e2/AP242 2413 ratio_measure, -- Common 2414 resistance_measure, -- AP203e2/AP242 2415 solid_angle_measure, -- Common 2416 thermodynamic_temperature_measure, -- Common 2417 time_measure, -- Common 2418 velocity_measure, -- AP203e2/AP242 2419 volume_measure); -- Common 2420END_TYPE; 2421 2422-- IN AP242 2423TYPE measured_value_select = SELECT 2424 (boolean_value, 2425 measure_value, 2426 plane_angle_and_ratio_pair, 2427 plane_angle_and_length_pair); 2428END_TYPE; 2429 2430-- IN AP203e2/AP242 2431TYPE mechanical_design_and_draughting_relationship_select = SELECT 2432 (draughting_model, 2433 mechanical_design_geometric_presentation_representation, 2434 mechanical_design_presentation_representation_with_draughting, 2435 mechanical_design_shaded_presentation_representation, 2436 shape_representation); 2437END_TYPE; 2438 2439-- IN AP203e2/AP242 2440TYPE mechanical_design_geometric_presentation_area_items = SELECT 2441 (axis2_placement, 2442 mapped_item); 2443END_TYPE; 2444 2445-- IN AP203e2/AP242 2446TYPE mechanical_design_geometric_presentation_representation_items = SELECT 2447 (axis2_placement, 2448 camera_model_d3, 2449 mapped_item, 2450 styled_item); 2451END_TYPE; 2452 2453-- IN AP242 2454TYPE mechanical_design_shaded_presentation_area_items = SELECT 2455 (axis2_placement, 2456 mapped_item); 2457END_TYPE; 2458 2459-- IN AP242 2460TYPE mechanical_design_shaded_presentation_representation_items = SELECT 2461 (axis2_placement, 2462 camera_model_d3, 2463 mapped_item, 2464 styled_item); 2465END_TYPE; 2466 2467-- IN AP203e2/AP242 2468TYPE message = STRING; 2469END_TYPE; 2470 2471TYPE minute_in_hour = INTEGER; 2472 WHERE 2473 WR1: 2474 (0 <= SELF) AND (SELF <= 59); 2475END_TYPE; 2476 2477TYPE month_in_year_number = INTEGER; 2478 WHERE 2479 WR1: 2480 (1 <= SELF) AND (SELF <= 12); 2481END_TYPE; 2482 2483-- IN AP214 2484TYPE motion_parameter_measure = SELECT 2485 (parameter_value, 2486 measure_with_unit); 2487END_TYPE; 2488 2489-- DIFF IN AP214 2490-- DIFF IN AP203e2 2491TYPE multi_language_attribute_item = SELECT 2492 (action, -- AP214/AP242 2493 action_directive, -- AP214/AP242 2494 action_method, -- AP214/AP242 2495 action_property, -- AP214/AP242 2496 action_relationship, -- AP214/AP242 2497 actuated_kinematic_pair, -- AP242 2498 alternate_product_relationship, -- Common 2499 application_context, -- Common 2500 applied_certification_assignment, -- AP203e2/AP242 2501 applied_document_reference, -- AP203e2/AP242 2502 applied_document_usage_constraint_assignment, -- AP203e2/AP242 2503 applied_external_identification_assignment, -- AP203e2/AP242 2504 applied_identification_assignment, -- AP203e2/AP242 2505 applied_organizational_project_assignment, -- AP203e2/AP242 2506 approval, -- AP203e2/AP242 2507 approval_relationship, -- Common 2508 approval_status, -- AP203e2/AP242 2509 assembly_component_usage_substitute, -- Common 2510 attribute_value_assignment, -- AP203e2/AP242 2511 certification, -- Common 2512 certification_type, -- AP203e2/AP242 2513 colour, -- AP203e2/AP242 2514 configuration_design, -- Common 2515 configuration_item, -- Common 2516 contract, -- Common 2517 data_environment, -- AP214/AP242 2518 date_role, -- Common 2519 date_time_role, -- Common 2520 descriptive_representation_item, -- Common 2521 document_relationship, -- Common 2522 document_usage_role, -- AP203e2/AP242 2523 draughting_title, -- AP214/AP242 2524 effectivity, -- Common 2525 effectivity_relationship, -- Common 2526 event_occurrence, -- Common 2527 external_source, -- Common 2528 general_property, -- Common 2529 general_property_relationship, -- Common 2530 geometric_representation_item, -- Common 2531 geometric_tolerance, -- Common 2532 group, -- AP214/AP242 2533 group_relationship, -- AP214/AP242 2534 identification_role, -- Common 2535 information_right, -- AP203e2/AP242 2536 information_usage_right, -- AP203e2/AP242 2537 kinematic_pair, -- AP214/AP242 2538 make_from_usage_option, -- AP203e2/AP242 2539 mapped_item, -- Common 2540 name_assignment, -- AP214/AP242 2541 object_role, -- AP203e2/AP242 2542 organization_relationship, -- Common 2543 organization_role, -- Common 2544 organizational_project, -- Common 2545 organizational_project_relationship, -- Common 2546 organizational_project_role, -- AP203e2/AP242 2547 pair_actuator, -- AP214 2548 person_and_organization, -- AP203e2/AP242 2549 person_and_organization_role, -- Common 2550 presentation_layer_assignment, -- AP214/AP242 2551 process_product_association, -- AP214/AP242 2552 product, -- Common 2553 product_concept, -- Common 2554 product_concept_feature, -- AP214/AP242 2555 product_concept_feature_association, -- AP214/AP242 2556 product_concept_relationship, -- Common 2557 product_definition, -- Common 2558 product_definition_context, -- AP203e2/AP242 2559 product_definition_formation, -- Common 2560 product_definition_formation_relationship, -- Common 2561 product_definition_relationship, -- Common 2562 product_definition_shape, -- AP203e2/AP242 2563 product_definition_substitute, -- AP214/AP242 2564 product_related_product_category, -- Common 2565 property_definition, -- Common 2566 property_definition_relationship, -- AP214/AP242 2567 representation, -- Common 2568 representation_relationship, -- Common 2569 requirement_for_action_resource, -- AP214/AP242 2570 resource_property, -- AP214/AP242 2571 resource_requirement_type, -- AP214/AP242 2572 security_classification, -- Common 2573 security_classification_assignment, -- AP203e2/AP242 2574 shape_aspect, -- Common 2575 shape_aspect_relationship, -- Common 2576 shape_representation, -- AP203e2/AP242 2577 styled_item, -- AP214/AP242 2578 time_interval_role, -- Common 2579 topological_representation_item, -- Common 2580 uncertainty_measure_with_unit, -- Common 2581 uncertainty_qualifier, -- AP214/AP242 2582 usage_association, -- AP203e2/AP242 2583 versioned_action_request, -- AP214/AP242 2584 versioned_action_request_relationship); -- AP214/AP242 2585END_TYPE; 2586 2587-- IN AP242 2588TYPE multi_or_next_assembly_usage_occurrence = SELECT 2589 (multi_level_reference_designator, 2590 next_assembly_usage_occurrence); 2591END_TYPE; 2592 2593TYPE name_attribute_select = SELECT 2594 (action_request_solution, 2595 address, 2596 configuration_design, 2597 context_dependent_shape_representation, 2598 derived_unit, 2599 effectivity, 2600 person_and_organization, 2601 product_definition, 2602 product_definition_substitute, 2603 property_definition_representation); 2604END_TYPE; 2605 2606-- DIFF IN AP214 2607TYPE name_item = SELECT 2608 (assembly_component_usage, -- AP203e2/AP242 2609 external_class_library, -- AP203e2/AP242 2610 group, -- AP203e2/AP242 2611 group_relationship, -- AP203e2/AP242 2612 kinematic_joint, -- AP214 2613 kinematic_link, -- AP214 2614 kinematic_structure, -- AP214 2615 product, -- AP203e2/AP242 2616 product_definition); -- AP203e2/AP242 2617END_TYPE; 2618 2619TYPE non_negative_length_measure = length_measure; 2620 WHERE 2621 WR1: 2622 SELF >= 0.0; 2623END_TYPE; 2624 2625-- IN AP203e2/AP242 2626TYPE nonnegative_integer = INTEGER; 2627 WHERE 2628 nonnegativity: 2629 SELF >= 0; 2630END_TYPE; 2631 2632TYPE null_style = ENUMERATION OF 2633 (null); 2634END_TYPE; 2635 2636TYPE numeric_measure = NUMBER; 2637END_TYPE; 2638 2639-- IN AP242 2640TYPE one_or_two = positive_integer; 2641 WHERE 2642 in_range: 2643 (SELF = 1) OR (SELF = 2); 2644END_TYPE; 2645 2646-- IN AP242 2647TYPE open_closed = ENUMERATION OF 2648 (open, 2649 closed); 2650END_TYPE; 2651 2652-- IN AP242 2653TYPE ordering_type = ENUMERATION OF 2654 (by_rows, 2655 by_columns); 2656END_TYPE; 2657 2658-- DIFF IN AP214 2659-- DIFF IN AP203e2 2660TYPE organization_item = SELECT 2661 (action, -- Common 2662 action_directive, -- Common 2663 action_method, -- AP214/AP242 2664 action_property, -- AP214/AP242 2665 action_relationship, -- AP214/AP242 2666 action_request_solution, -- AP214/AP242 2667 alternate_product_relationship, -- Common 2668 applied_action_assignment, -- Common 2669 applied_classification_assignment, -- Common 2670 applied_identification_assignment, -- Common 2671 applied_organization_assignment, -- AP214/AP242 2672 applied_person_and_organization_assignment, -- AP214/AP242 2673 applied_security_classification_assignment, -- AP203e2/AP242 2674 approval, -- Common 2675 approval_status, -- AP214/AP242 2676 assembly_component_usage_substitute, -- Common 2677 certification, -- Common 2678 class, -- Common 2679 class_system, -- AP214/AP242 2680 configuration_design, -- AP214/AP242 2681 configuration_effectivity, -- AP214/AP242 2682 configuration_item, -- Common 2683 configured_effectivity_assignment, -- AP214/AP242 2684 contract, -- Common 2685 data_quality_definition, -- AP242 2686 document_file, -- Common 2687 document_type, -- AP214/AP242 2688 draughting_model, -- AP214/AP242 2689 drawing_revision, -- AP214/AP242 2690 effectivity, -- AP214/AP242 2691 event_occurrence, -- AP214/AP242 2692 executed_action, -- Common 2693 general_property, -- Common 2694 information_usage_right, -- AP203e2/AP242 2695 material_designation, -- AP214/AP242 2696 mechanical_design_geometric_presentation_representation, -- AP214/AP242 2697 organization, -- AP214/AP242 2698 organization_relationship, -- AP214/AP242 2699 organizational_project, -- Common 2700 person_and_organization, -- AP214/AP242 2701 presentation_area, -- AP214/AP242 2702 product, -- Common 2703 product_concept, -- AP214/AP242 2704 product_concept_feature, -- AP214/AP242 2705 product_concept_feature_association, -- AP214/AP242 2706 product_concept_feature_category, -- AP214/AP242 2707 product_concept_feature_category_usage, -- AP214/AP242 2708 product_definition, -- Common 2709 product_definition_formation, -- Common 2710 product_definition_formation_relationship, -- Common 2711 product_definition_relationship, -- AP214/AP242 2712 product_definition_substitute, -- AP214/AP242 2713 property_definition, -- Common 2714 requirement_for_action_resource, -- AP214/AP242 2715 resource_property, -- AP214/AP242 2716 rule_action, -- AP203e2/AP242 2717 security_classification, -- Common 2718 security_classification_level, -- AP214/AP242 2719 shape_representation, -- Common 2720 versioned_action_request); -- Common 2721END_TYPE; 2722 2723-- IN AP203e2/AP242 2724TYPE orientation_basis_select = SELECT 2725 (axis2_placement_3d, 2726 min_and_major_ply_orientation_basis); 2727END_TYPE; 2728 2729-- IN AP242 2730TYPE parallel_offset_type = ENUMERATION OF 2731 (curve_2d_offset, 2732 curve_3d_offset, 2733 surface_offset); 2734END_TYPE; 2735 2736TYPE parameter_value = REAL; 2737END_TYPE; 2738 2739-- IN AP242 2740TYPE path_or_composite_curve = SELECT 2741 (composite_curve, 2742 path); 2743END_TYPE; 2744 2745TYPE pcurve_or_surface = SELECT 2746 (pcurve, 2747 surface); 2748END_TYPE; 2749 2750-- DIFF IN AP214 2751-- DIFF IN AP203e2 2752-- DIFF IN Deprecated AP203e1 2753TYPE person_and_organization_item = SELECT 2754 (action, -- AP203e2/AP214/AP242 2755 action_directive, -- AP203e2/AP214/AP242 2756 action_method, -- AP214/AP242 2757 action_property, -- AP214/AP242 2758 action_relationship, -- AP214/AP242 2759 action_request_solution, -- AP214/AP242 2760 alternate_product_relationship, -- AP203e2/AP214/AP242 2761 applied_action_assignment, -- AP203e2/AP214/AP242 2762 applied_classification_assignment, -- AP203e2/AP214/AP242 2763 applied_identification_assignment, -- AP203e2/AP242 2764 applied_organization_assignment, -- AP214/AP242 2765 applied_person_and_organization_assignment, -- AP214/AP242 2766 applied_security_classification_assignment, -- AP203e2/AP242 2767 approval, -- AP203e2/AP242 2768 approval_status, -- AP214/AP242 2769 assembly_component_usage_substitute, -- AP203e2/AP214/AP242 2770 certification, -- AP203e2/AP214/AP242 2771 change, -- Deprecated AP203e1 2772 change_request, -- Deprecated AP203e1 2773 class, -- AP214/AP242 2774 class_system, -- AP214/AP242 2775 configuration_design, -- AP214/AP242 2776 configuration_effectivity, -- AP214/AP242 2777 configuration_item, -- Common 2778 configured_effectivity_assignment, -- AP214/AP242 2779 contract, -- Common 2780 data_quality_definition, -- AP242 2781 document_file, -- AP203e2/AP214/AP242 2782 document_type, -- AP214/AP242 2783 draughting_model, -- AP214/AP242 2784 drawing_revision, -- AP214/AP242 2785 event_occurrence, -- AP214/AP242 2786 executed_action, -- AP203e2/AP214/AP242 2787 general_property, -- AP203e2/AP214/AP242 2788 information_usage_right, -- AP203e2/AP242 2789 material_designation, -- AP214/AP242 2790 mechanical_design_geometric_presentation_representation, -- AP214/AP242 2791 organization, -- AP214/AP242 2792 organization_relationship, -- AP214/AP242 2793 organizational_project, -- AP203e2/AP214/AP242 2794 person_and_organization, -- AP203e2/AP214/AP242 2795 presentation_area, -- AP214/AP242 2796 product, -- Common 2797 product_concept, -- AP214/AP242 2798 product_concept_feature, -- AP214/AP242 2799 product_concept_feature_association, -- AP214/AP242 2800 product_concept_feature_category, -- AP214/AP242 2801 product_concept_feature_category_usage, -- AP214/AP242 2802 product_definition, -- Common 2803 product_definition_formation, -- Common 2804 product_definition_formation_relationship, -- AP203e2/AP214/AP242 2805 product_definition_relationship, -- AP214/AP242 2806 product_definition_substitute, -- AP214/AP242 2807 property_definition, -- AP203e2/AP214/AP242 2808 requirement_for_action_resource, -- AP214/AP242 2809 resource_property, -- AP214/AP242 2810 rule_action, -- AP203e2/AP242 2811 security_classification, -- Common 2812 security_classification_level, -- AP214/AP242 2813 shape_representation, -- AP203e2/AP214/AP242 2814 start_request, -- Deprecated AP203e1 2815 start_work, -- Deprecated AP203e1 2816 versioned_action_request); -- AP203e2/AP214/AP242 2817END_TYPE; 2818 2819TYPE person_organization_select = SELECT 2820 (person, 2821 organization, 2822 person_and_organization); 2823END_TYPE; 2824 2825-- IN AP203e2/AP242 2826TYPE picture_representation_item_select = SELECT 2827 (styled_item, 2828 planar_box, 2829 axis2_placement_2d); 2830END_TYPE; 2831 2832-- IN AP242 2833TYPE planar_curve_select = SELECT 2834 (line, 2835 conic, 2836 trimmed_curve, 2837 pcurve, 2838 surface_curve); 2839 WHERE 2840 WR1: 2841 SELF\geometric_representation_item.dim = 3; 2842 WR2: 2843 check_curve_planarity(SELF); 2844END_TYPE; 2845 2846TYPE plane_angle_measure = REAL; 2847END_TYPE; 2848 2849TYPE plane_or_planar_box = SELECT 2850 (plane, 2851 planar_box); 2852END_TYPE; 2853 2854-- IN AP203e2/AP242 2855TYPE point_and_vector_member = SELECT 2856 (point, 2857 direction); 2858END_TYPE; 2859 2860-- IN AP203e2/AP242 2861TYPE point_and_vector_members = LIST [2:3] OF point_and_vector_member; 2862END_TYPE; 2863 2864-- IN AP242 2865TYPE point_curve_or_surface_constraint_element = SELECT 2866 (point, 2867 curve, 2868 surface); 2869END_TYPE; 2870 2871-- IN AP203e2/AP242 2872TYPE point_path_members = LIST [1:?] OF point_and_vector; 2873END_TYPE; 2874 2875-- IN AP242 2876TYPE point_placement_shape_representation_item = SELECT 2877 (compound_representation_item, 2878 mapped_item, 2879 axis2_placement_3d); 2880END_TYPE; 2881 2882-- IN AP203e2/AP242 2883TYPE positive_integer = nonnegative_integer; 2884 WHERE 2885 positivity: 2886 SELF > 0; 2887END_TYPE; 2888 2889TYPE positive_length_measure = non_negative_length_measure; 2890 WHERE 2891 WR1: 2892 SELF > 0.0; 2893END_TYPE; 2894 2895TYPE positive_plane_angle_measure = plane_angle_measure; 2896 WHERE 2897 WR1: 2898 SELF > 0.0; 2899END_TYPE; 2900 2901TYPE positive_ratio_measure = ratio_measure; 2902 WHERE 2903 WR1: 2904 SELF > 0.0; 2905END_TYPE; 2906 2907-- IN AP203e2/AP242 2908TYPE power_measure = REAL; 2909END_TYPE; 2910 2911-- IN AP242 2912TYPE preferred_ordering = ENUMERATION OF 2913 (extremity_order, 2914 detected_order); 2915END_TYPE; 2916 2917TYPE preferred_surface_curve_representation = ENUMERATION OF 2918 (curve_3d, 2919 pcurve_s1, 2920 pcurve_s2); 2921END_TYPE; 2922 2923TYPE presentable_text = STRING; 2924 WHERE 2925 WR1: 2926 control_characters_free(SELF); 2927END_TYPE; 2928 2929TYPE presentation_representation_select = SELECT 2930 (presentation_representation, 2931 presentation_set); 2932END_TYPE; 2933 2934TYPE presentation_size_assignment_select = SELECT 2935 (presentation_view, 2936 presentation_area, 2937 area_in_set); 2938END_TYPE; 2939 2940-- DIFF IN AP214 2941-- DIFF IN AP203e2 2942TYPE presentation_style_select = SELECT 2943 (approximation_tolerance, -- AP214 2944 curve_style, -- Common 2945 externally_defined_style, -- AP214/AP242 2946 fill_area_style, -- Common 2947 null_style, -- Common 2948 point_style, -- Common 2949 pre_defined_presentation_style, -- AP214 2950 surface_style_usage, -- Common 2951 symbol_style, -- Common 2952 text_style); -- Common 2953END_TYPE; 2954 2955TYPE presented_item_select = SELECT 2956 (action, 2957 action_method, 2958 action_relationship, 2959 product_concept, 2960 product_concept_feature, 2961 product_concept_feature_category, 2962 product_definition, 2963 product_definition_formation, 2964 product_definition_relationship); 2965END_TYPE; 2966 2967-- IN AP203e2/AP242 2968TYPE pressure_measure = REAL; 2969END_TYPE; 2970 2971-- IN AP242 2972TYPE previous_element_assignment_select = SELECT 2973 (modify_element, 2974 delete_element); 2975END_TYPE; 2976 2977-- IN AP203e2/AP242 2978TYPE product_definition_or_assembly_relationship = SELECT 2979 (assembly_component_usage, 2980 product_definition); 2981END_TYPE; 2982 2983-- IN AP203e2/AP242 2984TYPE product_definition_or_breakdown_element_usage = SELECT 2985 (product_definition, 2986 product_definition_usage); 2987END_TYPE; 2988 2989-- IN AP203e2/AP242 2990TYPE product_definition_or_product_definition_relationship = SELECT 2991 (product_definition, 2992 product_definition_usage); 2993END_TYPE; 2994 2995-- IN AP242 2996TYPE product_definition_or_reference = SELECT 2997 (product_definition, 2998 generic_product_definition_reference); 2999END_TYPE; 3000 3001TYPE product_or_formation_or_definition = SELECT 3002 (product, 3003 product_definition_formation, 3004 product_definition); 3005END_TYPE; 3006 3007-- IN AP214 3008TYPE product_or_presentation_space = ENUMERATION OF 3009 (product_shape_space, 3010 presentation_area_space); 3011END_TYPE; 3012 3013-- IN AP242 3014TYPE product_space = SELECT 3015 (uniform_product_space, 3016 listed_product_space); 3017END_TYPE; 3018 3019-- DIFF IN AP203e2 3020TYPE project_item = SELECT 3021 (assembly_component_usage, -- AP214/AP242 3022 configuration_item, -- AP214/AP242 3023 executed_action, -- Common 3024 product, -- AP214/AP242 3025 product_concept, -- Common 3026 product_definition, -- AP214/AP242 3027 product_definition_formation); -- AP214/AP242 3028END_TYPE; 3029 3030-- IN AP214/AP242 3031TYPE property_or_shape_select = SELECT 3032 (property_definition, 3033 shape_definition); 3034END_TYPE; 3035 3036-- IN AP242 3037TYPE property_variable_rep_select = SELECT 3038 (dimensional_size, 3039 representation); 3040END_TYPE; 3041 3042-- IN AP242 3043TYPE radial_geometry_constraint_element = SELECT 3044 (circle, 3045 cylindrical_surface, 3046 conical_surface, 3047 spherical_surface, 3048 right_circular_cylinder, 3049 right_circular_cone, 3050 sphere); 3051END_TYPE; 3052 3053-- IN AP203e2/AP242 3054TYPE radioactivity_measure = REAL; 3055END_TYPE; 3056 3057TYPE ratio_measure = REAL; 3058END_TYPE; 3059 3060-- IN AP242 3061TYPE real_interval = SELECT 3062 (real_interval_from_min, 3063 real_interval_to_max, 3064 finite_real_interval, 3065 elementary_space); 3066 WHERE 3067 WR1: 3068 NOT ('ELEMENTARY_SPACE' IN stripped_typeof(SELF)) OR (SELF\elementary_space.space_id = es_reals); 3069END_TYPE; 3070 3071TYPE rendering_properties_select = SELECT 3072 (surface_style_reflectance_ambient, 3073 surface_style_transparent); 3074END_TYPE; 3075 3076-- IN AP242 3077TYPE repackage_options = ENUMERATION OF 3078 (ro_nochange, 3079 ro_wrap_as_tuple, 3080 ro_unwrap_tuple); 3081END_TYPE; 3082 3083TYPE represented_definition = SELECT 3084 (general_property, 3085 property_definition, 3086 property_definition_relationship, 3087 shape_aspect, 3088 shape_aspect_relationship); 3089END_TYPE; 3090 3091-- DIFF IN AP203e2 3092-- IN AP203e2/AP242 3093TYPE requirement_assigned_item = SELECT 3094 (assembly_joint, -- AP242 3095 configuration_item, -- Common 3096 descriptive_representation_item, -- Common 3097 product, -- Common 3098 product_class, -- Common 3099 product_definition, -- Common 3100 product_definition_formation, -- Common 3101 product_definition_relationship, -- Common 3102 representation, -- Common 3103 shape_aspect); -- Common 3104END_TYPE; 3105 3106-- IN AP203e2/AP242 3107TYPE requirement_satisfaction_item = SELECT 3108 (requirement_assigned_item); 3109END_TYPE; 3110 3111-- IN AP203e2/AP242 3112TYPE requirement_source_item = SELECT 3113 (characterized_object, 3114 group, 3115 group_relationship, 3116 product, 3117 product_definition, 3118 product_definition_formation, 3119 product_definition_relationship, 3120 shape_aspect); 3121END_TYPE; 3122 3123-- IN AP203e2/AP242 3124TYPE resistance_measure = REAL; 3125END_TYPE; 3126 3127TYPE reversible_topology = SELECT 3128 (reversible_topology_item, 3129 list_of_reversible_topology_item, 3130 set_of_reversible_topology_item); 3131END_TYPE; 3132 3133TYPE reversible_topology_item = SELECT 3134 (edge, 3135 path, 3136 face, 3137 face_bound, 3138 closed_shell, 3139 open_shell); 3140END_TYPE; 3141 3142-- DIFF IN AP214 3143-- IN AP214/AP242 3144TYPE rigid_placement = SELECT 3145 (axis2_placement_3d, -- Common 3146 su_parameters); -- AP242 3147END_TYPE; 3148 3149TYPE role_select = SELECT 3150 (action_assignment, 3151 action_request_assignment, 3152 approval_assignment, 3153 approval_date_time, 3154 certification_assignment, 3155 contract_assignment, 3156 document_reference, 3157 effectivity_assignment, 3158 group_assignment, 3159 name_assignment, 3160 security_classification_assignment); 3161END_TYPE; 3162 3163-- IN AP214 3164TYPE rotational_range_measure = SELECT 3165 (plane_angle_measure, 3166 unlimited_range); 3167END_TYPE; 3168 3169-- IN AP203e2/AP242 3170TYPE rule_superseded_item = SELECT 3171 (product_definition_formation); 3172END_TYPE; 3173 3174TYPE second_in_minute = REAL; 3175 WHERE 3176 WR1: 3177 (0 <= SELF) AND (SELF <= 60.0); 3178END_TYPE; 3179 3180-- DIFF IN AP214 3181-- DIFF IN AP203e2 3182-- DIFF IN Deprecated AP203e1 3183TYPE security_classification_item = SELECT 3184 (action, -- AP214/AP242 3185 action_directive, -- AP214/AP242 3186 action_property, -- AP214/AP242 3187 applied_action_assignment, -- AP214/AP242 3188 assembly_component_usage, -- AP203e2/AP242/Deprecated AP203e1 3189 assembly_component_usage_substitute, -- AP214/AP242 3190 class_system, -- AP214/AP242 3191 configuration_design, -- AP214/AP242 3192 configuration_effectivity, -- AP214/AP242 3193 configured_effectivity_assignment, -- AP214/AP242 3194 document, -- AP203e2/AP242 3195 document_file, -- AP203e2/AP214/AP242 3196 draughting_model, -- AP214/AP242 3197 drawing_revision, -- AP214/AP242 3198 executed_action, -- AP214/AP242 3199 general_property, -- AP214/AP242 3200 make_from_usage_option, -- AP203e2/AP242 3201 material_designation, -- AP214/AP242 3202 mechanical_design_geometric_presentation_representation, -- AP214/AP242 3203 organizational_project, -- AP214/AP242 3204 presentation_area, -- AP214/AP242 3205 product, -- AP203e2/AP214/AP242 3206 product_concept, -- AP214/AP242 3207 product_concept_feature, -- AP214/AP242 3208 product_concept_feature_category, -- AP214/AP242 3209 product_definition, -- AP203e2/AP214/AP242 3210 product_definition_formation, -- Common 3211 product_definition_relationship, -- AP214/AP242 3212 product_definition_usage, -- AP203e2/AP242 3213 property_definition, -- AP214/AP242 3214 resource_property, -- AP214/AP242 3215 shape_representation, -- AP214/AP242 3216 versioned_action_request); -- AP214/AP242 3217END_TYPE; 3218 3219-- IN AP242 3220TYPE set_inner_area_boundary = SET [1:?] OF bounded_primitive_2d; 3221END_TYPE; 3222 3223-- DIFF IN AP214 3224TYPE set_of_reversible_topology_item = SET [0:?] OF reversible_topology_item; 3225END_TYPE; 3226 3227TYPE set_representation_item = SET [1:?] OF representation_item; 3228END_TYPE; 3229 3230TYPE shading_curve_method = ENUMERATION OF 3231 (constant_colour, 3232 linear_colour); 3233END_TYPE; 3234 3235TYPE shading_surface_method = ENUMERATION OF 3236 (constant_shading, 3237 colour_shading, 3238 dot_shading, 3239 normal_shading); 3240END_TYPE; 3241 3242-- IN AP242 3243TYPE shape_data_quality_assessment_specification_select = SELECT 3244 (shape_data_quality_assessment_by_logical_test, 3245 shape_data_quality_assessment_by_numerical_test); 3246END_TYPE; 3247 3248-- IN AP242 3249TYPE shape_data_quality_value_limit_type_select = SELECT 3250 (shape_data_quality_value_range, 3251 shape_data_quality_value_limit); 3252END_TYPE; 3253 3254TYPE shape_definition = SELECT 3255 (product_definition_shape, 3256 shape_aspect, 3257 shape_aspect_relationship); 3258END_TYPE; 3259 3260-- IN AP242 3261TYPE shape_dimension_representation_item = SELECT 3262 (compound_representation_item, 3263 descriptive_representation_item, 3264 measure_representation_item, 3265 placement); 3266END_TYPE; 3267 3268-- IN AP242 3269TYPE shape_model = SELECT 3270 (constructive_geometry_representation, 3271 shape_representation); 3272END_TYPE; 3273 3274-- IN AP242 3275TYPE shape_representation_item = SELECT 3276 (geometric_representation_item, 3277 topological_representation_item); 3278END_TYPE; 3279 3280-- IN AP242 3281TYPE shape_representation_with_parameters_items = SELECT 3282 (descriptive_representation_item, 3283 direction, 3284 measure_representation_item, 3285 placement); 3286END_TYPE; 3287 3288-- DIFF IN AP214 3289TYPE shell = SELECT 3290 (closed_shell, -- Common 3291 open_shell, -- Common 3292 vertex_shell, -- AP203e2/AP242 3293 wire_shell); -- AP203e2/AP242 3294END_TYPE; 3295 3296TYPE si_prefix = ENUMERATION OF 3297 (exa, 3298 peta, 3299 tera, 3300 giga, 3301 mega, 3302 kilo, 3303 hecto, 3304 deca, 3305 deci, 3306 centi, 3307 milli, 3308 micro, 3309 nano, 3310 pico, 3311 femto, 3312 atto); 3313END_TYPE; 3314 3315-- CASE DIFF IN AP214 3316-- CASE DIFF IN AP203e2 3317TYPE si_unit_name = ENUMERATION OF 3318 (metre, 3319 gram, 3320 second, 3321 ampere, 3322 kelvin, 3323 mole, 3324 candela, 3325 radian, 3326 steradian, 3327 hertz, 3328 newton, 3329 pascal, 3330 joule, 3331 watt, 3332 coulomb, 3333 volt, 3334 farad, 3335 ohm, 3336 siemens, 3337 weber, 3338 tesla, 3339 henry, 3340 degree_Celsius, 3341 lumen, 3342 lux, 3343 becquerel, 3344 gray, 3345 sievert); 3346END_TYPE; 3347 3348-- IN AP242 3349TYPE simple_datum_reference_modifier = ENUMERATION OF 3350 (any_cross_section, 3351 any_longitudinal_section, 3352 basic, 3353 contacting_feature, 3354 degree_of_freedom_constraint_u, 3355 degree_of_freedom_constraint_v, 3356 degree_of_freedom_constraint_w, 3357 degree_of_freedom_constraint_x, 3358 degree_of_freedom_constraint_y, 3359 degree_of_freedom_constraint_z, 3360 distance_variable, 3361 free_state, 3362 least_material_requirement, 3363 line, 3364 major_diameter, 3365 maximum_material_requirement, 3366 minor_diameter, 3367 orientation, 3368 pitch_diameter, 3369 plane, 3370 point, 3371 translation); 3372END_TYPE; 3373 3374TYPE size_select = SELECT 3375 (positive_length_measure, 3376 measure_with_unit, 3377 descriptive_measure); 3378END_TYPE; 3379 3380-- DIFF IN AP203e2 3381-- IN AP203e2/AP242 3382TYPE sketch_basis_select = SELECT 3383 (curve_bounded_surface, -- Common 3384 face_surface, -- Common 3385 planar_curve_select); -- AP242 3386END_TYPE; 3387 3388-- IN AP242 3389TYPE sketch_element_select = SELECT 3390 (curve, 3391 point); 3392 WHERE 3393 WR1: 3394 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); 3395END_TYPE; 3396 3397-- IN AP242 3398TYPE sketch_type_select = SELECT 3399 (neutral_sketch_representation, 3400 positioned_sketch, 3401 subsketch); 3402END_TYPE; 3403 3404TYPE solid_angle_measure = REAL; 3405END_TYPE; 3406 3407TYPE source = ENUMERATION OF 3408 (made, 3409 bought, 3410 not_known); 3411END_TYPE; 3412 3413-- DIFF IN AP214 3414TYPE source_item = SELECT 3415 (identifier, -- Common 3416 message); -- AP203e2/AP242 3417END_TYPE; 3418 3419-- IN AP242 3420TYPE space_constraint_type = ENUMERATION OF 3421 (sc_equal, 3422 sc_subspace, 3423 sc_member); 3424END_TYPE; 3425 3426-- IN AP214/AP242 3427TYPE spatial_rotation = SELECT 3428 (ypr_rotation, 3429 rotation_about_direction); 3430END_TYPE; 3431 3432-- IN AP214 3433TYPE specified_item = SELECT 3434 (drawing_revision); 3435END_TYPE; 3436 3437-- IN AP242 3438TYPE spherical_pair_select = SELECT 3439 (spherical_pair, 3440 spherical_pair_with_pin); 3441END_TYPE; 3442 3443-- IN AP203e2/AP242 3444TYPE start_request_item = SELECT 3445 (product_definition_formation); 3446END_TYPE; 3447 3448-- IN AP242 3449TYPE statistical_value_type = ENUMERATION OF 3450 (number_of_inspected_instances, 3451 number_of_quality_defects_detected); 3452END_TYPE; 3453 3454-- IN AP203e2/AP242 3455TYPE string_representation_item_select = SELECT 3456 (descriptive_representation_item, 3457 included_text_block, 3458 structured_text_composition); 3459END_TYPE; 3460 3461-- DIFF IN AP214 3462TYPE style_context_select = SELECT 3463 (group, -- Common 3464 presentation_layer_assignment, -- Common 3465 presentation_set, -- Common 3466 representation, -- Common 3467 representation_item, -- Common 3468 representation_relationship, -- AP203e2/AP242 3469 shape_representation_relationship); -- AP214 3470END_TYPE; 3471 3472-- IN AP242 DIS Fixes 3473TYPE styled_item_target = SELECT 3474 (representation_item, -- relax select to allow existing topology usage 3475 representation); 3476END_TYPE; 3477 3478-- IN AP242 3479TYPE summary_report_type = ENUMERATION OF 3480 (unspecified, 3481 conclusion_only, 3482 number_of_quality_defects, 3483 number_of_inspections_and_conclusion, 3484 full_statistics); 3485END_TYPE; 3486 3487-- IN AP214/AP242 3488TYPE supported_item = SELECT 3489 (action_directive, 3490 action, 3491 action_method); 3492END_TYPE; 3493 3494-- IN AP242 3495TYPE surface_boundary_type = ENUMERATION OF 3496 (u_parameter_min, 3497 v_parameter_min, 3498 u_parameter_max, 3499 v_parameter_max); 3500END_TYPE; 3501 3502-- IN AP242 3503TYPE surface_model = SELECT 3504 (face_based_surface_model, 3505 shell_based_surface_model); 3506END_TYPE; 3507 3508-- IN AP242 3509TYPE surface_or_solid_model = SELECT 3510 (surface_model, 3511 solid_model); 3512END_TYPE; 3513 3514TYPE surface_side = ENUMERATION OF 3515 (positive, 3516 negative, 3517 both); 3518END_TYPE; 3519 3520-- DIFF IN AP214 3521TYPE surface_side_style_select = SELECT 3522 (pre_defined_surface_side_style, -- AP203e2/AP242 3523 surface_side_style); -- Common 3524END_TYPE; 3525 3526TYPE surface_style_element_select = SELECT 3527 (surface_style_fill_area, 3528 surface_style_boundary, 3529 surface_style_silhouette, 3530 surface_style_segmentation_curve, 3531 surface_style_control_grid, 3532 surface_style_parameter_line, 3533 surface_style_rendering); 3534END_TYPE; 3535 3536-- IN AP214 3537TYPE surface_tolerance_deviation = positive_length_measure; 3538END_TYPE; 3539 3540-- IN AP214 3541TYPE surface_tolerance_parameter = REAL; 3542END_TYPE; 3543 3544-- IN AP242 3545TYPE swept_surface_or_solid = SELECT 3546 (swept_surface, 3547 swept_face_solid, 3548 swept_area_solid); 3549END_TYPE; 3550 3551TYPE symbol_style_select = SELECT 3552 (symbol_colour); 3553END_TYPE; 3554 3555-- IN AP242 3556TYPE tangent_contact_type = ENUMERATION OF 3557 (point_contact, 3558 curve_contact, 3559 surface_contact); 3560END_TYPE; 3561 3562-- IN AP242 3563TYPE tessellated_edge_or_vertex = SELECT 3564 (tessellated_edge, 3565 tessellated_vertex); 3566END_TYPE; 3567 3568TYPE text = STRING; 3569END_TYPE; 3570 3571TYPE text_alignment = label; 3572END_TYPE; 3573 3574TYPE text_delineation = label; 3575END_TYPE; 3576 3577-- DIFF IN AP203e2 3578TYPE text_or_character = SELECT 3579 (annotation_text, -- Common 3580 annotation_text_character, -- Common 3581 composite_text, -- Common 3582 defined_character_glyph, -- AP214/AP242 3583 text_literal); -- Common 3584END_TYPE; 3585 3586TYPE text_path = ENUMERATION OF 3587 (left, 3588 right, 3589 up, 3590 down); 3591END_TYPE; 3592 3593-- DIFF IN AP203e2 3594TYPE text_string_representation_item = SELECT 3595 (annotation_text, -- Common 3596 annotation_text_character, -- Common 3597 axis2_placement, -- Common 3598 composite_text, -- Common 3599 defined_character_glyph, -- AP214/AP242 3600 text_literal); -- Common 3601END_TYPE; 3602 3603TYPE thermodynamic_temperature_measure = REAL; 3604END_TYPE; 3605 3606-- DIFF IN AP214 3607-- DIFF IN AP203e2 3608TYPE time_interval_item = SELECT 3609 (action, -- Common 3610 action_directive, -- AP214/AP242 3611 action_method, -- AP214/AP242 3612 action_property, -- AP214/AP242 3613 action_relationship, -- AP214/AP242 3614 action_request_solution, -- AP214/AP242 3615 alternate_product_relationship, -- AP214/AP242 3616 applied_action_assignment, -- AP214/AP242 3617 applied_classification_assignment, -- AP214/AP242 3618 applied_person_and_organization_assignment, -- AP214/AP242 3619 approval_status, -- AP214/AP242 3620 assembly_component_usage_substitute, -- AP214/AP242 3621 certification, -- AP214/AP242 3622 class, -- AP214/AP242 3623 class_system, -- AP214/AP242 3624 configuration_design, -- AP214/AP242 3625 configuration_effectivity, -- AP214/AP242 3626 configuration_item, -- AP214/AP242 3627 configured_effectivity_assignment, -- AP214/AP242 3628 contract, -- AP214/AP242 3629 document_file, -- AP214/AP242 3630 draughting_model, -- AP214/AP242 3631 drawing_revision, -- AP214/AP242 3632 executed_action, -- AP214/AP242 3633 general_property, -- AP214/AP242 3634 material_designation, -- AP214/AP242 3635 mechanical_design_geometric_presentation_representation, -- AP214/AP242 3636 organization_relationship, -- AP214/AP242 3637 organizational_project, -- AP214/AP242 3638 person_and_organization, -- AP214/AP242 3639 presentation_area, -- AP214/AP242 3640 product, -- AP214/AP242 3641 product_concept, -- AP214/AP242 3642 product_concept_feature, -- AP214/AP242 3643 product_concept_feature_association, -- AP214/AP242 3644 product_concept_feature_category, -- AP214/AP242 3645 product_concept_feature_category_usage, -- AP214/AP242 3646 product_definition, -- AP214/AP242 3647 product_definition_formation, -- AP214/AP242 3648 product_definition_formation_relationship, -- AP214/AP242 3649 product_definition_relationship, -- AP214/AP242 3650 product_definition_substitute, -- AP214/AP242 3651 property_definition, -- AP214/AP242 3652 requirement_for_action_resource, -- AP214/AP242 3653 resource_property, -- AP214/AP242 3654 security_classification, -- AP214/AP242 3655 security_classification_level, -- AP214/AP242 3656 shape_representation, -- AP214/AP242 3657 time_interval_based_effectivity, -- AP203e2/AP242 3658 versioned_action_request); -- AP214/AP242 3659END_TYPE; 3660 3661TYPE time_measure = REAL; 3662END_TYPE; 3663 3664-- IN AP214 3665TYPE tolerance_deviation_select = SELECT 3666 (curve_tolerance_deviation, 3667 surface_tolerance_deviation); 3668END_TYPE; 3669 3670-- DIFF IN AP214 3671-- DIFF IN AP203e2 3672TYPE tolerance_method_definition = SELECT 3673 (limits_and_fits, 3674 tolerance_value); 3675END_TYPE; 3676 3677-- IN AP214 3678TYPE tolerance_parameter_select = SELECT 3679 (curve_tolerance_parameter, 3680 surface_tolerance_parameter); 3681END_TYPE; 3682 3683-- IN AP214 3684TYPE tolerance_select = SELECT 3685 (approximation_tolerance_deviation, 3686 approximation_tolerance_parameter); 3687END_TYPE; 3688 3689-- IN AP242 3690TYPE tolerance_zone_target = SELECT 3691 (dimensional_location, 3692 dimensional_size, 3693 geometric_tolerance, 3694 general_datum_reference); 3695END_TYPE; 3696 3697TYPE transformation = SELECT 3698 (item_defined_transformation, 3699 functionally_defined_transformation); 3700END_TYPE; 3701 3702TYPE transition_code = ENUMERATION OF 3703 (discontinuous, 3704 continuous, 3705 cont_same_gradient, 3706 cont_same_gradient_same_curvature); 3707END_TYPE; 3708 3709-- IN AP214 3710TYPE translational_range_measure = SELECT 3711 (length_measure, 3712 unlimited_range); 3713END_TYPE; 3714 3715-- IN AP203e2/AP242 3716TYPE trim_condition_select = SELECT 3717 (length_measure, 3718 plane_angle_measure, 3719 generalized_surface_select, 3720 solid_model); 3721END_TYPE; 3722 3723-- IN AP203e2/AP242 3724TYPE trim_intent = ENUMERATION OF 3725 (blind, 3726 offset, 3727 through_all, 3728 unspecified, 3729 up_to_next); 3730END_TYPE; 3731 3732TYPE trimming_preference = ENUMERATION OF 3733 (cartesian, 3734 parameter, 3735 unspecified); 3736END_TYPE; 3737 3738TYPE trimming_select = SELECT 3739 (cartesian_point, 3740 parameter_value); 3741END_TYPE; 3742 3743-- IN AP242 3744TYPE tuple_space = SELECT 3745 (product_space, 3746 extended_tuple_space); 3747END_TYPE; 3748 3749TYPE u_direction_count = INTEGER; 3750 WHERE 3751 WR1: 3752 SELF > 1; 3753END_TYPE; 3754 3755-- IN AP242 3756TYPE u_or_v_parameter = ENUMERATION OF 3757 (u_parameter, 3758 v_parameter); 3759END_TYPE; 3760 3761TYPE unit = SELECT 3762 (derived_unit, 3763 named_unit); 3764END_TYPE; 3765 3766-- IN AP214 3767TYPE unlimited_range = ENUMERATION OF 3768 (unlimited); 3769END_TYPE; 3770 3771-- IN AP242 3772TYPE used_quality_representation_select = SELECT 3773 (data_quality_criteria_representation, 3774 data_quality_inspection_result_representation); 3775END_TYPE; 3776 3777TYPE v_direction_count = INTEGER; 3778 WHERE 3779 WR1: 3780 SELF > 1; 3781END_TYPE; 3782 3783-- IN AP242 3784TYPE value_format_type = identifier; 3785 WHERE 3786 WR1: 3787 LENGTH(SELF) <= 80; 3788END_TYPE; 3789 3790-- DIFF IN AP214 3791-- DIFF IN AP203e2 3792TYPE value_qualifier = SELECT 3793 (precision_qualifier, -- Common 3794 type_qualifier, -- Common 3795 uncertainty_qualifier, -- Common 3796 value_format_type_qualifier); -- AP242 3797END_TYPE; 3798 3799-- DIFF IN AP214 3800-- DIFF IN AP203e2 3801TYPE vector_or_direction = SELECT 3802 (direction, 3803 vector); 3804END_TYPE; 3805 3806-- IN AP203e2/AP242 3807TYPE velocity_measure = REAL; 3808END_TYPE; 3809 3810TYPE volume_measure = REAL; 3811END_TYPE; 3812 3813-- IN AP203e2/AP242 3814TYPE week_in_year_number = INTEGER; 3815 WHERE 3816 WR1: 3817 (1 <= SELF) AND (SELF <= 53); 3818END_TYPE; 3819 3820-- IN AP203e2/AP242 3821TYPE work_item = SELECT 3822 (product_definition_formation); 3823END_TYPE; 3824 3825TYPE year_number = INTEGER; 3826END_TYPE; 3827 3828-- IN AP214/AP242 3829TYPE ypr_enumeration = ENUMERATION OF 3830 (yaw, 3831 pitch, 3832 roll); 3833END_TYPE; 3834 3835-- IN AP214/AP242 3836TYPE ypr_rotation = ARRAY [ypr_index(yaw):ypr_index(roll)] OF plane_angle_measure; 3837END_TYPE; 3838 3839-- IN AP242 3840TYPE zero_or_one = nonnegative_integer; 3841 WHERE 3842 in_range: 3843 (SELF = 0) OR (SELF = 1); 3844END_TYPE; 3845 3846-- IN AP242 3847ENTITY abrupt_change_of_surface_normal 3848 SUBTYPE OF (geometry_with_local_irregularity); 3849 small_vector_tolerance : length_measure; 3850 test_point_distance_tolerance : length_measure; 3851 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 3852 WHERE 3853 WR1: 3854 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 3855 WR2: 3856 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]); 3857 WR3: 3858 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]); 3859 WR4: 3860 validate_accuracy_types(SELF, []); 3861END_ENTITY; 3862 3863-- IN AP214/AP242 3864ENTITY abs_function 3865 SUBTYPE OF (unary_function_call); 3866END_ENTITY; 3867 3868-- IN AP203e2/AP242 3869ENTITY absorbed_dose_measure_with_unit 3870 SUBTYPE OF (measure_with_unit); 3871 WHERE 3872 WR1: 3873 'STEP_MERGED_CAD_SCHEMA.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 3874END_ENTITY; 3875 3876-- IN AP203e2/AP242 3877ENTITY absorbed_dose_unit 3878 SUBTYPE OF (derived_unit); 3879 WHERE 3880 WR1: 3881 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.gray); 3882END_ENTITY; 3883 3884-- IN AP203e2/AP242 3885ENTITY abstract_variable 3886 SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item); 3887END_ENTITY; 3888 3889-- IN AP242 3890ENTITY abstracted_expression_function 3891 SUBTYPE OF (maths_function, quantifier_expression); 3892 DERIVE 3893 expr : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; 3894 SELF\quantifier_expression.variables : LIST [1:?] OF UNIQUE generic_variable := remove_first(SELF\multiple_arity_generic_expression.operands); 3895 WHERE 3896 WR1: 3897 SIZEOF(QUERY (operand <* SELF\multiple_arity_generic_expression.operands| NOT has_values_space(operand))) = 0; 3898END_ENTITY; 3899 3900-- IN AP203e2/AP242 3901ENTITY acceleration_measure_with_unit 3902 SUBTYPE OF (measure_with_unit); 3903 WHERE 3904 WR1: 3905 'STEP_MERGED_CAD_SCHEMA.ACCELERATION_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 3906END_ENTITY; 3907 3908-- IN AP203e2/AP242 3909ENTITY acceleration_unit 3910 SUBTYPE OF (derived_unit); 3911 WHERE 3912 WR1: 3913 derive_dimensional_exponents(SELF) = dimensional_exponents(1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0); 3914END_ENTITY; 3915 3916-- IN AP214/AP242 3917ENTITY acos_function 3918 SUBTYPE OF (unary_function_call); 3919END_ENTITY; 3920 3921ENTITY action; 3922 name : label; 3923 description : OPTIONAL text; 3924 chosen_method : action_method; 3925 DERIVE 3926 id : identifier := get_id_value(SELF); 3927 WHERE 3928 WR1: 3929 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 3930END_ENTITY; 3931 3932ENTITY action_assignment 3933 ABSTRACT SUPERTYPE; 3934 assigned_action : action; 3935 DERIVE 3936 role : object_role := get_role(SELF); 3937 WHERE 3938 WR1: 3939 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 3940END_ENTITY; 3941 3942ENTITY action_directive; 3943 name : label; 3944 description : OPTIONAL text; 3945 analysis : text; 3946 comment : text; 3947 requests : SET [1:?] OF versioned_action_request; 3948END_ENTITY; 3949 3950ENTITY action_method; 3951 name : label; 3952 description : OPTIONAL text; 3953 consequence : text; 3954 purpose : text; 3955END_ENTITY; 3956 3957-- IN AP203e2/AP242 3958ENTITY action_method_assignment 3959 ABSTRACT SUPERTYPE; 3960 assigned_action_method : action_method; 3961 role : action_method_role; 3962END_ENTITY; 3963 3964ENTITY action_method_relationship; 3965 name : label; 3966 description : OPTIONAL text; 3967 relating_method : action_method; 3968 related_method : action_method; 3969END_ENTITY; 3970 3971-- IN AP203e2/AP242 3972ENTITY action_method_role; 3973 name : label; 3974 description : OPTIONAL text; 3975END_ENTITY; 3976 3977ENTITY action_property; 3978 name : label; 3979 description : text; 3980 definition : characterized_action_definition; 3981END_ENTITY; 3982 3983ENTITY action_property_representation; 3984 name : label; 3985 description : text; 3986 property : action_property; 3987 representation : representation; 3988END_ENTITY; 3989 3990ENTITY action_relationship; 3991 name : label; 3992 description : OPTIONAL text; 3993 relating_action : action; 3994 related_action : action; 3995END_ENTITY; 3996 3997ENTITY action_request_assignment 3998 ABSTRACT SUPERTYPE; 3999 assigned_action_request : versioned_action_request; 4000 DERIVE 4001 role : object_role := get_role(SELF); 4002 WHERE 4003 WR1: 4004 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 4005END_ENTITY; 4006 4007ENTITY action_request_solution; 4008 method : action_method; 4009 request : versioned_action_request; 4010 DERIVE 4011 description : text := get_description_value(SELF); 4012 name : label := get_name_value(SELF); 4013 WHERE 4014 WR1: 4015 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 4016 WR2: 4017 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 4018END_ENTITY; 4019 4020ENTITY action_request_status; 4021 status : label; 4022 assigned_request : versioned_action_request; 4023END_ENTITY; 4024 4025-- IN AP214/AP242 4026ENTITY action_resource; 4027 name : label; 4028 description : OPTIONAL text; 4029 usage : SET [1:?] OF supported_item; 4030 kind : action_resource_type; 4031END_ENTITY; 4032 4033-- CASE DIFF IN AP214 4034-- IN AP214/AP242 4035ENTITY action_resource_requirement; 4036 name : label; 4037 description : text; 4038 kind : resource_requirement_type; 4039 operations : SET [1:?] OF characterized_action_definition; 4040END_ENTITY; 4041 4042-- IN AP214/AP242 4043ENTITY action_resource_type; 4044 name : label; 4045END_ENTITY; 4046 4047ENTITY action_status; 4048 status : label; 4049 assigned_action : executed_action; 4050END_ENTITY; 4051 4052-- IN AP242 4053ENTITY actuated_kinematic_pair 4054 SUBTYPE OF (kinematic_pair); 4055 t_x : OPTIONAL actuated_direction; 4056 t_y : OPTIONAL actuated_direction; 4057 t_z : OPTIONAL actuated_direction; 4058 r_x : OPTIONAL actuated_direction; 4059 r_y : OPTIONAL actuated_direction; 4060 r_z : OPTIONAL actuated_direction; 4061END_ENTITY; 4062 4063-- IN AP242 4064ENTITY add_element 4065 SUBTYPE OF (change_element); 4066END_ENTITY; 4067 4068ENTITY address; 4069 internal_location : OPTIONAL label; 4070 street_number : OPTIONAL label; 4071 street : OPTIONAL label; 4072 postal_box : OPTIONAL label; 4073 town : OPTIONAL label; 4074 region : OPTIONAL label; 4075 postal_code : OPTIONAL label; 4076 country : OPTIONAL label; 4077 facsimile_number : OPTIONAL label; 4078 telephone_number : OPTIONAL label; 4079 electronic_mail_address : OPTIONAL label; 4080 telex_number : OPTIONAL label; 4081 DERIVE 4082 name : label := get_name_value(SELF); 4083 url : identifier := get_id_value(SELF); 4084 WHERE 4085 WR1: 4086 ((((((((((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); 4087END_ENTITY; 4088 4089ENTITY advanced_brep_shape_representation 4090 SUBTYPE OF (shape_representation); 4091 WHERE 4092 WR1: 4093 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; 4094 WR2: 4095 SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; 4096 WR3: 4097 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; 4098 WR4: 4099 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; 4100 WR5: 4101 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; 4102 WR6: 4103 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; 4104END_ENTITY; 4105 4106ENTITY advanced_face 4107 SUBTYPE OF (face_surface); 4108 WHERE 4109 WR1: 4110 SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.ELEMENTARY_SURFACE', 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.SWEPT_SURFACE' ] * TYPEOF(face_geometry)) = 1; 4111 WR2: 4112 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; 4113 WR3: 4114 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; 4115 WR4: 4116 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; 4117 WR5: 4118 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; 4119 WR6: 4120 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); 4121 WR7: 4122 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; 4123 WR8: 4124 SIZEOF(QUERY (bnd <* bounds| NOT (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP', 'STEP_MERGED_CAD_SCHEMA.VERTEX_LOOP' ] * TYPEOF(bnd.bound)) = 1))) = 0; 4125 WR9: 4126 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; 4127 WR10: 4128 (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); 4129END_ENTITY; 4130 4131-- IN AP242 4132ENTITY agc_with_dimension 4133 SUBTYPE OF (angle_geometric_constraint); 4134 angle_value : plane_angle_measure; 4135END_ENTITY; 4136 4137-- IN AP242 4138ENTITY all_around_shape_aspect 4139 SUBTYPE OF (continuous_shape_aspect); 4140END_ENTITY; 4141 4142-- CASE DIFF IN AP214 4143ENTITY alternate_product_relationship; 4144 name : label; 4145 definition : OPTIONAL text; 4146 alternate : product; 4147 base : product; 4148 basis : text; 4149 UNIQUE 4150 UR1 : alternate, base; 4151 WHERE 4152 WR1: 4153 alternate :<>: base; 4154END_ENTITY; 4155 4156ENTITY amount_of_substance_measure_with_unit 4157 SUBTYPE OF (measure_with_unit); 4158 WHERE 4159 WR1: 4160 'STEP_MERGED_CAD_SCHEMA.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 4161END_ENTITY; 4162 4163ENTITY amount_of_substance_unit 4164 SUBTYPE OF (named_unit); 4165 WHERE 4166 WR1: 4167 ((((((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); 4168END_ENTITY; 4169 4170-- IN AP214/AP242 4171ENTITY and_expression 4172 SUBTYPE OF (multiple_arity_boolean_expression); 4173END_ENTITY; 4174 4175-- IN AP242 4176ENTITY angle_assembly_constraint_with_dimension 4177 SUBTYPE OF (binary_assembly_constraint, agc_with_dimension); 4178END_ENTITY; 4179 4180-- IN AP203e2/AP242 4181ENTITY angle_direction_reference 4182 SUBTYPE OF (representation_item_relationship, geometric_representation_item); 4183 SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select; 4184 SELF\representation_item_relationship.relating_representation_item : orientation_basis_select; 4185 WHERE 4186 WR1: 4187 ('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)); 4188END_ENTITY; 4189 4190-- IN AP242 4191ENTITY angle_geometric_constraint 4192 SUBTYPE OF (explicit_geometric_constraint); 4193 SELF\explicit_constraint.constrained_elements : SET [1:?] OF linear_geometry_constraint_element; 4194 SELF\explicit_constraint.reference_elements : SET [0:1] OF linear_geometry_constraint_element; 4195 WHERE 4196 WR1: 4197 (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); 4198END_ENTITY; 4199 4200ENTITY angular_dimension 4201 SUBTYPE OF (dimension_curve_directed_callout); 4202END_ENTITY; 4203 4204ENTITY angular_location 4205 SUBTYPE OF (dimensional_location); 4206 angle_selection : angle_relator; 4207END_ENTITY; 4208 4209ENTITY angular_size 4210 SUBTYPE OF (dimensional_size); 4211 angle_selection : angle_relator; 4212END_ENTITY; 4213 4214ENTITY angularity_tolerance 4215 SUBTYPE OF (geometric_tolerance_with_datum_reference); 4216END_ENTITY; 4217 4218-- DIFF IN AP214 4219-- DIFF IN AP203e2 4220ENTITY annotation_curve_occurrence 4221 SUPERTYPE OF (ONEOF(dimension_curve, leader_curve, projection_curve)) 4222 SUBTYPE OF (annotation_occurrence); 4223 SELF\styled_item.item : curve_or_curve_set; 4224END_ENTITY; 4225 4226ENTITY annotation_fill_area 4227 SUBTYPE OF (geometric_representation_item); 4228 boundaries : SET [1:?] OF curve; 4229 WHERE 4230 WR1: 4231 (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); 4232END_ENTITY; 4233 4234ENTITY annotation_fill_area_occurrence 4235 SUBTYPE OF (annotation_occurrence); 4236 fill_style_target : point; 4237 SELF\styled_item.item : annotation_fill_area; 4238END_ENTITY; 4239 4240-- DIFF IN AP214 4241-- DIFF IN AP203e2 4242ENTITY annotation_occurrence 4243 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)) 4244 SUBTYPE OF (styled_item); 4245 WHERE 4246 WR1: 4247 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); 4248 WR2: 4249 SIZEOF(QUERY (reps <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_REPRESENTATION_SELECT' IN TYPEOF(reps)))) = 0; 4250END_ENTITY; 4251 4252ENTITY annotation_occurrence_associativity 4253 SUBTYPE OF (annotation_occurrence_relationship); 4254 WHERE 4255 WR1: 4256 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; 4257END_ENTITY; 4258 4259ENTITY annotation_occurrence_relationship; 4260 name : label; 4261 description : text; 4262 relating_annotation_occurrence : annotation_occurrence; 4263 related_annotation_occurrence : annotation_occurrence; 4264END_ENTITY; 4265 4266ENTITY annotation_plane 4267 SUBTYPE OF (annotation_occurrence, geometric_representation_item); 4268 elements : OPTIONAL SET [1:?] OF annotation_plane_element; 4269 SELF\styled_item.item : plane_or_planar_box; 4270 WHERE 4271 WR1: 4272 SELF\geometric_representation_item.dim = 3; 4273 WR2: 4274 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)); 4275 WR3: 4276 ('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])); 4277 WR4: 4278 (SIZEOF(SELF\styled_item.styles) = 1) AND (SIZEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles) = 1); 4279END_ENTITY; 4280 4281ENTITY annotation_subfigure_occurrence 4282 SUBTYPE OF (annotation_symbol_occurrence); 4283 WHERE 4284 WR1: 4285 SIZEOF(QUERY (sty <* SELF.styles| NOT (SIZEOF(sty.styles) = 1))) = 0; 4286 WR2: 4287 SIZEOF(QUERY (sty <* SELF.styles| NOT ('STEP_MERGED_CAD_SCHEMA.NULL_STYLE' IN TYPEOF(sty.styles[1])))) = 0; 4288 WR3: 4289 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item); 4290 WR4: 4291 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF(SELF.item\mapped_item.mapping_source.mapped_representation); 4292END_ENTITY; 4293 4294ENTITY annotation_symbol 4295 SUBTYPE OF (mapped_item); 4296 SELF\mapped_item.mapping_source : symbol_representation_map; 4297 SELF\mapped_item.mapping_target : symbol_target; 4298 WHERE 4299 WR1: 4300 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); 4301END_ENTITY; 4302 4303ENTITY annotation_symbol_occurrence 4304 SUBTYPE OF (annotation_occurrence); 4305 SELF\styled_item.item : annotation_symbol_occurrence_item; 4306END_ENTITY; 4307 4308ENTITY annotation_text 4309 SUBTYPE OF (mapped_item); 4310 SELF\mapped_item.mapping_target : axis2_placement; 4311 WHERE 4312 WR1: 4313 'STEP_MERGED_CAD_SCHEMA.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); 4314 WR2: 4315 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); 4316END_ENTITY; 4317 4318ENTITY annotation_text_character 4319 SUBTYPE OF (mapped_item); 4320 alignment : text_alignment; 4321 SELF\mapped_item.mapping_target : axis2_placement; 4322 WHERE 4323 WR1: 4324 'STEP_MERGED_CAD_SCHEMA.CHARACTER_GLYPH_SYMBOL' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); 4325 WR2: 4326 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); 4327END_ENTITY; 4328 4329ENTITY annotation_text_occurrence 4330 SUBTYPE OF (annotation_occurrence); 4331 SELF\styled_item.item : annotation_text_occurrence_item; 4332END_ENTITY; 4333 4334ENTITY apex 4335 SUBTYPE OF (derived_shape_aspect); 4336END_ENTITY; 4337 4338ENTITY application_context; 4339 application : label; 4340 DERIVE 4341 description : text := get_description_value(SELF); 4342 id : identifier := get_id_value(SELF); 4343 INVERSE 4344 context_elements : SET [1:?] OF application_context_element FOR frame_of_reference; 4345 WHERE 4346 WR1: 4347 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 4348 WR2: 4349 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 4350END_ENTITY; 4351 4352ENTITY application_context_element 4353 SUPERTYPE OF (ONEOF(product_concept_context, product_context, product_definition_context)); 4354 name : label; 4355 frame_of_reference : application_context; 4356END_ENTITY; 4357 4358-- IN AP214 4359ENTITY application_context_relationship; 4360 name : label; 4361 description : OPTIONAL text; 4362 relating_context : application_context; 4363 related_context : application_context; 4364END_ENTITY; 4365 4366-- IN AP242 4367ENTITY application_defined_function 4368 SUBTYPE OF (maths_function); 4369 explicit_domain : tuple_space; 4370 explicit_range : tuple_space; 4371 parameters : LIST [0:?] OF maths_value; 4372 WHERE 4373 WR1: 4374 expression_is_constant(explicit_domain); 4375 WR2: 4376 expression_is_constant(explicit_range); 4377END_ENTITY; 4378 4379ENTITY application_protocol_definition; 4380 status : label; 4381 application_interpreted_model_schema_name : label; 4382 application_protocol_year : year_number; 4383 application : application_context; 4384END_ENTITY; 4385 4386ENTITY applied_action_assignment 4387 SUBTYPE OF (action_assignment); 4388 items : SET [1:?] OF action_item; 4389END_ENTITY; 4390 4391-- IN AP203e2/AP242 4392ENTITY applied_action_method_assignment 4393 SUBTYPE OF (action_method_assignment); 4394 items : SET [1:?] OF action_method_items; 4395END_ENTITY; 4396 4397ENTITY applied_action_request_assignment 4398 SUBTYPE OF (action_request_assignment); 4399 items : SET [1:?] OF action_request_item; 4400END_ENTITY; 4401 4402ENTITY applied_approval_assignment 4403 SUBTYPE OF (approval_assignment); 4404 items : SET [1:?] OF approval_item; 4405END_ENTITY; 4406 4407-- IN AP214/AP242 4408ENTITY applied_area 4409 SUBTYPE OF (shape_aspect); 4410 WHERE 4411 WR1: 4412 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape); 4413 WR2: 4414 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; 4415 WR3: 4416 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; 4417 WR4: 4418 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; 4419 WR5: 4420 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; 4421 WR6: 4422 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; 4423 WR7: 4424 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; 4425END_ENTITY; 4426 4427-- IN AP203e2/AP242 4428ENTITY applied_attribute_classification_assignment 4429 SUBTYPE OF (attribute_classification_assignment); 4430 items : SET [1:?] OF attribute_classification_item; 4431 SELF\attribute_classification_assignment.assigned_class : class; 4432END_ENTITY; 4433 4434ENTITY applied_certification_assignment 4435 SUBTYPE OF (certification_assignment); 4436 items : SET [1:?] OF certification_item; 4437END_ENTITY; 4438 4439ENTITY applied_classification_assignment 4440 SUBTYPE OF (classification_assignment); 4441 items : SET [1:?] OF classification_item; 4442END_ENTITY; 4443 4444ENTITY applied_contract_assignment 4445 SUBTYPE OF (contract_assignment); 4446 items : SET [1:?] OF contract_item; 4447END_ENTITY; 4448 4449ENTITY applied_date_and_time_assignment 4450 SUBTYPE OF (date_and_time_assignment); 4451 items : SET [1:?] OF date_and_time_item; 4452END_ENTITY; 4453 4454ENTITY applied_date_assignment 4455 SUBTYPE OF (date_assignment); 4456 items : SET [1:?] OF date_item; 4457END_ENTITY; 4458 4459ENTITY applied_document_reference 4460 SUBTYPE OF (document_reference); 4461 items : SET [1:?] OF document_reference_item; 4462END_ENTITY; 4463 4464ENTITY applied_document_usage_constraint_assignment 4465 SUBTYPE OF (document_usage_constraint_assignment); 4466 items : SET [1:?] OF document_reference_item; 4467END_ENTITY; 4468 4469ENTITY applied_effectivity_assignment 4470 SUBTYPE OF (effectivity_assignment); 4471 items : SET [1:?] OF effectivity_item; 4472END_ENTITY; 4473 4474ENTITY applied_event_occurrence_assignment 4475 SUBTYPE OF (event_occurrence_assignment); 4476 items : SET [1:?] OF event_occurrence_item; 4477END_ENTITY; 4478 4479ENTITY applied_external_identification_assignment 4480 SUBTYPE OF (external_identification_assignment); 4481 items : SET [1:?] OF external_identification_item; 4482END_ENTITY; 4483 4484-- DIFF IN AP214 4485ENTITY applied_group_assignment 4486 SUBTYPE OF (group_assignment); 4487 items : SET [1:?] OF groupable_item; 4488END_ENTITY; 4489 4490ENTITY applied_identification_assignment 4491 SUBTYPE OF (identification_assignment); 4492 items : SET [1:?] OF identification_item; 4493END_ENTITY; 4494 4495-- IN AP214/AP242 4496ENTITY applied_ineffectivity_assignment 4497 SUBTYPE OF (effectivity_assignment); 4498 items : SET [1:?] OF effectivity_item; 4499 WHERE 4500 WR1: 4501 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; 4502END_ENTITY; 4503 4504-- DIFF IN AP214 4505ENTITY applied_name_assignment 4506 SUBTYPE OF (name_assignment); 4507 item : name_item; 4508END_ENTITY; 4509 4510ENTITY applied_organization_assignment 4511 SUBTYPE OF (organization_assignment); 4512 items : SET [1:?] OF organization_item; 4513END_ENTITY; 4514 4515ENTITY applied_organizational_project_assignment 4516 SUBTYPE OF (organizational_project_assignment); 4517 items : SET [1:?] OF project_item; 4518END_ENTITY; 4519 4520ENTITY applied_person_and_organization_assignment 4521 SUBTYPE OF (person_and_organization_assignment); 4522 items : SET [1:?] OF person_and_organization_item; 4523END_ENTITY; 4524 4525ENTITY applied_presented_item 4526 SUBTYPE OF (presented_item); 4527 items : SET [1:?] OF presented_item_select; 4528END_ENTITY; 4529 4530ENTITY applied_security_classification_assignment 4531 SUBTYPE OF (security_classification_assignment); 4532 items : SET [1:?] OF security_classification_item; 4533END_ENTITY; 4534 4535-- DIFF IN AP203e2 4536-- IN AP203e2/AP214 4537ENTITY applied_time_interval_assignment 4538 SUBTYPE OF (time_interval_assignment); 4539 items : SET [1:?] OF time_interval_item; 4540END_ENTITY; 4541 4542-- IN AP203e2/AP242 4543ENTITY applied_usage_right 4544 SUBTYPE OF (applied_action_assignment); 4545 SELF\applied_action_assignment.items : SET [1:?] OF ir_usage_item; 4546END_ENTITY; 4547 4548ENTITY approval; 4549 status : approval_status; 4550 level : label; 4551END_ENTITY; 4552 4553ENTITY approval_assignment 4554 ABSTRACT SUPERTYPE; 4555 assigned_approval : approval; 4556 DERIVE 4557 role : object_role := get_role(SELF); 4558 WHERE 4559 WR1: 4560 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 4561END_ENTITY; 4562 4563ENTITY approval_date_time; 4564 date_time : date_time_select; 4565 dated_approval : approval; 4566 DERIVE 4567 role : object_role := get_role(SELF); 4568 WHERE 4569 WR1: 4570 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 4571END_ENTITY; 4572 4573ENTITY approval_person_organization; 4574 person_organization : person_organization_select; 4575 authorized_approval : approval; 4576 role : approval_role; 4577END_ENTITY; 4578 4579ENTITY approval_relationship; 4580 name : label; 4581 description : OPTIONAL text; 4582 relating_approval : approval; 4583 related_approval : approval; 4584END_ENTITY; 4585 4586ENTITY approval_role; 4587 role : label; 4588 DERIVE 4589 description : text := get_description_value(SELF); 4590 WHERE 4591 WR1: 4592 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 4593END_ENTITY; 4594 4595ENTITY approval_status; 4596 name : label; 4597END_ENTITY; 4598 4599-- IN AP214 4600ENTITY approximation_tolerance 4601 SUBTYPE OF (founded_item); 4602 tolerance : tolerance_select; 4603END_ENTITY; 4604 4605-- IN AP214 4606ENTITY approximation_tolerance_deviation 4607 SUBTYPE OF (founded_item); 4608 tessellation_type : approximation_method; 4609 tolerances : SET [1:2] OF tolerance_deviation_select; 4610 definition_space : product_or_presentation_space; 4611 WHERE 4612 wr1: 4613 (HIINDEX(SELF.tolerances) = 1) XOR (TYPEOF(SELF.tolerances[1]) <> TYPEOF(SELF.tolerances[2])); 4614END_ENTITY; 4615 4616-- IN AP214 4617ENTITY approximation_tolerance_parameter 4618 SUBTYPE OF (founded_item); 4619 tolerances : SET [1:2] OF tolerance_parameter_select; 4620 WHERE 4621 wr1: 4622 (HIINDEX(SELF.tolerances) = 1) XOR (TYPEOF(SELF.tolerances[1]) <> TYPEOF(SELF.tolerances[2])); 4623END_ENTITY; 4624 4625ENTITY area_in_set; 4626 area : presentation_area; 4627 in_set : presentation_set; 4628END_ENTITY; 4629 4630ENTITY area_measure_with_unit 4631 SUBTYPE OF (measure_with_unit); 4632 WHERE 4633 WR1: 4634 'STEP_MERGED_CAD_SCHEMA.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 4635END_ENTITY; 4636 4637ENTITY area_unit 4638 SUBTYPE OF (derived_unit); 4639 WHERE 4640 WR1: 4641 derive_dimensional_exponents(SELF) = dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 4642END_ENTITY; 4643 4644-- IN AP242 4645ENTITY area_with_outer_boundary 4646 SUBTYPE OF (half_space_2d); 4647 SELF\half_space_2d.base_curve : composite_curve; 4648 WHERE 4649 WR1: 4650 base_curve\composite_curve.closed_curve = TRUE; 4651END_ENTITY; 4652 4653-- IN AP242 4654ENTITY array_placement_group 4655 SUPERTYPE OF (ONEOF(linear_array_placement_group_component, rectangular_array_placement_group_component)) 4656 SUBTYPE OF (assembly_group_component); 4657END_ENTITY; 4658 4659-- IN AP214/AP242 4660ENTITY asin_function 4661 SUBTYPE OF (unary_function_call); 4662END_ENTITY; 4663 4664-- IN AP242 4665ENTITY assembly_bond_definition 4666 SUBTYPE OF (shape_aspect); 4667 UNIQUE 4668 UR1 : SELF\shape_aspect.name; 4669END_ENTITY; 4670 4671-- IN AP242 4672ENTITY assembly_component 4673 SUBTYPE OF (component_definition, product_definition_shape); 4674 DERIVE 4675 SELF\property_definition.definition : assembly_component := SELF; 4676 WHERE 4677 WR1: 4678 NOT EXISTS(SELF\property_definition.description); 4679END_ENTITY; 4680 4681-- DIFF IN AP214 4682-- DIFF IN AP203e2 4683ENTITY assembly_component_usage 4684 SUPERTYPE OF (quantified_assembly_component_usage ANDOR ONEOF(multi_level_reference_designator, next_assembly_usage_occurrence, promissory_usage_occurrence, specified_higher_usage_occurrence)) 4685 SUBTYPE OF (product_definition_usage); 4686 reference_designator : OPTIONAL identifier; 4687END_ENTITY; 4688 4689-- CASE DIFF IN AP214 4690ENTITY assembly_component_usage_substitute; 4691 name : label; 4692 definition : OPTIONAL text; 4693 base : assembly_component_usage; 4694 substitute : assembly_component_usage; 4695 UNIQUE 4696 UR1 : base, substitute; 4697 WHERE 4698 WR1: 4699 base.relating_product_definition :=: substitute.relating_product_definition; 4700 WR2: 4701 base :<>: substitute; 4702END_ENTITY; 4703 4704-- IN AP242 4705ENTITY assembly_geometric_constraint 4706 ABSTRACT SUPERTYPE OF (ONEOF(binary_assembly_constraint, fixed_constituent_assembly_constraint)) 4707 SUBTYPE OF (explicit_constraint); 4708END_ENTITY; 4709 4710-- IN AP242 4711ENTITY assembly_group_component 4712 SUBTYPE OF (assembly_component); 4713END_ENTITY; 4714 4715-- IN AP242 4716ENTITY assembly_group_component_definition_placement_link 4717 SUBTYPE OF (product_definition, product_definition_relationship); 4718 SELF\product_definition_relationship.related_product_definition : assembly_component; 4719 SELF\product_definition_relationship.relating_product_definition : assembly_component; 4720 WHERE 4721 WR1: 4722 SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship.relating_product_definition; 4723 WR2: 4724 acyclic_product_definition_relationship(SELF, [ SELF\product_definition_relationship.related_product_definition ], 'STEP_MERGED_CAD_SCHEMA.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK'); 4725END_ENTITY; 4726 4727-- IN AP242 4728ENTITY assembly_joint 4729 SUBTYPE OF (component_feature_joint); 4730 WHERE 4731 WR1: 4732 acyclic_shape_aspect_relationship(SELF, [ SELF\shape_aspect_relationship.related_shape_aspect ], 'STEP_MERGED_CAD_SCHEMA.' + 'ASSEMBLY_JOINT'); 4733END_ENTITY; 4734 4735-- IN AP203e2/AP242 4736ENTITY assigned_requirement 4737 SUBTYPE OF (group_assignment); 4738 items : SET [1:1] OF product_definition; 4739 SELF\group_assignment.assigned_group : requirement_assignment; 4740END_ENTITY; 4741 4742-- IN AP214/AP242 4743ENTITY atan_function 4744 SUBTYPE OF (binary_function_call); 4745END_ENTITY; 4746 4747-- IN AP242 4748ENTITY atom_based_literal 4749 SUBTYPE OF (generic_literal); 4750 lit_value : atom_based_value; 4751END_ENTITY; 4752 4753-- IN AP203e2/AP242 4754ENTITY atomic_formula 4755 SUBTYPE OF (compound_representation_item); 4756END_ENTITY; 4757 4758-- IN AP203e2/AP242 4759ENTITY attribute_assertion 4760 SUBTYPE OF (fact_type, property_definition_representation, representation); 4761END_ENTITY; 4762 4763ENTITY attribute_classification_assignment 4764 ABSTRACT SUPERTYPE; 4765 assigned_class : group; 4766 attribute_name : label; 4767 role : classification_role; 4768END_ENTITY; 4769 4770-- DIFF IN AP214 4771ENTITY attribute_language_assignment 4772 SUBTYPE OF (attribute_classification_assignment); 4773 items : SET [1:?] OF attribute_language_item; 4774 SELF\attribute_classification_assignment.assigned_class : language; 4775 WHERE 4776 WR1: 4777 SELF\attribute_classification_assignment.role.name IN [ 'primary', 'translated' ]; 4778 WR2: 4779 SELF\attribute_classification_assignment.attribute_name <> ''; 4780END_ENTITY; 4781 4782ENTITY attribute_value_assignment 4783 ABSTRACT SUPERTYPE; 4784 attribute_name : label; 4785 attribute_value : attribute_type; 4786 role : attribute_value_role; 4787END_ENTITY; 4788 4789ENTITY attribute_value_role; 4790 name : label; 4791 description : OPTIONAL text; 4792END_ENTITY; 4793 4794-- IN AP203e2/AP242 4795ENTITY auxiliary_geometric_representation_item 4796 SUBTYPE OF (geometric_representation_item, variational_representation_item); 4797END_ENTITY; 4798 4799ENTITY axis1_placement 4800 SUBTYPE OF (placement); 4801 axis : OPTIONAL direction; 4802 DERIVE 4803 z : direction := NVL(normalise(axis), dummy_gri || direction([ 0.0, 0.0, 1.0 ])); 4804 WHERE 4805 WR1: 4806 SELF\geometric_representation_item.dim = 3; 4807END_ENTITY; 4808 4809ENTITY axis2_placement_2d 4810 SUBTYPE OF (placement); 4811 ref_direction : OPTIONAL direction; 4812 DERIVE 4813 p : LIST [2:2] OF direction := build_2axes(ref_direction); 4814 WHERE 4815 WR1: 4816 SELF\geometric_representation_item.dim = 2; 4817END_ENTITY; 4818 4819ENTITY axis2_placement_3d 4820 SUBTYPE OF (placement); 4821 axis : OPTIONAL direction; 4822 ref_direction : OPTIONAL direction; 4823 DERIVE 4824 p : LIST [3:3] OF direction := build_axes(axis, ref_direction); 4825 WHERE 4826 WR1: 4827 SELF\placement.location.dim = 3; 4828 WR2: 4829 NOT EXISTS(axis) OR (axis.dim = 3); 4830 WR3: 4831 NOT EXISTS(ref_direction) OR (ref_direction.dim = 3); 4832 WR4: 4833 (NOT EXISTS(axis) OR NOT EXISTS(ref_direction)) OR (cross_product(axis, ref_direction).magnitude > 0.0); 4834END_ENTITY; 4835 4836-- IN AP242 4837ENTITY b_spline_basis 4838 SUBTYPE OF (maths_function, generic_literal); 4839 degree : nonnegative_integer; 4840 repeated_knots : LIST [2:?] OF REAL; 4841 DERIVE 4842 num_basis : positive_integer := SIZEOF(repeated_knots) - order; 4843 order : positive_integer := degree + 1; 4844 WHERE 4845 WR1: 4846 num_basis >= order; 4847 WR2: 4848 nondecreasing(repeated_knots); 4849 WR3: 4850 repeated_knots[order] < repeated_knots[(num_basis + 1)]; 4851END_ENTITY; 4852 4853-- DIFF IN AP214 4854ENTITY b_spline_curve 4855 SUPERTYPE OF (ONEOF(uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve) ANDOR rational_b_spline_curve) 4856 SUBTYPE OF (bounded_curve); 4857 degree : INTEGER; 4858 control_points_list : LIST [2:?] OF cartesian_point; 4859 curve_form : b_spline_curve_form; 4860 closed_curve : LOGICAL; 4861 self_intersect : LOGICAL; 4862 DERIVE 4863 control_points : ARRAY [0:upper_index_on_control_points] OF cartesian_point := list_to_array(control_points_list, 0, upper_index_on_control_points); 4864 upper_index_on_control_points : INTEGER := SIZEOF(control_points_list) - 1; 4865 WHERE 4866 WR1: 4867 ((('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)); 4868END_ENTITY; 4869 4870-- IN AP242 4871ENTITY b_spline_curve_knot_locator 4872 SUBTYPE OF (founded_item); 4873 basis_curve : b_spline_curve; 4874 knot_index : INTEGER; 4875 WHERE 4876 WR1: 4877 SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0; 4878END_ENTITY; 4879 4880-- IN AP242 4881ENTITY b_spline_curve_segment 4882 SUBTYPE OF (founded_item); 4883 basis_curve : b_spline_curve; 4884 start_knot_index : INTEGER; 4885 WHERE 4886 WR1: 4887 SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0; 4888END_ENTITY; 4889 4890ENTITY b_spline_curve_with_knots 4891 SUBTYPE OF (b_spline_curve); 4892 knot_multiplicities : LIST [2:?] OF INTEGER; 4893 knots : LIST [2:?] OF parameter_value; 4894 knot_spec : knot_type; 4895 DERIVE 4896 upper_index_on_knots : INTEGER := SIZEOF(knots); 4897 WHERE 4898 WR1: 4899 constraints_param_b_spline(degree, upper_index_on_knots, upper_index_on_control_points, knot_multiplicities, knots); 4900 WR2: 4901 SIZEOF(knot_multiplicities) = upper_index_on_knots; 4902END_ENTITY; 4903 4904-- IN AP242 4905ENTITY b_spline_function 4906 SUBTYPE OF (maths_function, unary_generic_expression); 4907 basis : LIST [1:?] OF b_spline_basis; 4908 SELF\unary_generic_expression.operand : maths_function; 4909 DERIVE 4910 coef : maths_function := SELF\unary_generic_expression.operand; 4911 WHERE 4912 WR1: 4913 function_is_table(coef); 4914 WR2: 4915 (space_dimension(coef.range) = 1) AND (number_superspace_of(factor1(coef.range)) = the_reals); 4916 WR3: 4917 SIZEOF(basis) <= SIZEOF(shape_of_array(coef)); 4918 WR4: 4919 compare_basis_and_coef(basis, coef); 4920END_ENTITY; 4921 4922-- DIFF IN AP214 4923ENTITY b_spline_surface 4924 SUPERTYPE OF (ONEOF(b_spline_surface_with_knots, uniform_surface, quasi_uniform_surface, bezier_surface) ANDOR rational_b_spline_surface) 4925 SUBTYPE OF (bounded_surface); 4926 u_degree : INTEGER; 4927 v_degree : INTEGER; 4928 control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point; 4929 surface_form : b_spline_surface_form; 4930 u_closed : LOGICAL; 4931 v_closed : LOGICAL; 4932 self_intersect : LOGICAL; 4933 DERIVE 4934 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); 4935 u_upper : INTEGER := SIZEOF(control_points_list) - 1; 4936 v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; 4937 WHERE 4938 WR1: 4939 ((('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)); 4940END_ENTITY; 4941 4942-- IN AP242 4943ENTITY b_spline_surface_knot_locator 4944 SUBTYPE OF (founded_item); 4945 basis_surface : b_spline_surface; 4946 knot_index : INTEGER; 4947 surface_parameter : u_or_v_parameter; 4948 WHERE 4949 WR1: 4950 SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; 4951END_ENTITY; 4952 4953-- IN AP242 4954ENTITY b_spline_surface_patch 4955 SUBTYPE OF (founded_item); 4956 basis_surface : b_spline_surface; 4957 u_start_knot_index : INTEGER; 4958 v_start_knot_index : INTEGER; 4959 WHERE 4960 WR1: 4961 SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; 4962END_ENTITY; 4963 4964-- IN AP242 4965ENTITY b_spline_surface_strip 4966 SUBTYPE OF (founded_item); 4967 basis_surface : b_spline_surface; 4968 start_knot_index : INTEGER; 4969 surface_parameter : u_or_v_parameter; 4970 WHERE 4971 WR1: 4972 SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; 4973END_ENTITY; 4974 4975ENTITY b_spline_surface_with_knots 4976 SUBTYPE OF (b_spline_surface); 4977 u_multiplicities : LIST [2:?] OF INTEGER; 4978 v_multiplicities : LIST [2:?] OF INTEGER; 4979 u_knots : LIST [2:?] OF parameter_value; 4980 v_knots : LIST [2:?] OF parameter_value; 4981 knot_spec : knot_type; 4982 DERIVE 4983 knot_u_upper : INTEGER := SIZEOF(u_knots); 4984 knot_v_upper : INTEGER := SIZEOF(v_knots); 4985 WHERE 4986 WR1: 4987 constraints_param_b_spline(SELF\b_spline_surface.u_degree, knot_u_upper, SELF\b_spline_surface.u_upper, u_multiplicities, u_knots); 4988 WR2: 4989 constraints_param_b_spline(SELF\b_spline_surface.v_degree, knot_v_upper, SELF\b_spline_surface.v_upper, v_multiplicities, v_knots); 4990 WR3: 4991 SIZEOF(u_multiplicities) = knot_u_upper; 4992 WR4: 4993 SIZEOF(v_multiplicities) = knot_v_upper; 4994END_ENTITY; 4995 4996-- IN AP203e2/AP242 4997ENTITY back_chaining_rule 4998 SUBTYPE OF (rule_definition); 4999END_ENTITY; 5000 5001-- IN AP203e2/AP242 5002ENTITY back_chaining_rule_body 5003 SUBTYPE OF (property_definition, property_definition_representation, representation); 5004END_ENTITY; 5005 5006-- CASE DIFF IN AP214 5007ENTITY background_colour 5008 SUBTYPE OF (colour); 5009 presentation : area_or_view; 5010 UNIQUE 5011 UR1 : presentation; 5012END_ENTITY; 5013 5014-- IN AP214/AP242 5015ENTITY barring_hole 5016 SUBTYPE OF (feature_definition); 5017 WHERE 5018 WR1: 5019 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; 5020 WR2: 5021 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; 5022 WR3: 5023 (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); 5024 WR4: 5025 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; 5026 WR5: 5027 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; 5028END_ENTITY; 5029 5030-- IN AP242 5031ENTITY basic_sparse_matrix 5032 SUBTYPE OF (explicit_table_function, multiple_arity_generic_expression); 5033 default_entry : maths_value; 5034 order : ordering_type; 5035 SELF\multiple_arity_generic_expression.operands : LIST [3:3] OF maths_function; 5036 DERIVE 5037 index : maths_function := SELF\multiple_arity_generic_expression.operands[1]; 5038 loc : maths_function := SELF\multiple_arity_generic_expression.operands[2]; 5039 val : maths_function := SELF\multiple_arity_generic_expression.operands[3]; 5040 WHERE 5041 WR1: 5042 function_is_1d_table(index); 5043 WR2: 5044 function_is_1d_table(loc); 5045 WR3: 5046 function_is_1d_table(val); 5047 WR4: 5048 check_sparse_index_domain(index.domain, index_base, shape, order); 5049 WR5: 5050 check_sparse_index_to_loc(index.range, loc.domain); 5051 WR6: 5052 loc.domain = val.domain; 5053 WR7: 5054 check_sparse_loc_range(loc.range, index_base, shape, order); 5055 WR8: 5056 member_of(default_entry, val.range); 5057END_ENTITY; 5058 5059-- IN AP214/AP242 5060ENTITY bead 5061 SUBTYPE OF (feature_definition); 5062 WHERE 5063 WR1: 5064 (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); 5065 WR2: 5066 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; 5067 WR3: 5068 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; 5069 WR4: 5070 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; 5071 WR5: 5072 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; 5073 WR6: 5074 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; 5075 WR7: 5076 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; 5077END_ENTITY; 5078 5079-- IN AP214/AP242 5080ENTITY bead_end 5081 SUBTYPE OF (shape_aspect); 5082 WHERE 5083 WR1: 5084 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 5085 WR2: 5086 SELF.description IN [ 'linear', 'open', 'radiused' ]; 5087 WR3: 5088 (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); 5089 WR4: 5090 (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); 5091 WR5: 5092 (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); 5093 WR6: 5094 (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); 5095 WR7: 5096 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; 5097END_ENTITY; 5098 5099-- IN AP242 5100ENTITY between_shape_aspect 5101 SUBTYPE OF (continuous_shape_aspect); 5102END_ENTITY; 5103 5104-- IN AP203e2/AP242 5105ENTITY beveled_sheet_representation 5106 SUBTYPE OF (shape_representation); 5107END_ENTITY; 5108 5109ENTITY bezier_curve 5110 SUBTYPE OF (b_spline_curve); 5111END_ENTITY; 5112 5113ENTITY bezier_surface 5114 SUBTYPE OF (b_spline_surface); 5115END_ENTITY; 5116 5117-- IN AP242 5118ENTITY binary_assembly_constraint 5119 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)) 5120 SUBTYPE OF (assembly_geometric_constraint, representation_relationship_with_transformation); 5121 SELF\representation_relationship.rep_1 : representative_shape_representation; 5122 SELF\representation_relationship.rep_2 : representative_shape_representation; 5123 WHERE 5124 WR1: 5125 (SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3) AND (SELF\explicit_constraint.reference_elements[1]\geometric_representation_item.dim = 3); 5126 WR2: 5127 (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)); 5128 WR3: 5129 (SIZEOF(SELF\explicit_constraint.constrained_elements) = 1) AND (SIZEOF(SELF\explicit_constraint.reference_elements) = 1); 5130 WR4: 5131 (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]); 5132END_ENTITY; 5133 5134-- IN AP214/AP242 5135ENTITY binary_boolean_expression 5136 ABSTRACT SUPERTYPE OF (ONEOF(xor_expression, equals_expression)) 5137 SUBTYPE OF (boolean_expression, binary_generic_expression); 5138END_ENTITY; 5139 5140-- DIFF IN AP214 5141-- IN AP214/AP242 5142ENTITY binary_function_call 5143 ABSTRACT SUPERTYPE 5144 SUBTYPE OF (binary_numeric_expression); 5145END_ENTITY; 5146 5147ENTITY binary_generic_expression 5148 ABSTRACT SUPERTYPE 5149 SUBTYPE OF (generic_expression); 5150 operands : LIST [2:2] OF generic_expression; 5151END_ENTITY; 5152 5153-- IN AP242 5154ENTITY binary_literal 5155 SUBTYPE OF (generic_literal); 5156 lit_value : BINARY; 5157END_ENTITY; 5158 5159-- DIFF IN AP203e2 5160ENTITY binary_numeric_expression 5161 ABSTRACT SUPERTYPE OF (ONEOF(minus_expression, div_expression, mod_expression, slash_expression, power_expression, binary_function_call)) 5162 SUBTYPE OF (numeric_expression, binary_generic_expression); 5163 SELF\binary_generic_expression.operands : LIST [2:2] OF numeric_expression; 5164END_ENTITY; 5165 5166-- IN AP203e2/AP242 5167ENTITY binary_representation_item 5168 SUBTYPE OF (representation_item); 5169 binary_value : BINARY; 5170END_ENTITY; 5171 5172ENTITY block 5173 SUBTYPE OF (geometric_representation_item); 5174 position : axis2_placement_3d; 5175 x : positive_length_measure; 5176 y : positive_length_measure; 5177 z : positive_length_measure; 5178END_ENTITY; 5179 5180-- IN AP214/AP242 5181ENTITY boolean_defined_function 5182 ABSTRACT SUPERTYPE 5183 SUBTYPE OF (defined_function, boolean_expression); 5184END_ENTITY; 5185 5186-- DIFF IN AP203e2 5187ENTITY boolean_expression 5188 ABSTRACT SUPERTYPE OF (ONEOF(simple_boolean_expression, unary_boolean_expression, binary_boolean_expression, multiple_arity_boolean_expression, comparison_expression, interval_expression, boolean_defined_function)) 5189 SUBTYPE OF (expression); 5190END_ENTITY; 5191 5192ENTITY boolean_literal 5193 SUBTYPE OF (simple_boolean_expression, generic_literal); 5194 the_value : BOOLEAN; 5195END_ENTITY; 5196 5197-- IN AP203e2/AP242 5198ENTITY boolean_representation_item 5199 SUBTYPE OF (representation_item, boolean_literal); 5200END_ENTITY; 5201 5202ENTITY boolean_result 5203 SUBTYPE OF (geometric_representation_item); 5204 operator : boolean_operator; 5205 first_operand : boolean_operand; 5206 second_operand : boolean_operand; 5207END_ENTITY; 5208 5209-- IN AP242 5210ENTITY boolean_result_2d 5211 SUBTYPE OF (boolean_result); 5212 SELF\boolean_result.first_operand : boolean_operand_2d; 5213 SELF\boolean_result.second_operand : boolean_operand_2d; 5214END_ENTITY; 5215 5216-- IN AP214/AP242 5217ENTITY boolean_variable 5218 SUBTYPE OF (simple_boolean_expression, variable); 5219END_ENTITY; 5220 5221-- IN AP214/AP242 5222ENTITY boss 5223 SUBTYPE OF (feature_definition); 5224 WHERE 5225 WR1: 5226 SELF\characterized_object.description IN [ 'circular', 'complex', 'rectangular' ]; 5227 WR2: 5228 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; 5229 WR3: 5230 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; 5231 WR4: 5232 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; 5233 WR5: 5234 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; 5235 WR6: 5236 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); 5237 WR7: 5238 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; 5239 WR8: 5240 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); 5241 WR9: 5242 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); 5243 WR10: 5244 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); 5245 WR11: 5246 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); 5247 WR12: 5248 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; 5249END_ENTITY; 5250 5251-- IN AP214/AP242 5252ENTITY boss_top 5253 SUBTYPE OF (shape_aspect); 5254 WHERE 5255 WR1: 5256 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 5257 WR2: 5258 SELF.description IN [ 'planar', 'complex' ]; 5259 WR3: 5260 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); 5261 WR4: 5262 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); 5263 WR5: 5264 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); 5265 WR6: 5266 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; 5267 WR7: 5268 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; 5269 WR8: 5270 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; 5271 WR9: 5272 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; 5273END_ENTITY; 5274 5275-- IN AP242 5276ENTITY bound_parameter_environment 5277 SUBTYPE OF (environment); 5278 WHERE 5279 WR1: 5280 ('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)); 5281END_ENTITY; 5282 5283-- IN AP242 5284ENTITY bound_variational_parameter 5285 SUBTYPE OF (variational_parameter); 5286 DERIVE 5287 SELF\variational_parameter.parameter_current_value : maths_value := ?; 5288 WHERE 5289 WR1: 5290 'STEP_MERGED_CAD_SCHEMA.BOUND_PARAMETER_ENVIRONMENT' IN TYPEOF(SELF\generic_variable.interpretation); 5291END_ENTITY; 5292 5293ENTITY boundary_curve 5294 SUBTYPE OF (composite_curve_on_surface); 5295 WHERE 5296 WR1: 5297 SELF\composite_curve.closed_curve; 5298END_ENTITY; 5299 5300-- IN AP242 5301ENTITY boundary_curve_of_b_spline_or_rectangular_composite_surface 5302 SUBTYPE OF (founded_item); 5303 basis_surface : b_spline_or_rectangular_composite_surface_select; 5304 boundary_type : surface_boundary_type; 5305 WHERE 5306 WR1: 5307 SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; 5308END_ENTITY; 5309 5310ENTITY bounded_curve 5311 SUPERTYPE OF (ONEOF(polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve)) 5312 SUBTYPE OF (curve); 5313END_ENTITY; 5314 5315-- IN AP203e2/AP214 5316ENTITY bounded_pcurve 5317 SUBTYPE OF (pcurve, bounded_curve); 5318 WHERE 5319 wr1: 5320 'STEP_MERGED_CAD_SCHEMA.BOUNDED_CURVE' IN TYPEOF(SELF\pcurve.reference_to_curve.items[1]); 5321END_ENTITY; 5322 5323ENTITY bounded_surface 5324 SUPERTYPE OF (ONEOF(b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, rectangular_composite_surface)) 5325 SUBTYPE OF (surface); 5326END_ENTITY; 5327 5328-- IN AP203e2/AP214 5329ENTITY bounded_surface_curve 5330 SUBTYPE OF (surface_curve, bounded_curve); 5331 WHERE 5332 wr1: 5333 'STEP_MERGED_CAD_SCHEMA.BOUNDED_CURVE' IN TYPEOF(SELF\surface_curve.curve_3d); 5334END_ENTITY; 5335 5336ENTITY box_domain 5337 SUBTYPE OF (founded_item); 5338 corner : cartesian_point; 5339 xlength : positive_length_measure; 5340 ylength : positive_length_measure; 5341 zlength : positive_length_measure; 5342 WHERE 5343 WR1: 5344 SIZEOF(QUERY (item <* USEDIN(SELF, '')| NOT ('STEP_MERGED_CAD_SCHEMA.BOXED_HALF_SPACE' IN TYPEOF(item)))) = 0; 5345END_ENTITY; 5346 5347ENTITY boxed_half_space 5348 SUBTYPE OF (half_space_solid); 5349 enclosure : box_domain; 5350END_ENTITY; 5351 5352-- IN AP203e2/AP242 5353ENTITY breakdown_context 5354 SUBTYPE OF (product_definition_relationship); 5355END_ENTITY; 5356 5357-- IN AP203e2/AP242 5358ENTITY breakdown_element_group_assignment 5359 SUBTYPE OF (group_assignment); 5360 items : SET [1:1] OF product_definition_or_breakdown_element_usage; 5361 SELF\group_assignment.assigned_group : product_definition_element_relationship; 5362END_ENTITY; 5363 5364-- IN AP203e2/AP242 5365ENTITY breakdown_element_realization 5366 SUBTYPE OF (characterized_object, product_definition_element_relationship); 5367END_ENTITY; 5368 5369-- IN AP203e2/AP242 5370ENTITY breakdown_element_usage 5371 SUBTYPE OF (product_definition_relationship); 5372END_ENTITY; 5373 5374-- IN AP203e2/AP242 5375ENTITY breakdown_of 5376 SUBTYPE OF (product_definition_relationship); 5377END_ENTITY; 5378 5379ENTITY brep_with_voids 5380 SUBTYPE OF (manifold_solid_brep); 5381 voids : SET [1:?] OF oriented_closed_shell; 5382END_ENTITY; 5383 5384-- IN AP203e2/AP242 5385ENTITY bytes_representation_item 5386 SUBTYPE OF (binary_representation_item); 5387 DERIVE 5388 no_of_bytes : INTEGER := BLENGTH(SELF\binary_representation_item.binary_value) DIV 8; 5389 WHERE 5390 WR1: 5391 BLENGTH(SELF\binary_representation_item.binary_value) MOD 8 = 0; 5392END_ENTITY; 5393 5394ENTITY calendar_date 5395 SUBTYPE OF (date); 5396 day_component : day_in_month_number; 5397 month_component : month_in_year_number; 5398 WHERE 5399 WR1: 5400 valid_calendar_date(SELF); 5401END_ENTITY; 5402 5403-- DIFF IN AP214 5404-- DIFF IN AP203e2 5405ENTITY camera_image 5406 SUPERTYPE OF (ONEOF(camera_image_2d_with_scale, camera_image_3d_with_scale)) 5407 SUBTYPE OF (mapped_item); 5408 SELF\mapped_item.mapping_source : camera_usage; 5409 SELF\mapped_item.mapping_target : planar_box; 5410 WHERE 5411 WR1: 5412 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); 5413END_ENTITY; 5414 5415-- IN AP214/AP242 5416ENTITY camera_image_2d_with_scale 5417 SUBTYPE OF (camera_image); 5418 DERIVE 5419 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; 5420 WHERE 5421 WR1: 5422 'STEP_MERGED_CAD_SCHEMA.CAMERA_MODEL_D2' IN TYPEOF(SELF\mapped_item.mapping_source.mapping_origin); 5423 WR2: 5424 aspect_ratio(SELF\mapped_item.mapping_target) = aspect_ratio(SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window); 5425 WR3: 5426 SELF\mapped_item.mapping_source.mapping_origin\camera_model_d2.view_window_clipping; 5427END_ENTITY; 5428 5429ENTITY camera_image_3d_with_scale 5430 SUBTYPE OF (camera_image); 5431 DERIVE 5432 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; 5433 WHERE 5434 WR1: 5435 'STEP_MERGED_CAD_SCHEMA.CAMERA_MODEL_D3' IN TYPEOF(SELF\mapped_item.mapping_source.mapping_origin); 5436 WR2: 5437 aspect_ratio(SELF\mapped_item.mapping_target) = aspect_ratio(SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.perspective_of_volume.view_window); 5438 WR3: 5439 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; 5440 WR4: 5441 (SELF\mapped_item.mapping_target\planar_extent.size_in_x > 0) AND (SELF\mapped_item.mapping_target\planar_extent.size_in_y > 0); 5442 WR5: 5443 (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); 5444 WR6: 5445 ('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)); 5446END_ENTITY; 5447 5448-- DIFF IN AP203e2 5449ENTITY camera_model 5450 ABSTRACT SUPERTYPE OF (ONEOF(camera_model_d2, camera_model_d3)) 5451 SUBTYPE OF (geometric_representation_item); 5452 WHERE 5453 WR1: 5454 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; 5455 WR2: 5456 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM.ITEM')) = 0; 5457END_ENTITY; 5458 5459-- IN AP214/AP242 5460ENTITY camera_model_d2 5461 SUBTYPE OF (camera_model); 5462 view_window : planar_box; 5463 view_window_clipping : BOOLEAN; 5464 WHERE 5465 WR1: 5466 SELF\geometric_representation_item.dim = 2; 5467END_ENTITY; 5468 5469ENTITY camera_model_d3 5470 SUBTYPE OF (camera_model); 5471 view_reference_system : axis2_placement_3d; 5472 perspective_of_volume : view_volume; 5473 WHERE 5474 WR1: 5475 SELF\geometric_representation_item.dim = 3; 5476END_ENTITY; 5477 5478-- IN AP203e2/AP242 5479ENTITY camera_model_d3_multi_clipping 5480 SUBTYPE OF (camera_model_d3); 5481 shape_clipping : SET [1:?] OF camera_model_d3_multi_clipping_interection_select; 5482END_ENTITY; 5483 5484-- IN AP203e2/AP242 5485ENTITY camera_model_d3_multi_clipping_intersection 5486 SUBTYPE OF (geometric_representation_item); 5487 shape_clipping : SET [2:?] OF camera_model_d3_multi_clipping_interection_select; 5488END_ENTITY; 5489 5490-- IN AP203e2/AP242 5491ENTITY camera_model_d3_multi_clipping_union 5492 SUBTYPE OF (geometric_representation_item); 5493 shape_clipping : SET [2:?] OF camera_model_d3_multi_clipping_union_select; 5494END_ENTITY; 5495 5496ENTITY camera_model_d3_with_hlhsr 5497 SUBTYPE OF (camera_model_d3); 5498 hidden_line_surface_removal : BOOLEAN; 5499END_ENTITY; 5500 5501-- IN AP203e2/AP242 5502ENTITY camera_model_with_light_sources 5503 SUBTYPE OF (camera_model_d3); 5504 sources : SET [1:?] OF light_source; 5505END_ENTITY; 5506 5507ENTITY camera_usage 5508 SUBTYPE OF (representation_map); 5509 SELF\representation_map.mapping_origin : camera_model; 5510 WHERE 5511 WR1: 5512 NOT ('STEP_MERGED_CAD_SCHEMA.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\representation_map.mapped_representation)); 5513END_ENTITY; 5514 5515-- IN AP203e2/AP242 5516ENTITY capacitance_measure_with_unit 5517 SUBTYPE OF (measure_with_unit); 5518 WHERE 5519 WR1: 5520 'STEP_MERGED_CAD_SCHEMA.CAPACITANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 5521END_ENTITY; 5522 5523-- IN AP203e2/AP242 5524ENTITY capacitance_unit 5525 SUBTYPE OF (derived_unit); 5526 WHERE 5527 WR1: 5528 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.farad); 5529END_ENTITY; 5530 5531-- IN AP242 5532ENTITY cartesian_complex_number_region 5533 SUBTYPE OF (maths_space, generic_literal); 5534 real_constraint : real_interval; 5535 imag_constraint : real_interval; 5536 WHERE 5537 WR1: 5538 ((min_exists(real_constraint) OR max_exists(real_constraint)) OR min_exists(imag_constraint)) OR max_exists(imag_constraint); 5539END_ENTITY; 5540 5541ENTITY cartesian_point 5542 SUBTYPE OF (point); 5543 coordinates : LIST [1:3] OF length_measure; 5544END_ENTITY; 5545 5546-- IN AP203e2/AP214 5547ENTITY cartesian_transformation_operator 5548 SUPERTYPE OF (ONEOF(cartesian_transformation_operator_2d, cartesian_transformation_operator_3d)) 5549 SUBTYPE OF (geometric_representation_item, functionally_defined_transformation); 5550 axis1 : OPTIONAL direction; 5551 axis2 : OPTIONAL direction; 5552 local_origin : cartesian_point; 5553 scale : OPTIONAL REAL; 5554 DERIVE 5555 scl : REAL := NVL(scale, 1.0); 5556 WHERE 5557 wr1: 5558 scl > 0.0; 5559END_ENTITY; 5560 5561ENTITY cartesian_transformation_operator_2d 5562 SUBTYPE OF (cartesian_transformation_operator); 5563 DERIVE 5564 u : LIST [2:2] OF direction := base_axis(2, SELF\cartesian_transformation_operator.axis1, SELF\cartesian_transformation_operator.axis2, ?); 5565 WHERE 5566 WR1: 5567 SELF\geometric_representation_item.dim = 2; 5568END_ENTITY; 5569 5570ENTITY cartesian_transformation_operator_3d 5571 SUBTYPE OF (cartesian_transformation_operator); 5572 axis3 : OPTIONAL direction; 5573 DERIVE 5574 u : LIST [3:3] OF direction := base_axis(3, SELF\cartesian_transformation_operator.axis1, SELF\cartesian_transformation_operator.axis2, axis3); 5575 WHERE 5576 WR1: 5577 SELF\geometric_representation_item.dim = 3; 5578END_ENTITY; 5579 5580-- IN AP242 5581ENTITY cdgc_with_dimension 5582 SUBTYPE OF (curve_distance_geometric_constraint); 5583 distance_value : non_negative_length_measure; 5584END_ENTITY; 5585 5586ENTITY celsius_temperature_measure_with_unit 5587 SUBTYPE OF (measure_with_unit); 5588 WHERE 5589 WR1: 5590 'STEP_MERGED_CAD_SCHEMA.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 5591END_ENTITY; 5592 5593ENTITY centre_of_symmetry 5594 SUBTYPE OF (derived_shape_aspect); 5595END_ENTITY; 5596 5597ENTITY certification; 5598 name : label; 5599 purpose : text; 5600 kind : certification_type; 5601END_ENTITY; 5602 5603ENTITY certification_assignment 5604 ABSTRACT SUPERTYPE; 5605 assigned_certification : certification; 5606 DERIVE 5607 role : object_role := get_role(SELF); 5608 WHERE 5609 WR1: 5610 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 5611END_ENTITY; 5612 5613ENTITY certification_type; 5614 description : label; 5615END_ENTITY; 5616 5617-- IN AP242 5618ENTITY chain_based_geometric_item_specific_usage 5619 SUBTYPE OF (geometric_item_specific_usage, chain_based_item_identified_representation_usage); 5620END_ENTITY; 5621 5622-- IN AP242 5623ENTITY chain_based_item_identified_representation_usage 5624 SUBTYPE OF (item_identified_representation_usage); 5625 nodes : LIST [2:?] OF UNIQUE representation; 5626 undirected_link : LIST [1:?] OF chained_representation_link; 5627 DERIVE 5628 directed_link : LIST [1:?] OF representation_relationship := get_directed_link(nodes, undirected_link); 5629 leaf : representation := SELF\item_identified_representation_usage.used_representation; 5630 root : representation := nodes[1]; 5631 SELF\item_identified_representation_usage.used_representation : representation := nodes[HIINDEX(nodes)]; 5632 WHERE 5633 WR1: 5634 EXISTS(directed_link); 5635END_ENTITY; 5636 5637-- IN AP214/AP242 5638ENTITY chamfer 5639 SUBTYPE OF (transition_feature); 5640 WHERE 5641 WR1: 5642 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; 5643 WR2: 5644 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; 5645 WR3: 5646 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; 5647END_ENTITY; 5648 5649-- IN AP214/AP242 5650ENTITY chamfer_offset 5651 SUBTYPE OF (shape_aspect); 5652 WHERE 5653 WR1: 5654 SELF.description IN [ 'first offset', 'second offset' ]; 5655 WR2: 5656 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; 5657 WR3: 5658 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; 5659 WR4: 5660 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); 5661 WR5: 5662 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); 5663 WR6: 5664 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); 5665 WR7: 5666 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); 5667 WR8: 5668 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; 5669END_ENTITY; 5670 5671-- IN AP203e2/AP242 5672ENTITY change 5673 SUBTYPE OF (action_assignment); 5674 items : SET [1:?] OF work_item; 5675END_ENTITY; 5676 5677-- IN AP242 5678ENTITY change_composition_relationship 5679 SUBTYPE OF (group_relationship); 5680 SELF\group_relationship.related_group : change_element; 5681 SELF\group_relationship.relating_group : change_group; 5682 DERIVE 5683 composition : change_group := SELF\group_relationship.relating_group; 5684 element : change_element := SELF\group_relationship.related_group; 5685END_ENTITY; 5686 5687-- IN AP242 5688ENTITY change_element 5689 ABSTRACT SUPERTYPE OF (ONEOF(modify_element, delete_element, add_element)) 5690 SUBTYPE OF (group, characterized_object); 5691END_ENTITY; 5692 5693-- IN AP242 5694ENTITY change_element_sequence 5695 SUBTYPE OF (group_relationship); 5696 SELF\group_relationship.related_group : change_element; 5697 SELF\group_relationship.relating_group : change_element; 5698 DERIVE 5699 next : change_element := SELF\group_relationship.related_group; 5700 previous : change_element := SELF\group_relationship.relating_group; 5701END_ENTITY; 5702 5703-- IN AP242 5704ENTITY change_group 5705 SUBTYPE OF (group); 5706END_ENTITY; 5707 5708-- IN AP242 5709ENTITY change_group_assignment 5710 SUBTYPE OF (group_assignment); 5711 item : change_relationship_select; 5712 SELF\group_assignment.assigned_group : change_group; 5713END_ENTITY; 5714 5715-- IN AP203e2/AP242 5716ENTITY change_request 5717 SUBTYPE OF (action_request_assignment); 5718 items : SET [1:?] OF change_request_item; 5719END_ENTITY; 5720 5721-- IN AP203e2/AP242 5722ENTITY character_glyph_font_usage; 5723 character : generic_character_glyph_symbol; 5724 font : text_font; 5725END_ENTITY; 5726 5727-- IN AP203e2/AP242 5728ENTITY character_glyph_style_outline 5729 SUBTYPE OF (founded_item); 5730 outline_style : curve_style; 5731END_ENTITY; 5732 5733-- IN AP203e2/AP242 5734ENTITY character_glyph_style_stroke 5735 SUBTYPE OF (founded_item); 5736 stroke_style : curve_style; 5737END_ENTITY; 5738 5739ENTITY character_glyph_symbol 5740 SUBTYPE OF (generic_character_glyph_symbol); 5741 character_box : planar_extent; 5742 baseline_ratio : ratio_measure; 5743 DERIVE 5744 box_height : length_measure := character_box.size_in_y; 5745 WHERE 5746 WR1: 5747 (0.0 <= baseline_ratio) AND (baseline_ratio <= 1.0); 5748 WR2: 5749 item_in_context(SELF.character_box, SELF\representation.context_of_items); 5750 WR3: 5751 'STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(SELF.box_height); 5752END_ENTITY; 5753 5754-- IN AP203e2/AP242 5755ENTITY character_glyph_symbol_outline 5756 SUBTYPE OF (character_glyph_symbol); 5757 outlines : SET [1:?] OF annotation_fill_area; 5758 WHERE 5759 WR1: 5760 SELF.outlines <= SELF\representation.items; 5761END_ENTITY; 5762 5763-- IN AP203e2/AP242 5764ENTITY character_glyph_symbol_stroke 5765 SUBTYPE OF (character_glyph_symbol); 5766 strokes : SET [1:?] OF curve; 5767 WHERE 5768 WR1: 5769 SELF.strokes <= SELF\representation.items; 5770END_ENTITY; 5771 5772-- IN AP203e2/AP242 5773ENTITY characteristic_data_column_header 5774 SUBTYPE OF (general_property); 5775END_ENTITY; 5776 5777-- IN AP203e2/AP242 5778ENTITY characteristic_data_column_header_link 5779 SUBTYPE OF (general_property_relationship); 5780END_ENTITY; 5781 5782-- IN AP203e2/AP242 5783ENTITY characteristic_data_table_header 5784 SUBTYPE OF (general_property); 5785END_ENTITY; 5786 5787-- IN AP203e2/AP242 5788ENTITY characteristic_data_table_header_decomposition 5789 SUBTYPE OF (general_property_relationship); 5790END_ENTITY; 5791 5792-- IN AP203e2/AP242 5793ENTITY characteristic_type 5794 SUBTYPE OF (group); 5795END_ENTITY; 5796 5797-- IN AP242 5798ENTITY characterized_chain_based_item_within_representation 5799 SUBTYPE OF (characterized_item_within_representation); 5800 nodes : LIST [2:?] OF UNIQUE representation; 5801 undirected_link : LIST [1:?] OF chained_representation_link; 5802 DERIVE 5803 directed_link : LIST [1:?] OF representation_relationship := get_directed_link(nodes, undirected_link); 5804 leaf : representation := SELF\characterized_item_within_representation.rep; 5805 SELF\characterized_item_within_representation.rep : representation := nodes[HIINDEX(nodes)]; 5806 root : representation := nodes[1]; 5807 WHERE 5808 WR1: 5809 EXISTS(directed_link); 5810END_ENTITY; 5811 5812ENTITY characterized_class 5813 SUBTYPE OF (characterized_object, class); 5814END_ENTITY; 5815 5816-- IN AP242 5817ENTITY characterized_item_within_representation 5818 SUBTYPE OF (characterized_object); 5819 item : representation_item; 5820 rep : representation; 5821 UNIQUE 5822 WR1 : item, rep; 5823 WHERE 5824 WR2: 5825 rep IN using_representations(item); 5826END_ENTITY; 5827 5828ENTITY characterized_object; 5829 name : label; 5830 description : OPTIONAL text; 5831END_ENTITY; 5832 5833-- IN AP242 5834ENTITY characterized_representation 5835 SUBTYPE OF (representation, characterized_object); 5836 DERIVE 5837 SELF\characterized_object.description : text := SELF\representation.description; 5838 SELF\characterized_object.name : label := SELF\representation.name; 5839END_ENTITY; 5840 5841ENTITY circle 5842 SUBTYPE OF (conic); 5843 radius : positive_length_measure; 5844END_ENTITY; 5845 5846-- IN AP242 5847ENTITY circular_area 5848 SUBTYPE OF (primitive_2d); 5849 centre : cartesian_point; 5850 radius : positive_length_measure; 5851END_ENTITY; 5852 5853-- IN AP214/AP242 5854ENTITY circular_closed_profile 5855 SUBTYPE OF (shape_aspect); 5856 WHERE 5857 WR1: 5858 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 5859 WR2: 5860 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; 5861 WR3: 5862 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; 5863 WR4: 5864 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; 5865 WR5: 5866 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; 5867END_ENTITY; 5868 5869-- IN AP242 5870ENTITY circular_path 5871 SUBTYPE OF (path_node); 5872 via_point : cartesian_point; 5873END_ENTITY; 5874 5875-- IN AP214/AP242 5876ENTITY circular_pattern 5877 SUBTYPE OF (replicate_feature); 5878 WHERE 5879 WR1: 5880 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; 5881 WR2: 5882 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; 5883 WR3: 5884 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; 5885 WR4: 5886 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; 5887 WR5: 5888 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; 5889 WR6: 5890 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; 5891 WR7: 5892 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; 5893 WR8: 5894 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; 5895END_ENTITY; 5896 5897ENTITY circular_runout_tolerance 5898 SUBTYPE OF (geometric_tolerance_with_datum_reference); 5899END_ENTITY; 5900 5901ENTITY class 5902 SUBTYPE OF (group); 5903END_ENTITY; 5904 5905-- IN AP203e2/AP242 5906ENTITY class_by_extension 5907 SUBTYPE OF (class); 5908END_ENTITY; 5909 5910-- IN AP203e2/AP242 5911ENTITY class_by_intension 5912 SUBTYPE OF (class); 5913END_ENTITY; 5914 5915ENTITY class_system 5916 SUBTYPE OF (group); 5917END_ENTITY; 5918 5919ENTITY class_usage_effectivity_context_assignment 5920 SUBTYPE OF (effectivity_context_assignment); 5921 items : SET [1:?] OF class_usage_effectivity_context_item; 5922 WHERE 5923 WR1: 5924 SELF.role.name = 'class usage influence'; 5925 WR2: 5926 SIZEOF(QUERY (i <* SELF.items| NOT ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(i)))) = 0; 5927 WR3: 5928 ((('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); 5929END_ENTITY; 5930 5931ENTITY classification_assignment 5932 ABSTRACT SUPERTYPE; 5933 assigned_class : group; 5934 role : classification_role; 5935END_ENTITY; 5936 5937ENTITY classification_role; 5938 name : label; 5939 description : OPTIONAL text; 5940END_ENTITY; 5941 5942-- IN AP242 5943ENTITY clgc_with_dimension 5944 SUBTYPE OF (curve_length_geometric_constraint); 5945 length_value : positive_length_measure; 5946END_ENTITY; 5947 5948-- IN AP242 5949ENTITY closed_curve_style_parameters 5950 SUBTYPE OF (curve_style_parameters_representation); 5951END_ENTITY; 5952 5953-- IN AP214/AP242 5954ENTITY closed_path_profile 5955 SUBTYPE OF (shape_aspect); 5956 WHERE 5957 WR1: 5958 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 5959 WR2: 5960 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; 5961 WR3: 5962 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; 5963 WR4: 5964 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; 5965 WR5: 5966 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; 5967END_ENTITY; 5968 5969ENTITY closed_shell 5970 SUBTYPE OF (connected_face_set); 5971END_ENTITY; 5972 5973-- IN AP242 5974ENTITY coaxial_assembly_constraint 5975 SUBTYPE OF (binary_assembly_constraint, coaxial_geometric_constraint); 5976END_ENTITY; 5977 5978-- IN AP242 5979ENTITY coaxial_geometric_constraint 5980 SUBTYPE OF (explicit_geometric_constraint); 5981 SELF\explicit_constraint.constrained_elements : SET [1:?] OF axial_geometry_constraint_element; 5982 SELF\explicit_constraint.reference_elements : SET [0:1] OF axial_geometry_constraint_element; 5983 WHERE 5984 WR1: 5985 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; 5986END_ENTITY; 5987 5988ENTITY coaxiality_tolerance 5989 SUBTYPE OF (geometric_tolerance_with_datum_reference); 5990END_ENTITY; 5991 5992ENTITY colour; 5993END_ENTITY; 5994 5995ENTITY colour_rgb 5996 SUBTYPE OF (colour_specification); 5997 red : REAL; 5998 green : REAL; 5999 blue : REAL; 6000 WHERE 6001 WR1: 6002 (0.0 <= red) AND (red <= 1.0); 6003 WR2: 6004 (0.0 <= green) AND (green <= 1.0); 6005 WR3: 6006 (0.0 <= blue) AND (blue <= 1.0); 6007END_ENTITY; 6008 6009ENTITY colour_specification 6010 SUBTYPE OF (colour); 6011 name : label; 6012END_ENTITY; 6013 6014ENTITY common_datum 6015 SUBTYPE OF (composite_shape_aspect, datum); 6016 WHERE 6017 WR1: 6018 SIZEOF(SELF\composite_shape_aspect.component_relationships) = 2; 6019 WR2: 6020 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; 6021END_ENTITY; 6022 6023-- IN AP214/AP242 6024ENTITY comparison_equal 6025 SUBTYPE OF (comparison_expression); 6026END_ENTITY; 6027 6028-- DIFF IN AP203e2 6029ENTITY comparison_expression 6030 ABSTRACT SUPERTYPE OF (ONEOF(comparison_equal, comparison_greater, comparison_greater_equal, comparison_less, comparison_less_equal, comparison_not_equal, like_expression)) 6031 SUBTYPE OF (boolean_expression, binary_generic_expression); 6032 SELF\binary_generic_expression.operands : LIST [2:2] OF expression; 6033 WHERE 6034 WR1: 6035 (('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])); 6036END_ENTITY; 6037 6038-- IN AP214/AP242 6039ENTITY comparison_greater 6040 SUBTYPE OF (comparison_expression); 6041END_ENTITY; 6042 6043-- IN AP214/AP242 6044ENTITY comparison_greater_equal 6045 SUBTYPE OF (comparison_expression); 6046END_ENTITY; 6047 6048-- IN AP214/AP242 6049ENTITY comparison_less 6050 SUBTYPE OF (comparison_expression); 6051END_ENTITY; 6052 6053-- IN AP214/AP242 6054ENTITY comparison_less_equal 6055 SUBTYPE OF (comparison_expression); 6056END_ENTITY; 6057 6058-- IN AP214/AP242 6059ENTITY comparison_not_equal 6060 SUBTYPE OF (comparison_expression); 6061END_ENTITY; 6062 6063-- IN AP242 6064ENTITY complex_area 6065 ABSTRACT SUPERTYPE OF (path_area_with_parameters ANDOR primitive_2d_with_inner_boundary) 6066 SUBTYPE OF (primitive_2d); 6067END_ENTITY; 6068 6069-- IN AP203e2/AP242 6070ENTITY complex_clause 6071 SUBTYPE OF (compound_representation_item); 6072END_ENTITY; 6073 6074-- IN AP203e2/AP242 6075ENTITY complex_conjunctive_clause 6076 SUBTYPE OF (complex_clause); 6077END_ENTITY; 6078 6079-- IN AP203e2/AP242 6080ENTITY complex_disjunctive_clause 6081 SUBTYPE OF (complex_clause); 6082END_ENTITY; 6083 6084-- IN AP242 6085ENTITY complex_number_literal 6086 SUBTYPE OF (generic_literal); 6087 real_part : REAL; 6088 imag_part : REAL; 6089END_ENTITY; 6090 6091-- IN AP242 6092ENTITY complex_number_literal_polar 6093 SUBTYPE OF (complex_number_literal); 6094 modulus : REAL; 6095 argument : REAL; 6096 DERIVE 6097 SELF\complex_number_literal.imag_part : REAL := modulus * sin(argument); 6098 SELF\complex_number_literal.real_part : REAL := modulus * cos(argument); 6099 WHERE 6100 WR1: 6101 modulus >= 0; 6102 WR2: 6103 (0 <= argument) AND (argument <= 2 * 3.14159); 6104END_ENTITY; 6105 6106-- IN AP203e2/AP242 6107ENTITY complex_shelled_solid 6108 SUBTYPE OF (shelled_solid); 6109 thickened_face_list : LIST [1:?] OF SET [1:?] OF face_surface; 6110 thickness_list : LIST [1:?] OF length_measure; 6111 WHERE 6112 WR1: 6113 SIZEOF(thickened_face_list) = SIZEOF(thickness_list); 6114 WR2: 6115 SIZEOF(QUERY (q <* thickness_list| (q = 0))) = 0; 6116END_ENTITY; 6117 6118-- IN AP242 6119ENTITY complex_triangulated_face 6120 SUBTYPE OF (tessellated_face); 6121 pnindex : LIST [0:?] OF INTEGER; 6122 triangle_strips : LIST [0:?] OF LIST [3:?] OF INTEGER; 6123 triangle_fans : LIST [0:?] OF LIST [3:?] OF INTEGER; 6124 WHERE 6125 WR1: 6126 (SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax); 6127 WR2: 6128 NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints)); 6129 WR3: 6130 NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); 6131END_ENTITY; 6132 6133-- IN AP242 6134ENTITY complex_triangulated_surface_set 6135 SUBTYPE OF (tessellated_surface_set); 6136 pnindex : LIST [0:?] OF INTEGER; 6137 triangle_strips : LIST [0:?] OF LIST [3:?] OF INTEGER; 6138 triangle_fans : LIST [0:?] OF LIST [3:?] OF INTEGER; 6139 WHERE 6140 WR1: 6141 (SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax); 6142 WR2: 6143 NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints)); 6144 WR3: 6145 NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); 6146END_ENTITY; 6147 6148-- IN AP242 6149ENTITY component_definition 6150 SUBTYPE OF (product_definition, product_definition_relationship); 6151 DERIVE 6152 SELF\product_definition_relationship.related_product_definition : component_definition := SELF; 6153 WHERE 6154 WR1: 6155 NOT EXISTS(SELF\product_definition_relationship.description); 6156 WR2: 6157 NOT EXISTS(SELF\property_definition.description); 6158 WR3: 6159 SELF\product_definition_relationship.id = SELF\product_definition.id; 6160 WR4: 6161 SELF\product_definition_relationship.name = 'definition usage'; 6162 WR5: 6163 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF)); 6164END_ENTITY; 6165 6166-- IN AP242 6167ENTITY component_feature 6168 SUBTYPE OF (shape_aspect); 6169 SELF\shape_aspect.of_shape : assembly_component; 6170END_ENTITY; 6171 6172-- IN AP242 6173ENTITY component_feature_joint 6174 SUBTYPE OF (shape_aspect_relationship, shape_aspect); 6175 SELF\shape_aspect_relationship.related_shape_aspect : component_feature; 6176 SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; 6177END_ENTITY; 6178 6179-- IN AP242 6180ENTITY component_feature_relationship 6181 SUBTYPE OF (shape_aspect_relationship); 6182 SELF\shape_aspect_relationship.related_shape_aspect : component_feature; 6183 SELF\shape_aspect_relationship.relating_shape_aspect : component_feature; 6184 WHERE 6185 WR1: 6186 SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect; 6187END_ENTITY; 6188 6189-- IN AP242 6190ENTITY component_mating_constraint_condition 6191 SUBTYPE OF (shape_aspect); 6192 UNIQUE 6193 UR1 : SELF\shape_aspect.name, SELF\shape_aspect.of_shape; 6194END_ENTITY; 6195 6196-- IN AP242 6197ENTITY component_path_shape_aspect 6198 SUBTYPE OF (shape_aspect); 6199 location : multi_or_next_assembly_usage_occurrence; 6200 component_shape_aspect : internal_or_reflected_shape_aspect; 6201 UNIQUE 6202 UR1 : location, component_shape_aspect; 6203END_ENTITY; 6204 6205-- IN AP242 6206ENTITY component_terminal 6207 SUBTYPE OF (component_feature); 6208END_ENTITY; 6209 6210-- IN AP203e2 6211ENTITY composite_assembly_definition 6212 SUBTYPE OF (product_definition); 6213 WHERE 6214 WR1: 6215 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; 6216END_ENTITY; 6217 6218-- IN AP203e2/AP242 6219ENTITY composite_assembly_sequence_definition 6220 SUBTYPE OF (product_definition); 6221 WHERE 6222 WR1: 6223 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; 6224END_ENTITY; 6225 6226-- IN AP203e2/AP242 6227ENTITY composite_assembly_table 6228 SUBTYPE OF (part_laminate_table); 6229END_ENTITY; 6230 6231-- DIFF IN AP214 6232ENTITY composite_curve 6233 SUBTYPE OF (bounded_curve); 6234 segments : LIST [1:?] OF composite_curve_segment; 6235 self_intersect : LOGICAL; 6236 DERIVE 6237 closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; 6238 n_segments : INTEGER := SIZEOF(segments); 6239 WHERE 6240 WR1: 6241 NOT closed_curve AND (SIZEOF(QUERY (temp <* segments| (temp.transition = discontinuous))) = 1) OR closed_curve AND (SIZEOF(QUERY (temp <* segments| (temp.transition = discontinuous))) = 0); 6242END_ENTITY; 6243 6244ENTITY composite_curve_on_surface 6245 SUPERTYPE OF (boundary_curve) 6246 SUBTYPE OF (composite_curve); 6247 DERIVE 6248 basis_surface : SET [0:2] OF surface := get_basis_surface(SELF); 6249 WHERE 6250 WR1: 6251 SIZEOF(basis_surface) > 0; 6252 WR2: 6253 constraints_composite_curve_on_surface(SELF); 6254END_ENTITY; 6255 6256ENTITY composite_curve_segment 6257 SUBTYPE OF (founded_item); 6258 transition : transition_code; 6259 same_sense : BOOLEAN; 6260 parent_curve : curve; 6261 INVERSE 6262 using_curves : BAG [1:?] OF composite_curve FOR segments; 6263 WHERE 6264 WR1: 6265 'STEP_MERGED_CAD_SCHEMA.BOUNDED_CURVE' IN TYPEOF(parent_curve); 6266END_ENTITY; 6267 6268-- IN AP242 6269ENTITY composite_curve_transition_locator 6270 SUBTYPE OF (founded_item); 6271 basis_curve : composite_curve; 6272 transition_index : INTEGER; 6273 WHERE 6274 WR1: 6275 SIZEOF(using_representations(SELF.basis_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0; 6276END_ENTITY; 6277 6278-- IN AP242 6279ENTITY composite_group_shape_aspect 6280 SUBTYPE OF (composite_shape_aspect); 6281END_ENTITY; 6282 6283-- IN AP214/AP242 6284ENTITY composite_hole 6285 SUBTYPE OF (compound_feature); 6286 WHERE 6287 WR1: 6288 SELF\characterized_object.description IN [ 'counterbore', 'countersunk' ]; 6289 WR2: 6290 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; 6291 WR3: 6292 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); 6293END_ENTITY; 6294 6295-- IN AP203e2/AP242 6296ENTITY composite_material_designation 6297 SUBTYPE OF (material_designation); 6298END_ENTITY; 6299 6300-- DIFF IN AP214 6301-- DIFF IN AP203e2 6302ENTITY composite_shape_aspect 6303 SUPERTYPE OF (ONEOF(continuous_shape_aspect, common_datum, composite_group_shape_aspect)) 6304 SUBTYPE OF (shape_aspect); 6305 INVERSE 6306 component_relationships : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect; 6307END_ENTITY; 6308 6309-- IN AP203e2/AP242 6310ENTITY composite_sheet_representation 6311 SUBTYPE OF (shape_representation); 6312 WHERE 6313 WR1: 6314 SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION') ] * TYPEOF(SELF)) = 1; 6315END_ENTITY; 6316 6317ENTITY composite_text 6318 SUBTYPE OF (geometric_representation_item); 6319 collected_text : SET [2:?] OF text_or_character; 6320 WHERE 6321 WR1: 6322 acyclic_composite_text(SELF, SELF.collected_text); 6323END_ENTITY; 6324 6325ENTITY composite_text_with_associated_curves 6326 SUBTYPE OF (composite_text); 6327 associated_curves : SET [1:?] OF curve; 6328END_ENTITY; 6329 6330ENTITY composite_text_with_blanking_box 6331 SUBTYPE OF (composite_text); 6332 blanking : planar_box; 6333END_ENTITY; 6334 6335-- IN AP203e2/AP242 6336ENTITY composite_text_with_delineation 6337 SUBTYPE OF (composite_text); 6338 delineation : text_delineation; 6339END_ENTITY; 6340 6341ENTITY composite_text_with_extent 6342 SUBTYPE OF (composite_text); 6343 extent : planar_extent; 6344END_ENTITY; 6345 6346-- IN AP242 6347ENTITY composite_unit_shape_aspect 6348 SUBTYPE OF (composite_shape_aspect); 6349END_ENTITY; 6350 6351-- IN AP214/AP242 6352ENTITY compound_feature 6353 SUBTYPE OF (feature_definition); 6354 WHERE 6355 WR1: 6356 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; 6357 WR2: 6358 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; 6359 WR3: 6360 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; 6361 WR4: 6362 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; 6363 WR5: 6364 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; 6365 WR6: 6366 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; 6367END_ENTITY; 6368 6369-- DIFF IN AP214 6370-- DIFF IN AP203e2 6371ENTITY compound_representation_item 6372 SUPERTYPE OF (ONEOF(point_and_vector, point_path) ANDOR ONEOF(row_representation_item, table_representation_item)) 6373 SUBTYPE OF (representation_item); 6374 item_element : compound_item_definition; 6375END_ENTITY; 6376 6377ENTITY compound_shape_representation 6378 SUBTYPE OF (shape_representation); 6379 WHERE 6380 WR1: 6381 ('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); 6382 WR2: 6383 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; 6384 WR3: 6385 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; 6386 WR4: 6387 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; 6388END_ENTITY; 6389 6390-- IN AP214/AP242 6391ENTITY concat_expression 6392 SUBTYPE OF (string_expression, multiple_arity_generic_expression); 6393 SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF string_expression; 6394END_ENTITY; 6395 6396ENTITY concentricity_tolerance 6397 SUBTYPE OF (geometric_tolerance_with_datum_reference); 6398END_ENTITY; 6399 6400ENTITY concept_feature_operator; 6401 name : label; 6402 description : OPTIONAL text; 6403END_ENTITY; 6404 6405ENTITY concept_feature_relationship; 6406 name : label; 6407 description : OPTIONAL text; 6408 relating_product_concept_feature : product_concept_feature; 6409 related_product_concept_feature : product_concept_feature; 6410END_ENTITY; 6411 6412ENTITY concept_feature_relationship_with_condition 6413 SUBTYPE OF (concept_feature_relationship); 6414 conditional_operator : concept_feature_operator; 6415END_ENTITY; 6416 6417ENTITY conditional_concept_feature 6418 SUBTYPE OF (product_concept_feature); 6419 condition : concept_feature_relationship_with_condition; 6420END_ENTITY; 6421 6422-- IN AP203e2/AP242 6423ENTITY conductance_measure_with_unit 6424 SUBTYPE OF (measure_with_unit); 6425 WHERE 6426 WR1: 6427 'STEP_MERGED_CAD_SCHEMA.CONDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 6428END_ENTITY; 6429 6430-- IN AP203e2/AP242 6431ENTITY conductance_unit 6432 SUBTYPE OF (derived_unit); 6433 WHERE 6434 WR1: 6435 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.siemens); 6436END_ENTITY; 6437 6438ENTITY configurable_item 6439 SUBTYPE OF (configuration_item); 6440 item_concept_feature : SET [1:?] OF product_concept_feature_association; 6441END_ENTITY; 6442 6443-- IN AP214 6444ENTITY configuration_definition; 6445 pair_values : SET [1:?] OF pair_value; 6446 t_parameter : motion_parameter_measure; 6447END_ENTITY; 6448 6449-- DIFF IN AP214 6450ENTITY configuration_design; 6451 configuration : configuration_item; 6452 design : configuration_design_item; 6453 DERIVE 6454 description : text := get_description_value(SELF); 6455 name : label := get_name_value(SELF); 6456 UNIQUE 6457 UR1 : configuration, design; 6458 WHERE 6459 WR1: 6460 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 6461 WR2: 6462 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 6463END_ENTITY; 6464 6465-- DIFF IN AP214 6466ENTITY configuration_effectivity 6467 SUBTYPE OF (product_definition_effectivity); 6468 configuration : configuration_design; 6469 UNIQUE 6470 UR1 : configuration, SELF\product_definition_effectivity.usage, SELF\effectivity.id; 6471 WHERE 6472 WR1: 6473 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF\product_definition_effectivity.usage); 6474END_ENTITY; 6475 6476-- IN AP214 6477ENTITY configuration_interpolation; 6478 previous_configuration_definition : configuration_definition; 6479 next_configuration_definition : configuration_definition; 6480 interpolation : interpolation_type; 6481END_ENTITY; 6482 6483ENTITY configuration_item; 6484 id : identifier; 6485 name : label; 6486 description : OPTIONAL text; 6487 item_concept : product_concept; 6488 purpose : OPTIONAL label; 6489END_ENTITY; 6490 6491-- IN AP203e2/AP242 6492ENTITY configuration_item_hierarchical_relationship 6493 SUBTYPE OF (configuration_item_relationship); 6494END_ENTITY; 6495 6496-- IN AP203e2/AP242 6497ENTITY configuration_item_relationship; 6498 name : label; 6499 description : OPTIONAL text; 6500 relating_configuration_item : configuration_item; 6501 related_configuration_item : configuration_item; 6502END_ENTITY; 6503 6504-- IN AP203e2/AP242 6505ENTITY configuration_item_revision_sequence 6506 SUBTYPE OF (configuration_item_relationship); 6507END_ENTITY; 6508 6509ENTITY configured_effectivity_assignment 6510 SUBTYPE OF (effectivity_assignment); 6511 items : SET [1:?] OF configured_effectivity_item; 6512 WHERE 6513 WR1: 6514 (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EFFECTIVITY' ] * TYPEOF(SELF.assigned_effectivity)) = 1) AND (SELF.assigned_effectivity.id = 'configuration validity'); 6515 WR2: 6516 SIZEOF(SELF.items) = 1; 6517 WR3: 6518 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; 6519 WR4: 6520 SELF.role.name IN [ 'design', 'usage' ]; 6521 WR5: 6522 (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); 6523 WR6: 6524 (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); 6525 WR7: 6526 SELF.role.description IN [ 'exception', 'inherited', 'local' ]; 6527 WR8: 6528 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; 6529END_ENTITY; 6530 6531-- DIFF IN AP214 6532ENTITY configured_effectivity_context_assignment 6533 SUBTYPE OF (effectivity_context_assignment); 6534 items : SET [1:?] OF configured_effectivity_context_item; 6535 SELF\effectivity_context_assignment.assigned_effectivity_assignment : configured_effectivity_assignment; 6536 WHERE 6537 WR1: 6538 SIZEOF(SELF.items) = 1; 6539END_ENTITY; 6540 6541ENTITY conic 6542 SUPERTYPE OF (ONEOF(circle, ellipse, hyperbola, parabola)) 6543 SUBTYPE OF (curve); 6544 position : axis2_placement; 6545END_ENTITY; 6546 6547-- IN AP203e2/AP242 6548ENTITY conical_stepped_hole_transition 6549 SUBTYPE OF (geometric_representation_item); 6550 transition_number : positive_integer; 6551 cone_apex_angle : plane_angle_measure; 6552 cone_base_radius : positive_length_measure; 6553END_ENTITY; 6554 6555ENTITY conical_surface 6556 SUBTYPE OF (elementary_surface); 6557 radius : length_measure; 6558 semi_angle : plane_angle_measure; 6559 WHERE 6560 WR1: 6561 radius >= 0.0; 6562END_ENTITY; 6563 6564ENTITY connected_edge_set 6565 SUBTYPE OF (topological_representation_item); 6566 ces_edges : SET [1:?] OF edge; 6567END_ENTITY; 6568 6569ENTITY connected_face_set 6570 SUPERTYPE OF (ONEOF(closed_shell, open_shell)) 6571 SUBTYPE OF (topological_representation_item); 6572 cfs_faces : SET [1:?] OF face; 6573END_ENTITY; 6574 6575ENTITY connected_face_sub_set 6576 SUBTYPE OF (connected_face_set); 6577 parent_face_set : connected_face_set; 6578END_ENTITY; 6579 6580-- IN AP242 6581ENTITY connection_zone_based_assembly_joint 6582 SUBTYPE OF (assembly_joint); 6583END_ENTITY; 6584 6585-- IN AP242 6586ENTITY connection_zone_interface_plane_relationship 6587 SUBTYPE OF (shape_aspect, shape_aspect_relationship); 6588 UNIQUE 6589 UR1 : SELF\shape_aspect.name; 6590END_ENTITY; 6591 6592-- IN AP242 6593ENTITY constant_function 6594 SUBTYPE OF (maths_function, generic_literal); 6595 sole_output : maths_value; 6596 source_of_domain : maths_space_or_function; 6597 WHERE 6598 WR1: 6599 no_cyclic_domain_reference(source_of_domain, [ SELF ]); 6600 WR2: 6601 expression_is_constant(domain_from(source_of_domain)); 6602END_ENTITY; 6603 6604-- IN AP242 6605ENTITY constrained_kinematic_motion_representation 6606 SUBTYPE OF (representation_relationship_with_transformation); 6607 SELF\representation_relationship.rep_1 : representative_shape_representation; 6608 SELF\representation_relationship.rep_2 : representative_shape_representation; 6609 WHERE 6610 WR1: 6611 ('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)); 6612 WR2: 6613 (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); 6614 WR3: 6615 (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)); 6616 WR4: 6617 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_PAIR' IN TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator); 6618END_ENTITY; 6619 6620ENTITY constructive_geometry_representation 6621 SUBTYPE OF (representation); 6622 WHERE 6623 WR1: 6624 ('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)); 6625 WR2: 6626 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; 6627 WR3: 6628 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.REP_2')) > 0; 6629 WR4: 6630 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION')) = 0; 6631END_ENTITY; 6632 6633-- DIFF IN AP214 6634ENTITY constructive_geometry_representation_relationship 6635 SUBTYPE OF (representation_relationship); 6636 SELF\representation_relationship.rep_1 : constructive_geometry_representation_or_shape_represenation; 6637 SELF\representation_relationship.rep_2 : constructive_geometry_representation; 6638 WHERE 6639 WR1: 6640 (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)); 6641 WR2: 6642 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); 6643END_ENTITY; 6644 6645ENTITY contact_ratio_representation 6646 SUBTYPE OF (representation); 6647 WHERE 6648 WR1: 6649 (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); 6650 WR2: 6651 (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); 6652 WR3: 6653 (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); 6654END_ENTITY; 6655 6656-- IN AP242 6657ENTITY contacting_feature 6658 SUBTYPE OF (shape_aspect); 6659 WHERE 6660 WR1: 6661 SELF\shape_aspect.product_definitional = FALSE; 6662END_ENTITY; 6663 6664ENTITY context_dependent_invisibility 6665 SUBTYPE OF (invisibility); 6666 presentation_context : invisibility_context; 6667END_ENTITY; 6668 6669-- IN AP242 6670ENTITY context_dependent_kinematic_link_representation; 6671 representation_relation : kinematic_link_representation_association; 6672 represented_product_relation : product_definition_relationship_kinematics; 6673END_ENTITY; 6674 6675ENTITY context_dependent_over_riding_styled_item 6676 SUBTYPE OF (over_riding_styled_item); 6677 style_context : LIST [1:?] OF style_context_select; 6678 WHERE 6679 WR1: 6680 (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)); 6681END_ENTITY; 6682 6683ENTITY context_dependent_shape_representation; 6684 representation_relation : shape_representation_relationship; 6685 represented_product_relation : product_definition_shape; 6686 DERIVE 6687 description : text := get_description_value(SELF); 6688 name : label := get_name_value(SELF); 6689 WHERE 6690 WR1: 6691 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF.represented_product_relation.definition); 6692 WR2: 6693 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 6694 WR3: 6695 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 6696END_ENTITY; 6697 6698ENTITY context_dependent_unit 6699 SUBTYPE OF (named_unit); 6700 name : label; 6701END_ENTITY; 6702 6703-- IN AP242 6704ENTITY continuous_shape_aspect 6705 SUPERTYPE OF (ONEOF(between_shape_aspect, all_around_shape_aspect)) 6706 SUBTYPE OF (composite_shape_aspect); 6707END_ENTITY; 6708 6709ENTITY contract; 6710 name : label; 6711 purpose : text; 6712 kind : contract_type; 6713END_ENTITY; 6714 6715ENTITY contract_assignment 6716 ABSTRACT SUPERTYPE; 6717 assigned_contract : contract; 6718 DERIVE 6719 role : object_role := get_role(SELF); 6720 WHERE 6721 WR1: 6722 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 6723END_ENTITY; 6724 6725-- IN AP203e2/AP242 6726ENTITY contract_relationship; 6727 id : identifier; 6728 name : label; 6729 description : OPTIONAL text; 6730 relating_contract : contract; 6731 related_contract : contract; 6732END_ENTITY; 6733 6734ENTITY contract_type; 6735 description : label; 6736END_ENTITY; 6737 6738-- DIFF IN AP214 6739ENTITY conversion_based_unit 6740 SUBTYPE OF (named_unit); 6741 name : label; 6742 conversion_factor : measure_with_unit; 6743 WHERE 6744 WR1: 6745 SELF\named_unit.dimensions = derive_dimensional_exponents(conversion_factor\measure_with_unit.unit_component); 6746END_ENTITY; 6747 6748ENTITY coordinated_universal_time_offset; 6749 hour_offset : INTEGER; 6750 minute_offset : OPTIONAL INTEGER; 6751 sense : ahead_or_behind; 6752 DERIVE 6753 actual_minute_offset : INTEGER := NVL(minute_offset, 0); 6754 WHERE 6755 WR1: 6756 (0 <= hour_offset) AND (hour_offset < 24); 6757 WR2: 6758 (0 <= actual_minute_offset) AND (actual_minute_offset <= 59); 6759 WR3: 6760 NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = exact)); 6761END_ENTITY; 6762 6763-- IN AP242 6764ENTITY coordinates_list 6765 SUBTYPE OF (tessellated_item); 6766 npoints : INTEGER; 6767 position_coords : LIST [1:?] OF LIST [3:3] OF REAL; 6768 WHERE 6769 WR1: 6770 npoints = SIZEOF(position_coords); 6771 WR2: 6772 SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.REPOSITIONED_TESSELLATED_ITEM' ] * TYPEOF(SELF)) = 0; 6773END_ENTITY; 6774 6775-- IN AP214/AP242 6776ENTITY cos_function 6777 SUBTYPE OF (unary_function_call); 6778END_ENTITY; 6779 6780-- IN AP242 6781ENTITY csg_2d_shape_representation 6782 SUBTYPE OF (shape_representation); 6783 SELF\representation.items : SET [1:?] OF csg_2d_shape_select; 6784 WHERE 6785 WR1: 6786 SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; 6787 WR2: 6788 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; 6789 WR3: 6790 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; 6791END_ENTITY; 6792 6793-- IN AP242 6794ENTITY csg_primitive_solid_2d 6795 SUBTYPE OF (csg_solid_2d); 6796 SELF\csg_solid.tree_root_expression : bounded_primitive_2d; 6797END_ENTITY; 6798 6799ENTITY csg_shape_representation 6800 SUBTYPE OF (shape_representation); 6801 WHERE 6802 WR1: 6803 SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; 6804 WR2: 6805 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; 6806 WR3: 6807 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; 6808 WR4: 6809 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; 6810 WR5: 6811 SIZEOF(QUERY (it <* SELF.items| NOT ('STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(it)))) > 0; 6812END_ENTITY; 6813 6814ENTITY csg_solid 6815 SUBTYPE OF (solid_model); 6816 tree_root_expression : csg_select; 6817END_ENTITY; 6818 6819-- IN AP242 6820ENTITY csg_solid_2d 6821 SUBTYPE OF (csg_solid); 6822 SELF\csg_solid.tree_root_expression : csg_select_2d; 6823 WHERE 6824 WR1: 6825 valid_csg_2d_primitives(SELF); 6826END_ENTITY; 6827 6828-- IN AP203e2/AP242 6829ENTITY currency 6830 ABSTRACT SUPERTYPE OF (ONEOF(externally_defined_currency, iso4217_currency)) 6831 SUBTYPE OF (context_dependent_unit); 6832 WHERE 6833 WR1: 6834 ((((((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); 6835END_ENTITY; 6836 6837-- IN AP203e2/AP242 6838ENTITY currency_measure_with_unit 6839 SUBTYPE OF (measure_with_unit); 6840 SELF\measure_with_unit.unit_component : currency; 6841END_ENTITY; 6842 6843-- IN AP242 6844ENTITY current_change_element_assignment 6845 SUBTYPE OF (group_assignment); 6846 items : SET [1:?] OF change_management_object; 6847 SELF\group_assignment.assigned_group : current_element_assignment_select; 6848END_ENTITY; 6849 6850ENTITY curve 6851 SUPERTYPE OF (ONEOF(line, conic, pcurve, surface_curve, offset_curve_2d, offset_curve_3d, curve_replica)) 6852 SUBTYPE OF (geometric_representation_item); 6853END_ENTITY; 6854 6855-- IN AP242 6856ENTITY curve_based_path 6857 SUBTYPE OF (path_node); 6858 path_curve : curve; 6859END_ENTITY; 6860 6861-- IN AP242 6862ENTITY curve_based_path_with_orientation 6863 SUBTYPE OF (kinematic_path_segment); 6864 position_curve : bounded_curve; 6865 orientation_curve : bounded_curve; 6866 WHERE 6867 WR1: 6868 TYPEOF(position_curve) = TYPEOF(orientation_curve); 6869END_ENTITY; 6870 6871-- IN AP242 6872ENTITY curve_based_path_with_orientation_and_parameters 6873 SUBTYPE OF (curve_based_path_with_orientation); 6874 parameters : path_parameter_representation; 6875END_ENTITY; 6876 6877ENTITY curve_bounded_surface 6878 SUBTYPE OF (bounded_surface); 6879 basis_surface : surface; 6880 boundaries : SET [1:?] OF boundary_curve; 6881 implicit_outer : BOOLEAN; 6882 WHERE 6883 WR1: 6884 NOT implicit_outer OR (SIZEOF(QUERY (temp <* boundaries| ('STEP_MERGED_CAD_SCHEMA.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp)))) = 0); 6885 WR2: 6886 NOT implicit_outer OR ('STEP_MERGED_CAD_SCHEMA.BOUNDED_SURFACE' IN TYPEOF(basis_surface)); 6887 WR3: 6888 SIZEOF(QUERY (temp <* boundaries| ('STEP_MERGED_CAD_SCHEMA.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp)))) <= 1; 6889 WR4: 6890 SIZEOF(QUERY (temp <* boundaries| (temp\composite_curve_on_surface.basis_surface[1] <> SELF.basis_surface))) = 0; 6891END_ENTITY; 6892 6893ENTITY curve_dimension 6894 SUBTYPE OF (dimension_curve_directed_callout); 6895END_ENTITY; 6896 6897-- IN AP242 6898ENTITY curve_distance_geometric_constraint 6899 SUBTYPE OF (explicit_geometric_constraint); 6900 near_points : SET [0:4] OF near_point_relationship; 6901 SELF\explicit_constraint.constrained_elements : SET [1:2] OF curve; 6902 SELF\explicit_constraint.reference_elements : SET [0:4] OF point_curve_or_surface_constraint_element; 6903 WHERE 6904 WR1: 6905 (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); 6906 WR2: 6907 SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements); 6908 WR3: 6909 SIZEOF(QUERY (q <* near_points| NOT (q\representation_item_relationship.relating_representation_item IN SELF\explicit_constraint.reference_elements))) = 0; 6910END_ENTITY; 6911 6912-- IN AP242 6913ENTITY curve_length_geometric_constraint 6914 SUBTYPE OF (explicit_geometric_constraint); 6915 SELF\explicit_constraint.constrained_elements : SET [1:?] OF bounded_curve; 6916 WHERE 6917 WR1: 6918 SIZEOF(SELF\explicit_constraint.reference_elements) = 0; 6919END_ENTITY; 6920 6921ENTITY curve_replica 6922 SUBTYPE OF (curve); 6923 parent_curve : curve; 6924 transformation : cartesian_transformation_operator; 6925 WHERE 6926 WR1: 6927 transformation.dim = parent_curve.dim; 6928 WR2: 6929 acyclic_curve_replica(SELF, parent_curve); 6930END_ENTITY; 6931 6932-- IN AP242 6933ENTITY curve_segment_set 6934 SUBTYPE OF (geometric_representation_item); 6935 segments : SET [1:?] OF composite_curve_segment; 6936END_ENTITY; 6937 6938-- IN AP242 6939ENTITY curve_smoothness_geometric_constraint 6940 SUBTYPE OF (explicit_geometric_constraint); 6941 smoothness : transition_code; 6942 SELF\explicit_constraint.constrained_elements : SET [1:1] OF curve_segment_set; 6943 WHERE 6944 WR1: 6945 SIZEOF(SELF\explicit_constraint.reference_elements) = 0; 6946END_ENTITY; 6947 6948ENTITY curve_style 6949 SUBTYPE OF (founded_item); 6950 name : label; 6951 curve_font : curve_font_or_scaled_curve_font_select; 6952 curve_width : size_select; 6953 curve_colour : colour; 6954END_ENTITY; 6955 6956ENTITY curve_style_font 6957 SUBTYPE OF (founded_item); 6958 name : label; 6959 pattern_list : LIST [1:?] OF curve_style_font_pattern; 6960END_ENTITY; 6961 6962-- IN AP203e2/AP242 6963ENTITY curve_style_font_and_scaling 6964 SUBTYPE OF (founded_item); 6965 name : label; 6966 curve_font : curve_style_font_select; 6967 curve_font_scaling : REAL; 6968END_ENTITY; 6969 6970ENTITY curve_style_font_pattern 6971 SUBTYPE OF (founded_item); 6972 visible_segment_length : positive_length_measure; 6973 invisible_segment_length : positive_length_measure; 6974END_ENTITY; 6975 6976-- IN AP242 6977ENTITY curve_style_parameters_representation 6978 SUBTYPE OF (representation); 6979END_ENTITY; 6980 6981-- IN AP242 6982ENTITY curve_style_parameters_with_ends 6983 SUBTYPE OF (curve_style_parameters_representation); 6984END_ENTITY; 6985 6986ENTITY curve_style_rendering; 6987 rendering_method : shading_curve_method; 6988 rendering_properties : surface_rendering_properties; 6989END_ENTITY; 6990 6991ENTITY curve_swept_solid_shape_representation 6992 SUBTYPE OF (shape_representation); 6993 WHERE 6994 WR1: 6995 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; 6996 WR2: 6997 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; 6998 WR3: 6999 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; 7000 WR4: 7001 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; 7002END_ENTITY; 7003 7004-- IN AP242 7005ENTITY curve_with_excessive_segments 7006 SUBTYPE OF (overcomplex_geometry); 7007 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 7008 WHERE 7009 WR1: 7010 ('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)); 7011 WR2: 7012 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 7013 WR3: 7014 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_OR_COMPOSITE_CURVE_SELECT' ]); 7015 WR4: 7016 validate_locations_of_extreme_value_type(SELF, []); 7017 WR5: 7018 validate_accuracy_types(SELF, []); 7019END_ENTITY; 7020 7021-- IN AP242 7022ENTITY curve_with_small_curvature_radius 7023 SUBTYPE OF (geometry_with_local_near_degeneracy); 7024 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 7025 WHERE 7026 WR1: 7027 ('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)); 7028 WR2: 7029 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 7030 WR3: 7031 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE' ]); 7032 WR4: 7033 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE' ]); 7034 WR5: 7035 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 7036END_ENTITY; 7037 7038-- DIFF IN AP214 7039-- IN AP214/AP242 7040ENTITY cylindrical_pair 7041 SUBTYPE OF (low_order_kinematic_pair); 7042 DERIVE 7043 SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; 7044 SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; 7045 SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; 7046 SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; 7047 SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; 7048 SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; 7049END_ENTITY; 7050 7051-- IN AP214 7052ENTITY cylindrical_pair_range 7053 SUBTYPE OF (simple_pair_range); 7054 SELF\simple_pair_range.applies_to_pair : cylindrical_pair; 7055 lower_limit_actual_translation : translational_range_measure; 7056 upper_limit_actual_translation : translational_range_measure; 7057 lower_limit_actual_rotation : rotational_range_measure; 7058 upper_limit_actual_rotation : rotational_range_measure; 7059 WHERE 7060 wr1: 7061 (('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); 7062 wr2: 7063 (('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); 7064END_ENTITY; 7065 7066-- DIFF IN AP214 7067-- IN AP214/AP242 7068ENTITY cylindrical_pair_value 7069 SUBTYPE OF (pair_value); 7070 actual_translation : length_measure; 7071 actual_rotation : plane_angle_measure; 7072 SELF\pair_value.applies_to_pair : cylindrical_pair; 7073END_ENTITY; 7074 7075-- IN AP242 7076ENTITY cylindrical_pair_with_range 7077 SUBTYPE OF (cylindrical_pair); 7078 lower_limit_actual_translation : OPTIONAL length_measure; 7079 upper_limit_actual_translation : OPTIONAL length_measure; 7080 lower_limit_actual_rotation : OPTIONAL plane_angle_measure; 7081 upper_limit_actual_rotation : OPTIONAL plane_angle_measure; 7082 WHERE 7083 WR1: 7084 (NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS(upper_limit_actual_translation)) XOR (lower_limit_actual_translation < upper_limit_actual_translation); 7085 WR2: 7086 (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); 7087END_ENTITY; 7088 7089ENTITY cylindrical_surface 7090 SUBTYPE OF (elementary_surface); 7091 radius : positive_length_measure; 7092END_ENTITY; 7093 7094ENTITY cylindricity_tolerance 7095 SUBTYPE OF (geometric_tolerance); 7096 WHERE 7097 WR1: 7098 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); 7099END_ENTITY; 7100 7101ENTITY data_environment; 7102 name : label; 7103 description : text; 7104 elements : SET [1:?] OF property_definition_representation; 7105END_ENTITY; 7106 7107-- IN AP242 7108ENTITY data_quality_assessment_measurement_association; 7109 assessment_specification : data_quality_criterion_assessment_association; 7110 measurement_requirement : data_quality_criterion_measurement_association; 7111 WHERE 7112 WR1: 7113 SELF.measurement_requirement\representation_item_relationship.relating_representation_item :=: SELF.assessment_specification.criterion; 7114END_ENTITY; 7115 7116-- IN AP242 7117ENTITY data_quality_assessment_specification; 7118 description : text; 7119END_ENTITY; 7120 7121-- IN AP242 7122ENTITY data_quality_criteria_representation 7123 SUBTYPE OF (representation); 7124 WHERE 7125 WR1: 7126 SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION' IN TYPEOF(q)))) > 0; 7127END_ENTITY; 7128 7129-- IN AP242 7130ENTITY data_quality_criterion 7131 SUBTYPE OF (representation_item); 7132 WHERE 7133 WR1: 7134 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; 7135END_ENTITY; 7136 7137-- IN AP242 7138ENTITY data_quality_criterion_assessment_association; 7139 criterion : data_quality_criterion; 7140 assessment_specification : data_quality_assessment_specification; 7141END_ENTITY; 7142 7143-- IN AP242 7144ENTITY data_quality_criterion_measurement_association 7145 SUBTYPE OF (representation_item_relationship); 7146 SELF\representation_item_relationship.related_representation_item : data_quality_measurement_requirement; 7147 SELF\representation_item_relationship.relating_representation_item : data_quality_criterion; 7148END_ENTITY; 7149 7150-- IN AP242 7151ENTITY data_quality_definition; 7152 description : text; 7153END_ENTITY; 7154 7155-- IN AP242 7156ENTITY data_quality_definition_relationship; 7157 description : text; 7158 relating_data_quality_definition : data_quality_definition; 7159 related_data_quality_definition : data_quality_definition; 7160END_ENTITY; 7161 7162-- IN AP242 7163ENTITY data_quality_definition_representation_relationship; 7164 description : text; 7165 definition : data_quality_definition; 7166 used_representation : used_quality_representation_select; 7167END_ENTITY; 7168 7169-- IN AP242 7170ENTITY data_quality_inspection_criterion_report 7171 SUBTYPE OF (data_quality_inspection_report); 7172 statistical_values : SET [1:2] OF data_quality_inspection_criterion_report_item; 7173 WHERE 7174 WR1: 7175 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; 7176 WR2: 7177 (SIZEOF(SELF.statistical_values) = 1) OR (SELF.statistical_values[1].value_type <> SELF.statistical_values[2].value_type); 7178END_ENTITY; 7179 7180-- IN AP242 7181ENTITY data_quality_inspection_criterion_report_item 7182 SUBTYPE OF (representation_item); 7183 statistical_value : INTEGER; 7184 value_type : statistical_value_type; 7185 WHERE 7186 WR1: 7187 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; 7188END_ENTITY; 7189 7190-- IN AP242 7191ENTITY data_quality_inspection_instance_report 7192 SUBTYPE OF (data_quality_inspection_report); 7193 inspected_instances : LIST [1:?] OF data_quality_inspection_instance_report_item; 7194 WHERE 7195 WR1: 7196 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; 7197END_ENTITY; 7198 7199-- IN AP242 7200ENTITY data_quality_inspection_instance_report_item 7201 SUBTYPE OF (representation_item); 7202 inspected_elements : SET [1:?] OF inspected_element_select; 7203 WHERE 7204 WR1: 7205 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; 7206END_ENTITY; 7207 7208-- IN AP242 7209ENTITY data_quality_inspection_report 7210 SUPERTYPE OF (ONEOF(data_quality_inspection_criterion_report, data_quality_inspection_instance_report)) 7211 SUBTYPE OF (representation_item); 7212 inspection_result : data_quality_inspection_result; 7213 WHERE 7214 WR1: 7215 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; 7216END_ENTITY; 7217 7218-- IN AP242 7219ENTITY data_quality_inspection_result 7220 SUBTYPE OF (representation_item); 7221 criterion_inspected : data_quality_criterion; 7222 WHERE 7223 WR1: 7224 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; 7225END_ENTITY; 7226 7227-- IN AP242 7228ENTITY data_quality_inspection_result_representation 7229 SUBTYPE OF (representation); 7230 criteria_inspected : data_quality_criteria_representation; 7231 WHERE 7232 WR1: 7233 SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)))) > 0; 7234 WR2: 7235 SIZEOF(inspected_product_definition(SELF)) > 0; 7236END_ENTITY; 7237 7238-- IN AP242 7239ENTITY data_quality_inspection_result_with_judgement 7240 SUBTYPE OF (data_quality_inspection_result); 7241 judgement : BOOLEAN; 7242END_ENTITY; 7243 7244-- IN AP242 7245ENTITY data_quality_measurement_requirement 7246 SUBTYPE OF (representation_item); 7247 WHERE 7248 WR1: 7249 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; 7250END_ENTITY; 7251 7252-- IN AP242 7253ENTITY data_quality_report_measurement_association 7254 SUBTYPE OF (representation_item_relationship); 7255 SELF\representation_item_relationship.related_representation_item : data_quality_inspection_report; 7256 SELF\representation_item_relationship.relating_representation_item : data_quality_measurement_requirement; 7257END_ENTITY; 7258 7259-- IN AP242 7260ENTITY data_quality_report_request 7261 ABSTRACT SUPERTYPE OF (ONEOF(summary_report_request, detailed_report_request)); 7262 description : text; 7263 criterion_of_report_request : data_quality_criterion; 7264END_ENTITY; 7265 7266-- DIFF IN AP214 7267ENTITY date 7268 SUPERTYPE OF (ONEOF(calendar_date, ordinal_date, week_of_year_and_day_date, year_month)); 7269 year_component : year_number; 7270END_ENTITY; 7271 7272ENTITY date_and_time; 7273 date_component : date; 7274 time_component : local_time; 7275END_ENTITY; 7276 7277ENTITY date_and_time_assignment 7278 ABSTRACT SUPERTYPE; 7279 assigned_date_and_time : date_and_time; 7280 role : date_time_role; 7281END_ENTITY; 7282 7283ENTITY date_assignment 7284 ABSTRACT SUPERTYPE; 7285 assigned_date : date; 7286 role : date_role; 7287END_ENTITY; 7288 7289-- IN AP203e2/AP242 7290ENTITY date_representation_item 7291 SUBTYPE OF (representation_item, date); 7292END_ENTITY; 7293 7294ENTITY date_role; 7295 name : label; 7296 DERIVE 7297 description : text := get_description_value(SELF); 7298 WHERE 7299 WR1: 7300 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 7301END_ENTITY; 7302 7303-- IN AP203e2/AP242 7304ENTITY date_time_representation_item 7305 SUBTYPE OF (representation_item, date_and_time); 7306END_ENTITY; 7307 7308ENTITY date_time_role; 7309 name : label; 7310 DERIVE 7311 description : text := get_description_value(SELF); 7312 WHERE 7313 WR1: 7314 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 7315END_ENTITY; 7316 7317-- DIFF IN AP214 7318-- DIFF IN AP203e2 7319ENTITY dated_effectivity 7320 SUBTYPE OF (effectivity); 7321 effectivity_end_date : OPTIONAL date_time_or_event_occurrence; 7322 effectivity_start_date : OPTIONAL date_time_or_event_occurrence; 7323 WHERE 7324 WR1: 7325 EXISTS(effectivity_end_date) OR EXISTS(effectivity_start_date); 7326END_ENTITY; 7327 7328-- DIFF IN AP214 7329-- DIFF IN AP203e2 7330ENTITY datum 7331 SUBTYPE OF (shape_aspect); 7332 identification : identifier; 7333 INVERSE 7334 established_by_relationships : SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect; 7335 UNIQUE 7336 UR1 : identification, SELF\shape_aspect.of_shape; 7337 WHERE 7338 WR1: 7339 ('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); 7340 WR2: 7341 SIZEOF(QUERY (x <* SELF\datum.established_by_relationships| ('STEP_MERGED_CAD_SCHEMA.DATUM_FEATURE' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) <= 1; 7342 WR3: 7343 SELF\shape_aspect.product_definitional = FALSE; 7344 WR4: 7345 SELF\shape_aspect.name = ''; 7346END_ENTITY; 7347 7348-- DIFF IN AP214 7349-- DIFF IN AP203e2 7350ENTITY datum_feature 7351 SUPERTYPE OF (ONEOF(dimensional_location_with_datum_feature, dimensional_size_with_datum_feature)) 7352 SUBTYPE OF (shape_aspect); 7353 INVERSE 7354 feature_basis_relationship : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; 7355 WHERE 7356 WR1: 7357 SIZEOF(QUERY (sar <* SELF\datum_feature.feature_basis_relationship| ('STEP_MERGED_CAD_SCHEMA.DATUM' IN TYPEOF(sar\shape_aspect_relationship.related_shape_aspect)))) = 1; 7358 WR2: 7359 SELF\shape_aspect.product_definitional = TRUE; 7360END_ENTITY; 7361 7362ENTITY datum_feature_callout 7363 SUBTYPE OF (draughting_callout); 7364END_ENTITY; 7365 7366ENTITY datum_reference; 7367 precedence : INTEGER; 7368 referenced_datum : datum; 7369 WHERE 7370 WR1: 7371 precedence > 0; 7372END_ENTITY; 7373 7374-- IN AP242 7375ENTITY datum_reference_compartment 7376 SUBTYPE OF (general_datum_reference); 7377 INVERSE 7378 owner : datum_system FOR constituents; 7379END_ENTITY; 7380 7381-- IN AP242 7382ENTITY datum_reference_element 7383 SUBTYPE OF (general_datum_reference); 7384 DERIVE 7385 owner : general_datum_reference := sts_get_general_datum_reference(SELF); 7386 WHERE 7387 WR1: 7388 SELF <> owner; 7389 WR2: 7390 EXISTS(owner); 7391 WR3: 7392 SELF\shape_aspect.of_shape = owner\shape_aspect.of_shape; 7393END_ENTITY; 7394 7395-- IN AP242 7396ENTITY datum_reference_modifier_with_value; 7397 modifier_type : datum_reference_modifier_type; 7398 modifier_value : length_measure_with_unit; 7399 WHERE 7400 WR1: 7401 modifier_value\measure_with_unit.value_component > 0.0; 7402END_ENTITY; 7403 7404-- IN AP242 7405ENTITY datum_system 7406 SUBTYPE OF (shape_aspect); 7407 constituents : LIST [1:3] OF UNIQUE datum_reference_compartment; 7408 UNIQUE 7409 UR1 : SELF\shape_aspect.of_shape, SELF\shape_aspect.name; 7410 WHERE 7411 WR1: 7412 SELF\shape_aspect.product_definitional = FALSE; 7413END_ENTITY; 7414 7415-- DIFF IN AP214 7416ENTITY datum_target 7417 SUBTYPE OF (shape_aspect); 7418 target_id : identifier; 7419 INVERSE 7420 target_basis_relationship : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; 7421 WHERE 7422 WR1: 7423 SIZEOF(QUERY (sar <* SELF\datum_target.target_basis_relationship| ('STEP_MERGED_CAD_SCHEMA.DATUM' IN TYPEOF(sar\shape_aspect_relationship.related_shape_aspect)))) = 1; 7424 WR2: 7425 SELF\shape_aspect.product_definitional = TRUE; 7426END_ENTITY; 7427 7428ENTITY datum_target_callout 7429 SUBTYPE OF (draughting_callout); 7430END_ENTITY; 7431 7432ENTITY default_tolerance_table 7433 SUBTYPE OF (representation); 7434 WHERE 7435 WR1: 7436 SIZEOF(QUERY (i <* SELF.items| NOT ('STEP_MERGED_CAD_SCHEMA.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)))) = 0; 7437 WR2: 7438 ((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); 7439END_ENTITY; 7440 7441ENTITY default_tolerance_table_cell 7442 SUBTYPE OF (compound_representation_item); 7443 WHERE 7444 WR1: 7445 SIZEOF(QUERY (x <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION.ITEMS')| ('STEP_MERGED_CAD_SCHEMA.' + 'DEFAULT_TOLERANCE_TABLE' IN TYPEOF(x)))) = 1; 7446 WR2: 7447 default_tolerance_table_cell_wr2(SELF\compound_representation_item.item_element); 7448 WR3: 7449 default_tolerance_table_cell_wr3(SELF\compound_representation_item.item_element); 7450 WR4: 7451 default_tolerance_table_cell_wr4(SELF\compound_representation_item.item_element); 7452 WR5: 7453 default_tolerance_table_cell_wr5(SELF\compound_representation_item.item_element); 7454END_ENTITY; 7455 7456-- IN AP214/AP242 7457ENTITY defined_character_glyph 7458 SUBTYPE OF (geometric_representation_item); 7459 definition : defined_glyph_select; 7460 placement : axis2_placement; 7461END_ENTITY; 7462 7463-- IN AP242 7464ENTITY defined_constraint 7465 ABSTRACT SUPERTYPE OF (equal_parameter_constraint) 7466 SUBTYPE OF (explicit_constraint); 7467END_ENTITY; 7468 7469-- CASE DIFF IN AP214 7470-- IN AP214/AP242 7471ENTITY defined_function 7472 ABSTRACT SUPERTYPE OF (ONEOF(numeric_defined_function, string_defined_function, boolean_defined_function) ANDOR SQL_mappable_defined_function); 7473END_ENTITY; 7474 7475ENTITY defined_symbol 7476 SUBTYPE OF (geometric_representation_item); 7477 definition : defined_symbol_select; 7478 target : symbol_target; 7479END_ENTITY; 7480 7481-- IN AP242 7482ENTITY definite_integral_expression 7483 SUBTYPE OF (quantifier_expression); 7484 lower_limit_neg_infinity : BOOLEAN; 7485 upper_limit_pos_infinity : BOOLEAN; 7486 DERIVE 7487 integrand : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; 7488 variable_of_integration : maths_variable := SELF\multiple_arity_generic_expression.operands[2]; 7489 SELF\quantifier_expression.variables : LIST [1:1] OF UNIQUE generic_variable := [ variable_of_integration ]; 7490 WHERE 7491 WR1: 7492 has_values_space(integrand); 7493 WR2: 7494 space_is_continuum(values_space_of(integrand)); 7495 WR3: 7496 definite_integral_expr_check(SELF\multiple_arity_generic_expression.operands, lower_limit_neg_infinity, upper_limit_pos_infinity); 7497END_ENTITY; 7498 7499-- IN AP242 7500ENTITY definite_integral_function 7501 SUBTYPE OF (maths_function, unary_generic_expression); 7502 variable_of_integration : input_selector; 7503 lower_limit_neg_infinity : BOOLEAN; 7504 upper_limit_pos_infinity : BOOLEAN; 7505 SELF\unary_generic_expression.operand : maths_function; 7506 DERIVE 7507 integrand : maths_function := SELF\unary_generic_expression.operand; 7508 WHERE 7509 WR1: 7510 space_is_continuum(integrand.range); 7511 WR2: 7512 definite_integral_check(integrand.domain, variable_of_integration, lower_limit_neg_infinity, upper_limit_pos_infinity); 7513END_ENTITY; 7514 7515ENTITY definitional_representation 7516 SUBTYPE OF (representation); 7517 WHERE 7518 WR1: 7519 'STEP_MERGED_CAD_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); 7520END_ENTITY; 7521 7522-- IN AP203e2/AP242 7523ENTITY definitional_representation_relationship 7524 SUBTYPE OF (representation_relationship); 7525 WHERE 7526 WR1: 7527 acyclic_representation_relationship(SELF, [ SELF\representation_relationship.rep_2 ], 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION'); 7528END_ENTITY; 7529 7530-- IN AP203e2/AP242 7531ENTITY definitional_representation_relationship_with_same_context 7532 SUBTYPE OF (definitional_representation_relationship); 7533 WHERE 7534 WR1: 7535 SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.context_of_items; 7536END_ENTITY; 7537 7538ENTITY degenerate_pcurve 7539 SUBTYPE OF (point); 7540 basis_surface : surface; 7541 reference_to_curve : definitional_representation; 7542 WHERE 7543 WR1: 7544 SIZEOF(reference_to_curve\representation.items) = 1; 7545 WR2: 7546 'STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(reference_to_curve\representation.items[1]); 7547 WR3: 7548 reference_to_curve\representation.items[1]\geometric_representation_item.dim = 2; 7549END_ENTITY; 7550 7551ENTITY degenerate_toroidal_surface 7552 SUBTYPE OF (toroidal_surface); 7553 select_outer : BOOLEAN; 7554 WHERE 7555 WR1: 7556 major_radius < minor_radius; 7557END_ENTITY; 7558 7559-- IN AP242 7560ENTITY delete_element 7561 SUBTYPE OF (change_element); 7562END_ENTITY; 7563 7564-- DIFF IN AP214 7565-- DIFF IN AP203e2 7566ENTITY derived_shape_aspect 7567 SUPERTYPE OF (ONEOF(apex, centre_of_symmetry, geometric_alignment, geometric_contact, geometric_intersection, parallel_offset, perpendicular_to, extension, tangent)) 7568 SUBTYPE OF (shape_aspect); 7569 INVERSE 7570 deriving_relationships : SET [1:?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; 7571END_ENTITY; 7572 7573-- DIFF IN AP214 7574ENTITY derived_unit 7575 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)); 7576 elements : SET [1:?] OF derived_unit_element; 7577 DERIVE 7578 name : label := get_name_value(SELF); 7579 WHERE 7580 WR1: 7581 (SIZEOF(elements) > 1) OR (SIZEOF(elements) = 1) AND (elements[1].exponent <> 1.0); 7582 WR2: 7583 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 7584END_ENTITY; 7585 7586ENTITY derived_unit_element; 7587 unit : named_unit; 7588 exponent : REAL; 7589END_ENTITY; 7590 7591-- IN AP214 7592ENTITY derived_unit_variable 7593 SUBTYPE OF (derived_unit, variable_semantics); 7594 INVERSE 7595 associated_variable_environment : environment FOR semantics; 7596END_ENTITY; 7597 7598ENTITY description_attribute; 7599 attribute_value : text; 7600 described_item : description_attribute_select; 7601END_ENTITY; 7602 7603-- DIFF IN AP214 7604ENTITY descriptive_representation_item 7605 SUPERTYPE OF (ONEOF(tagged_text_item, uniform_resource_identifier)) 7606 SUBTYPE OF (representation_item); 7607 description : text; 7608END_ENTITY; 7609 7610-- IN AP203e2/AP242 7611ENTITY design_make_from_relationship 7612 SUBTYPE OF (product_definition_relationship); 7613END_ENTITY; 7614 7615-- IN AP242 7616ENTITY detailed_report_request 7617 SUBTYPE OF (data_quality_report_request); 7618 detailed_report_request_type : detailed_report_type; 7619 report_sequence : preferred_ordering; 7620END_ENTITY; 7621 7622-- IN AP242 7623ENTITY detailed_report_request_with_number_of_data 7624 SUBTYPE OF (detailed_report_request); 7625 number_of_data : INTEGER; 7626 DERIVE 7627 SELF\detailed_report_request.detailed_report_request_type : detailed_report_type := measured_element; 7628END_ENTITY; 7629 7630ENTITY diameter_dimension 7631 SUBTYPE OF (dimension_curve_directed_callout); 7632END_ENTITY; 7633 7634-- IN AP203e2/AP242 7635ENTITY dielectric_constant_measure_with_unit 7636 SUBTYPE OF (ratio_measure_with_unit); 7637END_ENTITY; 7638 7639ENTITY dimension_callout 7640 SUBTYPE OF (draughting_callout); 7641 WHERE 7642 WR1: 7643 ('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); 7644 WR2: 7645 ('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); 7646 WR3: 7647 ('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); 7648END_ENTITY; 7649 7650ENTITY dimension_callout_component_relationship 7651 SUBTYPE OF (draughting_callout_relationship); 7652 WHERE 7653 WR1: 7654 SELF.name IN [ 'prefix', 'suffix' ]; 7655 WR2: 7656 'STEP_MERGED_CAD_SCHEMA.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF.relating_draughting_callout); 7657 WR3: 7658 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; 7659 WR4: 7660 SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = SELF.related_draughting_callout.contents; 7661 WR5: 7662 (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); 7663 WR6: 7664 (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); 7665END_ENTITY; 7666 7667ENTITY dimension_callout_relationship 7668 SUBTYPE OF (draughting_callout_relationship); 7669 WHERE 7670 WR1: 7671 SELF.name IN [ 'primary', 'secondary' ]; 7672 WR2: 7673 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; 7674 WR3: 7675 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; 7676 WR4: 7677 SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = SELF.related_draughting_callout.contents; 7678END_ENTITY; 7679 7680ENTITY dimension_curve 7681 SUBTYPE OF (annotation_curve_occurrence); 7682 WHERE 7683 WR1: 7684 SIZEOF(QUERY (dct <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct)))) <= 2; 7685 WR2: 7686 SIZEOF(QUERY (dcdc <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')| ('STEP_MERGED_CAD_SCHEMA.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc)))) >= 1; 7687 WR3: 7688 (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); 7689END_ENTITY; 7690 7691ENTITY dimension_curve_directed_callout 7692 SUBTYPE OF (draughting_callout); 7693 WHERE 7694 WR1: 7695 SIZEOF(QUERY (d_c <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE' IN TYPEOF(d_c)))) <= 2; 7696 WR2: 7697 SIZEOF(SELF\draughting_callout.contents) >= 2; 7698END_ENTITY; 7699 7700ENTITY dimension_curve_terminator 7701 SUBTYPE OF (terminator_symbol); 7702 role : dimension_extent_usage; 7703 WHERE 7704 WR1: 7705 'STEP_MERGED_CAD_SCHEMA.DIMENSION_CURVE' IN TYPEOF(SELF\terminator_symbol.annotated_curve); 7706END_ENTITY; 7707 7708-- IN AP203e2/AP242 7709ENTITY dimension_curve_terminator_to_projection_curve_associativity 7710 SUBTYPE OF (annotation_occurrence_associativity); 7711 SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve; 7712 SELF\annotation_occurrence_relationship.relating_annotation_occurrence : dimension_curve_terminator; 7713END_ENTITY; 7714 7715ENTITY dimension_pair 7716 SUBTYPE OF (draughting_callout_relationship); 7717 WHERE 7718 WR1: 7719 SELF.name IN [ 'chained', 'parallel' ]; 7720 WR2: 7721 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; 7722 WR3: 7723 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; 7724END_ENTITY; 7725 7726ENTITY dimension_related_tolerance_zone_element; 7727 related_dimension : dimensional_location; 7728 related_element : tolerance_zone_definition; 7729END_ENTITY; 7730 7731ENTITY dimension_text_associativity 7732 SUBTYPE OF (text_literal, mapped_item); 7733 WHERE 7734 WR1: 7735 'STEP_MERGED_CAD_SCHEMA.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); 7736 WR2: 7737 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT' IN TYPEOF(SELF\mapped_item.mapping_target); 7738 WR3: 7739 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; 7740END_ENTITY; 7741 7742ENTITY dimensional_characteristic_representation; 7743 dimension : dimensional_characteristic; 7744 representation : shape_dimension_representation; 7745END_ENTITY; 7746 7747ENTITY dimensional_exponents; 7748 length_exponent : REAL; 7749 mass_exponent : REAL; 7750 time_exponent : REAL; 7751 electric_current_exponent : REAL; 7752 thermodynamic_temperature_exponent : REAL; 7753 amount_of_substance_exponent : REAL; 7754 luminous_intensity_exponent : REAL; 7755END_ENTITY; 7756 7757ENTITY dimensional_location 7758 SUPERTYPE OF (ONEOF(angular_location, dimensional_location_with_path)) 7759 SUBTYPE OF (shape_aspect_relationship); 7760 WHERE 7761 WR1: 7762 SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect; 7763 WR2: 7764 SELF\shape_aspect_relationship.relating_shape_aspect.of_shape :=: SELF\shape_aspect_relationship.related_shape_aspect.of_shape; 7765END_ENTITY; 7766 7767-- IN AP242 7768ENTITY dimensional_location_with_datum_feature 7769 SUBTYPE OF (datum_feature, dimensional_location); 7770END_ENTITY; 7771 7772ENTITY dimensional_location_with_path 7773 SUBTYPE OF (dimensional_location); 7774 path : shape_aspect; 7775END_ENTITY; 7776 7777-- DIFF IN AP214 7778-- DIFF IN AP203e2 7779ENTITY dimensional_size 7780 SUPERTYPE OF (ONEOF(angular_size, dimensional_size_with_path)); 7781 applies_to : shape_aspect; 7782 name : label; 7783 DERIVE 7784 id : identifier := get_id_value(SELF); 7785 UNIQUE 7786 UR1 : id, applies_to; 7787 WHERE 7788 WR1: 7789 applies_to.product_definitional = TRUE; 7790 WR2: 7791 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 7792END_ENTITY; 7793 7794-- IN AP242 7795ENTITY dimensional_size_with_datum_feature 7796 SUBTYPE OF (datum_feature, dimensional_size); 7797END_ENTITY; 7798 7799ENTITY dimensional_size_with_path 7800 SUBTYPE OF (dimensional_size); 7801 path : shape_aspect; 7802END_ENTITY; 7803 7804ENTITY directed_action 7805 SUBTYPE OF (executed_action); 7806 directive : action_directive; 7807END_ENTITY; 7808 7809-- IN AP214/AP242 7810ENTITY directed_angle 7811 SUBTYPE OF (shape_aspect); 7812 WHERE 7813 WR1: 7814 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 7815 WR2: 7816 SIZEOF(QUERY (pdr <* get_shape_aspect_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1; 7817 WR3: 7818 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; 7819 WR4: 7820 SELF.description IN [ 'punch direction', 'profile normal', 'surface normal' ]; 7821 WR5: 7822 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; 7823END_ENTITY; 7824 7825ENTITY directed_dimensional_location 7826 SUBTYPE OF (dimensional_location); 7827END_ENTITY; 7828 7829ENTITY direction 7830 SUBTYPE OF (geometric_representation_item); 7831 direction_ratios : LIST [2:3] OF REAL; 7832 WHERE 7833 WR1: 7834 SIZEOF(QUERY (tmp <* direction_ratios| (tmp <> 0.0))) > 0; 7835END_ENTITY; 7836 7837-- IN AP214/AP242 7838ENTITY direction_shape_representation 7839 SUBTYPE OF (shape_representation); 7840 WHERE 7841 WR1: 7842 SIZEOF(SELF.items) = 1; 7843 WR2: 7844 SIZEOF(QUERY (it <* SELF.items| NOT ('STEP_MERGED_CAD_SCHEMA.DIRECTION' IN TYPEOF(it)))) = 0; 7845END_ENTITY; 7846 7847-- IN AP242 7848ENTITY disallowed_assembly_relationship_usage 7849 SUBTYPE OF (externally_conditioned_data_quality_criterion); 7850 WHERE 7851 WR1: 7852 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ASSEMBLY_COMPONENT_USAGE' ]); 7853END_ENTITY; 7854 7855-- IN AP242 7856ENTITY disconnected_face_set 7857 SUBTYPE OF (erroneous_topology); 7858 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 7859 WHERE 7860 WR1: 7861 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 7862 WR2: 7863 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 7864 WR3: 7865 validate_locations_of_extreme_value_type(SELF, []); 7866 WR4: 7867 validate_accuracy_types(SELF, []); 7868END_ENTITY; 7869 7870-- IN AP242 7871ENTITY discontinuous_geometry 7872 ABSTRACT SUPERTYPE OF (ONEOF(g1_discontinuous_curve, g2_discontinuous_curve, g1_discontinuous_surface, g2_discontinuous_surface)) 7873 SUBTYPE OF (inapt_geometry); 7874END_ENTITY; 7875 7876-- IN AP214/AP242 7877ENTITY div_expression 7878 SUBTYPE OF (binary_numeric_expression); 7879END_ENTITY; 7880 7881-- DIFF IN AP214 7882ENTITY document; 7883 id : identifier; 7884 name : label; 7885 description : OPTIONAL text; 7886 kind : document_type; 7887 INVERSE 7888 representation_types : SET [0:?] OF document_representation_type FOR represented_document; 7889END_ENTITY; 7890 7891ENTITY document_file 7892 SUBTYPE OF (document, characterized_object); 7893 WHERE 7894 WR1: 7895 SELF\characterized_object.name = ''; 7896 WR2: 7897 NOT EXISTS(SELF\characterized_object.description); 7898 WR3: 7899 SIZEOF(QUERY (drt <* SELF\document.representation_types| (drt.name IN [ 'digital', 'physical' ]))) = 1; 7900END_ENTITY; 7901 7902-- IN AP203e2/AP242 7903ENTITY document_identifier 7904 SUBTYPE OF (group); 7905 UNIQUE 7906 UR1 : SELF\group.name, SELF\group.description; 7907END_ENTITY; 7908 7909-- IN AP203e2/AP242 7910ENTITY document_identifier_assignment 7911 SUBTYPE OF (group_assignment); 7912 items : SET [1:?] OF document_identifier_assigned_item; 7913 SELF\group_assignment.assigned_group : document_identifier; 7914END_ENTITY; 7915 7916-- DIFF IN AP214 7917-- DIFF IN AP203e2 7918ENTITY document_product_association 7919 ABSTRACT SUPERTYPE; 7920 name : label; 7921 description : OPTIONAL text; 7922 relating_document : document; 7923 related_product : product_or_formation_or_definition; 7924END_ENTITY; 7925 7926ENTITY document_product_equivalence 7927 SUBTYPE OF (document_product_association); 7928 WHERE 7929 WR1: 7930 SELF\document_product_association.name = 'equivalence'; 7931 WR2: 7932 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); 7933 WR3: 7934 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); 7935 WR4: 7936 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); 7937END_ENTITY; 7938 7939ENTITY document_reference 7940 ABSTRACT SUPERTYPE; 7941 assigned_document : document; 7942 source : label; 7943 DERIVE 7944 role : object_role := get_role(SELF); 7945 WHERE 7946 WR1: 7947 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 7948END_ENTITY; 7949 7950ENTITY document_relationship; 7951 name : label; 7952 description : OPTIONAL text; 7953 relating_document : document; 7954 related_document : document; 7955END_ENTITY; 7956 7957ENTITY document_representation_type; 7958 name : label; 7959 represented_document : document; 7960END_ENTITY; 7961 7962ENTITY document_type; 7963 product_data_type : label; 7964END_ENTITY; 7965 7966ENTITY document_usage_constraint; 7967 source : document; 7968 subject_element : label; 7969 subject_element_value : text; 7970END_ENTITY; 7971 7972ENTITY document_usage_constraint_assignment 7973 ABSTRACT SUPERTYPE; 7974 assigned_document_usage : document_usage_constraint; 7975 role : document_usage_role; 7976END_ENTITY; 7977 7978ENTITY document_usage_role; 7979 name : label; 7980 description : OPTIONAL text; 7981END_ENTITY; 7982 7983-- IN Deprecated AP203e1 7984ENTITY document_with_class 7985 SUBTYPE OF (document); 7986 class : identifier; 7987END_ENTITY; 7988 7989-- IN AP203e2/AP242 7990ENTITY dose_equivalent_measure_with_unit 7991 SUBTYPE OF (measure_with_unit); 7992 WHERE 7993 WR1: 7994 'STEP_MERGED_CAD_SCHEMA.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 7995END_ENTITY; 7996 7997-- IN AP203e2/AP242 7998ENTITY dose_equivalent_unit 7999 SUBTYPE OF (derived_unit); 8000 WHERE 8001 WR1: 8002 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.sievert); 8003END_ENTITY; 8004 8005-- IN AP203e2/AP242 8006ENTITY double_offset_shelled_solid 8007 SUBTYPE OF (shelled_solid); 8008 thickness2 : length_measure; 8009 WHERE 8010 WR1: 8011 thickness2 <> 0; 8012 WR2: 8013 SELF\shelled_solid.thickness <> thickness2; 8014END_ENTITY; 8015 8016-- IN AP203e2/AP242 8017ENTITY draped_defined_transformation 8018 SUBTYPE OF (transformation_with_derived_angle); 8019END_ENTITY; 8020 8021ENTITY draughting_annotation_occurrence 8022 SUBTYPE OF (annotation_occurrence); 8023 WHERE 8024 WR1: 8025 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); 8026 WR2: 8027 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); 8028 WR3: 8029 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); 8030 WR4: 8031 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); 8032 WR5: 8033 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); 8034 WR6: 8035 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); 8036 WR7: 8037 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); 8038 WR8: 8039 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); 8040 WR9: 8041 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' ]); 8042 WR10: 8043 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); 8044 WR11: 8045 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); 8046 WR12: 8047 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); 8048 WR13: 8049 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); 8050 WR14: 8051 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); 8052 WR15: 8053 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); 8054 WR16: 8055 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; 8056 WR17: 8057 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; 8058 WR18: 8059 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; 8060 WR19: 8061 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; 8062 WR20: 8063 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; 8064END_ENTITY; 8065 8066-- DIFF IN AP203e2 8067ENTITY draughting_callout 8068 SUBTYPE OF (geometric_representation_item); 8069 contents : SET [1:?] OF draughting_callout_element; 8070 WHERE 8071 WR1: 8072 (((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)); 8073END_ENTITY; 8074 8075ENTITY draughting_callout_relationship; 8076 name : label; 8077 description : text; 8078 relating_draughting_callout : draughting_callout; 8079 related_draughting_callout : draughting_callout; 8080END_ENTITY; 8081 8082ENTITY draughting_elements 8083 SUBTYPE OF (draughting_callout); 8084 WHERE 8085 WR1: 8086 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; 8087 WR2: 8088 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); 8089 WR3: 8090 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; 8091 WR4: 8092 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; 8093 WR5: 8094 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; 8095END_ENTITY; 8096 8097-- DIFF IN AP214 8098ENTITY draughting_model 8099 SUBTYPE OF (representation); 8100 SELF\representation.items : SET [1:?] OF draughting_model_item_select; 8101 UNIQUE 8102 UR1 : SELF\representation.name; 8103 WHERE 8104 WR1: 8105 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; 8106 WR2: 8107 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; 8108END_ENTITY; 8109 8110-- DIFF IN AP214 8111-- DIFF IN AP203e2 8112ENTITY draughting_model_item_association 8113 SUBTYPE OF (item_identified_representation_usage); 8114 SELF\item_identified_representation_usage.definition : draughting_model_item_definition; 8115 SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select; 8116 SELF\item_identified_representation_usage.used_representation : annotation_representation_select; 8117END_ENTITY; 8118 8119ENTITY draughting_pre_defined_colour 8120 SUBTYPE OF (pre_defined_colour); 8121 WHERE 8122 WR1: 8123 SELF.name IN [ 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'black', 'white' ]; 8124END_ENTITY; 8125 8126ENTITY draughting_pre_defined_curve_font 8127 SUBTYPE OF (pre_defined_curve_font); 8128 WHERE 8129 WR1: 8130 SELF.name IN [ 'continuous', 'chain', 'chain double dash', 'dashed', 'dotted' ]; 8131END_ENTITY; 8132 8133ENTITY draughting_pre_defined_text_font 8134 SUBTYPE OF (pre_defined_text_font); 8135 WHERE 8136 WR1: 8137 SELF.name[ 1 : 8 ] = 'ISO 3098'; 8138END_ENTITY; 8139 8140-- IN AP214 8141ENTITY draughting_specification_reference 8142 SUBTYPE OF (document_reference); 8143 specified_items : SET [1:?] OF specified_item; 8144 WHERE 8145 wr1: 8146 SELF.assigned_document.kind.product_data_type = 'draughting specification'; 8147END_ENTITY; 8148 8149-- DIFF IN AP214 8150-- DIFF IN AP203e2 8151ENTITY draughting_subfigure_representation 8152 SUBTYPE OF (symbol_representation); 8153 SELF\representation.items : SET [1:?] OF draughting_subfigure_representation_item; 8154 WHERE 8155 WR1: 8156 SIZEOF(QUERY (item <* SELF\representation.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_OCCURRENCE', 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_CALLOUT' ] * TYPEOF(item)) = 1))) >= 1; 8157 WR2: 8158 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; 8159 WR3: 8160 SIZEOF(SELF.context_of_items.representations_in_context) = 1; 8161END_ENTITY; 8162 8163-- DIFF IN AP214 8164-- DIFF IN AP203e2 8165ENTITY draughting_symbol_representation 8166 SUBTYPE OF (symbol_representation); 8167 SELF\representation.items : SET [1:?] OF draughting_symbol_representation_item; 8168 UNIQUE 8169 UR1 : SELF\representation.name; 8170 WHERE 8171 WR1: 8172 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; 8173 WR2: 8174 SIZEOF(QUERY (item <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(item)))) = 0; 8175 WR3: 8176 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; 8177 WR4: 8178 SIZEOF(SELF.context_of_items.representations_in_context) = 1; 8179END_ENTITY; 8180 8181ENTITY draughting_text_literal_with_delineation 8182 SUBTYPE OF (text_literal_with_delineation); 8183 WHERE 8184 WR1: 8185 SELF.delineation IN [ 'underline', 'overline' ]; 8186END_ENTITY; 8187 8188ENTITY draughting_title; 8189 items : SET [1:?] OF draughting_titled_item; 8190 language : label; 8191 contents : text; 8192END_ENTITY; 8193 8194ENTITY drawing_definition; 8195 drawing_number : identifier; 8196 drawing_type : OPTIONAL label; 8197END_ENTITY; 8198 8199-- CASE DIFF IN AP214 8200ENTITY drawing_revision 8201 SUBTYPE OF (presentation_set); 8202 revision_identifier : identifier; 8203 drawing_identifier : drawing_definition; 8204 intended_scale : OPTIONAL text; 8205 UNIQUE 8206 UR1 : revision_identifier, drawing_identifier; 8207END_ENTITY; 8208 8209ENTITY drawing_revision_sequence; 8210 predecessor : drawing_revision; 8211 successor : drawing_revision; 8212 WHERE 8213 WR1: 8214 predecessor :<>: successor; 8215END_ENTITY; 8216 8217-- IN AP214/AP242 8218ENTITY drawing_sheet_layout 8219 SUBTYPE OF (draughting_symbol_representation); 8220END_ENTITY; 8221 8222ENTITY drawing_sheet_revision 8223 SUBTYPE OF (presentation_area); 8224 revision_identifier : identifier; 8225 WHERE 8226 WR1: 8227 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; 8228END_ENTITY; 8229 8230-- IN AP203e2/AP242 8231ENTITY drawing_sheet_revision_sequence 8232 SUBTYPE OF (representation_relationship); 8233 WHERE 8234 WR1: 8235 SELF\representation_relationship.rep_1 :<>: SELF\representation_relationship.rep_2; 8236 WR2: 8237 'STEP_MERGED_CAD_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\representation_relationship.rep_1); 8238 WR3: 8239 'STEP_MERGED_CAD_SCHEMA.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\representation_relationship.rep_2); 8240END_ENTITY; 8241 8242-- DIFF IN AP214 8243ENTITY drawing_sheet_revision_usage 8244 SUBTYPE OF (area_in_set); 8245 sheet_number : identifier; 8246 UNIQUE 8247 UR1 : sheet_number, SELF\area_in_set.in_set; 8248 WHERE 8249 WR1: 8250 ('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)); 8251END_ENTITY; 8252 8253ENTITY edge 8254 SUPERTYPE OF (ONEOF(edge_curve, oriented_edge, subedge)) 8255 SUBTYPE OF (topological_representation_item); 8256 edge_start : vertex; 8257 edge_end : vertex; 8258END_ENTITY; 8259 8260ENTITY edge_based_wireframe_model 8261 SUBTYPE OF (geometric_representation_item); 8262 ebwm_boundary : SET [1:?] OF connected_edge_set; 8263END_ENTITY; 8264 8265ENTITY edge_based_wireframe_shape_representation 8266 SUBTYPE OF (shape_representation); 8267 WHERE 8268 WR1: 8269 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; 8270 WR2: 8271 SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EDGE_BASED_WIREFRAME_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) >= 1; 8272 WR3: 8273 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; 8274 WR4: 8275 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; 8276 WR5: 8277 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; 8278 WR6: 8279 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; 8280 WR7: 8281 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; 8282 WR8: 8283 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; 8284 WR9: 8285 SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; 8286END_ENTITY; 8287 8288-- DIFF IN AP203e2 8289-- IN AP203e2/AP242 8290ENTITY edge_blended_solid 8291 ABSTRACT SUPERTYPE OF (track_blended_solid ANDOR ONEOF(solid_with_constant_radius_edge_blend, solid_with_chamfered_edges)) 8292 SUBTYPE OF (modified_solid); 8293 blended_edges : LIST [1:?] OF UNIQUE edge_curve; 8294END_ENTITY; 8295 8296ENTITY edge_curve 8297 SUBTYPE OF (edge, geometric_representation_item); 8298 edge_geometry : curve; 8299 same_sense : BOOLEAN; 8300END_ENTITY; 8301 8302ENTITY edge_loop 8303 SUBTYPE OF (loop, path); 8304 DERIVE 8305 ne : INTEGER := SIZEOF(SELF\path.edge_list); 8306 WHERE 8307 WR1: 8308 SELF\path.edge_list[1].edge_start :=: SELF\path.edge_list[ne].edge_end; 8309END_ENTITY; 8310 8311-- IN AP214/AP242 8312ENTITY edge_round 8313 SUBTYPE OF (transition_feature); 8314 WHERE 8315 WR1: 8316 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); 8317 WR2: 8318 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); 8319 WR3: 8320 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); 8321 WR4: 8322 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); 8323 WR5: 8324 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); 8325 WR6: 8326 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; 8327 WR7: 8328 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; 8329 WR8: 8330 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; 8331END_ENTITY; 8332 8333-- IN AP242 8334ENTITY edge_with_excessive_segments 8335 SUBTYPE OF (overcomplex_topology_and_geometry_relationship); 8336 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 8337 WHERE 8338 WR1: 8339 ('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)); 8340 WR2: 8341 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 8342 WR3: 8343 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 8344 WR4: 8345 validate_locations_of_extreme_value_type(SELF, []); 8346 WR5: 8347 validate_accuracy_types(SELF, []); 8348END_ENTITY; 8349 8350-- DIFF IN AP214 8351ENTITY effectivity 8352 SUPERTYPE OF (ONEOF(serial_numbered_effectivity, dated_effectivity, lot_effectivity, time_interval_based_effectivity)); 8353 id : identifier; 8354 DERIVE 8355 description : text := get_description_value(SELF); 8356 name : label := get_name_value(SELF); 8357 WHERE 8358 WR1: 8359 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 8360 WR2: 8361 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 8362END_ENTITY; 8363 8364ENTITY effectivity_assignment 8365 ABSTRACT SUPERTYPE; 8366 assigned_effectivity : effectivity; 8367 DERIVE 8368 role : object_role := get_role(SELF); 8369 WHERE 8370 WR1: 8371 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 8372END_ENTITY; 8373 8374ENTITY effectivity_context_assignment 8375 ABSTRACT SUPERTYPE; 8376 assigned_effectivity_assignment : effectivity_assignment; 8377 role : effectivity_context_role; 8378END_ENTITY; 8379 8380ENTITY effectivity_context_role; 8381 name : label; 8382 description : OPTIONAL text; 8383END_ENTITY; 8384 8385ENTITY effectivity_relationship; 8386 name : label; 8387 description : OPTIONAL text; 8388 related_effectivity : effectivity; 8389 relating_effectivity : effectivity; 8390END_ENTITY; 8391 8392-- IN AP203e2/AP242 8393ENTITY electric_charge_measure_with_unit 8394 SUBTYPE OF (measure_with_unit); 8395 WHERE 8396 WR1: 8397 'STEP_MERGED_CAD_SCHEMA.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 8398END_ENTITY; 8399 8400-- IN AP203e2/AP242 8401ENTITY electric_charge_unit 8402 SUBTYPE OF (derived_unit); 8403 WHERE 8404 WR1: 8405 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.coulomb); 8406END_ENTITY; 8407 8408ENTITY electric_current_measure_with_unit 8409 SUBTYPE OF (measure_with_unit); 8410 WHERE 8411 WR1: 8412 'STEP_MERGED_CAD_SCHEMA.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 8413END_ENTITY; 8414 8415ENTITY electric_current_unit 8416 SUBTYPE OF (named_unit); 8417 WHERE 8418 WR1: 8419 ((((((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); 8420END_ENTITY; 8421 8422-- IN AP203e2/AP242 8423ENTITY electric_potential_measure_with_unit 8424 SUBTYPE OF (measure_with_unit); 8425 WHERE 8426 WR1: 8427 'STEP_MERGED_CAD_SCHEMA.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 8428END_ENTITY; 8429 8430-- IN AP203e2/AP242 8431ENTITY electric_potential_unit 8432 SUBTYPE OF (derived_unit); 8433 WHERE 8434 WR1: 8435 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.volt); 8436END_ENTITY; 8437 8438-- IN AP214 8439ENTITY element_delivery 8440 SUBTYPE OF (action); 8441 WHERE 8442 wr1: 8443 (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); 8444 wr2: 8445 (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); 8446 wr3: 8447 ((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); 8448 wr4: 8449 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; 8450END_ENTITY; 8451 8452-- IN AP203e2/AP242 8453ENTITY elementary_brep_shape_representation 8454 SUBTYPE OF (shape_representation); 8455 WHERE 8456 WR1: 8457 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; 8458 WR2: 8459 SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; 8460 WR3: 8461 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; 8462 WR4: 8463 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; 8464 WR5: 8465 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; 8466 WR6: 8467 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; 8468 WR7: 8469 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; 8470 WR8: 8471 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; 8472 WR9: 8473 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; 8474 WR10: 8475 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; 8476 WR11: 8477 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; 8478 WR12: 8479 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; 8480END_ENTITY; 8481 8482-- IN AP242 8483ENTITY elementary_function 8484 SUBTYPE OF (maths_function, generic_literal); 8485 func_id : elementary_function_enumerators; 8486END_ENTITY; 8487 8488-- IN AP242 8489ENTITY elementary_space 8490 SUBTYPE OF (maths_space, generic_literal); 8491 space_id : elementary_space_enumerators; 8492END_ENTITY; 8493 8494ENTITY elementary_surface 8495 SUPERTYPE OF (ONEOF(plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface)) 8496 SUBTYPE OF (surface); 8497 position : axis2_placement_3d; 8498END_ENTITY; 8499 8500ENTITY ellipse 8501 SUBTYPE OF (conic); 8502 semi_axis_1 : positive_length_measure; 8503 semi_axis_2 : positive_length_measure; 8504END_ENTITY; 8505 8506-- IN AP242 8507ENTITY elliptic_area 8508 SUBTYPE OF (primitive_2d); 8509 position : axis2_placement_2d; 8510 semi_axis_1 : positive_length_measure; 8511 semi_axis_2 : positive_length_measure; 8512END_ENTITY; 8513 8514-- IN AP203e2/AP242 8515ENTITY energy_measure_with_unit 8516 SUBTYPE OF (measure_with_unit); 8517 WHERE 8518 WR1: 8519 'STEP_MERGED_CAD_SCHEMA.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 8520END_ENTITY; 8521 8522-- IN AP203e2/AP242 8523ENTITY energy_unit 8524 SUBTYPE OF (derived_unit); 8525 WHERE 8526 WR1: 8527 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.joule); 8528END_ENTITY; 8529 8530-- IN AP242 8531ENTITY entirely_narrow_face 8532 SUBTYPE OF (topology_related_to_nearly_degenerate_geometry); 8533 width_tolerance : length_measure; 8534 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 8535 WHERE 8536 WR1: 8537 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 8538 WR2: 8539 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 8540 WR3: 8541 validate_locations_of_extreme_value_type(SELF, []); 8542 WR4: 8543 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 8544END_ENTITY; 8545 8546-- IN AP242 8547ENTITY entirely_narrow_solid 8548 SUBTYPE OF (inapt_manifold_solid_brep); 8549 width_tolerance : length_measure; 8550 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 8551 WHERE 8552 WR1: 8553 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 8554 WR2: 8555 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]); 8556 WR3: 8557 validate_locations_of_extreme_value_type(SELF, []); 8558 WR4: 8559 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 8560END_ENTITY; 8561 8562-- IN AP242 8563ENTITY entirely_narrow_surface 8564 SUBTYPE OF (nearly_degenerate_geometry); 8565 width_tolerance : length_measure; 8566 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 8567 WHERE 8568 WR1: 8569 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 8570 WR2: 8571 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BOUNDED_SURFACE' ]); 8572 WR3: 8573 validate_locations_of_extreme_value_type(SELF, []); 8574 WR4: 8575 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 8576END_ENTITY; 8577 8578-- IN AP203e2/AP242 8579ENTITY entity_assertion 8580 SUBTYPE OF (fact_type); 8581END_ENTITY; 8582 8583-- IN AP203e2/AP242 8584ENTITY enum_reference_prefix 8585 SUBTYPE OF (descriptive_representation_item); 8586END_ENTITY; 8587 8588ENTITY environment; 8589 syntactic_representation : generic_variable; 8590 semantics : variable_semantics; 8591END_ENTITY; 8592 8593-- IN AP242 8594ENTITY equal_parameter_constraint 8595 SUBTYPE OF (defined_constraint); 8596 SELF\explicit_constraint.constrained_elements : SET [1:?] OF variational_parameter; 8597 SELF\explicit_constraint.reference_elements : SET [0:1] OF variational_parameter; 8598 WHERE 8599 WR1: 8600 SIZEOF(SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements) >= 2; 8601END_ENTITY; 8602 8603-- IN AP214/AP242 8604ENTITY equals_expression 8605 SUBTYPE OF (binary_boolean_expression); 8606END_ENTITY; 8607 8608-- IN AP242 8609ENTITY erroneous_b_spline_curve_definition 8610 SUBTYPE OF (erroneous_geometry); 8611 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 8612 WHERE 8613 WR1: 8614 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 8615 WR2: 8616 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS' ]); 8617 WR3: 8618 validate_locations_of_extreme_value_type(SELF, []); 8619 WR4: 8620 validate_accuracy_types(SELF, []); 8621END_ENTITY; 8622 8623-- IN AP242 8624ENTITY erroneous_b_spline_surface_definition 8625 SUBTYPE OF (erroneous_geometry); 8626 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 8627 WHERE 8628 WR1: 8629 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 8630 WR2: 8631 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' ]); 8632 WR3: 8633 validate_locations_of_extreme_value_type(SELF, []); 8634 WR4: 8635 validate_accuracy_types(SELF, []); 8636END_ENTITY; 8637 8638-- IN AP242 8639ENTITY erroneous_data 8640 ABSTRACT SUPERTYPE OF (ONEOF(erroneous_topology, erroneous_geometry, erroneous_topology_and_geometry_relationship, erroneous_manifold_solid_brep)) 8641 SUBTYPE OF (shape_data_quality_criterion); 8642END_ENTITY; 8643 8644-- IN AP242 8645ENTITY erroneous_geometry 8646 ABSTRACT SUPERTYPE OF (ONEOF(inconsistent_curve_transition_code, erroneous_b_spline_curve_definition, inconsistent_surface_transition_code, erroneous_b_spline_surface_definition)) 8647 SUBTYPE OF (erroneous_data); 8648END_ENTITY; 8649 8650-- IN AP242 8651ENTITY erroneous_manifold_solid_brep 8652 ABSTRACT SUPERTYPE OF (ONEOF(wrongly_oriented_void, wrongly_placed_void, intersecting_shells_in_solid, solid_with_wrong_number_of_voids)) 8653 SUBTYPE OF (erroneous_data); 8654END_ENTITY; 8655 8656-- IN AP242 8657ENTITY erroneous_topology 8658 ABSTRACT SUPERTYPE OF (ONEOF(open_edge_loop, open_closed_shell, inconsistent_adjacent_face_normals, disconnected_face_set)) 8659 SUBTYPE OF (erroneous_data); 8660END_ENTITY; 8661 8662-- IN AP242 8663ENTITY erroneous_topology_and_geometry_relationship 8664 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)) 8665 SUBTYPE OF (erroneous_data); 8666END_ENTITY; 8667 8668-- IN AP203e2/AP242 8669ENTITY evaluated_characteristic 8670 SUBTYPE OF (representation, representation_relationship); 8671 UNIQUE 8672 UR1 : SELF\representation_relationship.rep_1, SELF\representation_relationship.rep_2; 8673 WHERE 8674 WR1: 8675 SELF\representation_relationship.rep_1 <> SELF\representation_relationship.rep_2; 8676END_ENTITY; 8677 8678-- IN AP242 8679ENTITY evaluated_characteristic_of_product_as_individual_test_result 8680 SUBTYPE OF (evaluated_characteristic); 8681END_ENTITY; 8682 8683ENTITY evaluated_degenerate_pcurve 8684 SUBTYPE OF (degenerate_pcurve); 8685 equivalent_point : cartesian_point; 8686END_ENTITY; 8687 8688-- IN AP203e2/AP242 8689ENTITY evaluation_product_definition 8690 SUBTYPE OF (product_definition); 8691END_ENTITY; 8692 8693ENTITY event_occurrence; 8694 id : identifier; 8695 name : label; 8696 description : OPTIONAL text; 8697END_ENTITY; 8698 8699ENTITY event_occurrence_assignment 8700 ABSTRACT SUPERTYPE; 8701 assigned_event_occurrence : event_occurrence; 8702 role : event_occurrence_role; 8703END_ENTITY; 8704 8705-- IN AP214 8706ENTITY event_occurrence_context_assignment 8707 ABSTRACT SUPERTYPE; 8708 assigned_event_occurrence_assignment : event_occurrence_assignment; 8709 role : event_occurrence_context_role; 8710END_ENTITY; 8711 8712-- IN AP214 8713ENTITY event_occurrence_context_role; 8714 name : label; 8715 description : OPTIONAL text; 8716END_ENTITY; 8717 8718-- IN AP203e2/AP242 8719ENTITY event_occurrence_relationship; 8720 name : label; 8721 description : OPTIONAL text; 8722 relating_event : event_occurrence; 8723 related_event : event_occurrence; 8724END_ENTITY; 8725 8726ENTITY event_occurrence_role; 8727 name : label; 8728 description : OPTIONAL text; 8729END_ENTITY; 8730 8731-- IN AP242 8732ENTITY excessive_use_of_groups 8733 SUBTYPE OF (externally_conditioned_data_quality_criterion); 8734 WHERE 8735 WR1: 8736 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.GROUP' ]); 8737END_ENTITY; 8738 8739-- IN AP242 8740ENTITY excessive_use_of_layers 8741 SUBTYPE OF (externally_conditioned_data_quality_criterion); 8742 WHERE 8743 WR1: 8744 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_LAYER_ASSIGNMENT' ]); 8745END_ENTITY; 8746 8747-- IN AP242 8748ENTITY excessively_high_degree_curve 8749 SUBTYPE OF (overcomplex_geometry); 8750 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 8751 WHERE 8752 WR1: 8753 ('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)); 8754 WR2: 8755 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 8756 WR3: 8757 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]); 8758 WR4: 8759 validate_locations_of_extreme_value_type(SELF, []); 8760 WR5: 8761 validate_accuracy_types(SELF, []); 8762END_ENTITY; 8763 8764-- IN AP242 8765ENTITY excessively_high_degree_surface 8766 SUBTYPE OF (overcomplex_geometry); 8767 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 8768 WHERE 8769 WR1: 8770 ('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)); 8771 WR2: 8772 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 8773 WR3: 8774 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 8775 WR4: 8776 validate_locations_of_extreme_value_type(SELF, []); 8777 WR5: 8778 validate_accuracy_types(SELF, []); 8779END_ENTITY; 8780 8781ENTITY exclusive_product_concept_feature_category 8782 SUBTYPE OF (product_concept_feature_category); 8783END_ENTITY; 8784 8785ENTITY executed_action 8786 SUBTYPE OF (action); 8787END_ENTITY; 8788 8789-- IN AP214/AP242 8790ENTITY exp_function 8791 SUBTYPE OF (unary_function_call); 8792END_ENTITY; 8793 8794-- IN AP203e2/AP242 8795ENTITY expanded_uncertainty 8796 SUBTYPE OF (standard_uncertainty); 8797 coverage_factor : REAL; 8798END_ENTITY; 8799 8800-- IN AP242 8801ENTITY explicit_constraint 8802 ABSTRACT SUPERTYPE OF (ONEOF(defined_constraint, free_form_constraint)) 8803 SUBTYPE OF (variational_representation_item); 8804 description : OPTIONAL text; 8805 constrained_elements : SET [1:?] OF representation_item; 8806 reference_elements : SET [0:?] OF representation_item; 8807 WHERE 8808 WR1: 8809 SIZEOF(constrained_elements * reference_elements) = 0; 8810END_ENTITY; 8811 8812-- IN AP242 8813ENTITY explicit_geometric_constraint 8814 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)) 8815 SUBTYPE OF (defined_constraint, geometric_representation_item); 8816 SELF\explicit_constraint.constrained_elements : SET [1:?] OF geometric_representation_item; 8817 SELF\explicit_constraint.reference_elements : SET [0:?] OF geometric_representation_item; 8818END_ENTITY; 8819 8820-- IN AP203e2/AP242 8821ENTITY explicit_procedural_geometric_representation_item_relationship 8822 SUBTYPE OF (explicit_procedural_representation_item_relationship); 8823 SELF\representation_item_relationship.related_representation_item : geometric_representation_item; 8824 SELF\representation_item_relationship.relating_representation_item : procedural_shape_representation_sequence; 8825 WHERE 8826 WR1: 8827 NOT ('STEP_MERGED_CAD_SCHEMA.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE' IN TYPEOF(SELF\representation_item_relationship.related_representation_item)); 8828END_ENTITY; 8829 8830-- IN AP203e2/AP242 8831ENTITY explicit_procedural_representation_item_relationship 8832 SUBTYPE OF (representation_item_relationship); 8833 SELF\representation_item_relationship.relating_representation_item : procedural_representation_sequence; 8834 WHERE 8835 WR1: 8836 NOT ('STEP_MERGED_CAD_SCHEMA.PROCEDURAL_REPRESENTATION_SEQUENCE' IN TYPEOF(SELF\representation_item_relationship.related_representation_item)); 8837 WR2: 8838 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; 8839END_ENTITY; 8840 8841-- IN AP203e2/AP242 8842ENTITY explicit_procedural_representation_relationship 8843 SUBTYPE OF (representation_relationship); 8844 SELF\representation_relationship.rep_1 : procedural_representation; 8845 WHERE 8846 WR1: 8847 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)); 8848 WR2: 8849 SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.context_of_items; 8850END_ENTITY; 8851 8852-- IN AP203e2/AP242 8853ENTITY explicit_procedural_shape_representation_relationship 8854 SUBTYPE OF (explicit_procedural_representation_relationship); 8855 SELF\representation_relationship.rep_1 : procedural_shape_representation; 8856 SELF\representation_relationship.rep_2 : shape_representation; 8857END_ENTITY; 8858 8859-- IN AP242 8860ENTITY explicit_table_function 8861 ABSTRACT SUPERTYPE OF (ONEOF(listed_data, externally_listed_data, linearized_table_function, basic_sparse_matrix)) 8862 SUBTYPE OF (maths_function); 8863 index_base : zero_or_one; 8864 shape : LIST [1:?] OF positive_integer; 8865END_ENTITY; 8866 8867-- DIFF IN AP203e2 8868ENTITY expression 8869 ABSTRACT SUPERTYPE OF (ONEOF(numeric_expression, boolean_expression, string_expression)) 8870 SUBTYPE OF (generic_expression); 8871END_ENTITY; 8872 8873ENTITY expression_conversion_based_unit 8874 SUBTYPE OF (context_dependent_unit, variable_semantics); 8875 INVERSE 8876 associated_variable_environment : environment FOR semantics; 8877END_ENTITY; 8878 8879-- IN AP242 8880ENTITY expression_denoted_function 8881 SUBTYPE OF (maths_function, unary_generic_expression); 8882 DERIVE 8883 expr : generic_expression := SELF\unary_generic_expression.operand; 8884 WHERE 8885 WR1: 8886 schema_prefix + 'FUNCTION_SPACE' IN TYPEOF(values_space_of(expr)); 8887END_ENTITY; 8888 8889-- IN AP242 8890ENTITY expression_extension_numeric 8891 SUBTYPE OF (measure_with_unit, numeric_expression); 8892END_ENTITY; 8893 8894-- IN AP242 8895ENTITY expression_extension_string 8896 SUBTYPE OF (measure_with_unit, string_expression); 8897END_ENTITY; 8898 8899-- IN AP242 8900ENTITY expression_extension_to_select; 8901 type_expression_associated : expression_extension_select; 8902END_ENTITY; 8903 8904-- IN AP242 8905ENTITY extended_tuple_space 8906 SUBTYPE OF (maths_space, generic_literal); 8907 base : product_space; 8908 extender : maths_space; 8909 WHERE 8910 WR1: 8911 expression_is_constant(base) AND expression_is_constant(extender); 8912 WR2: 8913 no_cyclic_space_reference(SELF, []); 8914 WR3: 8915 extender <> the_empty_space; 8916END_ENTITY; 8917 8918ENTITY extension 8919 SUBTYPE OF (derived_shape_aspect); 8920 WHERE 8921 WR1: 8922 SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; 8923END_ENTITY; 8924 8925-- IN AP203e2/AP242 8926ENTITY extent 8927 SUBTYPE OF (characterized_object); 8928END_ENTITY; 8929 8930-- IN AP203e2/AP242 8931ENTITY external_class_library 8932 SUBTYPE OF (external_source); 8933END_ENTITY; 8934 8935ENTITY external_identification_assignment 8936 ABSTRACT SUPERTYPE 8937 SUBTYPE OF (identification_assignment); 8938 source : external_source; 8939END_ENTITY; 8940 8941ENTITY external_source; 8942 source_id : source_item; 8943 DERIVE 8944 description : text := get_description_value(SELF); 8945 WHERE 8946 WR1: 8947 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 8948END_ENTITY; 8949 8950-- IN AP203e2/AP242 8951ENTITY external_source_relationship; 8952 name : label; 8953 description : OPTIONAL text; 8954 relating_source : external_source; 8955 related_source : external_source; 8956END_ENTITY; 8957 8958-- IN AP242 8959ENTITY externally_conditioned_data_quality_criteria_representation 8960 SUBTYPE OF (data_quality_criteria_representation); 8961 WHERE 8962 WR1: 8963 SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF(q)))) > 0; 8964END_ENTITY; 8965 8966-- IN AP242 8967ENTITY externally_conditioned_data_quality_criterion 8968 SUBTYPE OF (data_quality_criterion, data_quality_measurement_requirement); 8969 WHERE 8970 WR1: 8971 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION')) = 0; 8972 WR2: 8973 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; 8974 WR3: 8975 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; 8976END_ENTITY; 8977 8978-- IN AP242 8979ENTITY externally_conditioned_data_quality_inspection_instance_report_item 8980 SUBTYPE OF (data_quality_inspection_instance_report_item); 8981 SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1:?] OF inspected_ecdq_element_select; 8982 WHERE 8983 WR1: 8984 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; 8985END_ENTITY; 8986 8987-- IN AP242 8988ENTITY externally_conditioned_data_quality_inspection_result 8989 SUBTYPE OF (data_quality_inspection_result); 8990 WHERE 8991 WR1: 8992 'STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF(SELF\data_quality_inspection_result.criterion_inspected); 8993END_ENTITY; 8994 8995-- IN AP242 8996ENTITY externally_conditioned_data_quality_inspection_result_representation 8997 SUBTYPE OF (data_quality_inspection_result_representation); 8998 WHERE 8999 WR1: 9000 SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)))) > 0; 9001END_ENTITY; 9002 9003-- IN AP214/AP242 9004ENTITY externally_defined_character_glyph 9005 SUBTYPE OF (externally_defined_item); 9006END_ENTITY; 9007 9008ENTITY externally_defined_class 9009 SUBTYPE OF (class, externally_defined_item); 9010END_ENTITY; 9011 9012-- IN AP203e2/AP242 9013ENTITY externally_defined_colour 9014 SUBTYPE OF (colour_specification, externally_defined_item); 9015END_ENTITY; 9016 9017-- IN AP203e2/AP242 9018ENTITY externally_defined_context_dependent_unit 9019 SUBTYPE OF (context_dependent_unit, externally_defined_item); 9020END_ENTITY; 9021 9022-- IN AP203e2/AP242 9023ENTITY externally_defined_conversion_based_unit 9024 SUBTYPE OF (conversion_based_unit, externally_defined_item); 9025END_ENTITY; 9026 9027-- IN AP203e2/AP242 9028ENTITY externally_defined_currency 9029 SUBTYPE OF (currency, externally_defined_context_dependent_unit); 9030END_ENTITY; 9031 9032ENTITY externally_defined_curve_font 9033 SUBTYPE OF (externally_defined_item); 9034END_ENTITY; 9035 9036ENTITY externally_defined_dimension_definition 9037 SUBTYPE OF (dimensional_size, externally_defined_item); 9038 WHERE 9039 WR1: 9040 (SELF\externally_defined_item.item_id = 'external size dimension') AND (SELF\externally_defined_item.source.source_id = 'external size dimension specification'); 9041 WR2: 9042 1 >= SIZEOF(QUERY (adr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'external size dimension specification'))); 9043END_ENTITY; 9044 9045-- IN AP214/AP242 9046ENTITY externally_defined_feature_definition 9047 SUBTYPE OF (feature_definition, externally_defined_item); 9048 WHERE 9049 WR1: 9050 ((((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'); 9051 WR2: 9052 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); 9053 WR3: 9054 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); 9055 WR4: 9056 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); 9057 WR5: 9058 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); 9059 WR6: 9060 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); 9061 WR7: 9062 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); 9063 WR8: 9064 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); 9065 WR9: 9066 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); 9067 WR10: 9068 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); 9069 WR11: 9070 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); 9071 WR12: 9072 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); 9073 WR13: 9074 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); 9075 WR14: 9076 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; 9077 WR15: 9078 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; 9079 WR16: 9080 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); 9081 WR17: 9082 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); 9083 WR18: 9084 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); 9085 WR19: 9086 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); 9087 WR20: 9088 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); 9089 WR21: 9090 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); 9091 WR22: 9092 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); 9093 WR23: 9094 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); 9095 WR24: 9096 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); 9097 WR25: 9098 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); 9099 WR26: 9100 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); 9101 WR27: 9102 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); 9103END_ENTITY; 9104 9105ENTITY externally_defined_general_property 9106 SUBTYPE OF (general_property, externally_defined_item); 9107END_ENTITY; 9108 9109ENTITY externally_defined_hatch_style 9110 SUBTYPE OF (externally_defined_item, geometric_representation_item); 9111END_ENTITY; 9112 9113ENTITY externally_defined_item; 9114 item_id : source_item; 9115 source : external_source; 9116END_ENTITY; 9117 9118ENTITY externally_defined_item_relationship; 9119 name : label; 9120 description : OPTIONAL text; 9121 relating_item : externally_defined_item; 9122 related_item : externally_defined_item; 9123END_ENTITY; 9124 9125-- IN AP242 9126ENTITY externally_defined_item_with_multiple_references 9127 SUBTYPE OF (externally_defined_item); 9128 references : LIST [1:?] OF UNIQUE source_item; 9129 UNIQUE 9130 UR1 : references; 9131 WHERE 9132 WR1: 9133 NOT (SELF\externally_defined_item.item_id IN references); 9134END_ENTITY; 9135 9136-- IN AP203e2/AP242 9137ENTITY externally_defined_marker 9138 SUBTYPE OF (externally_defined_symbol, pre_defined_marker); 9139END_ENTITY; 9140 9141-- IN AP203e2/AP242 9142ENTITY externally_defined_picture_representation_item 9143 SUBTYPE OF (picture_representation_item); 9144 INVERSE 9145 source : applied_external_identification_assignment FOR items; 9146 WHERE 9147 WR1: 9148 NOT (SELF\representation_item.name IN pre_defined_picture_representation_types); 9149END_ENTITY; 9150 9151-- IN AP242 9152ENTITY externally_defined_representation 9153 SUBTYPE OF (representation, externally_defined_item); 9154 SELF\representation.items : SET [1:?] OF externally_defined_representation_item; 9155END_ENTITY; 9156 9157-- IN AP203e2/AP242 9158ENTITY externally_defined_representation_item 9159 SUBTYPE OF (representation_item, externally_defined_item); 9160END_ENTITY; 9161 9162-- IN AP203e2/AP242 9163ENTITY externally_defined_string 9164 SUBTYPE OF (externally_defined_representation_item); 9165END_ENTITY; 9166 9167-- IN AP214/AP242 9168ENTITY externally_defined_style 9169 SUBTYPE OF (externally_defined_item, founded_item); 9170END_ENTITY; 9171 9172ENTITY externally_defined_symbol 9173 SUBTYPE OF (externally_defined_item); 9174END_ENTITY; 9175 9176-- IN AP203e2/AP242 9177ENTITY externally_defined_terminator_symbol 9178 SUBTYPE OF (externally_defined_symbol); 9179END_ENTITY; 9180 9181ENTITY externally_defined_text_font 9182 SUBTYPE OF (externally_defined_item); 9183END_ENTITY; 9184 9185-- IN AP203e2/AP242 9186ENTITY externally_defined_tile 9187 SUBTYPE OF (externally_defined_item); 9188END_ENTITY; 9189 9190ENTITY externally_defined_tile_style 9191 SUBTYPE OF (externally_defined_item, geometric_representation_item); 9192END_ENTITY; 9193 9194-- IN AP242 9195ENTITY externally_listed_data 9196 SUBTYPE OF (explicit_table_function, generic_literal, externally_defined_item); 9197 value_range : maths_space; 9198 WHERE 9199 WR1: 9200 expression_is_constant(value_range); 9201END_ENTITY; 9202 9203-- IN AP242 9204ENTITY extreme_instance; 9205 locations_of_extreme_value : SET [1:?] OF location_of_extreme_value_select; 9206 measured_value : measured_value_select; 9207END_ENTITY; 9208 9209-- IN AP242 9210ENTITY extreme_patch_width_variation 9211 SUBTYPE OF (geometry_with_local_irregularity); 9212 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 9213 WHERE 9214 WR1: 9215 ('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)); 9216 WR2: 9217 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE'); 9218 WR3: 9219 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 9220 WR4: 9221 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ]); 9222 WR5: 9223 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 9224END_ENTITY; 9225 9226ENTITY extruded_area_solid 9227 SUBTYPE OF (swept_area_solid); 9228 extruded_direction : direction; 9229 depth : positive_length_measure; 9230 WHERE 9231 WR1: 9232 dot_product(SELF\swept_area_solid.swept_area.basis_surface\elementary_surface.position.p[3], extruded_direction) <> 0.0; 9233END_ENTITY; 9234 9235ENTITY extruded_face_solid 9236 SUBTYPE OF (swept_face_solid); 9237 extruded_direction : direction; 9238 depth : positive_length_measure; 9239 WHERE 9240 WR1: 9241 dot_product(SELF\swept_face_solid.swept_face.face_geometry\elementary_surface.position.p[3], extruded_direction) <> 0.0; 9242END_ENTITY; 9243 9244-- IN AP203e2/AP242 9245ENTITY extruded_face_solid_with_draft_angle 9246 SUBTYPE OF (extruded_face_solid_with_trim_conditions); 9247 draft_angle : plane_angle_measure; 9248 WHERE 9249 WR1: 9250 draft_angle <> 0; 9251END_ENTITY; 9252 9253-- IN AP203e2/AP242 9254ENTITY extruded_face_solid_with_multiple_draft_angles 9255 SUBTYPE OF (extruded_face_solid_with_trim_conditions); 9256 drafted_edges : LIST [2:?] OF SET [1:?] OF edge_curve; 9257 draft_angles : LIST [2:?] OF plane_angle_measure; 9258 WHERE 9259 WR1: 9260 SIZEOF(drafted_edges) = SIZEOF(draft_angles); 9261 WR2: 9262 SIZEOF(QUERY (q <* draft_angles| (q = 0))) = 0; 9263 WR3: 9264 SIZEOF(QUERY (q <* drafted_edges| (SIZEOF(QUERY (r <* q| NOT (SELF\swept_face_solid.swept_face IN using_items(r, [])))) > 0))) = 0; 9265END_ENTITY; 9266 9267-- IN AP203e2/AP242 9268ENTITY extruded_face_solid_with_trim_conditions 9269 SUPERTYPE OF (ONEOF(extruded_face_solid_with_draft_angle, extruded_face_solid_with_multiple_draft_angles)) 9270 SUBTYPE OF (extruded_face_solid); 9271 first_trim_condition : trim_condition_select; 9272 second_trim_condition : trim_condition_select; 9273 first_trim_intent : trim_intent; 9274 second_trim_intent : trim_intent; 9275 first_offset : non_negative_length_measure; 9276 second_offset : non_negative_length_measure; 9277 WHERE 9278 WR1: 9279 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))); 9280 WR2: 9281 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))); 9282 WR3: 9283 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))); 9284 WR4: 9285 ((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)); 9286 WR5: 9287 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)); 9288END_ENTITY; 9289 9290ENTITY face 9291 SUPERTYPE OF (ONEOF(face_surface, subface, oriented_face)) 9292 SUBTYPE OF (topological_representation_item); 9293 bounds : SET [1:?] OF face_bound; 9294 WHERE 9295 WR1: 9296 NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF))); 9297 WR2: 9298 SIZEOF(QUERY (temp <* bounds| ('STEP_MERGED_CAD_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(temp)))) <= 1; 9299END_ENTITY; 9300 9301ENTITY face_based_surface_model 9302 SUBTYPE OF (geometric_representation_item); 9303 fbsm_faces : SET [1:?] OF connected_face_set; 9304END_ENTITY; 9305 9306ENTITY face_bound 9307 SUBTYPE OF (topological_representation_item); 9308 bound : loop; 9309 orientation : BOOLEAN; 9310END_ENTITY; 9311 9312ENTITY face_outer_bound 9313 SUBTYPE OF (face_bound); 9314END_ENTITY; 9315 9316-- IN AP214/AP242 9317ENTITY face_shape_representation 9318 SUBTYPE OF (shape_representation); 9319 WHERE 9320 WR1: 9321 SIZEOF(SELF.items) >= 1; 9322 WR2: 9323 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; 9324END_ENTITY; 9325 9326-- IN AP242 9327ENTITY face_shape_representation_relationship 9328 SUBTYPE OF (representation_relationship); 9329 WHERE 9330 WR1: 9331 'STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_1); 9332 WR2: 9333 'STEP_MERGED_CAD_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_2); 9334END_ENTITY; 9335 9336ENTITY face_surface 9337 SUBTYPE OF (face, geometric_representation_item); 9338 face_geometry : surface; 9339 same_sense : BOOLEAN; 9340 WHERE 9341 WR1: 9342 NOT ('STEP_MERGED_CAD_SCHEMA.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); 9343END_ENTITY; 9344 9345-- IN AP242 9346ENTITY face_surface_with_excessive_patches_in_one_direction 9347 SUBTYPE OF (overcomplex_topology_and_geometry_relationship); 9348 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 9349 WHERE 9350 WR1: 9351 ('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)); 9352 WR2: 9353 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 9354 WR3: 9355 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 9356 WR4: 9357 validate_locations_of_extreme_value_type(SELF, []); 9358 WR5: 9359 validate_accuracy_types(SELF, []); 9360END_ENTITY; 9361 9362ENTITY faceted_brep 9363 SUBTYPE OF (manifold_solid_brep); 9364END_ENTITY; 9365 9366ENTITY faceted_brep_shape_representation 9367 SUBTYPE OF (shape_representation); 9368 WHERE 9369 WR1: 9370 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; 9371 WR2: 9372 SIZEOF(QUERY (it <* items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.FACETED_BREP', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; 9373 WR3: 9374 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; 9375 WR4: 9376 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; 9377 WR5: 9378 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; 9379 WR6: 9380 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; 9381 WR7: 9382 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; 9383END_ENTITY; 9384 9385-- IN AP203e2/AP242 9386ENTITY fact_type 9387 SUBTYPE OF (property_definition); 9388END_ENTITY; 9389 9390-- IN AP214/AP242 9391ENTITY feature_component_definition 9392 SUBTYPE OF (characterized_object); 9393 WHERE 9394 WR1: 9395 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; 9396END_ENTITY; 9397 9398-- DIFF IN AP214 9399-- IN AP214/AP242 9400ENTITY feature_component_relationship 9401 SUPERTYPE OF (ONEOF(pattern_omit_membership, pattern_offset_membership)) 9402 SUBTYPE OF (shape_aspect_relationship); 9403 WHERE 9404 WR1: 9405 ((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)); 9406END_ENTITY; 9407 9408-- DIFF IN AP214 9409-- IN AP214/AP242 9410ENTITY feature_definition 9411 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)) 9412 SUBTYPE OF (characterized_object); 9413END_ENTITY; 9414 9415-- IN AP242 9416ENTITY feature_definition_with_connection_area 9417 SUBTYPE OF (shape_feature_definition); 9418END_ENTITY; 9419 9420-- IN AP242 9421ENTITY feature_for_datum_target_relationship 9422 SUBTYPE OF (shape_aspect_relationship); 9423 SELF\shape_aspect_relationship.related_shape_aspect : datum_target; 9424 UNIQUE 9425 UR1 : related_shape_aspect; 9426 WHERE 9427 WR1: 9428 relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape; 9429 WR2: 9430 relating_shape_aspect\shape_aspect.product_definitional = TRUE; 9431END_ENTITY; 9432 9433-- IN AP214/AP242 9434ENTITY feature_in_panel 9435 SUBTYPE OF (feature_definition); 9436 WHERE 9437 WR1: 9438 SELF.description IN [ 'pocket', 'boss', 'stairstep' ]; 9439 WR2: 9440 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; 9441 WR3: 9442 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; 9443 WR4: 9444 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; 9445 WR5: 9446 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; 9447 WR6: 9448 SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.name = 'base boundary') AND (sa.description IN [ 'directed angle occurrence', 'closed profile occurrence' ]))) = 1; 9449 WR7: 9450 SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.name = 'target boundary') AND (sa.description IN [ 'directed angle occurrence', 'closed profile occurrence' ]))) = 1; 9451 WR8: 9452 SIZEOF(QUERY (sa <* get_shape_aspects(SELF)| (sa.description = 'directed angle occurrence'))) <= 1; 9453 WR9: 9454 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'))); 9455 WR10: 9456 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'))); 9457 WR11: 9458 (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); 9459 WR12: 9460 (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); 9461END_ENTITY; 9462 9463-- IN AP214/AP242 9464ENTITY feature_pattern 9465 SUBTYPE OF (replicate_feature); 9466 WHERE 9467 WR1: 9468 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; 9469 WR2: 9470 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; 9471END_ENTITY; 9472 9473-- IN AP214 9474ENTITY featured_shape 9475 SUBTYPE OF (product_definition_shape); 9476 WHERE 9477 wr1: 9478 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DEFINITION' IN TYPEOF(SELF.definition); 9479 wr2: 9480 (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); 9481 wr3: 9482 SIZEOF(QUERY (pdr <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION')| (SELF.definition :=: pdr.relating_property_definition.definition))) = 1; 9483 wr4: 9484 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; 9485END_ENTITY; 9486 9487ENTITY fill_area_style 9488 SUBTYPE OF (founded_item); 9489 name : label; 9490 fill_styles : SET [1:?] OF fill_style_select; 9491 WHERE 9492 WR1: 9493 SIZEOF(QUERY (fill_style <* SELF.fill_styles| ('STEP_MERGED_CAD_SCHEMA.' + 'FILL_AREA_STYLE_COLOUR' IN TYPEOF(fill_style)))) <= 1; 9494END_ENTITY; 9495 9496ENTITY fill_area_style_colour; 9497 name : label; 9498 fill_colour : colour; 9499END_ENTITY; 9500 9501ENTITY fill_area_style_hatching 9502 SUBTYPE OF (geometric_representation_item); 9503 hatch_line_appearance : curve_style; 9504 start_of_next_hatch_line : one_direction_repeat_factor; 9505 point_of_reference_hatch_line : cartesian_point; 9506 pattern_start : cartesian_point; 9507 hatch_line_angle : plane_angle_measure; 9508END_ENTITY; 9509 9510-- IN AP203e2/AP242 9511ENTITY fill_area_style_tile_coloured_region 9512 SUBTYPE OF (geometric_representation_item); 9513 closed_curve : curve_or_annotation_curve_occurrence; 9514 region_colour : colour; 9515 WHERE 9516 WR1: 9517 ((((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)]); 9518END_ENTITY; 9519 9520-- IN AP203e2/AP242 9521ENTITY fill_area_style_tile_curve_with_style 9522 SUBTYPE OF (geometric_representation_item); 9523 styled_curve : annotation_curve_occurrence; 9524END_ENTITY; 9525 9526ENTITY fill_area_style_tile_symbol_with_style 9527 SUBTYPE OF (geometric_representation_item); 9528 symbol : annotation_symbol_occurrence; 9529END_ENTITY; 9530 9531ENTITY fill_area_style_tiles 9532 SUBTYPE OF (geometric_representation_item); 9533 tiling_pattern : two_direction_repeat_factor; 9534 tiles : SET [1:?] OF fill_area_style_tile_shape_select; 9535 tiling_scale : positive_ratio_measure; 9536END_ENTITY; 9537 9538-- IN AP214/AP242 9539ENTITY fillet 9540 SUBTYPE OF (transition_feature); 9541 WHERE 9542 WR1: 9543 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); 9544 WR2: 9545 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); 9546 WR3: 9547 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); 9548 WR4: 9549 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); 9550 WR5: 9551 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); 9552 WR6: 9553 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; 9554 WR7: 9555 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; 9556 WR8: 9557 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; 9558END_ENTITY; 9559 9560-- IN AP242 9561ENTITY finite_function 9562 SUBTYPE OF (maths_function, generic_literal); 9563 pairs : SET [1:?] OF LIST [2:2] OF maths_value; 9564 WHERE 9565 WR1: 9566 VALUE_UNIQUE(list_selected_components(pairs, 1)); 9567END_ENTITY; 9568 9569-- IN AP242 9570ENTITY finite_integer_interval 9571 SUBTYPE OF (maths_space, generic_literal); 9572 min : INTEGER; 9573 max : INTEGER; 9574 DERIVE 9575 size : positive_integer := max - min + 1; 9576 WHERE 9577 WR1: 9578 min <= max; 9579END_ENTITY; 9580 9581-- IN AP242 9582ENTITY finite_real_interval 9583 SUBTYPE OF (maths_space, generic_literal); 9584 min : REAL; 9585 min_closure : open_closed; 9586 max : REAL; 9587 max_closure : open_closed; 9588 WHERE 9589 WR1: 9590 min < max; 9591END_ENTITY; 9592 9593-- IN AP242 9594ENTITY finite_space 9595 SUBTYPE OF (maths_space, generic_literal); 9596 members : SET [0:?] OF maths_value; 9597 WHERE 9598 WR1: 9599 VALUE_UNIQUE(members); 9600 WR2: 9601 SIZEOF(QUERY (expr <* QUERY (member <* members| ('STEP_MERGED_CAD_SCHEMA.GENERIC_EXPRESSION' IN TYPEOF(member)))| NOT expression_is_constant(expr))) = 0; 9602 WR3: 9603 no_cyclic_space_reference(SELF, []); 9604END_ENTITY; 9605 9606-- IN AP242 9607ENTITY fixed_constituent_assembly_constraint 9608 SUBTYPE OF (assembly_geometric_constraint, fixed_element_geometric_constraint); 9609 fixed_constituent : representative_shape_representation; 9610 WHERE 9611 WR1: 9612 SELF\explicit_constraint.constrained_elements[1]\geometric_representation_item.dim = 3; 9613 WR2: 9614 assembly_leaf(using_product_definition_of_shape_representation(fixed_constituent)[1]); 9615 WR3: 9616 (SIZEOF(SELF\explicit_constraint.constrained_elements) = 1) AND (SIZEOF(SELF\explicit_constraint.reference_elements) = 0); 9617 WR4: 9618 fixed_constituent IN using_representations(SELF\explicit_constraint.constrained_elements[1]) + using_representation_with_mapping(SELF\explicit_constraint.constrained_elements[1]); 9619END_ENTITY; 9620 9621-- IN AP242 9622ENTITY fixed_element_geometric_constraint 9623 SUBTYPE OF (explicit_geometric_constraint); 9624 SELF\explicit_constraint.constrained_elements : SET [1:?] OF geometric_constraint_element; 9625 WHERE 9626 WR1: 9627 SIZEOF(SELF\explicit_constraint.reference_elements) = 0; 9628END_ENTITY; 9629 9630-- IN AP242 9631ENTITY fixed_instance_attribute_set 9632 SUBTYPE OF (variational_representation_item); 9633 fixed_attributes : SET [1:?] OF instance_attribute_reference; 9634 WHERE 9635 WR1: 9636 SIZEOF(QUERY (q <* using_representations(SELF)| (SIZEOF(QUERY (r <* q.items| ('STEP_MERGED_CAD_SCHEMA.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF(r)))) > 1))) = 0; 9637END_ENTITY; 9638 9639-- IN AP242 9640ENTITY flat_face 9641 SUBTYPE OF (feature_definition); 9642 WHERE 9643 WR1: 9644 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; 9645 WR2: 9646 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; 9647 WR3: 9648 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; 9649 WR4: 9650 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; 9651 WR5: 9652 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; 9653 WR6: 9654 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; 9655 WR7: 9656 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; 9657END_ENTITY; 9658 9659-- IN AP203e2/AP242 9660ENTITY flat_pattern_ply_representation_relationship 9661 SUBTYPE OF (shape_representation_relationship); 9662 WHERE 9663 WR1: 9664 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_1) * TYPEOF(SELF\representation_relationship.rep_2); 9665 WR2: 9666 SELF\representation_relationship.rep_1.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; 9667END_ENTITY; 9668 9669ENTITY flatness_tolerance 9670 SUBTYPE OF (geometric_tolerance); 9671 WHERE 9672 WR1: 9673 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); 9674END_ENTITY; 9675 9676-- IN AP203e2/AP242 9677ENTITY force_measure_with_unit 9678 SUBTYPE OF (measure_with_unit); 9679 WHERE 9680 WR1: 9681 'STEP_MERGED_CAD_SCHEMA.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 9682END_ENTITY; 9683 9684-- IN AP203e2/AP242 9685ENTITY force_unit 9686 SUBTYPE OF (derived_unit); 9687 WHERE 9688 WR1: 9689 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.newton); 9690END_ENTITY; 9691 9692-- DIFF IN AP214 9693-- IN AP214/AP242 9694ENTITY format_function 9695 SUBTYPE OF (string_expression, binary_generic_expression); 9696 DERIVE 9697 format_string : generic_expression := SELF\binary_generic_expression.operands[2]; 9698 value_to_format : generic_expression := SELF\binary_generic_expression.operands[1]; 9699 WHERE 9700 WR1: 9701 ('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(value_to_format)) AND ('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(format_string)); 9702END_ENTITY; 9703 9704-- IN AP203e2/AP242 9705ENTITY forward_chaining_rule 9706 SUBTYPE OF (rule_definition); 9707END_ENTITY; 9708 9709-- IN AP203e2/AP242 9710ENTITY forward_chaining_rule_premise 9711 SUBTYPE OF (property_definition, property_definition_representation, representation); 9712END_ENTITY; 9713 9714-- DIFF IN AP214 9715-- DIFF IN AP203e2 9716ENTITY founded_item 9717 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)); 9718 DERIVE 9719 users : SET [0:?] OF founded_item_select := using_items(SELF, []); 9720 WHERE 9721 WR1: 9722 SIZEOF(users) > 0; 9723 WR2: 9724 NOT (SELF IN users); 9725END_ENTITY; 9726 9727-- IN AP214 9728ENTITY founded_kinematic_path 9729 SUBTYPE OF (representation); 9730 SELF\representation.items : SET [1:?] OF kinematic_path; 9731 SELF\representation.context_of_items : geometric_representation_context; 9732 DERIVE 9733 paths : SET [1:?] OF kinematic_path := SELF\representation.items; 9734 founding : geometric_representation_context := SELF\representation.context_of_items; 9735END_ENTITY; 9736 9737-- IN AP242 9738ENTITY free_edge 9739 SUBTYPE OF (inapt_topology); 9740 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 9741 WHERE 9742 WR1: 9743 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 9744 WR2: 9745 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 9746 WR3: 9747 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 9748 WR4: 9749 validate_accuracy_types(SELF, []); 9750 WR5: 9751 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; 9752END_ENTITY; 9753 9754-- IN AP242 9755ENTITY free_form_assignment 9756 SUBTYPE OF (free_form_constraint); 9757 WHERE 9758 WR1: 9759 SIZEOF(QUERY (q <* SELF\free_form_constraint.constrained_elements| (q IN used_variables(SELF\free_form_constraint.constraining_expression)))) = 0; 9760 WR2: 9761 SIZEOF(QUERY (q <* SELF\free_form_constraint.reference_elements| NOT (q IN used_variables(SELF\free_form_constraint.constraining_expression)))) = 0; 9762 WR3: 9763 SIZEOF(SELF\free_form_constraint.reference_elements) >= 1; 9764 WR4: 9765 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; 9766END_ENTITY; 9767 9768-- IN AP242 9769ENTITY free_form_constraint 9770 ABSTRACT SUPERTYPE OF (ONEOF(free_form_assignment, free_form_relation)) 9771 SUBTYPE OF (explicit_constraint); 9772 constraining_expression : expression; 9773 SELF\explicit_constraint.constrained_elements : SET [1:?] OF variational_parameter; 9774 SELF\explicit_constraint.reference_elements : SET [0:?] OF variational_parameter; 9775END_ENTITY; 9776 9777-- IN AP242 9778ENTITY free_form_relation 9779 SUBTYPE OF (free_form_constraint); 9780 WHERE 9781 WR1: 9782 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\free_form_constraint.constraining_expression); 9783 WR2: 9784 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; 9785END_ENTITY; 9786 9787-- IN AP242 9788ENTITY free_kinematic_motion_representation 9789 SUBTYPE OF (representation_relationship_with_transformation); 9790 motion : kinematic_path; 9791 SELF\representation_relationship.rep_1 : representative_shape_representation; 9792 SELF\representation_relationship.rep_2 : representative_shape_representation; 9793 WHERE 9794 WR1: 9795 'STEP_MERGED_CAD_SCHEMA.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF(SELF\representation_relationship_with_transformation.transformation_operator); 9796 WR2: 9797 ('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)); 9798 WR3: 9799 (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); 9800 WR4: 9801 (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)); 9802END_ENTITY; 9803 9804-- IN AP203e2/AP242 9805ENTITY frequency_measure_with_unit 9806 SUBTYPE OF (measure_with_unit); 9807 WHERE 9808 WR1: 9809 'STEP_MERGED_CAD_SCHEMA.FREQUENCY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 9810END_ENTITY; 9811 9812-- IN AP203e2/AP242 9813ENTITY frequency_unit 9814 SUBTYPE OF (derived_unit); 9815 WHERE 9816 WR1: 9817 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.hertz); 9818END_ENTITY; 9819 9820-- IN AP242 9821ENTITY frozen_assignment 9822 SUBTYPE OF (approval_assignment); 9823 items : SET [1:?] OF change_management_object; 9824END_ENTITY; 9825 9826-- DIFF IN AP214 9827-- IN AP214/AP242 9828ENTITY fully_constrained_pair 9829 SUBTYPE OF (low_order_kinematic_pair); 9830 DERIVE 9831 SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; 9832 SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; 9833 SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; 9834 SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; 9835 SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; 9836 SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; 9837END_ENTITY; 9838 9839-- IN AP203e2/AP242 9840ENTITY func 9841 SUBTYPE OF (compound_representation_item); 9842END_ENTITY; 9843 9844-- IN AP242 9845ENTITY function_application 9846 SUBTYPE OF (multiple_arity_generic_expression); 9847 func : maths_function_select; 9848 arguments : LIST [1:?] OF maths_expression; 9849 DERIVE 9850 SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF generic_expression := [ convert_to_maths_function(func) ] + convert_to_operands(arguments); 9851 WHERE 9852 WR1: 9853 function_applicability(func, arguments); 9854END_ENTITY; 9855 9856-- IN AP242 9857ENTITY function_space 9858 SUBTYPE OF (maths_space, generic_literal); 9859 domain_constraint : space_constraint_type; 9860 domain_argument : maths_space; 9861 range_constraint : space_constraint_type; 9862 range_argument : maths_space; 9863 WHERE 9864 WR1: 9865 expression_is_constant(domain_argument) AND expression_is_constant(range_argument); 9866 WR2: 9867 (domain_argument <> the_empty_space) AND (range_argument <> the_empty_space); 9868 WR3: 9869 (domain_constraint <> sc_member) OR NOT member_of(the_empty_space, domain_argument); 9870 WR4: 9871 (range_constraint <> sc_member) OR NOT member_of(the_empty_space, range_argument); 9872 WR5: 9873 NOT (any_space_satisfies(domain_constraint, domain_argument) AND any_space_satisfies(range_constraint, range_argument)); 9874END_ENTITY; 9875 9876-- IN AP203e2/AP242 9877ENTITY functional_breakdown_context 9878 SUBTYPE OF (breakdown_context); 9879END_ENTITY; 9880 9881-- IN AP203e2/AP242 9882ENTITY functional_element_usage 9883 SUBTYPE OF (breakdown_element_usage); 9884END_ENTITY; 9885 9886ENTITY functionally_defined_transformation; 9887 name : label; 9888 description : OPTIONAL text; 9889END_ENTITY; 9890 9891-- IN AP242 9892ENTITY g1_discontinuity_between_adjacent_faces 9893 SUBTYPE OF (non_smooth_geometry_transition_across_edge); 9894 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 9895 WHERE 9896 WR1: 9897 ('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)); 9898 WR2: 9899 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE'); 9900 WR3: 9901 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 9902 WR4: 9903 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]); 9904 WR5: 9905 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]); 9906END_ENTITY; 9907 9908-- IN AP242 9909ENTITY g1_discontinuous_curve 9910 SUBTYPE OF (discontinuous_geometry); 9911 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 9912 WHERE 9913 WR1: 9914 ('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)); 9915 WR2: 9916 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE'); 9917 WR3: 9918 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]); 9919 WR4: 9920 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ]); 9921 WR5: 9922 validate_accuracy_types(SELF, []); 9923END_ENTITY; 9924 9925-- IN AP242 9926ENTITY g1_discontinuous_surface 9927 SUBTYPE OF (discontinuous_geometry); 9928 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 9929 WHERE 9930 WR1: 9931 ('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)); 9932 WR2: 9933 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE'); 9934 WR3: 9935 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 9936 WR4: 9937 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ]); 9938 WR5: 9939 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]); 9940END_ENTITY; 9941 9942-- IN AP242 9943ENTITY g2_discontinuity_between_adjacent_faces 9944 SUBTYPE OF (non_smooth_geometry_transition_across_edge); 9945 assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; 9946 flat_curvature_radius_tolerance : length_measure; 9947 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 9948 WHERE 9949 WR1: 9950 ('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)); 9951 WR2: 9952 ('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)); 9953 WR3: 9954 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_AND_RATIO_PAIR'); 9955 WR4: 9956 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 9957 WR5: 9958 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]); 9959 WR6: 9960 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' ]); 9961END_ENTITY; 9962 9963-- IN AP242 9964ENTITY g2_discontinuous_curve 9965 SUBTYPE OF (discontinuous_geometry); 9966 assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; 9967 flat_curvature_radius_tolerance : length_measure; 9968 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 9969 WHERE 9970 WR1: 9971 ('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)); 9972 WR2: 9973 ('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)); 9974 WR3: 9975 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_AND_RATIO_PAIR'); 9976 WR4: 9977 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]); 9978 WR5: 9979 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ]); 9980 WR6: 9981 validate_accuracy_types(SELF, []); 9982END_ENTITY; 9983 9984-- IN AP242 9985ENTITY g2_discontinuous_surface 9986 SUBTYPE OF (discontinuous_geometry); 9987 assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; 9988 flat_curvature_radius_tolerance : length_measure; 9989 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 9990 WHERE 9991 WR1: 9992 ('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)); 9993 WR2: 9994 ('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)); 9995 WR3: 9996 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_AND_RATIO_PAIR'); 9997 WR4: 9998 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 9999 WR5: 10000 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ]); 10001 WR6: 10002 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' ]); 10003END_ENTITY; 10004 10005-- IN AP242 10006ENTITY gap_between_adjacent_edges_in_loop 10007 SUBTYPE OF (geometric_gap_in_topology); 10008 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10009 WHERE 10010 WR1: 10011 ('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)); 10012 WR2: 10013 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 10014 WR3: 10015 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' ]); 10016 WR4: 10017 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' ]); 10018 WR5: 10019 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10020END_ENTITY; 10021 10022-- IN AP242 10023ENTITY gap_between_edge_and_base_surface 10024 SUBTYPE OF (geometric_gap_in_topology); 10025 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10026 WHERE 10027 WR1: 10028 ('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)); 10029 WR2: 10030 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 10031 WR3: 10032 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 10033 WR4: 10034 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE' ]); 10035 WR5: 10036 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10037END_ENTITY; 10038 10039-- IN AP242 10040ENTITY gap_between_faces_related_to_an_edge 10041 SUBTYPE OF (geometric_gap_in_topology); 10042 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10043 WHERE 10044 WR1: 10045 ('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)); 10046 WR2: 10047 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 10048 WR3: 10049 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 10050 WR4: 10051 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]); 10052 WR5: 10053 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10054END_ENTITY; 10055 10056-- IN AP242 10057ENTITY gap_between_pcurves_related_to_an_edge 10058 SUBTYPE OF (geometric_gap_in_topology); 10059 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10060 WHERE 10061 WR1: 10062 ('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)); 10063 WR2: 10064 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 10065 WR3: 10066 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 10067 WR4: 10068 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]); 10069 WR5: 10070 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10071END_ENTITY; 10072 10073-- IN AP242 10074ENTITY gap_between_vertex_and_base_surface 10075 SUBTYPE OF (geometric_gap_in_topology); 10076 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10077 WHERE 10078 WR1: 10079 ('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)); 10080 WR2: 10081 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 10082 WR3: 10083 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 10084 WR4: 10085 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE' ]); 10086 WR5: 10087 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10088END_ENTITY; 10089 10090-- IN AP242 10091ENTITY gap_between_vertex_and_edge 10092 SUBTYPE OF (geometric_gap_in_topology); 10093 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10094 WHERE 10095 WR1: 10096 ('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)); 10097 WR2: 10098 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 10099 WR3: 10100 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 10101 WR4: 10102 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]); 10103 WR5: 10104 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10105END_ENTITY; 10106 10107-- IN AP242 10108ENTITY gear 10109 SUBTYPE OF (feature_definition); 10110 WHERE 10111 WR1: 10112 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; 10113 WR2: 10114 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); 10115 WR3: 10116 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); 10117 WR4: 10118 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); 10119 WR5: 10120 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); 10121 WR6: 10122 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); 10123 WR7: 10124 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); 10125 WR8: 10126 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); 10127 WR9: 10128 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); 10129 WR10: 10130 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); 10131 WR11: 10132 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); 10133 WR12: 10134 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); 10135 WR13: 10136 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); 10137 WR14: 10138 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); 10139 WR15: 10140 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); 10141 WR16: 10142 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; 10143END_ENTITY; 10144 10145-- DIFF IN AP214 10146-- IN AP214/AP242 10147ENTITY gear_pair 10148 SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); 10149 radius_first_link : length_measure; 10150 radius_second_link : length_measure; 10151 bevel : plane_angle_measure; 10152 helical_angle : plane_angle_measure; 10153 gear_ratio : REAL; 10154 WHERE 10155 WR1: 10156 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 10157END_ENTITY; 10158 10159-- IN AP214 10160ENTITY gear_pair_range 10161 SUBTYPE OF (simple_pair_range); 10162 SELF\simple_pair_range.applies_to_pair : gear_pair; 10163 lower_limit_actual_rotation_1 : rotational_range_measure; 10164 upper_limit_actual_rotation_1 : rotational_range_measure; 10165 WHERE 10166 wr1: 10167 (('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); 10168END_ENTITY; 10169 10170-- DIFF IN AP214 10171-- IN AP214/AP242 10172ENTITY gear_pair_value 10173 SUBTYPE OF (pair_value); 10174 actual_rotation_1 : plane_angle_measure; 10175 SELF\pair_value.applies_to_pair : gear_pair; 10176 DERIVE 10177 actual_rotation_2 : plane_angle_measure := -actual_rotation_1 * SELF\pair_value.applies_to_pair\gear_pair.gear_ratio; 10178END_ENTITY; 10179 10180-- IN AP242 10181ENTITY gear_pair_with_range 10182 SUBTYPE OF (gear_pair); 10183 lower_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; 10184 upper_limit_actual_rotation_1 : OPTIONAL plane_angle_measure; 10185 WHERE 10186 WR1: 10187 (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); 10188END_ENTITY; 10189 10190-- IN AP242 10191ENTITY general_datum_reference 10192 ABSTRACT SUPERTYPE OF (ONEOF(datum_reference_compartment, datum_reference_element)) 10193 SUBTYPE OF (shape_aspect); 10194 base : datum_or_common_datum; 10195 modifiers : OPTIONAL SET [1:?] OF datum_reference_modifier; 10196 WHERE 10197 WR1: 10198 SELF\shape_aspect.name = ''; 10199 WR2: 10200 NOT EXISTS(SELF\shape_aspect.description); 10201 WR3: 10202 NOT EXISTS(SELF\shape_aspect.id); 10203 WR4: 10204 SELF\shape_aspect.product_definitional = FALSE; 10205 WR5: 10206 NOT ('STEP_MERGED_CAD_SCHEMA.DATUM' IN TYPEOF(base)) OR (SELF\shape_aspect.of_shape = base\shape_aspect.of_shape); 10207 WR6: 10208 NOT ('STEP_MERGED_CAD_SCHEMA.COMMON_DATUM_LIST' IN TYPEOF(base)) OR (SELF\shape_aspect.of_shape = base[1]\shape_aspect.of_shape); 10209END_ENTITY; 10210 10211-- DIFF IN AP214 10212-- IN AP214/AP242 10213ENTITY general_feature 10214 SUBTYPE OF (shape_feature_definition); 10215 WHERE 10216 WR1: 10217 (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); 10218 WR2: 10219 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))); 10220 WR3: 10221 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))); 10222 WR4: 10223 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))); 10224 WR5: 10225 (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); 10226END_ENTITY; 10227 10228-- IN AP242 10229ENTITY general_linear_function 10230 SUBTYPE OF (maths_function, unary_generic_expression); 10231 sum_index : one_or_two; 10232 SELF\unary_generic_expression.operand : maths_function; 10233 DERIVE 10234 mat : maths_function := SELF\unary_generic_expression.operand; 10235 WHERE 10236 WR1: 10237 function_is_2d_table(mat); 10238 WR2: 10239 (space_dimension(mat.range) = 1) AND subspace_of_es(factor1(mat.range), es_numbers); 10240END_ENTITY; 10241 10242ENTITY general_material_property 10243 SUBTYPE OF (general_property); 10244 WHERE 10245 WR1: 10246 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; 10247END_ENTITY; 10248 10249ENTITY general_property; 10250 id : identifier; 10251 name : label; 10252 description : OPTIONAL text; 10253END_ENTITY; 10254 10255ENTITY general_property_association; 10256 name : label; 10257 description : OPTIONAL text; 10258 base_definition : general_property; 10259 derived_definition : derived_property_select; 10260 WHERE 10261 WR1: 10262 SIZEOF(USEDIN(derived_definition, 'STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')) = 1; 10263 WR2: 10264 derived_definition.name = base_definition.name; 10265END_ENTITY; 10266 10267ENTITY general_property_relationship; 10268 name : label; 10269 description : OPTIONAL text; 10270 relating_property : general_property; 10271 related_property : general_property; 10272END_ENTITY; 10273 10274-- IN AP242 10275ENTITY generated_finite_numeric_space 10276 SUBTYPE OF (finite_space); 10277 start_value : maths_number; 10278 increment_value : maths_number; 10279 increment_number : positive_integer; 10280 DERIVE 10281 SELF\finite_space.members : SET [2:?] OF maths_number := make_numeric_set(start_value, increment_value, increment_number); 10282 WHERE 10283 WR1: 10284 increment_value <> 0.0; 10285END_ENTITY; 10286 10287ENTITY generic_character_glyph_symbol 10288 ABSTRACT SUPERTYPE 10289 SUBTYPE OF (symbol_representation); 10290END_ENTITY; 10291 10292ENTITY generic_expression 10293 ABSTRACT SUPERTYPE OF (ONEOF(simple_generic_expression, unary_generic_expression, binary_generic_expression, multiple_arity_generic_expression)); 10294 WHERE 10295 WR1: 10296 is_acyclic(SELF); 10297END_ENTITY; 10298 10299ENTITY generic_literal 10300 ABSTRACT SUPERTYPE 10301 SUBTYPE OF (simple_generic_expression); 10302END_ENTITY; 10303 10304-- IN AP242 10305ENTITY generic_product_definition_reference 10306 ABSTRACT SUPERTYPE OF (ONEOF(product_definition_reference, product_definition_reference_with_local_representation)); 10307 source : external_source; 10308END_ENTITY; 10309 10310ENTITY generic_variable 10311 ABSTRACT SUPERTYPE 10312 SUBTYPE OF (simple_generic_expression); 10313 INVERSE 10314 interpretation : environment FOR syntactic_representation; 10315END_ENTITY; 10316 10317ENTITY geometric_alignment 10318 SUBTYPE OF (derived_shape_aspect); 10319 WHERE 10320 WR1: 10321 SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; 10322END_ENTITY; 10323 10324-- IN AP242 10325ENTITY geometric_contact 10326 SUBTYPE OF (derived_shape_aspect); 10327 WHERE 10328 WR1: 10329 SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 2; 10330END_ENTITY; 10331 10332ENTITY geometric_curve_set 10333 SUBTYPE OF (geometric_set); 10334 WHERE 10335 WR1: 10336 SIZEOF(QUERY (temp <* SELF\geometric_set.elements| ('STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(temp)))) = 0; 10337END_ENTITY; 10338 10339-- IN AP242 10340ENTITY geometric_gap_in_topology 10341 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)) 10342 SUBTYPE OF (inapt_topology_and_geometry_relationship); 10343END_ENTITY; 10344 10345ENTITY geometric_intersection 10346 SUBTYPE OF (derived_shape_aspect); 10347 WHERE 10348 WR1: 10349 SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; 10350END_ENTITY; 10351 10352-- DIFF IN AP214 10353-- DIFF IN AP203e2 10354ENTITY geometric_item_specific_usage 10355 SUBTYPE OF (item_identified_representation_usage); 10356 SELF\item_identified_representation_usage.definition : geometric_item_specific_usage_select; 10357 SELF\item_identified_representation_usage.identified_item : geometric_model_item; 10358 SELF\item_identified_representation_usage.used_representation : shape_model; 10359 UNIQUE 10360 UR1 : definition; 10361END_ENTITY; 10362 10363-- IN AP203e2/AP242 10364ENTITY geometric_model_element_relationship 10365 SUBTYPE OF (geometric_representation_item, representation_item_relationship); 10366 SELF\representation_item_relationship.related_representation_item : geometric_representation_item; 10367 SELF\representation_item_relationship.relating_representation_item : geometric_representation_item; 10368 UNIQUE 10369 UR1 : relating_representation_item, related_representation_item; 10370 WHERE 10371 WR1: 10372 SELF\representation_item_relationship.relating_representation_item :<>: SELF\representation_item_relationship.related_representation_item; 10373END_ENTITY; 10374 10375-- DIFF IN AP214 10376-- DIFF IN AP203e2 10377ENTITY geometric_representation_context 10378 SUPERTYPE OF (ONEOF(geometric_representation_context_with_parameter, path_parameter_representation_context)) 10379 SUBTYPE OF (representation_context); 10380 coordinate_space_dimension : dimension_count; 10381END_ENTITY; 10382 10383-- IN AP242 10384ENTITY geometric_representation_context_with_parameter 10385 SUBTYPE OF (geometric_representation_context); 10386 parameter_unit : OPTIONAL unit; 10387END_ENTITY; 10388 10389-- DIFF IN AP214 10390-- DIFF IN AP203e2 10391ENTITY geometric_representation_item 10392 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)) 10393 SUBTYPE OF (representation_item); 10394 DERIVE 10395 dim : dimension_count := dimension_of(SELF); 10396 WHERE 10397 WR1: 10398 SIZEOF(QUERY (using_rep <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep.context_of_items)))) = 0; 10399END_ENTITY; 10400 10401-- DIFF IN AP214 10402ENTITY geometric_set 10403 SUBTYPE OF (geometric_representation_item); 10404 elements : SET [1:?] OF geometric_set_select; 10405END_ENTITY; 10406 10407-- DIFF IN AP214 10408-- DIFF IN AP203e2 10409ENTITY geometric_tolerance 10410 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)); 10411 name : label; 10412 description : OPTIONAL text; 10413 magnitude : OPTIONAL length_measure_with_unit; 10414 toleranced_shape_aspect : geometric_tolerance_target; 10415 DERIVE 10416 controlling_shape : product_definition_shape := sts_get_product_definition_shape(toleranced_shape_aspect); 10417 id : identifier := get_id_value(SELF); 10418 UNIQUE 10419 UR1 : id, controlling_shape; 10420 WHERE 10421 WR1: 10422 magnitude\measure_with_unit.value_component >= 0.0; 10423 WR2: 10424 EXISTS(controlling_shape); 10425 WR3: 10426 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); 10427 WR4: 10428 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 10429END_ENTITY; 10430 10431ENTITY geometric_tolerance_relationship; 10432 name : label; 10433 description : text; 10434 relating_geometric_tolerance : geometric_tolerance; 10435 related_geometric_tolerance : geometric_tolerance; 10436END_ENTITY; 10437 10438-- DIFF IN AP214 10439-- DIFF IN AP203e2 10440ENTITY geometric_tolerance_with_datum_reference 10441 SUPERTYPE OF (ONEOF(angularity_tolerance, circular_runout_tolerance, coaxiality_tolerance, concentricity_tolerance, parallelism_tolerance, perpendicularity_tolerance, symmetry_tolerance, total_runout_tolerance)) 10442 SUBTYPE OF (geometric_tolerance); 10443 datum_system : SET [1:?] OF datum_system_or_reference; 10444 WHERE 10445 WR1: 10446 (SIZEOF(QUERY (ds <* datum_system| ('STEP_MERGED_CAD_SCHEMA.' + 'DATUM_SYSTEM' IN TYPEOF(ds)))) = 0) OR (SIZEOF(datum_system) = 1); 10447END_ENTITY; 10448 10449-- IN AP242 10450ENTITY geometric_tolerance_with_defined_area_unit 10451 SUBTYPE OF (geometric_tolerance_with_defined_unit); 10452 area_type : area_unit_type; 10453 second_unit_size : OPTIONAL length_measure_with_unit; 10454 WHERE 10455 WR1: 10456 NOT (EXISTS(second_unit_size) XOR (area_type = area_unit_type.rectangular)); 10457END_ENTITY; 10458 10459-- DIFF IN AP214 10460-- DIFF IN AP203e2 10461ENTITY geometric_tolerance_with_defined_unit 10462 SUBTYPE OF (geometric_tolerance); 10463 unit_size : length_measure_with_unit; 10464 WHERE 10465 WR1: 10466 ('NUMBER' IN TYPEOF(unit_size\measure_with_unit.value_component)) AND (unit_size\measure_with_unit.value_component > 0.0); 10467END_ENTITY; 10468 10469-- IN AP242 10470ENTITY geometric_tolerance_with_maximum_tolerance 10471 SUBTYPE OF (geometric_tolerance_with_modifiers); 10472 maximum_upper_tolerance : length_measure_with_unit; 10473 WHERE 10474 WR1: 10475 (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); 10476 WR2: 10477 (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); 10478END_ENTITY; 10479 10480-- IN AP242 10481ENTITY geometric_tolerance_with_modifiers 10482 SUBTYPE OF (geometric_tolerance); 10483 modifiers : SET [1:?] OF geometric_tolerance_modifier; 10484END_ENTITY; 10485 10486ENTITY geometrical_tolerance_callout 10487 SUBTYPE OF (draughting_callout); 10488END_ENTITY; 10489 10490ENTITY geometrically_bounded_2d_wireframe_representation 10491 SUBTYPE OF (shape_representation); 10492 WHERE 10493 WR1: 10494 SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; 10495 WR2: 10496 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; 10497 WR3: 10498 SIZEOF(QUERY (item <* SELF.items| (SIZEOF(TYPEOF(item) * [ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ]) = 1))) >= 1; 10499 WR4: 10500 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; 10501 WR5: 10502 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; 10503 WR6: 10504 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; 10505 WR7: 10506 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; 10507END_ENTITY; 10508 10509ENTITY geometrically_bounded_surface_shape_representation 10510 SUBTYPE OF (shape_representation); 10511 WHERE 10512 WR1: 10513 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; 10514 WR2: 10515 SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; 10516 WR3: 10517 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; 10518 WR4: 10519 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; 10520 WR5: 10521 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; 10522 WR6: 10523 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; 10524 WR7: 10525 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; 10526END_ENTITY; 10527 10528ENTITY geometrically_bounded_wireframe_shape_representation 10529 SUBTYPE OF (shape_representation); 10530 WHERE 10531 WR1: 10532 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; 10533 WR2: 10534 SIZEOF(QUERY (it <* SELF.items| (SIZEOF(TYPEOF(it) * [ 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_CURVE_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ]) = 1))) >= 1; 10535 WR3: 10536 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; 10537 WR4: 10538 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; 10539 WR5: 10540 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; 10541 WR6: 10542 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; 10543 WR7: 10544 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; 10545END_ENTITY; 10546 10547-- IN AP242 10548ENTITY geometry_with_local_irregularity 10549 ABSTRACT SUPERTYPE OF (ONEOF(extreme_patch_width_variation, zero_surface_normal, abrupt_change_of_surface_normal)) 10550 SUBTYPE OF (inapt_geometry); 10551END_ENTITY; 10552 10553-- IN AP242 10554ENTITY geometry_with_local_near_degeneracy 10555 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)) 10556 SUBTYPE OF (inapt_geometry); 10557END_ENTITY; 10558 10559-- IN AP203e2/AP242 10560ENTITY global_assignment 10561 SUBTYPE OF (representation_item_relationship); 10562END_ENTITY; 10563 10564ENTITY global_uncertainty_assigned_context 10565 SUBTYPE OF (representation_context); 10566 uncertainty : SET [1:?] OF uncertainty_measure_with_unit; 10567END_ENTITY; 10568 10569ENTITY global_unit_assigned_context 10570 SUBTYPE OF (representation_context); 10571 units : SET [1:?] OF unit; 10572END_ENTITY; 10573 10574-- IN AP203e2/AP242 10575ENTITY ground_fact 10576 SUBTYPE OF (atomic_formula); 10577END_ENTITY; 10578 10579-- DIFF IN AP214 10580-- DIFF IN AP203e2 10581ENTITY group 10582 SUPERTYPE OF (ONEOF(change_group, change_element)); 10583 name : label; 10584 description : OPTIONAL text; 10585 DERIVE 10586 id : identifier := get_id_value(SELF); 10587 WHERE 10588 WR1: 10589 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 10590END_ENTITY; 10591 10592-- DIFF IN AP214 10593-- DIFF IN AP203e2 10594ENTITY group_assignment 10595 ABSTRACT SUPERTYPE OF (ONEOF(current_change_element_assignment, previous_change_element_assignment, change_group_assignment)); 10596 assigned_group : group; 10597 DERIVE 10598 role : object_role := get_role(SELF); 10599 WHERE 10600 WR1: 10601 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 10602END_ENTITY; 10603 10604ENTITY group_relationship; 10605 name : label; 10606 description : OPTIONAL text; 10607 relating_group : group; 10608 related_group : group; 10609END_ENTITY; 10610 10611-- IN AP242 10612ENTITY half_space_2d 10613 SUBTYPE OF (primitive_2d); 10614 base_curve : curve; 10615 agreement_flag : BOOLEAN; 10616END_ENTITY; 10617 10618ENTITY half_space_solid 10619 SUBTYPE OF (geometric_representation_item); 10620 base_surface : surface; 10621 agreement_flag : BOOLEAN; 10622END_ENTITY; 10623 10624ENTITY hardness_representation 10625 SUBTYPE OF (representation); 10626 WHERE 10627 WR1: 10628 ((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)); 10629 WR2: 10630 SIZEOF(QUERY (i <* SELF.items| (i.name = 'measuring method'))) = 1; 10631 WR3: 10632 SIZEOF(QUERY (i <* SELF.items| (i.name = 'hardness'))) = 1; 10633 WR4: 10634 SIZEOF(QUERY (i <* SELF.items| (i.name = 'measuring position'))) <= 1; 10635 WR5: 10636 SIZEOF(QUERY (i <* SELF.items| (i.name = 'depth'))) <= 1; 10637 WR6: 10638 (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); 10639END_ENTITY; 10640 10641-- DIFF IN AP214 10642ENTITY hidden_element_over_riding_styled_item 10643 SUBTYPE OF (context_dependent_over_riding_styled_item); 10644 SELF\styled_item.item : camera_image; 10645 SELF\context_dependent_over_riding_styled_item.style_context : LIST [1:1] OF presentation_view; 10646 INVERSE 10647 container : SET [1:?] OF presentation_view FOR items; 10648 WHERE 10649 WR1: 10650 'STEP_MERGED_CAD_SCHEMA.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF(SELF.item\mapped_item.mapping_source.mapping_origin); 10651END_ENTITY; 10652 10653-- IN AP242 10654ENTITY high_degree_axi_symmetric_surface 10655 SUBTYPE OF (overcomplex_geometry); 10656 approximation_tolerance : length_measure; 10657 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10658 WHERE 10659 WR1: 10660 ('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)); 10661 WR2: 10662 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 10663 WR3: 10664 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 10665 WR4: 10666 validate_locations_of_extreme_value_type(SELF, []); 10667 WR5: 10668 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10669END_ENTITY; 10670 10671-- IN AP242 10672ENTITY high_degree_conic 10673 SUBTYPE OF (overcomplex_geometry); 10674 approximation_tolerance : length_measure; 10675 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10676 WHERE 10677 WR1: 10678 ('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)); 10679 WR2: 10680 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 10681 WR3: 10682 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]); 10683 WR4: 10684 validate_locations_of_extreme_value_type(SELF, []); 10685 WR5: 10686 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10687END_ENTITY; 10688 10689-- IN AP242 10690ENTITY high_degree_linear_curve 10691 SUBTYPE OF (overcomplex_geometry); 10692 approximation_tolerance : length_measure; 10693 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10694 WHERE 10695 WR1: 10696 ('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)); 10697 WR2: 10698 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 10699 WR3: 10700 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]); 10701 WR4: 10702 validate_locations_of_extreme_value_type(SELF, []); 10703 WR5: 10704 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10705END_ENTITY; 10706 10707-- IN AP242 10708ENTITY high_degree_planar_surface 10709 SUBTYPE OF (overcomplex_geometry); 10710 approximation_tolerance : length_measure; 10711 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 10712 WHERE 10713 WR1: 10714 ('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)); 10715 WR2: 10716 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 10717 WR3: 10718 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 10719 WR4: 10720 validate_locations_of_extreme_value_type(SELF, []); 10721 WR5: 10722 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 10723END_ENTITY; 10724 10725-- IN AP242 10726ENTITY high_order_kinematic_pair 10727 ABSTRACT SUPERTYPE OF (ONEOF(linear_flexible_and_planar_curve_pair, point_on_surface_pair, point_on_planar_curve_pair, planar_curve_pair, surface_pair)) 10728 SUBTYPE OF (kinematic_pair); 10729 WHERE 10730 WR1: 10731 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_2| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 10732END_ENTITY; 10733 10734-- IN AP214/AP242 10735ENTITY hole_bottom 10736 SUBTYPE OF (shape_aspect); 10737 WHERE 10738 WR1: 10739 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 10740 WR2: 10741 SELF.description IN [ 'through', 'flat', 'flat with radius', 'flat with taper', 'spherical', 'conical' ]; 10742 WR3: 10743 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); 10744 WR4: 10745 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); 10746 WR5: 10747 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); 10748 WR6: 10749 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); 10750 WR7: 10751 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); 10752 WR8: 10753 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); 10754 WR9: 10755 (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); 10756 WR10: 10757 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); 10758 WR11: 10759 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); 10760 WR12: 10761 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); 10762 WR13: 10763 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); 10764 WR14: 10765 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; 10766 WR15: 10767 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); 10768 WR16: 10769 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); 10770END_ENTITY; 10771 10772-- IN AP214/AP242 10773ENTITY hole_in_panel 10774 SUBTYPE OF (feature_definition); 10775 WHERE 10776 WR1: 10777 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; 10778 WR2: 10779 SIZEOF(get_property_definition_representations(SELF)) = SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| (SIZEOF(pdr.used_representation.items) = 1))); 10780END_ENTITY; 10781 10782-- IN AP242 10783ENTITY homogeneous_linear_function 10784 SUBTYPE OF (maths_function, unary_generic_expression); 10785 sum_index : one_or_two; 10786 SELF\unary_generic_expression.operand : maths_function; 10787 DERIVE 10788 mat : maths_function := SELF\unary_generic_expression.operand; 10789 WHERE 10790 WR1: 10791 function_is_2d_table(mat); 10792 WR2: 10793 (space_dimension(mat.range) = 1) AND subspace_of_es(factor1(mat.range), es_numbers); 10794END_ENTITY; 10795 10796-- IN AP214/AP242 10797ENTITY homokinetic_pair 10798 SUBTYPE OF (universal_pair); 10799 WHERE 10800 WR1: 10801 NOT EXISTS(SELF.input_skew_angle); 10802END_ENTITY; 10803 10804ENTITY hyperbola 10805 SUBTYPE OF (conic); 10806 semi_axis : positive_length_measure; 10807 semi_imag_axis : positive_length_measure; 10808END_ENTITY; 10809 10810ENTITY id_attribute; 10811 attribute_value : identifier; 10812 identified_item : id_attribute_select; 10813END_ENTITY; 10814 10815ENTITY identification_assignment 10816 ABSTRACT SUPERTYPE; 10817 assigned_id : identifier; 10818 role : identification_role; 10819END_ENTITY; 10820 10821ENTITY identification_role; 10822 name : label; 10823 description : OPTIONAL text; 10824END_ENTITY; 10825 10826-- IN AP203e2/AP242 10827ENTITY illuminance_measure_with_unit 10828 SUBTYPE OF (measure_with_unit); 10829 WHERE 10830 WR1: 10831 'STEP_MERGED_CAD_SCHEMA.ILLUMINANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 10832END_ENTITY; 10833 10834-- IN AP203e2/AP242 10835ENTITY illuminance_unit 10836 SUBTYPE OF (derived_unit); 10837 WHERE 10838 WR1: 10839 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.lux); 10840END_ENTITY; 10841 10842-- IN AP242 10843ENTITY implicit_explicit_positioned_sketch_relationship 10844 SUBTYPE OF (representation_item_relationship); 10845 SELF\representation_item_relationship.related_representation_item : positioned_sketch; 10846 SELF\representation_item_relationship.relating_representation_item : repositioned_neutral_sketch; 10847 WHERE 10848 WR1: 10849 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; 10850END_ENTITY; 10851 10852-- IN AP242 10853ENTITY implicit_intersection_curve 10854 SUBTYPE OF (implicit_planar_curve); 10855 external_surface : surface; 10856END_ENTITY; 10857 10858-- IN AP242 10859ENTITY implicit_model_intersection_curve 10860 SUBTYPE OF (implicit_planar_curve); 10861 intersected_model : surface_or_solid_model; 10862END_ENTITY; 10863 10864-- IN AP242 10865ENTITY implicit_planar_curve 10866 ABSTRACT SUPERTYPE OF (ONEOF(implicit_intersection_curve, implicit_projected_curve, implicit_model_intersection_curve, implicit_silhouette_curve)) 10867 SUBTYPE OF (curve, auxiliary_geometric_representation_item); 10868 using_sketch : positioned_sketch; 10869 computed_representation : curve; 10870 DERIVE 10871 curve_plane : plane := get_plane_of_implicit_geometry(using_sketch); 10872 WHERE 10873 WR1: 10874 SIZEOF(TYPEOF(computed_representation) * [ 'STEP_MERGED_CAD_SCHEMA.IMPLICIT_PLANAR_CURVE', 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' ]) = 0; 10875END_ENTITY; 10876 10877-- IN AP242 10878ENTITY implicit_planar_intersection_point 10879 SUBTYPE OF (implicit_point_on_plane); 10880 external_curve : curve; 10881END_ENTITY; 10882 10883-- IN AP242 10884ENTITY implicit_planar_projection_point 10885 SUBTYPE OF (implicit_point_on_plane); 10886 external_point : point; 10887 projection_direction : direction; 10888END_ENTITY; 10889 10890-- IN AP242 10891ENTITY implicit_point_on_plane 10892 ABSTRACT SUPERTYPE OF (ONEOF(implicit_planar_intersection_point, implicit_planar_projection_point)) 10893 SUBTYPE OF (point, auxiliary_geometric_representation_item); 10894 using_sketch : positioned_sketch; 10895 computed_representation : cartesian_point; 10896 DERIVE 10897 plane_of_point : plane := get_plane_of_implicit_geometry(using_sketch); 10898 WHERE 10899 WR1: 10900 (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); 10901 WR2: 10902 SIZEOF(TYPEOF(computed_representation) * [ 'STEP_MERGED_CAD_SCHEMA.IMPLICIT_POINT_ON_PLANE', 'STEP_MERGED_CAD_SCHEMA.POINT_REPLICA' ]) = 0; 10903END_ENTITY; 10904 10905-- IN AP242 10906ENTITY implicit_projected_curve 10907 SUBTYPE OF (implicit_planar_curve); 10908 external_curve : curve; 10909 projection_direction : direction; 10910END_ENTITY; 10911 10912-- IN AP242 10913ENTITY implicit_silhouette_curve 10914 SUBTYPE OF (implicit_planar_curve); 10915 silhouetted_model : surface_or_solid_model; 10916 view_direction : direction; 10917END_ENTITY; 10918 10919-- IN AP242 10920ENTITY imported_curve_function 10921 SUBTYPE OF (maths_function, generic_literal); 10922 geometry : curve; 10923 parametric_domain : tuple_space; 10924 WHERE 10925 WR1: 10926 expression_is_constant(parametric_domain); 10927END_ENTITY; 10928 10929-- IN AP242 10930ENTITY imported_point_function 10931 SUBTYPE OF (maths_function, generic_literal); 10932 geometry : point; 10933END_ENTITY; 10934 10935-- IN AP242 10936ENTITY imported_surface_function 10937 SUBTYPE OF (maths_function, generic_literal); 10938 geometry : surface; 10939 parametric_domain : tuple_space; 10940 WHERE 10941 WR1: 10942 expression_is_constant(parametric_domain); 10943END_ENTITY; 10944 10945-- IN AP242 10946ENTITY imported_volume_function 10947 SUBTYPE OF (maths_function, generic_literal); 10948 geometry : volume; 10949 parametric_domain : tuple_space; 10950 WHERE 10951 WR1: 10952 expression_is_constant(parametric_domain); 10953END_ENTITY; 10954 10955-- IN AP242 10956ENTITY inappropriate_element_visibility 10957 SUBTYPE OF (externally_conditioned_data_quality_criterion); 10958 WHERE 10959 WR1: 10960 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' ]); 10961END_ENTITY; 10962 10963-- IN AP242 10964ENTITY inappropriate_use_of_layer 10965 SUBTYPE OF (externally_conditioned_data_quality_criterion); 10966 WHERE 10967 WR1: 10968 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_LAYER_ASSIGNMENT' ]); 10969END_ENTITY; 10970 10971-- IN AP242 10972ENTITY inapt_data 10973 ABSTRACT SUPERTYPE OF (ONEOF(inapt_topology, inapt_geometry, inapt_topology_and_geometry_relationship, inapt_manifold_solid_brep)) 10974 SUBTYPE OF (shape_data_quality_criterion); 10975END_ENTITY; 10976 10977-- IN AP242 10978ENTITY inapt_geometry 10979 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)) 10980 SUBTYPE OF (inapt_data); 10981END_ENTITY; 10982 10983-- IN AP242 10984ENTITY inapt_manifold_solid_brep 10985 ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_solids, small_volume_solid, multiply_defined_solids, entirely_narrow_solid, solid_with_excessive_number_of_voids)) 10986 SUBTYPE OF (inapt_data); 10987END_ENTITY; 10988 10989-- IN AP242 10990ENTITY inapt_topology 10991 ABSTRACT SUPERTYPE OF (ONEOF(free_edge, non_manifold_at_edge, non_manifold_at_vertex, over_used_vertex)) 10992 SUBTYPE OF (inapt_data); 10993END_ENTITY; 10994 10995-- IN AP242 10996ENTITY inapt_topology_and_geometry_relationship 10997 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)) 10998 SUBTYPE OF (inapt_data); 10999END_ENTITY; 11000 11001-- IN AP242 11002ENTITY incidence_assembly_constraint 11003 SUBTYPE OF (binary_assembly_constraint, incidence_geometric_constraint); 11004END_ENTITY; 11005 11006-- IN AP242 11007ENTITY incidence_geometric_constraint 11008 SUBTYPE OF (explicit_geometric_constraint); 11009 near_points : SET [0:?] OF near_point_relationship; 11010 SELF\explicit_constraint.constrained_elements : SET [1:?] OF geometric_constraint_element; 11011 SELF\explicit_constraint.reference_elements : SET [0:?] OF geometric_constraint_element; 11012 WHERE 11013 WR1: 11014 (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); 11015 WR2: 11016 SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements); 11017 WR3: 11018 SIZEOF(QUERY (q <* near_points| NOT (q\representation_item_relationship.relating_representation_item IN SELF\explicit_constraint.reference_elements))) = 0; 11019END_ENTITY; 11020 11021-- IN AP203e2/AP242 11022ENTITY included_text_block 11023 SUBTYPE OF (mapped_item); 11024 WHERE 11025 WR1: 11026 'STEP_MERGED_CAD_SCHEMA.STRUCTURED_TEXT_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); 11027END_ENTITY; 11028 11029ENTITY inclusion_product_concept_feature 11030 SUBTYPE OF (conditional_concept_feature); 11031 WHERE 11032 WR1: 11033 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(SELF)); 11034 WR2: 11035 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; 11036 WR3: 11037 SELF.condition.conditional_operator.name = 'implication'; 11038END_ENTITY; 11039 11040-- IN AP242 11041ENTITY inconsistent_adjacent_face_normals 11042 SUBTYPE OF (erroneous_topology); 11043 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11044 WHERE 11045 WR1: 11046 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11047 WR2: 11048 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'CLOSED_OR_OPEN_SHELL_SELECT' ]); 11049 WR3: 11050 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 11051 WR4: 11052 validate_accuracy_types(SELF, []); 11053END_ENTITY; 11054 11055-- IN AP242 11056ENTITY inconsistent_curve_transition_code 11057 SUBTYPE OF (erroneous_geometry); 11058 angle_tolerance : plane_angle_measure; 11059 curvature_ratio_tolerance : ratio_measure; 11060 distance_tolerance : length_measure; 11061 flat_curvature_radius_tolerance : length_measure; 11062 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11063 WHERE 11064 WR1: 11065 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11066 WR2: 11067 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE' ]); 11068 WR3: 11069 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'COMPOSITE_CURVE_TRANSITION_LOCATOR' ]); 11070 WR4: 11071 validate_accuracy_types(SELF, []); 11072END_ENTITY; 11073 11074-- IN AP242 11075ENTITY inconsistent_edge_and_curve_directions 11076 SUBTYPE OF (erroneous_topology_and_geometry_relationship); 11077 distance_tolerance : length_measure; 11078 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11079 WHERE 11080 WR1: 11081 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11082 WR2: 11083 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 11084 WR3: 11085 validate_locations_of_extreme_value_type(SELF, []); 11086 WR4: 11087 validate_accuracy_types(SELF, []); 11088END_ENTITY; 11089 11090-- IN AP242 11091ENTITY inconsistent_element_reference 11092 SUBTYPE OF (externally_conditioned_data_quality_criterion); 11093 WHERE 11094 WR1: 11095 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' ]); 11096END_ENTITY; 11097 11098-- IN AP242 11099ENTITY inconsistent_face_and_closed_shell_normals 11100 SUBTYPE OF (erroneous_topology_and_geometry_relationship); 11101 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11102 WHERE 11103 WR1: 11104 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11105 WR2: 11106 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 11107 WR3: 11108 validate_locations_of_extreme_value_type(SELF, []); 11109 WR4: 11110 validate_accuracy_types(SELF, []); 11111END_ENTITY; 11112 11113-- IN AP242 11114ENTITY inconsistent_face_and_surface_normals 11115 SUBTYPE OF (erroneous_topology_and_geometry_relationship); 11116 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11117 WHERE 11118 WR1: 11119 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11120 WR2: 11121 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 11122 WR3: 11123 validate_locations_of_extreme_value_type(SELF, []); 11124 WR4: 11125 validate_accuracy_types(SELF, []); 11126END_ENTITY; 11127 11128-- IN AP242 11129ENTITY inconsistent_surface_transition_code 11130 SUBTYPE OF (erroneous_geometry); 11131 angle_tolerance : plane_angle_measure; 11132 curvature_ratio_tolerance : ratio_measure; 11133 distance_tolerance : length_measure; 11134 flat_curvature_radius_tolerance : length_measure; 11135 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11136 WHERE 11137 WR1: 11138 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11139 WR2: 11140 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_COMPOSITE_SURFACE' ]); 11141 WR3: 11142 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR' ]); 11143 WR4: 11144 validate_accuracy_types(SELF, []); 11145END_ENTITY; 11146 11147-- DIFF IN AP214 11148-- IN AP214/AP242 11149ENTITY index_expression 11150 SUBTYPE OF (string_expression, binary_generic_expression); 11151 DERIVE 11152 index : generic_expression := SELF\binary_generic_expression.operands[2]; 11153 operand : generic_expression := SELF\binary_generic_expression.operands[1]; 11154 WHERE 11155 WR1: 11156 ('STEP_MERGED_CAD_SCHEMA.STRING_EXPRESSION' IN TYPEOF(operand)) AND ('STEP_MERGED_CAD_SCHEMA.NUMERIC_EXPRESSION' IN TYPEOF(index)); 11157 WR2: 11158 is_int_expr(index); 11159END_ENTITY; 11160 11161-- IN AP203e2/AP242 11162ENTITY indirectly_selected_elements 11163 SUBTYPE OF (user_selected_elements); 11164 indirectly_picked_items : SET [1:?] OF representation_item; 11165END_ENTITY; 11166 11167-- DIFF IN AP203e2 11168-- IN AP203e2/AP242 11169ENTITY indirectly_selected_shape_elements 11170 SUBTYPE OF (indirectly_selected_elements, user_selected_shape_elements); 11171 SELF\indirectly_selected_elements.indirectly_picked_items : SET [1:?] OF shape_representation_item; 11172END_ENTITY; 11173 11174-- IN AP242 11175ENTITY indistinct_curve_knots 11176 SUBTYPE OF (geometry_with_local_near_degeneracy); 11177 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 11178 WHERE 11179 WR1: 11180 ('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)); 11181 WR2: 11182 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PARAMETER_VALUE'); 11183 WR3: 11184 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS' ]); 11185 WR4: 11186 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_CURVE_KNOT_LOCATOR' ]); 11187 WR5: 11188 validate_accuracy_types(SELF, []); 11189END_ENTITY; 11190 11191-- IN AP242 11192ENTITY indistinct_surface_knots 11193 SUBTYPE OF (geometry_with_local_near_degeneracy); 11194 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 11195 WHERE 11196 WR1: 11197 ('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)); 11198 WR2: 11199 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PARAMETER_VALUE'); 11200 WR3: 11201 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' ]); 11202 WR4: 11203 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ]); 11204 WR5: 11205 validate_accuracy_types(SELF, []); 11206END_ENTITY; 11207 11208-- IN AP203e2/AP242 11209ENTITY inductance_measure_with_unit 11210 SUBTYPE OF (measure_with_unit); 11211 WHERE 11212 WR1: 11213 'STEP_MERGED_CAD_SCHEMA.INDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 11214END_ENTITY; 11215 11216-- IN AP203e2/AP242 11217ENTITY inductance_unit 11218 SUBTYPE OF (derived_unit); 11219 WHERE 11220 WR1: 11221 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.henry); 11222END_ENTITY; 11223 11224-- IN AP203e2/AP242 11225ENTITY information_right 11226 SUBTYPE OF (action_method); 11227END_ENTITY; 11228 11229-- IN AP203e2/AP242 11230ENTITY information_usage_right 11231 SUBTYPE OF (action_method); 11232END_ENTITY; 11233 11234-- IN AP214 11235ENTITY initial_state; 11236 applies_to_mechanism : mechanism; 11237 pair_values : SET [1:?] OF pair_value; 11238 WHERE 11239 wr1: 11240 SIZEOF(QUERY (joint <* applies_to_mechanism.structure_definition.joints| (SIZEOF(QUERY (init_val <* pair_values| (init_val.applies_to_pair.joint :=: joint))) <> 1))) = 0; 11241END_ENTITY; 11242 11243-- IN AP242 11244ENTITY instance_attribute_reference 11245 SUBTYPE OF (variable_semantics); 11246 attribute_name : attribute_identifier; 11247 owning_instance : representation_item; 11248END_ENTITY; 11249 11250-- IN AP242 11251ENTITY instance_report_item_with_extreme_instances 11252 SUBTYPE OF (shape_data_quality_inspection_instance_report_item); 11253 extreme_instances : LIST [1:?] OF extreme_instance; 11254END_ENTITY; 11255 11256-- IN AP203e2/AP242 11257ENTITY instance_usage_context_assignment 11258 SUBTYPE OF (product_definition_context); 11259 items : SET [1:?] OF instance_usage_context_select; 11260END_ENTITY; 11261 11262-- DIFF IN AP214 11263-- DIFF IN AP203e2 11264ENTITY instanced_feature 11265 SUBTYPE OF (feature_definition, shape_aspect); 11266 WHERE 11267 WR1: 11268 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 11269 WR2: 11270 SELF.product_definitional; 11271END_ENTITY; 11272 11273ENTITY int_literal 11274 SUBTYPE OF (literal_number); 11275 SELF\literal_number.the_value : INTEGER; 11276END_ENTITY; 11277 11278-- IN AP214/AP242 11279ENTITY int_numeric_variable 11280 SUBTYPE OF (numeric_variable); 11281END_ENTITY; 11282 11283-- IN AP214/AP242 11284ENTITY int_value_function 11285 SUBTYPE OF (value_function); 11286END_ENTITY; 11287 11288-- IN AP214/AP242 11289ENTITY integer_defined_function 11290 ABSTRACT SUPERTYPE 11291 SUBTYPE OF (numeric_defined_function); 11292END_ENTITY; 11293 11294-- IN AP242 11295ENTITY integer_interval_from_min 11296 SUBTYPE OF (maths_space, generic_literal); 11297 min : INTEGER; 11298END_ENTITY; 11299 11300-- IN AP242 11301ENTITY integer_interval_to_max 11302 SUBTYPE OF (maths_space, generic_literal); 11303 max : INTEGER; 11304END_ENTITY; 11305 11306-- IN AP203e2/AP242 11307ENTITY integer_representation_item 11308 SUBTYPE OF (representation_item, int_literal); 11309END_ENTITY; 11310 11311-- IN AP242 11312ENTITY integer_tuple_literal 11313 SUBTYPE OF (generic_literal); 11314 lit_value : LIST [1:?] OF INTEGER; 11315END_ENTITY; 11316 11317-- IN AP242 11318ENTITY interfaced_group_component 11319 SUBTYPE OF (assembly_group_component); 11320END_ENTITY; 11321 11322-- IN AP242 11323ENTITY interpolated_configuration_representation 11324 SUBTYPE OF (representation); 11325 SELF\representation.context_of_items : geometric_representation_context_with_parameter; 11326 SELF\representation.items : SET [1:?] OF interpolated_configuration_sequence; 11327END_ENTITY; 11328 11329-- IN AP242 11330ENTITY interpolated_configuration_segment 11331 SUBTYPE OF (founded_item); 11332 state : mechanism_state_representation; 11333 t_parameter : parameter_value; 11334 interpolation : interpolation_type; 11335END_ENTITY; 11336 11337-- DIFF IN AP214 11338-- IN AP214/AP242 11339ENTITY interpolated_configuration_sequence 11340 SUBTYPE OF (representation_item); 11341 segments : LIST [2:?] OF interpolated_configuration_segment; 11342 DERIVE 11343 closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type; 11344 configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism; 11345 n_segments : INTEGER := SIZEOF(segments); 11346 WHERE 11347 WR1: 11348 SIZEOF(QUERY (ics <* segments| (ics.state.represented_mechanism :<>: configured_mechanism))) = 0; 11349END_ENTITY; 11350 11351-- IN AP242 11352ENTITY intersecting_connected_face_sets 11353 SUBTYPE OF (topology_related_to_self_intersecting_geometry); 11354 interference_tolerance : length_measure; 11355 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11356 WHERE 11357 WR1: 11358 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11359 WR2: 11360 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET', 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 11361 WR3: 11362 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE' ]); 11363 WR4: 11364 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 11365END_ENTITY; 11366 11367-- IN AP242 11368ENTITY intersecting_loops_in_face 11369 SUBTYPE OF (erroneous_topology_and_geometry_relationship); 11370 interference_tolerance : length_measure; 11371 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11372 WHERE 11373 WR1: 11374 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11375 WR2: 11376 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE' ]); 11377 WR3: 11378 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]); 11379 WR4: 11380 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 11381END_ENTITY; 11382 11383-- IN AP242 11384ENTITY intersecting_shells_in_solid 11385 SUBTYPE OF (erroneous_manifold_solid_brep); 11386 interference_tolerance : length_measure; 11387 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 11388 WHERE 11389 WR1: 11390 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 11391 WR2: 11392 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BREP_WITH_VOIDS' ]); 11393 WR3: 11394 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' ]); 11395 WR4: 11396 validate_accuracy_types(SELF, []); 11397END_ENTITY; 11398 11399ENTITY intersection_curve 11400 SUBTYPE OF (surface_curve); 11401 WHERE 11402 WR1: 11403 SIZEOF(SELF\surface_curve.associated_geometry) = 2; 11404 WR2: 11405 associated_surface(SELF\surface_curve.associated_geometry[1]) <> associated_surface(SELF\surface_curve.associated_geometry[2]); 11406END_ENTITY; 11407 11408-- DIFF IN AP214 11409ENTITY interval_expression 11410 SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); 11411 DERIVE 11412 interval_high : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; 11413 interval_item : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; 11414 interval_low : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; 11415 WHERE 11416 WR1: 11417 (('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)); 11418 WR2: 11419 (('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)); 11420END_ENTITY; 11421 11422ENTITY invisibility; 11423 invisible_items : SET [1:?] OF invisible_item; 11424END_ENTITY; 11425 11426-- IN AP203e2/AP242 11427ENTITY iso4217_currency 11428 SUBTYPE OF (currency); 11429END_ENTITY; 11430 11431ENTITY item_defined_transformation; 11432 name : label; 11433 description : OPTIONAL text; 11434 transform_item_1 : representation_item; 11435 transform_item_2 : representation_item; 11436END_ENTITY; 11437 11438-- DIFF IN AP214 11439-- DIFF IN AP203e2 11440ENTITY item_identified_representation_usage; 11441 name : label; 11442 description : OPTIONAL text; 11443 definition : item_identified_representation_usage_definition; 11444 used_representation : representation; 11445 identified_item : item_identified_representation_usage_select; 11446 WHERE 11447 WR1: 11448 SELF.used_representation IN using_representations(SELF.identified_item); 11449END_ENTITY; 11450 11451-- IN AP242 11452ENTITY item_link_motion_relationship 11453 SUBTYPE OF (link_motion_relationship); 11454 item : geometric_representation_item; 11455 SELF\representation_relationship.rep_1 : shape_representation; 11456END_ENTITY; 11457 11458-- IN AP214/AP242 11459ENTITY joggle 11460 SUBTYPE OF (feature_definition); 11461 WHERE 11462 WR1: 11463 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; 11464 WR2: 11465 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; 11466 WR3: 11467 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; 11468 WR4: 11469 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; 11470 WR5: 11471 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; 11472 WR6: 11473 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; 11474 WR7: 11475 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; 11476 WR8: 11477 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; 11478 WR9: 11479 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; 11480 WR10: 11481 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; 11482 WR11: 11483 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; 11484 WR12: 11485 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; 11486 WR13: 11487 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; 11488END_ENTITY; 11489 11490-- IN AP214/AP242 11491ENTITY joggle_termination 11492 SUBTYPE OF (shape_aspect); 11493 WHERE 11494 WR1: 11495 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 11496 WR2: 11497 SELF.description IN [ 'value termination', 'face termination' ]; 11498 WR3: 11499 (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); 11500 WR4: 11501 (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); 11502 WR5: 11503 (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); 11504 WR6: 11505 (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); 11506 WR7: 11507 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; 11508END_ENTITY; 11509 11510-- IN AP214/AP242 11511ENTITY kinematic_analysis_consistency; 11512 control : kinematic_control; 11513 result : kinematic_analysis_result; 11514 WHERE 11515 WR1: 11516 control.controlled_mechanism :=: result.analysed_mechanism; 11517END_ENTITY; 11518 11519-- DIFF IN AP214 11520-- IN AP214/AP242 11521ENTITY kinematic_analysis_result; 11522 analysed_mechanism : mechanism_representation; 11523 result : kinematic_result; 11524END_ENTITY; 11525 11526-- DIFF IN AP214 11527-- IN AP214/AP242 11528ENTITY kinematic_control; 11529 controlled_mechanism : mechanism_representation; 11530 contained_kinematic_programs : kinematic_analysis_definition; 11531END_ENTITY; 11532 11533-- IN AP214 11534ENTITY kinematic_frame_background_representation 11535 SUBTYPE OF (representation); 11536 SELF\representation.items : SET [1:?] OF kinematic_frame_background; 11537 SELF\representation.context_of_items : geometric_representation_context; 11538 WHERE 11539 wr1: 11540 SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; 11541END_ENTITY; 11542 11543-- IN AP214 11544ENTITY kinematic_frame_background_representation_association 11545 SUBTYPE OF (representation_relationship_with_transformation); 11546 SELF\representation_relationship_with_transformation.transformation_operator : kinematic_frame_based_transformation; 11547 WHERE 11548 wr1: 11549 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_LINK_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_1); 11550 wr2: 11551 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_FRAME_BACKGROUND_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_2); 11552 wr3: 11553 SELF\representation_relationship_with_transformation.transformation_operator\kinematic_frame_based_transformation.transformator IN SELF\representation_relationship.rep_1.items; 11554END_ENTITY; 11555 11556-- IN AP214 11557ENTITY kinematic_frame_based_transformation 11558 SUBTYPE OF (geometric_representation_item, functionally_defined_transformation); 11559 transformator : rigid_placement; 11560 WHERE 11561 wr1: 11562 SELF\geometric_representation_item.dim = 3; 11563END_ENTITY; 11564 11565-- IN AP214 11566ENTITY kinematic_ground_representation 11567 SUBTYPE OF (representation); 11568 INVERSE 11569 property : kinematic_property_representation_relation FOR used_representation; 11570 WHERE 11571 wr1: 11572 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); 11573END_ENTITY; 11574 11575-- DIFF IN AP214 11576-- IN AP214/AP242 11577ENTITY kinematic_joint 11578 SUBTYPE OF (edge); 11579 SELF\edge.edge_end : kinematic_link; 11580 SELF\edge.edge_start : kinematic_link; 11581 UNIQUE 11582 UR1 : edge_start, edge_end; 11583 WHERE 11584 WR1: 11585 edge_start :<>: edge_end; 11586END_ENTITY; 11587 11588-- DIFF IN AP214 11589-- IN AP214/AP242 11590ENTITY kinematic_link 11591 SUBTYPE OF (vertex); 11592END_ENTITY; 11593 11594-- DIFF IN AP214 11595-- IN AP214/AP242 11596ENTITY kinematic_link_representation 11597 ABSTRACT SUPERTYPE OF (ONEOF(linear_flexible_link_representation, rigid_link_representation)) 11598 SUBTYPE OF (representation); 11599 represented_link : kinematic_link; 11600 SELF\representation.context_of_items : geometric_representation_context; 11601 SELF\representation.items : SET [1:?] OF kinematic_link_representation_items; 11602 INVERSE 11603 associated_shape_representation : SET [0:1] OF kinematic_link_representation_association FOR rep_1; 11604END_ENTITY; 11605 11606-- DIFF IN AP214 11607-- IN AP214/AP242 11608ENTITY kinematic_link_representation_association 11609 SUBTYPE OF (representation_relationship); 11610 SELF\representation_relationship.rep_1 : kinematic_link_representation; 11611 SELF\representation_relationship.rep_2 : shape_representation; 11612 WHERE 11613 WR1: 11614 (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)); 11615END_ENTITY; 11616 11617-- IN AP214 11618ENTITY kinematic_link_representation_relation; 11619 topological_aspects : kinematic_link; 11620 geometric_aspects : kinematic_link_representation; 11621 UNIQUE 11622 ur1 : topological_aspects; 11623END_ENTITY; 11624 11625-- IN AP242 11626ENTITY kinematic_loop 11627 SUBTYPE OF (edge_loop); 11628 SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_joint; 11629END_ENTITY; 11630 11631-- DIFF IN AP214 11632-- IN AP214/AP242 11633ENTITY kinematic_pair 11634 ABSTRACT SUPERTYPE OF (ONEOF(high_order_kinematic_pair, low_order_kinematic_pair_with_motion_coupling, low_order_kinematic_pair) ANDOR actuated_kinematic_pair) 11635 SUBTYPE OF (geometric_representation_item, item_defined_transformation); 11636 joint : kinematic_joint; 11637 SELF\item_defined_transformation.transform_item_1 : rigid_placement; 11638 SELF\item_defined_transformation.transform_item_2 : rigid_placement; 11639 DERIVE 11640 associated_link_representations_1 : SET [1:?] OF kinematic_link_representation := sort_link_associations(link_representation_associations, TRUE); 11641 associated_link_representations_2 : SET [1:?] OF kinematic_link_representation := sort_link_associations(link_representation_associations, FALSE); 11642 SELF\item_defined_transformation.name : label := SELF\representation_item.name; 11643 INVERSE 11644 link_representation_associations : SET [1:?] OF pair_representation_relationship FOR transformation_operator; 11645END_ENTITY; 11646 11647-- DIFF IN AP214 11648-- IN AP214/AP242 11649ENTITY kinematic_path 11650 ABSTRACT SUPERTYPE OF (ONEOF(kinematic_path_defined_by_nodes, kinematic_path_defined_by_curves)) 11651 SUBTYPE OF (geometric_representation_item); 11652 segments : LIST [1:?] OF kinematic_path_segment; 11653 t_start : parameter_value; 11654 DERIVE 11655 closed_path : LOGICAL := segments[n_segments].transition <> discontinuous; 11656 n_segments : INTEGER := SIZEOF(segments); 11657 WHERE 11658 WR1: 11659 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; 11660END_ENTITY; 11661 11662-- IN AP242 11663ENTITY kinematic_path_defined_by_curves 11664 SUBTYPE OF (kinematic_path); 11665 SELF\kinematic_path.segments : LIST [1:?] OF curve_based_path_with_orientation; 11666END_ENTITY; 11667 11668-- IN AP242 11669ENTITY kinematic_path_defined_by_nodes 11670 SUBTYPE OF (kinematic_path); 11671 placement_start : placement; 11672 SELF\kinematic_path.segments : LIST [1:?] OF path_node; 11673END_ENTITY; 11674 11675-- IN AP242 11676ENTITY kinematic_path_segment 11677 ABSTRACT SUPERTYPE OF (ONEOF(path_node, curve_based_path_with_orientation)) 11678 SUBTYPE OF (founded_item); 11679 t_end : parameter_value; 11680 transition : transition_code; 11681END_ENTITY; 11682 11683-- IN AP214 11684ENTITY kinematic_property_definition 11685 SUBTYPE OF (property_definition); 11686 ground_definition : characterized_definition; 11687END_ENTITY; 11688 11689-- IN AP242 11690ENTITY kinematic_property_definition_representation 11691 ABSTRACT SUPERTYPE OF (ONEOF(kinematic_property_topology_representation, kinematic_property_mechanism_representation)) 11692 SUBTYPE OF (property_definition_representation); 11693 SELF\property_definition_representation.definition : product_definition_kinematics; 11694END_ENTITY; 11695 11696-- IN AP242 11697ENTITY kinematic_property_mechanism_representation 11698 SUBTYPE OF (kinematic_property_definition_representation); 11699 base : kinematic_link_representation; 11700 SELF\property_definition_representation.used_representation : mechanism_representation; 11701 WHERE 11702 WR1: 11703 SIZEOF(QUERY (i <* used_representation.items| (base :=: i\representation_relationship.rep_1) OR (base :=: i\representation_relationship.rep_2))) > 0; 11704END_ENTITY; 11705 11706-- IN AP214 11707ENTITY kinematic_property_representation_relation 11708 SUBTYPE OF (property_definition_representation); 11709 UNIQUE 11710 ur1 : SELF\property_definition_representation.definition; 11711 WHERE 11712 wr1: 11713 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_PROPERTY_DEFINITION' IN TYPEOF(SELF\property_definition_representation.definition); 11714 wr2: 11715 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(SELF\property_definition_representation.used_representation); 11716END_ENTITY; 11717 11718-- IN AP242 11719ENTITY kinematic_property_topology_representation 11720 SUBTYPE OF (kinematic_property_definition_representation); 11721 base : kinematic_link; 11722 SELF\property_definition_representation.used_representation : kinematic_topology_representation_select; 11723 WHERE 11724 WR1: 11725 used_representation IN using_representations(base); 11726END_ENTITY; 11727 11728-- IN AP214 11729ENTITY kinematic_structure; 11730 joints : SET [1:?] OF kinematic_joint; 11731END_ENTITY; 11732 11733-- IN AP242 11734ENTITY kinematic_topology_directed_structure 11735 SUBTYPE OF (representation); 11736 parent : kinematic_topology_structure; 11737 SELF\representation.items : SET [1:?] OF oriented_joint; 11738 WHERE 11739 WR1: 11740 context_of_items :=: parent.context_of_items; 11741 WR2: 11742 get_kinematic_joints_from_oriented_joints(items) <= parent.items; 11743END_ENTITY; 11744 11745-- IN AP242 11746ENTITY kinematic_topology_network_structure 11747 SUBTYPE OF (representation); 11748 parent : kinematic_topology_structure; 11749 SELF\representation.items : SET [1:?] OF kinematic_loop; 11750 WHERE 11751 WR1: 11752 context_of_items :=: parent.context_of_items; 11753 WR2: 11754 get_kinematic_joints_from_kinematic_loops(items) <= parent.items; 11755END_ENTITY; 11756 11757-- IN AP242 11758ENTITY kinematic_topology_structure 11759 SUBTYPE OF (representation); 11760 SELF\representation.items : SET [1:?] OF kinematic_joint; 11761 WHERE 11762 WR1: 11763 SIZEOF(QUERY (item <* items| ('STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' IN TYPEOF(item)))) = 0; 11764END_ENTITY; 11765 11766-- IN AP242 11767ENTITY kinematic_topology_substructure 11768 SUBTYPE OF (kinematic_topology_structure); 11769 parent : kinematic_topology_structure; 11770 WHERE 11771 WR1: 11772 context_of_items :=: parent.context_of_items; 11773 WR2: 11774 SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items; 11775END_ENTITY; 11776 11777-- IN AP242 11778ENTITY kinematic_topology_tree_structure 11779 SUBTYPE OF (kinematic_topology_directed_structure); 11780END_ENTITY; 11781 11782ENTITY known_source 11783 SUBTYPE OF (external_source, pre_defined_item); 11784END_ENTITY; 11785 11786-- IN AP203e2/AP242 11787ENTITY laid_defined_transformation 11788 SUBTYPE OF (transformation_with_derived_angle); 11789END_ENTITY; 11790 11791-- IN AP203e2/AP242 11792ENTITY laminate_table 11793 SUPERTYPE OF (ONEOF(part_laminate_table, zone_structural_makeup)) 11794 SUBTYPE OF (product_definition); 11795END_ENTITY; 11796 11797ENTITY language 11798 SUBTYPE OF (group); 11799 WHERE 11800 WR1: 11801 SELF\group.name <> ''; 11802END_ENTITY; 11803 11804-- IN AP214 11805ENTITY language_assignment 11806 SUBTYPE OF (classification_assignment); 11807 items : SET [1:?] OF language_item; 11808 WHERE 11809 wr1: 11810 'STEP_MERGED_CAD_SCHEMA.' + 'LANGUAGE' IN TYPEOF(SELF.assigned_class); 11811 wr2: 11812 SELF.role.name = 'language'; 11813 wr3: 11814 SIZEOF(SELF.items) = SIZEOF(QUERY (i <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION' IN TYPEOF(i)) AND (i\representation.name = 'document content'))); 11815END_ENTITY; 11816 11817ENTITY leader_curve 11818 SUBTYPE OF (annotation_curve_occurrence); 11819 WHERE 11820 WR1: 11821 SIZEOF(QUERY (ldc <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_CALLOUT.CONTENTS')| ('STEP_MERGED_CAD_SCHEMA.' + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc)))) >= 1; 11822END_ENTITY; 11823 11824ENTITY leader_directed_callout 11825 SUBTYPE OF (draughting_callout); 11826 WHERE 11827 WR1: 11828 SIZEOF(QUERY (l_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.LEADER_CURVE' IN TYPEOF(l_1)))) >= 1; 11829 WR2: 11830 SIZEOF(SELF\draughting_callout.contents) >= 2; 11831END_ENTITY; 11832 11833ENTITY leader_directed_dimension 11834 SUBTYPE OF (leader_directed_callout); 11835 WHERE 11836 WR1: 11837 SIZEOF(QUERY (con <* SELF.contents| ('STEP_MERGED_CAD_SCHEMA.LEADER_CURVE' IN TYPEOF(con)))) = 1; 11838END_ENTITY; 11839 11840ENTITY leader_terminator 11841 SUBTYPE OF (terminator_symbol); 11842 WHERE 11843 WR1: 11844 'STEP_MERGED_CAD_SCHEMA.LEADER_CURVE' IN TYPEOF(SELF\terminator_symbol.annotated_curve); 11845END_ENTITY; 11846 11847-- IN AP214/AP242 11848ENTITY length_function 11849 SUBTYPE OF (numeric_expression, unary_generic_expression); 11850 SELF\unary_generic_expression.operand : string_expression; 11851END_ENTITY; 11852 11853ENTITY length_measure_with_unit 11854 SUBTYPE OF (measure_with_unit); 11855 WHERE 11856 WR1: 11857 'STEP_MERGED_CAD_SCHEMA.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 11858END_ENTITY; 11859 11860ENTITY length_unit 11861 SUBTYPE OF (named_unit); 11862 WHERE 11863 WR1: 11864 ((((((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); 11865END_ENTITY; 11866 11867ENTITY light_source 11868 SUPERTYPE OF (ONEOF(light_source_ambient, light_source_directional, light_source_positional, light_source_spot)) 11869 SUBTYPE OF (geometric_representation_item); 11870 light_colour : colour; 11871 WHERE 11872 WR1: 11873 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'STYLED_ITEM.ITEM')) = 0; 11874END_ENTITY; 11875 11876ENTITY light_source_ambient 11877 SUBTYPE OF (light_source); 11878END_ENTITY; 11879 11880ENTITY light_source_directional 11881 SUBTYPE OF (light_source); 11882 orientation : direction; 11883END_ENTITY; 11884 11885ENTITY light_source_positional 11886 SUBTYPE OF (light_source); 11887 position : cartesian_point; 11888 constant_attenuation : REAL; 11889 distance_attenuation : REAL; 11890END_ENTITY; 11891 11892ENTITY light_source_spot 11893 SUBTYPE OF (light_source); 11894 position : cartesian_point; 11895 orientation : direction; 11896 concentration_exponent : REAL; 11897 constant_attenuation : REAL; 11898 distance_attenuation : REAL; 11899 spread_angle : positive_plane_angle_measure; 11900END_ENTITY; 11901 11902-- IN AP214/AP242 11903ENTITY like_expression 11904 SUBTYPE OF (comparison_expression); 11905 WHERE 11906 WR1: 11907 ('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])); 11908END_ENTITY; 11909 11910ENTITY limits_and_fits; 11911 form_variance : label; 11912 zone_variance : label; 11913 grade : label; 11914 source : text; 11915END_ENTITY; 11916 11917ENTITY line 11918 SUBTYPE OF (curve); 11919 pnt : cartesian_point; 11920 dir : vector; 11921 WHERE 11922 WR1: 11923 dir.dim = pnt.dim; 11924END_ENTITY; 11925 11926ENTITY line_profile_tolerance 11927 SUBTYPE OF (geometric_tolerance); 11928END_ENTITY; 11929 11930-- IN AP242 11931ENTITY linear_array_component_definition_link 11932 SUBTYPE OF (product_definition, product_definition_relationship); 11933 SELF\product_definition_relationship.related_product_definition : linear_array_placement_group_component; 11934 SELF\product_definition_relationship.relating_product_definition : linear_array_placement_group_component; 11935 WHERE 11936 WR1: 11937 SELF\product_definition_relationship.related_product_definition :<>: SELF\product_definition_relationship.relating_product_definition; 11938 WR2: 11939 acyclic_product_definition_relationship(SELF, [ SELF\product_definition_relationship.related_product_definition ], 'STEP_MERGED_CAD_SCHEMA.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK'); 11940END_ENTITY; 11941 11942-- IN AP242 11943ENTITY linear_array_placement_group_component 11944 SUBTYPE OF (array_placement_group); 11945END_ENTITY; 11946 11947ENTITY linear_dimension 11948 SUBTYPE OF (dimension_curve_directed_callout); 11949END_ENTITY; 11950 11951-- IN AP242 11952ENTITY linear_flexible_and_pinion_pair 11953 SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); 11954 pinion_radius : length_measure; 11955 WHERE 11956 WR1: 11957 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 11958END_ENTITY; 11959 11960-- IN AP242 11961ENTITY linear_flexible_and_planar_curve_pair 11962 SUBTYPE OF (high_order_kinematic_pair); 11963 pair_curve : curve; 11964 orientation : BOOLEAN; 11965 WHERE 11966 WR1: 11967 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (pair_curve IN r.items))) = 0; 11968 WR2: 11969 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 11970END_ENTITY; 11971 11972-- IN AP242 11973ENTITY linear_flexible_link_representation 11974 SUBTYPE OF (kinematic_link_representation); 11975END_ENTITY; 11976 11977-- IN AP242 11978ENTITY linear_path 11979 SUBTYPE OF (path_node); 11980 DERIVE 11981 SELF\kinematic_path_segment.transition : transition_code := continuous; 11982END_ENTITY; 11983 11984-- IN AP242 11985ENTITY linear_profile 11986 SUBTYPE OF (shape_aspect); 11987 WHERE 11988 WR1: 11989 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 11990 WR2: 11991 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; 11992 WR3: 11993 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; 11994 WR4: 11995 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; 11996 WR5: 11997 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; 11998END_ENTITY; 11999 12000-- IN AP242 12001ENTITY linearized_table_function 12002 SUBTYPE OF (explicit_table_function, unary_generic_expression); 12003 first : INTEGER; 12004 SELF\unary_generic_expression.operand : maths_function; 12005 DERIVE 12006 source : maths_function := SELF\unary_generic_expression.operand; 12007 WHERE 12008 WR1: 12009 function_is_1d_array(source); 12010 WR2: 12011 member_of(first, source\maths_function.domain); 12012END_ENTITY; 12013 12014-- IN AP242 12015ENTITY link_motion_relationship 12016 SUBTYPE OF (definitional_representation_relationship, representation_relationship_with_transformation); 12017 SELF\representation_relationship.rep_1 : link_or_shape_representation; 12018 SELF\representation_relationship.rep_2 : link_motion_representation_along_path; 12019 SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation; 12020 WHERE 12021 WR1: 12022 transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items; 12023 WR2: 12024 transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items; 12025END_ENTITY; 12026 12027-- IN AP242 12028ENTITY link_motion_representation_along_path 12029 SUPERTYPE OF (ONEOF(prescribed_path, resulting_path)) 12030 SUBTYPE OF (representation); 12031 SELF\representation.context_of_items : geometric_representation_context_with_parameter; 12032 SELF\representation.items : SET [1:?] OF kinematic_path; 12033END_ENTITY; 12034 12035-- IN AP242 12036ENTITY link_motion_transformation 12037 SUBTYPE OF (item_defined_transformation); 12038 SELF\item_defined_transformation.transform_item_1 : rigid_placement; 12039 SELF\item_defined_transformation.transform_item_2 : kinematic_path; 12040END_ENTITY; 12041 12042-- IN AP242 12043ENTITY listed_data 12044 SUBTYPE OF (explicit_table_function, generic_literal); 12045 values : LIST [1:?] OF maths_value; 12046 value_range : maths_space; 12047 DERIVE 12048 SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values) ]; 12049 WHERE 12050 WR1: 12051 expression_is_constant(value_range); 12052 WR2: 12053 SIZEOF(QUERY (val <* values| NOT member_of(val, value_range))) = 0; 12054END_ENTITY; 12055 12056-- IN AP242 12057ENTITY listed_product_space 12058 SUBTYPE OF (maths_space, generic_literal); 12059 factors : LIST [0:?] OF maths_space; 12060 WHERE 12061 WR1: 12062 SIZEOF(QUERY (space <* factors| NOT expression_is_constant(space))) = 0; 12063 WR2: 12064 no_cyclic_space_reference(SELF, []); 12065 WR3: 12066 NOT (the_empty_space IN factors); 12067END_ENTITY; 12068 12069-- IN AP203e2/AP242 12070ENTITY literal_conjunction 12071 SUBTYPE OF (simple_clause); 12072END_ENTITY; 12073 12074-- IN AP203e2/AP242 12075ENTITY literal_disjunction 12076 SUBTYPE OF (simple_clause); 12077END_ENTITY; 12078 12079ENTITY literal_number 12080 ABSTRACT SUPERTYPE OF (ONEOF(int_literal, real_literal)) 12081 SUBTYPE OF (simple_numeric_expression, generic_literal); 12082 the_value : NUMBER; 12083END_ENTITY; 12084 12085ENTITY local_time; 12086 hour_component : hour_in_day; 12087 minute_component : OPTIONAL minute_in_hour; 12088 second_component : OPTIONAL second_in_minute; 12089 zone : coordinated_universal_time_offset; 12090 WHERE 12091 WR1: 12092 valid_time(SELF); 12093END_ENTITY; 12094 12095-- IN AP242 12096ENTITY location_in_aggregate_representation_item 12097 SUBTYPE OF (compound_representation_item); 12098 SELF\compound_representation_item.item_element : location_in_aggregate_item; 12099END_ENTITY; 12100 12101-- IN AP214/AP242 12102ENTITY location_shape_representation 12103 SUBTYPE OF (shape_representation); 12104 WHERE 12105 WR1: 12106 SIZEOF(SELF.items) = 1; 12107 WR2: 12108 SIZEOF(QUERY (it <* SELF.items| NOT ('STEP_MERGED_CAD_SCHEMA.POINT' IN TYPEOF(it)))) = 0; 12109END_ENTITY; 12110 12111-- IN AP214/AP242 12112ENTITY locator 12113 SUBTYPE OF (feature_definition); 12114 WHERE 12115 WR1: 12116 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; 12117 WR2: 12118 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; 12119 WR3: 12120 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; 12121 WR4: 12122 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; 12123 WR5: 12124 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; 12125END_ENTITY; 12126 12127-- IN AP214/AP242 12128ENTITY log10_function 12129 SUBTYPE OF (unary_function_call); 12130END_ENTITY; 12131 12132-- IN AP214/AP242 12133ENTITY log2_function 12134 SUBTYPE OF (unary_function_call); 12135END_ENTITY; 12136 12137-- IN AP214/AP242 12138ENTITY log_function 12139 SUBTYPE OF (unary_function_call); 12140END_ENTITY; 12141 12142-- IN AP203e2/AP242 12143ENTITY logical_literal 12144 SUBTYPE OF (generic_literal); 12145 lit_value : LOGICAL; 12146END_ENTITY; 12147 12148-- IN AP203e2/AP242 12149ENTITY logical_representation_item 12150 SUBTYPE OF (representation_item, logical_literal); 12151END_ENTITY; 12152 12153ENTITY loop 12154 SUPERTYPE OF (ONEOF(vertex_loop, edge_loop, poly_loop)) 12155 SUBTYPE OF (topological_representation_item); 12156END_ENTITY; 12157 12158-- IN AP203e2/AP242 12159ENTITY loss_tangent_measure_with_unit 12160 SUBTYPE OF (ratio_measure_with_unit); 12161END_ENTITY; 12162 12163ENTITY lot_effectivity 12164 SUBTYPE OF (effectivity); 12165 effectivity_lot_id : identifier; 12166 effectivity_lot_size : measure_with_unit; 12167END_ENTITY; 12168 12169-- IN AP242 12170ENTITY low_order_kinematic_pair 12171 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)) 12172 SUBTYPE OF (kinematic_pair); 12173 t_x : BOOLEAN; 12174 t_y : BOOLEAN; 12175 t_z : BOOLEAN; 12176 r_x : BOOLEAN; 12177 r_y : BOOLEAN; 12178 r_z : BOOLEAN; 12179 WHERE 12180 WR1: 12181 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 12182 WR2: 12183 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_2| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 12184END_ENTITY; 12185 12186-- IN AP242 12187ENTITY low_order_kinematic_pair_value 12188 SUBTYPE OF (pair_value); 12189 actual_translation_x : length_measure; 12190 actual_translation_y : length_measure; 12191 actual_translation_z : length_measure; 12192 actual_rotation_x : plane_angle_measure; 12193 actual_rotation_y : plane_angle_measure; 12194 actual_rotation_z : plane_angle_measure; 12195 SELF\pair_value.applies_to_pair : low_order_kinematic_pair; 12196END_ENTITY; 12197 12198-- IN AP242 12199ENTITY low_order_kinematic_pair_with_motion_coupling 12200 ABSTRACT SUPERTYPE OF (ONEOF(gear_pair, linear_flexible_and_pinion_pair, rack_and_pinion_pair, screw_pair)) 12201 SUBTYPE OF (kinematic_pair); 12202 WHERE 12203 WR1: 12204 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_2| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 12205END_ENTITY; 12206 12207-- IN AP242 12208ENTITY low_order_kinematic_pair_with_range 12209 SUBTYPE OF (low_order_kinematic_pair); 12210 lower_limit_actual_rotation_x : OPTIONAL plane_angle_measure; 12211 upper_limit_actual_rotation_x : OPTIONAL plane_angle_measure; 12212 lower_limit_actual_rotation_y : OPTIONAL plane_angle_measure; 12213 upper_limit_actual_rotation_y : OPTIONAL plane_angle_measure; 12214 lower_limit_actual_rotation_z : OPTIONAL plane_angle_measure; 12215 upper_limit_actual_rotation_z : OPTIONAL plane_angle_measure; 12216 lower_limit_actual_translation_x : OPTIONAL length_measure; 12217 upper_limit_actual_translation_x : OPTIONAL length_measure; 12218 lower_limit_actual_translation_y : OPTIONAL length_measure; 12219 upper_limit_actual_translation_y : OPTIONAL length_measure; 12220 lower_limit_actual_translation_z : OPTIONAL length_measure; 12221 upper_limit_actual_translation_z : OPTIONAL length_measure; 12222END_ENTITY; 12223 12224-- IN AP203e2/AP242 12225ENTITY luminous_flux_measure_with_unit 12226 SUBTYPE OF (measure_with_unit); 12227 WHERE 12228 WR1: 12229 'STEP_MERGED_CAD_SCHEMA.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 12230END_ENTITY; 12231 12232-- IN AP203e2/AP242 12233ENTITY luminous_flux_unit 12234 SUBTYPE OF (named_unit); 12235 WHERE 12236 WR1: 12237 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.lumen); 12238END_ENTITY; 12239 12240ENTITY luminous_intensity_measure_with_unit 12241 SUBTYPE OF (measure_with_unit); 12242 WHERE 12243 WR1: 12244 'STEP_MERGED_CAD_SCHEMA.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 12245END_ENTITY; 12246 12247ENTITY luminous_intensity_unit 12248 SUBTYPE OF (named_unit); 12249 WHERE 12250 WR1: 12251 ((((((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); 12252END_ENTITY; 12253 12254-- IN AP203e2/AP242 12255ENTITY magnetic_flux_density_measure_with_unit 12256 SUBTYPE OF (measure_with_unit); 12257 WHERE 12258 WR1: 12259 'STEP_MERGED_CAD_SCHEMA.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 12260END_ENTITY; 12261 12262-- IN AP203e2/AP242 12263ENTITY magnetic_flux_density_unit 12264 SUBTYPE OF (derived_unit); 12265 WHERE 12266 WR1: 12267 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.tesla); 12268END_ENTITY; 12269 12270-- IN AP203e2/AP242 12271ENTITY magnetic_flux_measure_with_unit 12272 SUBTYPE OF (measure_with_unit); 12273 WHERE 12274 WR1: 12275 'STEP_MERGED_CAD_SCHEMA.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 12276END_ENTITY; 12277 12278-- IN AP203e2/AP242 12279ENTITY magnetic_flux_unit 12280 SUBTYPE OF (derived_unit); 12281 WHERE 12282 WR1: 12283 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.weber); 12284END_ENTITY; 12285 12286-- IN AP242 12287ENTITY make_from_feature_relationship 12288 SUBTYPE OF (component_feature_relationship); 12289END_ENTITY; 12290 12291ENTITY make_from_usage_option 12292 SUBTYPE OF (product_definition_usage); 12293 ranking : INTEGER; 12294 ranking_rationale : text; 12295 quantity : measure_with_unit; 12296 WHERE 12297 WR1: 12298 NOT ('NUMBER' IN TYPEOF(quantity.value_component)) OR (quantity.value_component > 0); 12299END_ENTITY; 12300 12301ENTITY manifold_solid_brep 12302 SUBTYPE OF (solid_model); 12303 outer : closed_shell; 12304END_ENTITY; 12305 12306ENTITY manifold_subsurface_shape_representation 12307 SUBTYPE OF (shape_representation); 12308 WHERE 12309 WR1: 12310 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; 12311 WR2: 12312 SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SUB_SET', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; 12313 WR3: 12314 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; 12315 WR4: 12316 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; 12317 WR5: 12318 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; 12319 WR6: 12320 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; 12321 WR7: 12322 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; 12323 WR8: 12324 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; 12325 WR9: 12326 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; 12327 WR10: 12328 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; 12329 WR11: 12330 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; 12331 WR12: 12332 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; 12333END_ENTITY; 12334 12335ENTITY manifold_surface_shape_representation 12336 SUBTYPE OF (shape_representation); 12337 WHERE 12338 WR1: 12339 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; 12340 WR2: 12341 SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SHELL_BASED_SURFACE_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; 12342 WR3: 12343 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; 12344 WR4: 12345 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; 12346 WR5: 12347 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; 12348 WR6: 12349 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; 12350 WR7: 12351 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; 12352 WR8: 12353 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; 12354 WR9: 12355 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; 12356 WR10: 12357 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; 12358 WR11: 12359 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; 12360 WR12: 12361 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; 12362 WR13: 12363 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; 12364 WR14: 12365 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; 12366END_ENTITY; 12367 12368ENTITY mapped_item 12369 SUBTYPE OF (representation_item); 12370 mapping_source : representation_map; 12371 mapping_target : representation_item; 12372 WHERE 12373 WR1: 12374 acyclic_mapped_representation(SELF); 12375END_ENTITY; 12376 12377-- IN AP242 12378ENTITY marking 12379 SUBTYPE OF (feature_definition); 12380 WHERE 12381 WR1: 12382 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; 12383 WR2: 12384 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; 12385 WR3: 12386 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; 12387 WR4: 12388 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; 12389 WR5: 12390 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; 12391 WR6: 12392 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; 12393 WR7: 12394 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; 12395END_ENTITY; 12396 12397ENTITY mass_measure_with_unit 12398 SUBTYPE OF (measure_with_unit); 12399 WHERE 12400 WR1: 12401 'STEP_MERGED_CAD_SCHEMA.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 12402END_ENTITY; 12403 12404ENTITY mass_unit 12405 SUBTYPE OF (named_unit); 12406 WHERE 12407 WR1: 12408 ((((((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); 12409END_ENTITY; 12410 12411-- IN AP242 12412ENTITY mated_part_relationship 12413 SUBTYPE OF (group, group_assignment, product_definition_shape, product_definition_relationship, shape_aspect); 12414 items : SET [0:?] OF product_definition; 12415 DERIVE 12416 SELF\group_assignment.assigned_group : mated_part_relationship := SELF; 12417 SELF\property_definition.definition : mated_part_relationship := SELF; 12418 SELF\shape_aspect.of_shape : mated_part_relationship := SELF; 12419END_ENTITY; 12420 12421ENTITY material_designation; 12422 name : label; 12423 definitions : SET [1:?] OF characterized_definition; 12424END_ENTITY; 12425 12426ENTITY material_designation_characterization; 12427 name : label; 12428 description : text; 12429 designation : material_designation; 12430 property : characterized_material_property; 12431END_ENTITY; 12432 12433-- CASE DIFF IN AP214 12434ENTITY material_property 12435 SUBTYPE OF (property_definition); 12436 UNIQUE 12437 UR1 : SELF\property_definition.name, SELF\property_definition.definition; 12438 WHERE 12439 WR1: 12440 ('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); 12441END_ENTITY; 12442 12443ENTITY material_property_representation 12444 SUBTYPE OF (property_definition_representation); 12445 dependent_environment : data_environment; 12446END_ENTITY; 12447 12448-- IN AP242 12449ENTITY maths_enum_literal 12450 SUBTYPE OF (generic_literal); 12451 lit_value : maths_enum_atom; 12452END_ENTITY; 12453 12454-- IN AP242 12455ENTITY maths_function 12456 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)) 12457 SUBTYPE OF (generic_expression); 12458 DERIVE 12459 domain : tuple_space := derive_function_domain(SELF); 12460 range : tuple_space := derive_function_range(SELF); 12461END_ENTITY; 12462 12463-- IN AP242 12464ENTITY maths_space 12465 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)) 12466 SUBTYPE OF (generic_expression); 12467END_ENTITY; 12468 12469-- IN AP242 12470ENTITY maths_tuple_literal 12471 SUBTYPE OF (generic_literal); 12472 lit_value : LIST [0:?] OF maths_value; 12473END_ENTITY; 12474 12475-- IN AP242 12476ENTITY maths_variable 12477 SUBTYPE OF (generic_variable); 12478 values_space : maths_space; 12479 name : label; 12480 WHERE 12481 WR1: 12482 expression_is_constant(values_space); 12483END_ENTITY; 12484 12485-- IN AP214/AP242 12486ENTITY maximum_function 12487 SUBTYPE OF (multiple_arity_function_call); 12488END_ENTITY; 12489 12490ENTITY measure_qualification; 12491 name : label; 12492 description : text; 12493 qualified_measure : measure_with_unit; 12494 qualifiers : SET [1:?] OF value_qualifier; 12495 WHERE 12496 WR1: 12497 SIZEOF(QUERY (temp <* qualifiers| ('STEP_MERGED_CAD_SCHEMA.PRECISION_QUALIFIER' IN TYPEOF(temp)))) < 2; 12498 WR2: 12499 NOT ('STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(SELF\measure_qualification.qualified_measure)); 12500END_ENTITY; 12501 12502ENTITY measure_representation_item 12503 SUBTYPE OF (representation_item, measure_with_unit); 12504END_ENTITY; 12505 12506-- DIFF IN AP214 12507ENTITY measure_with_unit 12508 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)); 12509 value_component : measure_value; 12510 unit_component : unit; 12511 WHERE 12512 WR1: 12513 valid_units(SELF); 12514END_ENTITY; 12515 12516-- IN AP203e2/AP242 12517ENTITY mechanical_design_and_draughting_relationship 12518 SUBTYPE OF (definitional_representation_relationship_with_same_context); 12519 SELF\representation_relationship.rep_1 : mechanical_design_and_draughting_relationship_select; 12520 SELF\representation_relationship.rep_2 : mechanical_design_and_draughting_relationship_select; 12521 WHERE 12522 WR1: 12523 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))); 12524 WR2: 12525 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))); 12526 WR3: 12527 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))); 12528END_ENTITY; 12529 12530-- DIFF IN AP214 12531ENTITY mechanical_design_geometric_presentation_area 12532 SUBTYPE OF (presentation_area); 12533 SELF\representation.items : SET [1:?] OF mechanical_design_geometric_presentation_area_items; 12534 WHERE 12535 WR1: 12536 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; 12537 WR2: 12538 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; 12539 WR3: 12540 (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); 12541 WR4: 12542 (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); 12543END_ENTITY; 12544 12545-- DIFF IN AP214 12546ENTITY mechanical_design_geometric_presentation_representation 12547 SUBTYPE OF (representation); 12548 SELF\representation.items : SET [1:?] OF mechanical_design_geometric_presentation_representation_items; 12549 WHERE 12550 WR1: 12551 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; 12552 WR2: 12553 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; 12554 WR3: 12555 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; 12556 WR4: 12557 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; 12558 WR5: 12559 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; 12560 WR6: 12561 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; 12562 WR7: 12563 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; 12564 WR8: 12565 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; 12566 WR9: 12567 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; 12568 WR10: 12569 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; 12570 WR11: 12571 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; 12572 WR12: 12573 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; 12574 WR13: 12575 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; 12576END_ENTITY; 12577 12578-- IN AP203e2/AP242 12579ENTITY mechanical_design_presentation_representation_with_draughting 12580 SUBTYPE OF (representation); 12581 SELF\representation.items : SET [1:?] OF camera_model_d3; 12582END_ENTITY; 12583 12584-- DIFF IN AP203e2 12585-- IN AP203e2/AP242 12586ENTITY mechanical_design_shaded_presentation_area 12587 SUBTYPE OF (presentation_area); 12588 SELF\representation.items : SET [1:?] OF mechanical_design_shaded_presentation_area_items; 12589 WHERE 12590 WR1: 12591 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; 12592 WR2: 12593 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; 12594 WR3: 12595 (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); 12596 WR4: 12597 (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); 12598 WR5: 12599 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; 12600END_ENTITY; 12601 12602-- DIFF IN AP203e2 12603-- IN AP203e2/AP242 12604ENTITY mechanical_design_shaded_presentation_representation 12605 SUBTYPE OF (representation); 12606 SELF\representation.items : SET [1:?] OF mechanical_design_shaded_presentation_representation_items; 12607 WHERE 12608 WR1: 12609 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; 12610 WR2: 12611 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; 12612 WR3: 12613 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; 12614 WR4: 12615 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; 12616 WR5: 12617 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; 12618 WR6: 12619 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; 12620 WR7: 12621 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; 12622 WR8: 12623 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; 12624 WR9: 12625 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; 12626 WR10: 12627 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; 12628 WR11: 12629 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; 12630 WR12: 12631 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; 12632 WR13: 12633 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; 12634 WR14: 12635 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; 12636 WR15: 12637 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; 12638END_ENTITY; 12639 12640-- IN AP214 12641ENTITY mechanism; 12642 structure_definition : kinematic_structure; 12643 base : kinematic_link; 12644 containing_property : kinematic_property_definition; 12645-- WHERE 12646-- wr1: 12647-- SIZEOF(QUERY (joint <* structure_definition.joints| (base :=: joint.first_link) OR (base :=: joint.second_link))) > 0; 12648END_ENTITY; 12649 12650-- IN AP214 12651ENTITY mechanism_base_placement 12652 SUBTYPE OF (representation_relationship_with_transformation); 12653 base_of_mechanism : mechanism; 12654 SELF\representation_relationship_with_transformation.transformation_operator : cartesian_transformation_operator_3d; 12655 DERIVE 12656 SELF\representation_relationship.rep_2 : kinematic_link_representation := representation_of_link(base_of_mechanism.base); 12657 UNIQUE 12658 ur1 : base_of_mechanism; 12659 WHERE 12660 wr1: 12661 ('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)); 12662 wr2: 12663 suitably_based_mechanism(SELF, base_of_mechanism); 12664 wr3: 12665 SELF\representation_relationship_with_transformation.transformation_operator IN SELF\representation_relationship.rep_1.items; 12666END_ENTITY; 12667 12668-- IN AP242 12669ENTITY mechanism_representation 12670 SUBTYPE OF (representation); 12671 represented_topology : kinematic_topology_representation_select; 12672 SELF\representation.context_of_items : geometric_representation_context; 12673 SELF\representation.items : SET [1:?] OF pair_representation_relationship; 12674 DERIVE 12675 represented_joints : SET [1:?] OF kinematic_joint := collect_joints(items); 12676 WHERE 12677 WR1: 12678 (('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)); 12679END_ENTITY; 12680 12681-- IN AP242 12682ENTITY mechanism_state_representation 12683 SUBTYPE OF (representation); 12684 represented_mechanism : mechanism_representation; 12685 SELF\representation.items : SET [1:?] OF pair_value; 12686 DERIVE 12687 SELF\representation.context_of_items : geometric_representation_context := represented_mechanism.context_of_items; 12688END_ENTITY; 12689 12690-- IN AP203e2/AP242 12691ENTITY min_and_major_ply_orientation_basis 12692 SUBTYPE OF (representation_item_relationship, geometric_representation_item); 12693 SELF\representation_item_relationship.related_representation_item : axis2_placement_3d; 12694 SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d; 12695 DERIVE 12696 major_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.related_representation_item; 12697 minor_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.relating_representation_item; 12698END_ENTITY; 12699 12700-- IN AP214/AP242 12701ENTITY minimum_function 12702 SUBTYPE OF (multiple_arity_function_call); 12703END_ENTITY; 12704 12705-- IN AP214/AP242 12706ENTITY minus_expression 12707 SUBTYPE OF (binary_numeric_expression); 12708END_ENTITY; 12709 12710-- IN AP214/AP242 12711ENTITY minus_function 12712 SUBTYPE OF (unary_function_call); 12713END_ENTITY; 12714 12715-- IN AP214/AP242 12716ENTITY mod_expression 12717 SUBTYPE OF (binary_numeric_expression); 12718END_ENTITY; 12719 12720ENTITY modified_geometric_tolerance 12721 SUBTYPE OF (geometric_tolerance); 12722 modifier : limit_condition; 12723END_ENTITY; 12724 12725-- DIFF IN AP214 12726-- IN AP214/AP242 12727ENTITY modified_pattern 12728 SUBTYPE OF (shape_aspect); 12729 WHERE 12730 WR1: 12731 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; 12732 WR2: 12733 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; 12734 WR3: 12735 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; 12736END_ENTITY; 12737 12738-- IN AP203e2/AP242 12739ENTITY modified_solid 12740 ABSTRACT SUPERTYPE OF (ONEOF(edge_blended_solid, sculptured_solid, shelled_solid, modified_solid_with_placed_configuration)) 12741 SUBTYPE OF (solid_model); 12742 rationale : text; 12743 base_solid : base_solid_select; 12744END_ENTITY; 12745 12746-- IN AP203e2/AP242 12747ENTITY modified_solid_with_placed_configuration 12748 ABSTRACT SUPERTYPE OF (ONEOF(solid_with_depression, solid_with_protrusion, solid_with_shape_element_pattern)) 12749 SUBTYPE OF (modified_solid); 12750 placing : axis2_placement_3d; 12751END_ENTITY; 12752 12753-- IN AP242 12754ENTITY modify_element 12755 SUBTYPE OF (change_element); 12756END_ENTITY; 12757 12758ENTITY moments_of_inertia_representation 12759 SUBTYPE OF (representation); 12760 WHERE 12761 WR1: 12762 (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); 12763 WR2: 12764 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; 12765END_ENTITY; 12766 12767-- IN AP214 12768ENTITY motion_link_relationship 12769 SUPERTYPE OF (resulting_path) 12770 SUBTYPE OF (representation_relationship); 12771 SELF\representation_relationship.rep_1 : founded_kinematic_path; 12772 SELF\representation_relationship.rep_2 : kinematic_link_representation; 12773 related_frame : rigid_placement; 12774 DERIVE 12775 motion : founded_kinematic_path := SELF\representation_relationship.rep_1; 12776 frame_link : kinematic_link_representation := SELF\representation_relationship.rep_2; 12777 WHERE 12778 wr1: 12779 related_frame IN frame_link\representation.items; 12780END_ENTITY; 12781 12782-- IN AP214/AP242 12783ENTITY mult_expression 12784 SUBTYPE OF (multiple_arity_numeric_expression); 12785END_ENTITY; 12786 12787-- DIFF IN AP214 12788ENTITY multi_language_attribute_assignment 12789 SUBTYPE OF (attribute_value_assignment); 12790 items : SET [1:?] OF multi_language_attribute_item; 12791 DERIVE 12792 translation_language : language := language_indication[1]\attribute_classification_assignment.assigned_class; 12793 INVERSE 12794 language_indication : SET [1:1] OF attribute_language_assignment FOR items; 12795 WHERE 12796 WR1: 12797 SELF\attribute_value_assignment.role.name = 'alternate language'; 12798 WR2: 12799 SIZEOF(QUERY (ala <* language_indication| (ala\attribute_classification_assignment.attribute_name = 'attribute_value') AND (ala\attribute_classification_assignment.role.name = 'translated'))) = 1; 12800 WR3: 12801 SELF\attribute_value_assignment.attribute_name <> ''; 12802 WR4: 12803 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; 12804 WR5: 12805 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; 12806END_ENTITY; 12807 12808-- IN AP242 12809ENTITY multi_level_reference_designator 12810 SUBTYPE OF (assembly_component_usage); 12811 location : LIST [1:?] OF UNIQUE next_assembly_usage_occurrence; 12812 DERIVE 12813 leaf : product_definition_or_reference := SELF\product_definition_relationship.related_product_definition; 12814 SELF\product_definition_relationship.related_product_definition : product_definition_or_reference := location[HIINDEX(location)]\product_definition_relationship.related_product_definition; 12815 SELF\product_definition_relationship.relating_product_definition : product_definition := location[1]\product_definition_relationship.relating_product_definition; 12816 root : product_definition := SELF\product_definition_relationship.relating_product_definition; 12817 WHERE 12818 WR1: 12819 unambiguously_specified_multi_level_reference_designator(location); 12820 WR2: 12821 SIZEOF(QUERY (cp <* location| NOT EXISTS(cp\assembly_component_usage.reference_designator))) = 0; 12822END_ENTITY; 12823 12824-- DIFF IN AP203e2 12825ENTITY multiple_arity_boolean_expression 12826 ABSTRACT SUPERTYPE OF (ONEOF(and_expression, or_expression)) 12827 SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); 12828 SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF boolean_expression; 12829END_ENTITY; 12830 12831-- IN AP214/AP242 12832ENTITY multiple_arity_function_call 12833 ABSTRACT SUPERTYPE OF (ONEOF(maximum_function, minimum_function)) 12834 SUBTYPE OF (multiple_arity_numeric_expression); 12835END_ENTITY; 12836 12837ENTITY multiple_arity_generic_expression 12838 ABSTRACT SUPERTYPE 12839 SUBTYPE OF (generic_expression); 12840 operands : LIST [2:?] OF generic_expression; 12841END_ENTITY; 12842 12843-- DIFF IN AP203e2 12844ENTITY multiple_arity_numeric_expression 12845 ABSTRACT SUPERTYPE OF (ONEOF(plus_expression, mult_expression, multiple_arity_function_call)) 12846 SUBTYPE OF (numeric_expression, multiple_arity_generic_expression); 12847 SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression; 12848END_ENTITY; 12849 12850-- IN AP242 12851ENTITY multiply_defined_cartesian_points 12852 SUBTYPE OF (multiply_defined_geometry); 12853 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 12854 WHERE 12855 WR1: 12856 ('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)); 12857 WR2: 12858 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 12859 WR3: 12860 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT', 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' ]); 12861 WR4: 12862 validate_locations_of_extreme_value_type(SELF, []); 12863 WR5: 12864 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 12865END_ENTITY; 12866 12867-- IN AP242 12868ENTITY multiply_defined_curves 12869 SUBTYPE OF (multiply_defined_geometry); 12870 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 12871 WHERE 12872 WR1: 12873 ('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)); 12874 WR2: 12875 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 12876 WR3: 12877 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE', 'STEP_MERGED_CAD_SCHEMA.CURVE' ]); 12878 WR4: 12879 validate_locations_of_extreme_value_type(SELF, []); 12880 WR5: 12881 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 12882END_ENTITY; 12883 12884-- IN AP242 12885ENTITY multiply_defined_directions 12886 SUBTYPE OF (multiply_defined_geometry); 12887 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 12888 WHERE 12889 WR1: 12890 ('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)); 12891 WR2: 12892 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE'); 12893 WR3: 12894 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.DIRECTION', 'STEP_MERGED_CAD_SCHEMA.DIRECTION' ]); 12895 WR4: 12896 validate_locations_of_extreme_value_type(SELF, []); 12897 WR5: 12898 validate_accuracy_types(SELF, []); 12899END_ENTITY; 12900 12901-- IN AP242 12902ENTITY multiply_defined_edges 12903 SUBTYPE OF (topology_related_to_multiply_defined_geometry); 12904 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 12905 WHERE 12906 WR1: 12907 ('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)); 12908 WR2: 12909 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 12910 WR3: 12911 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 12912 WR4: 12913 validate_locations_of_extreme_value_type(SELF, []); 12914 WR5: 12915 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 12916END_ENTITY; 12917 12918-- IN AP242 12919ENTITY multiply_defined_faces 12920 SUBTYPE OF (topology_related_to_multiply_defined_geometry); 12921 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 12922 WHERE 12923 WR1: 12924 ('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)); 12925 WR2: 12926 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 12927 WR3: 12928 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 12929 WR4: 12930 validate_locations_of_extreme_value_type(SELF, []); 12931 WR5: 12932 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 12933END_ENTITY; 12934 12935-- IN AP242 12936ENTITY multiply_defined_geometry 12937 ABSTRACT SUPERTYPE OF (ONEOF(multiply_defined_curves, multiply_defined_surfaces, multiply_defined_cartesian_points, multiply_defined_directions, multiply_defined_placements)) 12938 SUBTYPE OF (inapt_geometry); 12939END_ENTITY; 12940 12941-- IN AP242 12942ENTITY multiply_defined_placements 12943 SUBTYPE OF (multiply_defined_geometry); 12944 assessment_specification_2 : shape_data_quality_assessment_by_numerical_test; 12945 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 12946 WHERE 12947 WR1: 12948 ('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)); 12949 WR2: 12950 ('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)); 12951 WR3: 12952 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PLANE_ANGLE_AND_LENGTH_PAIR'); 12953 WR4: 12954 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLACEMENT', 'STEP_MERGED_CAD_SCHEMA.PLACEMENT' ]); 12955 WR5: 12956 validate_locations_of_extreme_value_type(SELF, []); 12957 WR6: 12958 validate_accuracy_types(SELF, []); 12959 WR7: 12960 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; 12961END_ENTITY; 12962 12963-- IN AP242 12964ENTITY multiply_defined_solids 12965 SUBTYPE OF (inapt_manifold_solid_brep); 12966 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 12967 WHERE 12968 WR1: 12969 ('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)); 12970 WR2: 12971 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 12972 WR3: 12973 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]); 12974 WR4: 12975 validate_locations_of_extreme_value_type(SELF, []); 12976 WR5: 12977 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 12978END_ENTITY; 12979 12980-- IN AP242 12981ENTITY multiply_defined_surfaces 12982 SUBTYPE OF (multiply_defined_geometry); 12983 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 12984 WHERE 12985 WR1: 12986 ('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)); 12987 WR2: 12988 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 12989 WR3: 12990 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE', 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]); 12991 WR4: 12992 validate_locations_of_extreme_value_type(SELF, []); 12993 WR5: 12994 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 12995END_ENTITY; 12996 12997-- IN AP242 12998ENTITY multiply_defined_vertices 12999 SUBTYPE OF (topology_related_to_multiply_defined_geometry); 13000 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13001 WHERE 13002 WR1: 13003 ('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)); 13004 WR2: 13005 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 13006 WR3: 13007 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT', 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' ]); 13008 WR4: 13009 validate_locations_of_extreme_value_type(SELF, []); 13010 WR5: 13011 validate_accuracy_types(SELF, []); 13012END_ENTITY; 13013 13014ENTITY name_assignment 13015 ABSTRACT SUPERTYPE; 13016 assigned_name : label; 13017 DERIVE 13018 role : object_role := get_role(SELF); 13019 WHERE 13020 WR1: 13021 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 13022END_ENTITY; 13023 13024ENTITY name_attribute; 13025 attribute_value : label; 13026 named_item : name_attribute_select; 13027END_ENTITY; 13028 13029-- DIFF IN AP214 13030ENTITY named_unit 13031 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)); 13032 dimensions : dimensional_exponents; 13033END_ENTITY; 13034 13035-- IN AP214 13036ENTITY named_unit_variable 13037 SUBTYPE OF (named_unit, variable_semantics); 13038 INVERSE 13039 associated_variable_environment : environment FOR semantics; 13040END_ENTITY; 13041 13042-- IN AP242 13043ENTITY narrow_surface_patch 13044 SUBTYPE OF (geometry_with_local_near_degeneracy); 13045 width_tolerance : length_measure; 13046 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 13047 WHERE 13048 WR1: 13049 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 13050 WR2: 13051 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 13052 WR3: 13053 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_PATCH' ]); 13054 WR4: 13055 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 13056END_ENTITY; 13057 13058-- IN AP242 13059ENTITY near_point_relationship 13060 SUBTYPE OF (representation_item_relationship); 13061 SELF\representation_item_relationship.related_representation_item : point; 13062 SELF\representation_item_relationship.relating_representation_item : curve_or_surface_constraint_element; 13063END_ENTITY; 13064 13065-- IN AP242 13066ENTITY nearly_degenerate_geometry 13067 ABSTRACT SUPERTYPE OF (ONEOF(small_area_surface, short_length_curve, entirely_narrow_surface)) 13068 SUBTYPE OF (inapt_geometry); 13069END_ENTITY; 13070 13071-- IN AP242 13072ENTITY nearly_degenerate_surface_boundary 13073 SUBTYPE OF (geometry_with_local_near_degeneracy); 13074 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13075 WHERE 13076 WR1: 13077 ('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)); 13078 WR2: 13079 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 13080 WR3: 13081 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ]); 13082 WR4: 13083 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE' ]); 13084 WR5: 13085 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 13086END_ENTITY; 13087 13088-- IN AP242 13089ENTITY nearly_degenerate_surface_patch 13090 SUBTYPE OF (geometry_with_local_near_degeneracy); 13091 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13092 WHERE 13093 WR1: 13094 ('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)); 13095 WR2: 13096 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 13097 WR3: 13098 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 13099 WR4: 13100 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_PATCH' ]); 13101 WR5: 13102 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 13103END_ENTITY; 13104 13105-- IN AP242 13106ENTITY neutral_sketch_representation 13107 SUBTYPE OF (shape_representation); 13108 neutral_sketch_semantics : curves_or_area; 13109 SELF\representation.items : SET [1:?] OF sketch_element_select; 13110 WHERE 13111 WR1: 13112 SIZEOF(QUERY (q <* items| NOT (('STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(q)) AND (q\geometric_representation_item.dim = 3)))) = 0; 13113END_ENTITY; 13114 13115-- DIFF IN AP214 13116-- DIFF IN AP203e2 13117ENTITY next_assembly_usage_occurrence 13118 SUBTYPE OF (assembly_component_usage); 13119 UNIQUE 13120 UR1 : SELF\assembly_component_usage.reference_designator, SELF\product_definition_relationship.relating_product_definition; 13121END_ENTITY; 13122 13123-- IN AP214/AP242 13124ENTITY ngon_closed_profile 13125 SUBTYPE OF (shape_aspect); 13126 WHERE 13127 WR1: 13128 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 13129 WR2: 13130 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; 13131 WR3: 13132 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; 13133 WR4: 13134 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; 13135 WR5: 13136 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; 13137 WR6: 13138 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; 13139 WR7: 13140 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; 13141 WR8: 13142 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; 13143END_ENTITY; 13144 13145-- IN AP242 13146ENTITY non_agreed_accuracy_parameter_usage 13147 SUBTYPE OF (externally_conditioned_data_quality_criterion); 13148 WHERE 13149 WR1: 13150 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT' ]); 13151END_ENTITY; 13152 13153-- IN AP242 13154ENTITY non_agreed_scale_usage 13155 SUBTYPE OF (externally_conditioned_data_quality_criterion); 13156 WHERE 13157 WR1: 13158 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_TRANSFORMATION_OPERATOR_3D' ]); 13159END_ENTITY; 13160 13161-- IN AP242 13162ENTITY non_agreed_unit_usage 13163 SUBTYPE OF (externally_conditioned_data_quality_criterion); 13164 WHERE 13165 WR1: 13166 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' ]); 13167END_ENTITY; 13168 13169-- IN AP242 13170ENTITY non_manifold_at_edge 13171 SUBTYPE OF (inapt_topology); 13172 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 13173 WHERE 13174 WR1: 13175 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 13176 WR2: 13177 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 13178 WR3: 13179 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 13180 WR4: 13181 validate_accuracy_types(SELF, []); 13182END_ENTITY; 13183 13184-- IN AP242 13185ENTITY non_manifold_at_vertex 13186 SUBTYPE OF (inapt_topology); 13187 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 13188 WHERE 13189 WR1: 13190 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 13191 WR2: 13192 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 13193 WR3: 13194 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' ]); 13195 WR4: 13196 validate_accuracy_types(SELF, []); 13197END_ENTITY; 13198 13199ENTITY non_manifold_surface_shape_representation 13200 SUBTYPE OF (shape_representation); 13201 WHERE 13202 WR1: 13203 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; 13204 WR2: 13205 SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.FACE_BASED_SURFACE_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) > 0; 13206 WR3: 13207 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; 13208 WR4: 13209 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; 13210 WR5: 13211 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; 13212 WR6: 13213 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; 13214 WR7: 13215 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; 13216 WR8: 13217 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; 13218 WR9: 13219 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; 13220 WR10: 13221 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; 13222 WR11: 13223 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; 13224 WR12: 13225 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; 13226 WR13: 13227 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; 13228 WR14: 13229 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; 13230END_ENTITY; 13231 13232-- IN AP242 13233ENTITY non_referenced_coordinate_system 13234 SUBTYPE OF (externally_conditioned_data_quality_criterion); 13235 WHERE 13236 WR1: 13237 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' ]); 13238END_ENTITY; 13239 13240-- IN AP242 13241ENTITY non_smooth_geometry_transition_across_edge 13242 ABSTRACT SUPERTYPE OF (ONEOF(g1_discontinuity_between_adjacent_faces, g2_discontinuity_between_adjacent_faces)) 13243 SUBTYPE OF (inapt_topology_and_geometry_relationship); 13244END_ENTITY; 13245 13246-- IN AP242 13247ENTITY non_uniform_zone_definition 13248 SUBTYPE OF (tolerance_zone_definition); 13249END_ENTITY; 13250 13251-- IN AP214/AP242 13252ENTITY not_expression 13253 SUBTYPE OF (unary_boolean_expression); 13254 SELF\unary_generic_expression.operand : boolean_expression; 13255END_ENTITY; 13256 13257-- IN AP203e2/AP242 13258ENTITY null_representation_item 13259 SUBTYPE OF (representation_item); 13260END_ENTITY; 13261 13262-- IN AP214/AP242 13263ENTITY numeric_defined_function 13264 ABSTRACT SUPERTYPE OF (ONEOF(integer_defined_function, real_defined_function)) 13265 SUBTYPE OF (numeric_expression, defined_function); 13266END_ENTITY; 13267 13268-- CASE DIFF IN AP214 13269-- DIFF IN AP203e2 13270ENTITY numeric_expression 13271 ABSTRACT SUPERTYPE OF (ONEOF(simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, multiple_arity_numeric_expression, length_function, value_function, numeric_defined_function)) 13272 SUBTYPE OF (expression); 13273 DERIVE 13274 is_int : BOOLEAN := is_int_expr(SELF); 13275 sql_mappable : BOOLEAN := is_SQL_mappable(SELF); 13276END_ENTITY; 13277 13278-- IN AP214/AP242 13279ENTITY numeric_variable 13280 SUPERTYPE OF (ONEOF(int_numeric_variable, real_numeric_variable)) 13281 SUBTYPE OF (simple_numeric_expression, variable); 13282 WHERE 13283 WR1: 13284 ('STEP_MERGED_CAD_SCHEMA.INT_NUMERIC_VARIABLE' IN TYPEOF(SELF)) OR ('STEP_MERGED_CAD_SCHEMA.REAL_NUMERIC_VARIABLE' IN TYPEOF(SELF)); 13285END_ENTITY; 13286 13287ENTITY object_role; 13288 name : label; 13289 description : OPTIONAL text; 13290END_ENTITY; 13291 13292-- IN AP214/AP242 13293ENTITY odd_function 13294 SUBTYPE OF (unary_boolean_expression); 13295 SELF\unary_generic_expression.operand : numeric_expression; 13296 WHERE 13297 WR1: 13298 is_int_expr(operand); 13299END_ENTITY; 13300 13301ENTITY offset_curve_2d 13302 SUBTYPE OF (curve); 13303 basis_curve : curve; 13304 distance : length_measure; 13305 self_intersect : LOGICAL; 13306 WHERE 13307 WR1: 13308 basis_curve.dim = 2; 13309END_ENTITY; 13310 13311ENTITY offset_curve_3d 13312 SUBTYPE OF (curve); 13313 basis_curve : curve; 13314 distance : length_measure; 13315 self_intersect : LOGICAL; 13316 ref_direction : direction; 13317 WHERE 13318 WR1: 13319 (basis_curve.dim = 3) AND (ref_direction.dim = 3); 13320END_ENTITY; 13321 13322ENTITY offset_surface 13323 SUBTYPE OF (surface); 13324 basis_surface : surface; 13325 distance : length_measure; 13326 self_intersect : LOGICAL; 13327END_ENTITY; 13328 13329ENTITY one_direction_repeat_factor 13330 SUBTYPE OF (geometric_representation_item); 13331 repeat_factor : vector; 13332END_ENTITY; 13333 13334-- IN AP242 13335ENTITY open_closed_shell 13336 SUBTYPE OF (erroneous_topology); 13337 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 13338 WHERE 13339 WR1: 13340 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 13341 WR2: 13342 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CLOSED_SHELL' ]); 13343 WR3: 13344 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 13345 WR4: 13346 validate_accuracy_types(SELF, []); 13347END_ENTITY; 13348 13349-- IN AP242 13350ENTITY open_edge_loop 13351 SUBTYPE OF (erroneous_topology); 13352 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 13353 WHERE 13354 WR1: 13355 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 13356 WR2: 13357 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' ]); 13358 WR3: 13359 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' ]); 13360 WR4: 13361 validate_accuracy_types(SELF, []); 13362END_ENTITY; 13363 13364-- IN AP214/AP242 13365ENTITY open_path_profile 13366 SUBTYPE OF (shape_aspect); 13367 WHERE 13368 WR1: 13369 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 13370 WR2: 13371 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; 13372 WR3: 13373 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; 13374 WR4: 13375 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; 13376 WR5: 13377 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; 13378 WR6: 13379 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; 13380END_ENTITY; 13381 13382ENTITY open_shell 13383 SUBTYPE OF (connected_face_set); 13384END_ENTITY; 13385 13386-- IN AP214/AP242 13387ENTITY or_expression 13388 SUBTYPE OF (multiple_arity_boolean_expression); 13389END_ENTITY; 13390 13391-- IN AP203e2/AP242 13392ENTITY ordinal_date 13393 SUBTYPE OF (date); 13394 day_component : day_in_year_number; 13395 WHERE 13396 WR1: 13397 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)); 13398END_ENTITY; 13399 13400ENTITY ordinate_dimension 13401 SUBTYPE OF (projection_directed_callout); 13402END_ENTITY; 13403 13404ENTITY organization; 13405 id : OPTIONAL identifier; 13406 name : label; 13407 description : OPTIONAL text; 13408END_ENTITY; 13409 13410ENTITY organization_assignment 13411 ABSTRACT SUPERTYPE; 13412 assigned_organization : organization; 13413 role : organization_role; 13414END_ENTITY; 13415 13416ENTITY organization_relationship; 13417 name : label; 13418 description : OPTIONAL text; 13419 relating_organization : organization; 13420 related_organization : organization; 13421END_ENTITY; 13422 13423ENTITY organization_role; 13424 name : label; 13425 DERIVE 13426 description : text := get_description_value(SELF); 13427 WHERE 13428 WR1: 13429 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 13430END_ENTITY; 13431 13432ENTITY organizational_address 13433 SUBTYPE OF (address); 13434 organizations : SET [1:?] OF organization; 13435 description : OPTIONAL text; 13436END_ENTITY; 13437 13438ENTITY organizational_project; 13439 name : label; 13440 description : OPTIONAL text; 13441 responsible_organizations : SET [1:?] OF organization; 13442 DERIVE 13443 id : identifier := get_id_value(SELF); 13444 WHERE 13445 WR1: 13446 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 13447END_ENTITY; 13448 13449ENTITY organizational_project_assignment 13450 ABSTRACT SUPERTYPE; 13451 assigned_organizational_project : organizational_project; 13452 role : organizational_project_role; 13453END_ENTITY; 13454 13455ENTITY organizational_project_relationship; 13456 name : label; 13457 description : OPTIONAL text; 13458 relating_organizational_project : organizational_project; 13459 related_organizational_project : organizational_project; 13460END_ENTITY; 13461 13462ENTITY organizational_project_role; 13463 name : label; 13464 description : OPTIONAL text; 13465END_ENTITY; 13466 13467ENTITY oriented_closed_shell 13468 SUBTYPE OF (closed_shell); 13469 closed_shell_element : closed_shell; 13470 orientation : BOOLEAN; 13471 DERIVE 13472 SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF.closed_shell_element.cfs_faces); 13473 WHERE 13474 WR1: 13475 NOT ('STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(SELF.closed_shell_element)); 13476END_ENTITY; 13477 13478-- DIFF IN AP214 13479ENTITY oriented_edge 13480 SUBTYPE OF (edge); 13481 edge_element : edge; 13482 orientation : BOOLEAN; 13483 DERIVE 13484 SELF\edge.edge_end : vertex := boolean_choose(SELF.orientation, SELF.edge_element.edge_end, SELF.edge_element.edge_start); 13485 SELF\edge.edge_start : vertex := boolean_choose(SELF.orientation, SELF.edge_element.edge_start, SELF.edge_element.edge_end); 13486 WHERE 13487 WR1: 13488 NOT ('STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' IN TYPEOF(SELF.edge_element)); 13489END_ENTITY; 13490 13491ENTITY oriented_face 13492 SUBTYPE OF (face); 13493 face_element : face; 13494 orientation : BOOLEAN; 13495 DERIVE 13496 SELF\face.bounds : SET [1:?] OF face_bound := conditional_reverse(SELF.orientation, SELF.face_element.bounds); 13497 WHERE 13498 WR1: 13499 NOT ('STEP_MERGED_CAD_SCHEMA.ORIENTED_FACE' IN TYPEOF(SELF.face_element)); 13500END_ENTITY; 13501 13502-- IN AP242 13503ENTITY oriented_joint 13504 SUBTYPE OF (oriented_edge); 13505 SELF\oriented_edge.edge_element : kinematic_joint; 13506END_ENTITY; 13507 13508ENTITY oriented_open_shell 13509 SUBTYPE OF (open_shell); 13510 open_shell_element : open_shell; 13511 orientation : BOOLEAN; 13512 DERIVE 13513 SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF.open_shell_element.cfs_faces); 13514 WHERE 13515 WR1: 13516 NOT ('STEP_MERGED_CAD_SCHEMA.ORIENTED_OPEN_SHELL' IN TYPEOF(SELF.open_shell_element)); 13517END_ENTITY; 13518 13519ENTITY oriented_path 13520 SUBTYPE OF (path); 13521 path_element : path; 13522 orientation : BOOLEAN; 13523 DERIVE 13524 SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_edge := conditional_reverse(SELF.orientation, SELF.path_element.edge_list); 13525 WHERE 13526 WR1: 13527 NOT ('STEP_MERGED_CAD_SCHEMA.ORIENTED_PATH' IN TYPEOF(SELF.path_element)); 13528END_ENTITY; 13529 13530ENTITY oriented_surface 13531 SUBTYPE OF (surface); 13532 orientation : BOOLEAN; 13533END_ENTITY; 13534 13535ENTITY outer_boundary_curve 13536 SUBTYPE OF (boundary_curve); 13537END_ENTITY; 13538 13539-- IN AP242 13540ENTITY outer_round 13541 SUBTYPE OF (feature_definition); 13542 WHERE 13543 WR1: 13544 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); 13545 WR2: 13546 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); 13547 WR3: 13548 SELF\characterized_object.description IN [ 'outer diameter', 'outer diameter to shoulder' ]; 13549 WR4: 13550 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); 13551 WR5: 13552 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; 13553 WR6: 13554 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); 13555 WR7: 13556 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); 13557 WR8: 13558 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); 13559 WR9: 13560 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); 13561END_ENTITY; 13562 13563-- IN AP242 13564ENTITY outside_profile 13565 SUBTYPE OF (feature_definition); 13566 WHERE 13567 WR1: 13568 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; 13569 WR2: 13570 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; 13571 WR3: 13572 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); 13573 WR4: 13574 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); 13575 WR5: 13576 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); 13577 WR6: 13578 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); 13579 WR7: 13580 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); 13581 WR8: 13582 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); 13583 WR9: 13584 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); 13585 WR10: 13586 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); 13587 WR11: 13588 (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); 13589 WR12: 13590 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; 13591END_ENTITY; 13592 13593ENTITY over_riding_styled_item 13594 SUBTYPE OF (styled_item); 13595 over_ridden_style : styled_item; 13596END_ENTITY; 13597 13598-- IN AP242 13599ENTITY over_used_vertex 13600 SUBTYPE OF (inapt_topology); 13601 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13602 WHERE 13603 WR1: 13604 ('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)); 13605 WR2: 13606 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 13607 WR3: 13608 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VERTEX_POINT' ]); 13609 WR4: 13610 validate_locations_of_extreme_value_type(SELF, []); 13611 WR5: 13612 validate_accuracy_types(SELF, []); 13613END_ENTITY; 13614 13615-- IN AP242 13616ENTITY overcomplex_geometry 13617 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)) 13618 SUBTYPE OF (inapt_geometry); 13619END_ENTITY; 13620 13621-- IN AP242 13622ENTITY overcomplex_topology_and_geometry_relationship 13623 ABSTRACT SUPERTYPE OF (ONEOF(unused_patches, edge_with_excessive_segments, face_surface_with_excessive_patches_in_one_direction)) 13624 SUBTYPE OF (inapt_topology_and_geometry_relationship); 13625END_ENTITY; 13626 13627-- IN AP242 13628ENTITY overlapping_geometry 13629 ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_curves, partly_overlapping_surfaces)) 13630 SUBTYPE OF (inapt_geometry); 13631END_ENTITY; 13632 13633ENTITY package_product_concept_feature 13634 SUBTYPE OF (product_concept_feature); 13635 WHERE 13636 WR1: 13637 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(SELF)); 13638 WR2: 13639 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; 13640END_ENTITY; 13641 13642-- IN AP214 13643ENTITY pair_actuator; 13644 actuated_pair : kinematic_pair; 13645 name : label; 13646 UNIQUE 13647 ur1 : actuated_pair; 13648END_ENTITY; 13649 13650-- IN AP242 13651ENTITY pair_representation_relationship 13652 SUBTYPE OF (geometric_representation_item, representation_relationship_with_transformation); 13653 SELF\representation_relationship.rep_1 : kinematic_link_representation; 13654 SELF\representation_relationship.rep_2 : kinematic_link_representation; 13655 SELF\representation_relationship_with_transformation.transformation_operator : kinematic_pair; 13656 WHERE 13657 WR1: 13658 transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items; 13659 WR2: 13660 transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items; 13661 WR3: 13662 rep_1\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_start; 13663 WR4: 13664 rep_2\kinematic_link_representation.represented_link = transformation_operator\kinematic_pair.joint.edge_end; 13665END_ENTITY; 13666 13667-- DIFF IN AP214 13668-- IN AP214/AP242 13669ENTITY pair_value 13670 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)) 13671 SUBTYPE OF (geometric_representation_item); 13672 applies_to_pair : kinematic_pair; 13673END_ENTITY; 13674 13675ENTITY parabola 13676 SUBTYPE OF (conic); 13677 focal_dist : length_measure; 13678 WHERE 13679 WR1: 13680 focal_dist <> 0.0; 13681END_ENTITY; 13682 13683-- IN AP242 13684ENTITY parallel_assembly_constraint 13685 SUBTYPE OF (binary_assembly_constraint, parallel_geometric_constraint); 13686END_ENTITY; 13687 13688-- IN AP242 13689ENTITY parallel_assembly_constraint_with_dimension 13690 SUBTYPE OF (parallel_assembly_constraint, pgc_with_dimension); 13691END_ENTITY; 13692 13693-- IN AP242 13694ENTITY parallel_composed_function 13695 SUBTYPE OF (maths_function, multiple_arity_generic_expression); 13696 source_of_domain : maths_space_or_function; 13697 prep_functions : LIST [1:?] OF maths_function; 13698 final_function : maths_function_select; 13699 DERIVE 13700 SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF generic_expression := convert_to_operands_prcmfn(source_of_domain, prep_functions, final_function); 13701 WHERE 13702 WR1: 13703 no_cyclic_domain_reference(source_of_domain, [ SELF ]); 13704 WR2: 13705 expression_is_constant(domain_from(source_of_domain)); 13706 WR3: 13707 parallel_composed_function_domain_check(domain_from(source_of_domain), prep_functions); 13708 WR4: 13709 parallel_composed_function_composability_check(prep_functions, final_function); 13710END_ENTITY; 13711 13712-- IN AP242 13713ENTITY parallel_geometric_constraint 13714 SUBTYPE OF (explicit_geometric_constraint); 13715 SELF\explicit_constraint.constrained_elements : SET [1:?] OF linear_geometry_constraint_element; 13716 SELF\explicit_constraint.reference_elements : SET [0:1] OF linear_geometry_constraint_element; 13717END_ENTITY; 13718 13719ENTITY parallel_offset 13720 SUBTYPE OF (derived_shape_aspect); 13721 offset : measure_with_unit; 13722 WHERE 13723 WR1: 13724 SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; 13725END_ENTITY; 13726 13727-- IN AP242 13728ENTITY parallel_offset_geometric_constraint 13729 SUBTYPE OF (explicit_geometric_constraint); 13730 offset_type : parallel_offset_type; 13731 SELF\explicit_constraint.constrained_elements : SET [1:?] OF curve_or_surface_constraint_element; 13732 SELF\explicit_constraint.reference_elements : SET [0:1] OF curve_or_surface_constraint_element; 13733 WHERE 13734 WR1: 13735 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)); 13736 WR2: 13737 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)); 13738END_ENTITY; 13739 13740ENTITY parallelism_tolerance 13741 SUBTYPE OF (geometric_tolerance_with_datum_reference); 13742END_ENTITY; 13743 13744ENTITY parametric_representation_context 13745 SUBTYPE OF (representation_context); 13746END_ENTITY; 13747 13748-- IN AP203e2/AP242 13749ENTITY part_laminate_table 13750 SUPERTYPE OF (ONEOF(composite_assembly_table, ply_laminate_table)) 13751 SUBTYPE OF (laminate_table); 13752END_ENTITY; 13753 13754-- IN AP214/AP242 13755ENTITY partial_circular_profile 13756 SUBTYPE OF (shape_aspect); 13757 WHERE 13758 WR1: 13759 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 13760 WR2: 13761 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; 13762 WR3: 13763 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; 13764 WR4: 13765 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; 13766 WR5: 13767 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; 13768 WR6: 13769 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; 13770 WR7: 13771 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; 13772END_ENTITY; 13773 13774-- IN AP242 13775ENTITY partial_derivative_expression 13776 SUBTYPE OF (unary_generic_expression); 13777 d_variables : LIST [1:?] OF maths_variable; 13778 extension : extension_options; 13779 DERIVE 13780 derivand : generic_expression := SELF\unary_generic_expression.operand; 13781 WHERE 13782 WR1: 13783 has_values_space(derivand); 13784 WR2: 13785 space_is_continuum(values_space_of(derivand)); 13786 WR3: 13787 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; 13788END_ENTITY; 13789 13790-- IN AP242 13791ENTITY partial_derivative_function 13792 SUBTYPE OF (maths_function, unary_generic_expression); 13793 d_variables : LIST [1:?] OF input_selector; 13794 extension : extension_options; 13795 SELF\unary_generic_expression.operand : maths_function; 13796 DERIVE 13797 derivand : maths_function := SELF\unary_generic_expression.operand; 13798 WHERE 13799 WR1: 13800 space_is_continuum(derivand.range); 13801 WR2: 13802 partial_derivative_check(derivand.domain, d_variables); 13803END_ENTITY; 13804 13805-- IN AP203e2/AP242 13806ENTITY partial_document_with_structured_text_representation_assignment 13807 SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object); 13808END_ENTITY; 13809 13810-- IN AP242 13811ENTITY partly_overlapping_curves 13812 SUBTYPE OF (overlapping_geometry); 13813 interference_tolerance : length_measure; 13814 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13815 WHERE 13816 WR1: 13817 ('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)); 13818 WR2: 13819 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 13820 WR3: 13821 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE', 'STEP_MERGED_CAD_SCHEMA.CURVE' ]); 13822 WR4: 13823 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE', 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' ]); 13824 WR5: 13825 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 13826END_ENTITY; 13827 13828-- IN AP242 13829ENTITY partly_overlapping_edges 13830 SUBTYPE OF (topology_related_to_overlapping_geometry); 13831 interference_tolerance : length_measure; 13832 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13833 WHERE 13834 WR1: 13835 ('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)); 13836 WR2: 13837 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 13838 WR3: 13839 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 13840 WR4: 13841 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SUBEDGE', 'STEP_MERGED_CAD_SCHEMA.SUBEDGE' ]); 13842 WR5: 13843 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 13844END_ENTITY; 13845 13846-- IN AP242 13847ENTITY partly_overlapping_faces 13848 SUBTYPE OF (topology_related_to_overlapping_geometry); 13849 interference_tolerance : length_measure; 13850 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13851 WHERE 13852 WR1: 13853 ('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)); 13854 WR2: 13855 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE'); 13856 WR3: 13857 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 13858 WR4: 13859 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SUBFACE', 'STEP_MERGED_CAD_SCHEMA.SUBFACE' ]); 13860 WR5: 13861 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]); 13862END_ENTITY; 13863 13864-- IN AP242 13865ENTITY partly_overlapping_solids 13866 SUBTYPE OF (inapt_manifold_solid_brep); 13867 interference_tolerance : length_measure; 13868 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13869 WHERE 13870 WR1: 13871 ('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)); 13872 WR2: 13873 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE'); 13874 WR3: 13875 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP', 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]); 13876 WR4: 13877 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SUBFACE', 'STEP_MERGED_CAD_SCHEMA.SUBFACE' ]); 13878 WR5: 13879 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]); 13880END_ENTITY; 13881 13882-- IN AP242 13883ENTITY partly_overlapping_surfaces 13884 SUBTYPE OF (overlapping_geometry); 13885 interference_tolerance : length_measure; 13886 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 13887 WHERE 13888 WR1: 13889 ('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)); 13890 WR2: 13891 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE'); 13892 WR3: 13893 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE', 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]); 13894 WR4: 13895 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE', 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE' ]); 13896 WR5: 13897 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]); 13898END_ENTITY; 13899 13900ENTITY path 13901 SUPERTYPE OF (ONEOF(edge_loop, oriented_path)) 13902 SUBTYPE OF (topological_representation_item); 13903 edge_list : LIST [1:?] OF UNIQUE oriented_edge; 13904 WHERE 13905 WR1: 13906 path_head_to_tail(SELF); 13907END_ENTITY; 13908 13909-- IN AP242 13910ENTITY path_area_with_parameters 13911 SUBTYPE OF (complex_area, mapped_item); 13912 WHERE 13913 WR1: 13914 'STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(SELF\mapped_item.mapping_target); 13915 WR2: 13916 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE_PARAMETERS_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source\representation_map.mapped_representation); 13917 WR3: 13918 SELF\mapped_item.mapping_source\representation_map.mapping_origin\representation_item.name = 'curve width'; 13919END_ENTITY; 13920 13921-- IN AP214/AP242 13922ENTITY path_feature_component 13923 SUBTYPE OF (shape_aspect); 13924 WHERE 13925 WR1: 13926 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 13927 WR2: 13928 SELF.description IN [ 'partial circular', 'complete circular', 'linear', 'complex' ]; 13929 WR3: 13930 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); 13931 WR4: 13932 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; 13933 WR5: 13934 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); 13935 WR6: 13936 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); 13937 WR7: 13938 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); 13939 WR8: 13940 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); 13941 WR9: 13942 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); 13943 WR10: 13944 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); 13945 WR11: 13946 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); 13947 WR12: 13948 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); 13949 WR13: 13950 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); 13951END_ENTITY; 13952 13953-- IN AP242 13954ENTITY path_node 13955 ABSTRACT SUPERTYPE OF (ONEOF(point_to_point_path, circular_path, linear_path, curve_based_path)) 13956 SUBTYPE OF (kinematic_path_segment); 13957 placement_end : placement; 13958END_ENTITY; 13959 13960-- IN AP242 13961ENTITY path_parameter_representation 13962 SUBTYPE OF (definitional_representation); 13963 SELF\representation.context_of_items : path_parameter_representation_context; 13964 SELF\representation.items : SET [1:?] OF bounded_curve; 13965 WHERE 13966 WR1: 13967 SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; 13968END_ENTITY; 13969 13970-- IN AP242 13971ENTITY path_parameter_representation_context 13972 SUBTYPE OF (geometric_representation_context, parametric_representation_context); 13973END_ENTITY; 13974 13975-- IN AP214/AP242 13976ENTITY path_shape_representation 13977 SUBTYPE OF (shape_representation); 13978 WHERE 13979 WR1: 13980 SIZEOF(SELF.items) >= 1; 13981 WR2: 13982 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; 13983END_ENTITY; 13984 13985-- IN AP214/AP242 13986ENTITY pattern_offset_membership 13987 SUBTYPE OF (feature_component_relationship); 13988 WHERE 13989 WR1: 13990 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; 13991 WR2: 13992 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; 13993 WR3: 13994 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; 13995 WR4: 13996 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); 13997 WR5: 13998 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); 13999 WR6: 14000 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); 14001 WR7: 14002 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); 14003 WR8: 14004 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); 14005 WR9: 14006 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); 14007 WR10: 14008 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); 14009 WR11: 14010 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); 14011 WR12: 14012 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); 14013 WR13: 14014 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); 14015END_ENTITY; 14016 14017-- IN AP214/AP242 14018ENTITY pattern_omit_membership 14019 SUBTYPE OF (feature_component_relationship); 14020 WHERE 14021 WR1: 14022 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; 14023 WR2: 14024 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; 14025 WR3: 14026 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; 14027 WR4: 14028 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; 14029 WR5: 14030 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); 14031 WR6: 14032 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); 14033 WR7: 14034 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); 14035 WR8: 14036 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); 14037 WR9: 14038 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); 14039END_ENTITY; 14040 14041ENTITY pcurve 14042 SUBTYPE OF (curve); 14043 basis_surface : surface; 14044 reference_to_curve : definitional_representation; 14045 WHERE 14046 WR1: 14047 SIZEOF(reference_to_curve\representation.items) = 1; 14048 WR2: 14049 'STEP_MERGED_CAD_SCHEMA.CURVE' IN TYPEOF(reference_to_curve\representation.items[1]); 14050 WR3: 14051 reference_to_curve\representation.items[1]\geometric_representation_item.dim = 2; 14052END_ENTITY; 14053 14054-- IN AP242 14055ENTITY pdgc_with_dimension 14056 SUBTYPE OF (point_distance_geometric_constraint); 14057 distance_value : non_negative_length_measure; 14058END_ENTITY; 14059 14060-- IN AP203e2 14061ENTITY percentage_laminate_definition 14062 SUBTYPE OF (product_definition); 14063 WHERE 14064 WR1: 14065 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; 14066END_ENTITY; 14067 14068-- IN AP203e2/AP242 14069ENTITY percentage_laminate_table 14070 SUBTYPE OF (zone_structural_makeup); 14071END_ENTITY; 14072 14073-- IN AP203e2 14074ENTITY percentage_ply_definition 14075 SUBTYPE OF (product_definition); 14076 WHERE 14077 WR1: 14078 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; 14079END_ENTITY; 14080 14081-- IN AP242 14082ENTITY perpendicular_assembly_constraint 14083 SUBTYPE OF (binary_assembly_constraint, perpendicular_geometric_constraint); 14084END_ENTITY; 14085 14086-- IN AP242 14087ENTITY perpendicular_geometric_constraint 14088 SUBTYPE OF (explicit_geometric_constraint); 14089 SELF\explicit_constraint.constrained_elements : SET [1:?] OF linear_geometry_constraint_element; 14090 SELF\explicit_constraint.reference_elements : SET [0:2] OF linear_geometry_constraint_element; 14091 WHERE 14092 WR1: 14093 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)))); 14094 WR2: 14095 (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) IN [ 2, 3 ]); 14096 WR3: 14097 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)); 14098END_ENTITY; 14099 14100ENTITY perpendicular_to 14101 SUBTYPE OF (derived_shape_aspect); 14102 WHERE 14103 WR1: 14104 SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; 14105END_ENTITY; 14106 14107ENTITY perpendicularity_tolerance 14108 SUBTYPE OF (geometric_tolerance_with_datum_reference); 14109END_ENTITY; 14110 14111ENTITY person; 14112 id : identifier; 14113 last_name : OPTIONAL label; 14114 first_name : OPTIONAL label; 14115 middle_names : OPTIONAL LIST [1:?] OF label; 14116 prefix_titles : OPTIONAL LIST [1:?] OF label; 14117 suffix_titles : OPTIONAL LIST [1:?] OF label; 14118 WHERE 14119 WR1: 14120 EXISTS(last_name) OR EXISTS(first_name); 14121END_ENTITY; 14122 14123-- DIFF IN AP214 14124ENTITY person_and_organization; 14125 the_person : person; 14126 the_organization : organization; 14127 DERIVE 14128 description : text := get_description_value(SELF); 14129 name : label := get_name_value(SELF); 14130 WHERE 14131 WR1: 14132 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 14133 WR2: 14134 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 14135END_ENTITY; 14136 14137-- DIFF IN AP214 14138ENTITY person_and_organization_address 14139 SUBTYPE OF (organizational_address, personal_address); 14140 SELF\organizational_address.organizations : SET [1:1] OF organization; 14141 SELF\personal_address.people : SET [1:1] OF person; 14142 WHERE 14143 WR1: 14144 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; 14145END_ENTITY; 14146 14147ENTITY person_and_organization_assignment 14148 ABSTRACT SUPERTYPE; 14149 assigned_person_and_organization : person_and_organization; 14150 role : person_and_organization_role; 14151END_ENTITY; 14152 14153ENTITY person_and_organization_role; 14154 name : label; 14155 DERIVE 14156 description : text := get_description_value(SELF); 14157 WHERE 14158 WR1: 14159 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 14160END_ENTITY; 14161 14162ENTITY personal_address 14163 SUBTYPE OF (address); 14164 people : SET [1:?] OF person; 14165 description : OPTIONAL text; 14166END_ENTITY; 14167 14168-- IN AP242 14169ENTITY pgc_with_dimension 14170 SUBTYPE OF (parallel_geometric_constraint); 14171 distance_value : non_negative_length_measure; 14172 negative_direction : BOOLEAN; 14173 WHERE 14174 WR1: 14175 (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); 14176 WR2: 14177 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; 14178END_ENTITY; 14179 14180-- IN AP203e2/AP242 14181ENTITY physical_breakdown_context 14182 SUBTYPE OF (breakdown_context); 14183END_ENTITY; 14184 14185-- IN AP242 14186ENTITY physical_component 14187 SUBTYPE OF (assembly_component); 14188END_ENTITY; 14189 14190-- IN AP242 14191ENTITY physical_component_feature 14192 SUBTYPE OF (component_feature); 14193END_ENTITY; 14194 14195-- IN AP242 14196ENTITY physical_component_terminal 14197 SUBTYPE OF (component_terminal, physical_component_feature); 14198END_ENTITY; 14199 14200-- IN AP203e2/AP242 14201ENTITY physical_element_usage 14202 SUBTYPE OF (breakdown_element_usage); 14203END_ENTITY; 14204 14205-- IN AP214 14206ENTITY physically_modelled_product_definition 14207 SUBTYPE OF (product_definition_with_associated_documents); 14208 WHERE 14209 wr1: 14210 SELF.frame_of_reference\application_context_element.name = 'physical model occurrence'; 14211 wr2: 14212 (SIZEOF(documentation_ids) = 1) AND (SIZEOF(QUERY (d <* documentation_ids| (SIZEOF(QUERY (drt <* d.representation_types| (drt.name = 'physical'))) = 1))) = 1); 14213END_ENTITY; 14214 14215-- IN AP203e2/AP242 14216ENTITY picture_representation 14217 SUBTYPE OF (presentation_view); 14218 SELF\representation.items : SET [2:?] OF picture_representation_item_select; 14219 INVERSE 14220 size : presentation_size FOR unit; 14221 WHERE 14222 WR1: 14223 SIZEOF(QUERY (item <* items| ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(item)))) = 1; 14224 WR2: 14225 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; 14226END_ENTITY; 14227 14228-- IN AP203e2/AP242 14229ENTITY picture_representation_item 14230 ABSTRACT SUPERTYPE OF (ONEOF(externally_defined_picture_representation_item, predefined_picture_representation_item)) 14231 SUBTYPE OF (bytes_representation_item); 14232END_ENTITY; 14233 14234-- DIFF IN AP214 14235ENTITY placed_datum_target_feature 14236 SUBTYPE OF (datum_target); 14237 DERIVE 14238 representation_associations : SET [0:?] OF property_definition_representation := get_shape_aspect_property_definition_representations(SELF); 14239 WHERE 14240 WR1: 14241 SELF.description IN [ 'point', 'line', 'rectangle', 'circle', 'circular curve' ]; 14242 WR2: 14243 SIZEOF(QUERY (pdr <* representation_associations| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1; 14244 WR3: 14245 valid_datum_target_parameters(SELF); 14246END_ENTITY; 14247 14248ENTITY placed_feature 14249 SUBTYPE OF (shape_aspect); 14250END_ENTITY; 14251 14252ENTITY placement 14253 SUPERTYPE OF (ONEOF(axis1_placement, axis2_placement_2d, axis2_placement_3d)) 14254 SUBTYPE OF (geometric_representation_item); 14255 location : cartesian_point; 14256END_ENTITY; 14257 14258ENTITY planar_box 14259 SUBTYPE OF (planar_extent); 14260 placement : axis2_placement; 14261END_ENTITY; 14262 14263-- DIFF IN AP214 14264-- IN AP214/AP242 14265ENTITY planar_curve_pair 14266 SUPERTYPE OF (ONEOF(sliding_curve_pair, rolling_curve_pair) ANDOR planar_curve_pair_range) 14267 SUBTYPE OF (high_order_kinematic_pair); 14268 curve_1 : curve; 14269 curve_2 : curve; 14270 orientation : BOOLEAN; 14271 WHERE 14272 WR1: 14273 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (curve_1 IN r.items))) = 0; 14274 WR2: 14275 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_2| NOT (curve_2 IN r.items))) = 0; 14276 WR3: 14277 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 14278END_ENTITY; 14279 14280-- DIFF IN AP214 14281-- IN AP214/AP242 14282ENTITY planar_curve_pair_range 14283 SUBTYPE OF (planar_curve_pair); 14284 range_on_curve_1 : trimmed_curve; 14285 range_on_curve_2 : trimmed_curve; 14286 WHERE 14287 WR1: 14288 SELF\planar_curve_pair.curve_1 :=: range_on_curve_1.basis_curve; 14289 WR2: 14290 SELF\planar_curve_pair.curve_2 :=: range_on_curve_2.basis_curve; 14291 WR3: 14292 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (range_on_curve_1 IN r.items))) = 0; 14293 WR4: 14294 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_2| NOT (range_on_curve_2 IN r.items))) = 0; 14295END_ENTITY; 14296 14297ENTITY planar_extent 14298 SUBTYPE OF (geometric_representation_item); 14299 size_in_x : length_measure; 14300 size_in_y : length_measure; 14301END_ENTITY; 14302 14303-- DIFF IN AP214 14304-- IN AP214/AP242 14305ENTITY planar_pair 14306 SUBTYPE OF (low_order_kinematic_pair); 14307 DERIVE 14308 SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; 14309 SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; 14310 SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; 14311 SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; 14312 SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; 14313 SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; 14314END_ENTITY; 14315 14316-- IN AP214 14317ENTITY planar_pair_range 14318 SUBTYPE OF (simple_pair_range); 14319 SELF\simple_pair_range.applies_to_pair : planar_pair; 14320 lower_limit_actual_rotation : rotational_range_measure; 14321 upper_limit_actual_rotation : rotational_range_measure; 14322 lower_limit_actual_translation_x : translational_range_measure; 14323 upper_limit_actual_translation_x : translational_range_measure; 14324 lower_limit_actual_translation_y : translational_range_measure; 14325 upper_limit_actual_translation_y : translational_range_measure; 14326 WHERE 14327 wr1: 14328 (('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); 14329 wr2: 14330 (('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); 14331 wr3: 14332 (('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); 14333END_ENTITY; 14334 14335-- DIFF IN AP214 14336-- IN AP214/AP242 14337ENTITY planar_pair_value 14338 SUBTYPE OF (pair_value); 14339 actual_rotation : plane_angle_measure; 14340 actual_translation_x : length_measure; 14341 actual_translation_y : length_measure; 14342 SELF\pair_value.applies_to_pair : planar_pair; 14343END_ENTITY; 14344 14345-- IN AP242 14346ENTITY planar_pair_with_range 14347 SUBTYPE OF (planar_pair); 14348 lower_limit_actual_rotation : OPTIONAL plane_angle_measure; 14349 upper_limit_actual_rotation : OPTIONAL plane_angle_measure; 14350 lower_limit_actual_translation_x : OPTIONAL length_measure; 14351 upper_limit_actual_translation_x : OPTIONAL length_measure; 14352 lower_limit_actual_translation_y : OPTIONAL length_measure; 14353 upper_limit_actual_translation_y : OPTIONAL length_measure; 14354 WHERE 14355 WR1: 14356 (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); 14357 WR2: 14358 (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); 14359 WR3: 14360 (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); 14361END_ENTITY; 14362 14363-- IN AP214/AP242 14364ENTITY planar_shape_representation 14365 SUBTYPE OF (shape_representation); 14366 WHERE 14367 WR1: 14368 SIZEOF(SELF.items) = 1; 14369 WR2: 14370 SIZEOF(QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(it)))) = 1; 14371END_ENTITY; 14372 14373ENTITY plane 14374 SUBTYPE OF (elementary_surface); 14375END_ENTITY; 14376 14377-- IN AP242 14378ENTITY plane_angle_and_length_pair 14379 SUBTYPE OF (founded_item); 14380 plane_angle_value : plane_angle_measure; 14381 length_value : length_measure; 14382END_ENTITY; 14383 14384-- IN AP242 14385ENTITY plane_angle_and_ratio_pair 14386 SUBTYPE OF (founded_item); 14387 plane_angle_value : plane_angle_measure; 14388 ratio_value : ratio_measure; 14389END_ENTITY; 14390 14391ENTITY plane_angle_measure_with_unit 14392 SUBTYPE OF (measure_with_unit); 14393 WHERE 14394 WR1: 14395 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 14396END_ENTITY; 14397 14398ENTITY plane_angle_unit 14399 SUBTYPE OF (named_unit); 14400 WHERE 14401 WR1: 14402 ((((((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); 14403END_ENTITY; 14404 14405-- IN AP214/AP242 14406ENTITY plus_expression 14407 SUBTYPE OF (multiple_arity_numeric_expression); 14408END_ENTITY; 14409 14410-- CASE DIFF IN AP214 14411ENTITY plus_minus_tolerance; 14412 range : tolerance_method_definition; 14413 toleranced_dimension : dimensional_characteristic; 14414 UNIQUE 14415 UR1 : toleranced_dimension; 14416END_ENTITY; 14417 14418-- IN AP203e2 14419ENTITY ply_laminate_definition 14420 SUBTYPE OF (product_definition); 14421 WHERE 14422 WR1: 14423 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; 14424END_ENTITY; 14425 14426-- IN AP203e2/AP242 14427ENTITY ply_laminate_sequence_definition 14428 SUBTYPE OF (product_definition); 14429 WHERE 14430 WR1: 14431 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; 14432END_ENTITY; 14433 14434-- IN AP203e2/AP242 14435ENTITY ply_laminate_table 14436 SUBTYPE OF (part_laminate_table); 14437END_ENTITY; 14438 14439-- IN AP214/AP242 14440ENTITY pocket 14441 SUBTYPE OF (feature_definition); 14442 WHERE 14443 WR1: 14444 SELF\characterized_object.description IN [ 'closed rectangular', 'open rectangular', 'complex', 'circular cutout', 'complex cutout', 'recess' ]; 14445 WR2: 14446 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; 14447 WR3: 14448 SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1; 14449 WR4: 14450 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; 14451 WR5: 14452 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; 14453 WR6: 14454 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; 14455 WR7: 14456 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); 14457 WR8: 14458 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); 14459 WR9: 14460 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); 14461 WR10: 14462 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; 14463 WR11: 14464 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); 14465 WR12: 14466 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); 14467 WR13: 14468 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); 14469 WR14: 14470 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); 14471 WR15: 14472 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; 14473 WR16: 14474 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); 14475 WR17: 14476 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); 14477END_ENTITY; 14478 14479-- IN AP214/AP242 14480ENTITY pocket_bottom 14481 SUBTYPE OF (shape_aspect); 14482 WHERE 14483 WR1: 14484 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 14485 WR2: 14486 SELF.description IN [ 'planar', 'complex', 'through' ]; 14487 WR3: 14488 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); 14489 WR4: 14490 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); 14491 WR5: 14492 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); 14493 WR6: 14494 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); 14495 WR7: 14496 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); 14497 WR8: 14498 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); 14499 WR9: 14500 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); 14501 WR10: 14502 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; 14503 WR11: 14504 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); 14505END_ENTITY; 14506 14507-- IN AP242 14508ENTITY pogc_with_dimension 14509 SUBTYPE OF (parallel_offset_geometric_constraint); 14510 offset_value : positive_length_measure; 14511 offset_direction_constrained : BOOLEAN; 14512 WHERE 14513 WR1: 14514 (SIZEOF(SELF\explicit_constraint.reference_elements) = 1) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); 14515 WR2: 14516 NOT (offset_direction_constrained = TRUE) AND ((offset_type = curve_2d_offset) OR (offset_type = surface_offset)); 14517END_ENTITY; 14518 14519ENTITY point 14520 SUPERTYPE OF (ONEOF(cartesian_point, point_on_curve, point_on_surface, point_replica, degenerate_pcurve)) 14521 SUBTYPE OF (geometric_representation_item); 14522END_ENTITY; 14523 14524-- IN AP203e2/AP242 14525ENTITY point_and_vector 14526 SUBTYPE OF (compound_representation_item, geometric_representation_item); 14527 SELF\compound_representation_item.item_element : point_and_vector_members; 14528END_ENTITY; 14529 14530-- IN AP242 14531ENTITY point_distance_geometric_constraint 14532 SUBTYPE OF (explicit_geometric_constraint); 14533 SELF\explicit_constraint.constrained_elements : SET [1:?] OF point; 14534 SELF\explicit_constraint.reference_elements : SET [0:4] OF point_curve_or_surface_constraint_element; 14535 WHERE 14536 WR1: 14537 (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); 14538END_ENTITY; 14539 14540ENTITY point_on_curve 14541 SUBTYPE OF (point); 14542 basis_curve : curve; 14543 point_parameter : parameter_value; 14544END_ENTITY; 14545 14546-- IN AP242 14547ENTITY point_on_edge_curve 14548 SUBTYPE OF (point_on_curve); 14549 basis_edge_curve : edge_curve; 14550 DERIVE 14551 SELF\point_on_curve.basis_curve : curve := SELF.basis_edge_curve.edge_geometry; 14552 WHERE 14553 WR1: 14554 SIZEOF(using_representations(SELF.basis_edge_curve) * relating_shape_representations_of_extreme_values(SELF)) > 0; 14555END_ENTITY; 14556 14557-- IN AP242 14558ENTITY point_on_face_surface 14559 SUBTYPE OF (point_on_surface); 14560 basis_face_surface : face_surface; 14561 DERIVE 14562 SELF\point_on_surface.basis_surface : surface := SELF.basis_face_surface.face_geometry; 14563 WHERE 14564 WR1: 14565 SIZEOF(using_representations(SELF.basis_face_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; 14566END_ENTITY; 14567 14568-- DIFF IN AP214 14569-- IN AP214/AP242 14570ENTITY point_on_planar_curve_pair 14571 SUBTYPE OF (high_order_kinematic_pair); 14572 pair_curve : curve; 14573 orientation : BOOLEAN; 14574 WHERE 14575 WR1: 14576 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (pair_curve IN r.items))) = 0; 14577 WR2: 14578 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 14579END_ENTITY; 14580 14581-- IN AP214 14582ENTITY point_on_planar_curve_pair_range 14583 SUBTYPE OF (simple_pair_range); 14584 SELF\simple_pair_range.applies_to_pair : point_on_planar_curve_pair; 14585 range_on_pair_curve : trimmed_curve; 14586 lower_limit_yaw : rotational_range_measure; 14587 upper_limit_yaw : rotational_range_measure; 14588 lower_limit_pitch : rotational_range_measure; 14589 upper_limit_pitch : rotational_range_measure; 14590 lower_limit_roll : rotational_range_measure; 14591 upper_limit_roll : rotational_range_measure; 14592 WHERE 14593 wr1: 14594 SELF\simple_pair_range.applies_to_pair\point_on_planar_curve_pair.pair_curve :=: range_on_pair_curve.basis_curve; 14595 wr2: 14596 (('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); 14597 wr3: 14598 (('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); 14599 wr4: 14600 (('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); 14601END_ENTITY; 14602 14603-- DIFF IN AP214 14604-- IN AP214/AP242 14605ENTITY point_on_planar_curve_pair_value 14606 SUBTYPE OF (pair_value); 14607 actual_point_on_curve : point_on_curve; 14608 input_orientation : spatial_rotation; 14609 SELF\pair_value.applies_to_pair : point_on_planar_curve_pair; 14610 DERIVE 14611 actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, input_orientation); 14612 WHERE 14613 WR1: 14614 SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve :=: actual_point_on_curve.basis_curve; 14615END_ENTITY; 14616 14617-- IN AP242 14618ENTITY point_on_planar_curve_pair_with_range 14619 SUBTYPE OF (point_on_planar_curve_pair); 14620 range_on_pair_curve : trimmed_curve; 14621 lower_limit_yaw : OPTIONAL plane_angle_measure; 14622 upper_limit_yaw : OPTIONAL plane_angle_measure; 14623 lower_limit_pitch : OPTIONAL plane_angle_measure; 14624 upper_limit_pitch : OPTIONAL plane_angle_measure; 14625 lower_limit_roll : OPTIONAL plane_angle_measure; 14626 upper_limit_roll : OPTIONAL plane_angle_measure; 14627 WHERE 14628 WR1: 14629 (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); 14630 WR2: 14631 (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); 14632 WR3: 14633 (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); 14634 WR4: 14635 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (range_on_pair_curve IN r.items))) = 0; 14636END_ENTITY; 14637 14638ENTITY point_on_surface 14639 SUBTYPE OF (point); 14640 basis_surface : surface; 14641 point_parameter_u : parameter_value; 14642 point_parameter_v : parameter_value; 14643END_ENTITY; 14644 14645-- DIFF IN AP214 14646-- IN AP214/AP242 14647ENTITY point_on_surface_pair 14648 SUBTYPE OF (high_order_kinematic_pair); 14649 pair_surface : surface; 14650 WHERE 14651 WR1: 14652 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (pair_surface IN r.items))) = 0; 14653 WR2: 14654 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 14655END_ENTITY; 14656 14657-- IN AP214 14658ENTITY point_on_surface_pair_range 14659 SUBTYPE OF (simple_pair_range); 14660 SELF\simple_pair_range.applies_to_pair : point_on_surface_pair; 14661 range_on_pair_surface : rectangular_trimmed_surface; 14662 lower_limit_yaw : rotational_range_measure; 14663 upper_limit_yaw : rotational_range_measure; 14664 lower_limit_pitch : rotational_range_measure; 14665 upper_limit_pitch : rotational_range_measure; 14666 lower_limit_roll : rotational_range_measure; 14667 upper_limit_roll : rotational_range_measure; 14668 WHERE 14669 wr1: 14670 SELF\simple_pair_range.applies_to_pair\point_on_surface_pair.pair_surface :=: range_on_pair_surface.basis_surface; 14671 wr2: 14672 (('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); 14673 wr3: 14674 (('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); 14675 wr4: 14676 (('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); 14677END_ENTITY; 14678 14679-- DIFF IN AP214 14680-- IN AP214/AP242 14681ENTITY point_on_surface_pair_value 14682 SUBTYPE OF (pair_value); 14683 actual_point_on_surface : point_on_surface; 14684 input_orientation : spatial_rotation; 14685 SELF\pair_value.applies_to_pair : point_on_surface_pair; 14686 DERIVE 14687 actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, input_orientation); 14688 WHERE 14689 WR1: 14690 SELF\pair_value.applies_to_pair\point_on_surface_pair.pair_surface :=: actual_point_on_surface.basis_surface; 14691END_ENTITY; 14692 14693-- IN AP242 14694ENTITY point_on_surface_pair_with_range 14695 SUBTYPE OF (point_on_surface_pair); 14696 range_on_pair_surface : rectangular_trimmed_surface; 14697 lower_limit_yaw : OPTIONAL plane_angle_measure; 14698 upper_limit_yaw : OPTIONAL plane_angle_measure; 14699 lower_limit_pitch : OPTIONAL plane_angle_measure; 14700 upper_limit_pitch : OPTIONAL plane_angle_measure; 14701 lower_limit_roll : OPTIONAL plane_angle_measure; 14702 upper_limit_roll : OPTIONAL plane_angle_measure; 14703 WHERE 14704 WR1: 14705 (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); 14706 WR2: 14707 (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); 14708 WR3: 14709 (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); 14710 WR4: 14711 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (range_on_pair_surface IN r.items))) = 0; 14712END_ENTITY; 14713 14714-- IN AP203e2/AP242 14715ENTITY point_path 14716 SUBTYPE OF (compound_representation_item, geometric_representation_item); 14717 SELF\compound_representation_item.item_element : point_path_members; 14718END_ENTITY; 14719 14720-- DIFF IN AP214 14721-- IN AP214/AP242 14722ENTITY point_placement_shape_representation 14723 SUBTYPE OF (shape_representation); 14724 SELF\representation.items : SET [1:?] OF point_placement_shape_representation_item; 14725 WHERE 14726 WR1: 14727 SIZEOF(QUERY (i <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.COMPOUND_REPRESENTATION_ITEM', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(i)) = 1))) > 0; 14728END_ENTITY; 14729 14730ENTITY point_replica 14731 SUBTYPE OF (point); 14732 parent_pt : point; 14733 transformation : cartesian_transformation_operator; 14734 WHERE 14735 WR1: 14736 transformation.dim = parent_pt.dim; 14737 WR2: 14738 acyclic_point_replica(SELF, parent_pt); 14739END_ENTITY; 14740 14741ENTITY point_style 14742 SUBTYPE OF (founded_item); 14743 name : label; 14744 marker : marker_select; 14745 marker_size : size_select; 14746 marker_colour : colour; 14747END_ENTITY; 14748 14749-- IN AP242 14750ENTITY point_to_point_path 14751 SUBTYPE OF (path_node); 14752 DERIVE 14753 SELF\kinematic_path_segment.transition : transition_code := discontinuous; 14754END_ENTITY; 14755 14756-- IN AP203e2 14757ENTITY polar_complex_number_literal 14758 SUBTYPE OF (generic_literal); 14759 radius : REAL; 14760 angle : REAL; 14761 WHERE 14762 WR1: 14763 radius >= 0; 14764 WR2: 14765 (0 <= angle) AND (angle < 2 * 3.14159); 14766END_ENTITY; 14767 14768-- IN AP242 14769ENTITY polar_complex_number_region 14770 SUBTYPE OF (maths_space, generic_literal); 14771 centre : complex_number_literal; 14772 distance_constraint : real_interval; 14773 direction_constraint : finite_real_interval; 14774 WHERE 14775 WR1: 14776 min_exists(distance_constraint) AND (real_min(distance_constraint) >= 0.0); 14777 WR2: 14778 (-3.14159 <= direction_constraint.min) AND (direction_constraint.min < 3.14159); 14779 WR3: 14780 direction_constraint.max - direction_constraint.min <= 2.0 * 3.14159; 14781 WR4: 14782 (direction_constraint.max - direction_constraint.min < 2.0 * 3.14159) OR (direction_constraint.min_closure = open); 14783 WR5: 14784 ((direction_constraint.max - direction_constraint.min < 2.0 * 3.14159) OR (direction_constraint.max_closure = open)) OR (direction_constraint.min = -3.14159); 14785 WR6: 14786 (((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); 14787END_ENTITY; 14788 14789ENTITY poly_loop 14790 SUBTYPE OF (loop, geometric_representation_item); 14791 polygon : LIST [3:?] OF UNIQUE cartesian_point; 14792END_ENTITY; 14793 14794-- IN AP242 14795ENTITY polygonal_area 14796 SUBTYPE OF (primitive_2d); 14797 bounds : LIST [3:?] OF UNIQUE cartesian_point; 14798END_ENTITY; 14799 14800ENTITY polyline 14801 SUBTYPE OF (bounded_curve); 14802 points : LIST [2:?] OF cartesian_point; 14803END_ENTITY; 14804 14805ENTITY position_tolerance 14806 SUBTYPE OF (geometric_tolerance); 14807END_ENTITY; 14808 14809-- IN AP203e2/AP242 14810ENTITY positioned_sketch 14811 SUBTYPE OF (geometric_representation_item); 14812 sketch_basis : sketch_basis_select; 14813 auxiliary_elements : SET [0:?] OF auxiliary_geometric_representation_item; 14814 WHERE 14815 WR1: 14816 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))); 14817 WR2: 14818 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))); 14819 WR3: 14820 SIZEOF(QUERY (q <* auxiliary_elements| (SIZEOF(TYPEOF(q) * [ 'STEP_MERGED_CAD_SCHEMA.POINT', 'STEP_MERGED_CAD_SCHEMA.CURVE' ]) = 0))) = 0; 14821 WR4: 14822 SIZEOF(QUERY (q <* auxiliary_elements| (q\geometric_representation_item.dim <> 3))) = 0; 14823END_ENTITY; 14824 14825-- IN AP214/AP242 14826ENTITY power_expression 14827 SUBTYPE OF (binary_numeric_expression); 14828END_ENTITY; 14829 14830-- IN AP203e2/AP242 14831ENTITY power_measure_with_unit 14832 SUBTYPE OF (measure_with_unit); 14833 WHERE 14834 WR1: 14835 'STEP_MERGED_CAD_SCHEMA.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 14836END_ENTITY; 14837 14838-- IN AP203e2/AP242 14839ENTITY power_unit 14840 SUBTYPE OF (derived_unit); 14841 WHERE 14842 WR1: 14843 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.watt); 14844END_ENTITY; 14845 14846-- IN AP242 14847ENTITY pre_defined_character_glyph 14848 SUBTYPE OF (pre_defined_item); 14849END_ENTITY; 14850 14851ENTITY pre_defined_colour 14852 SUBTYPE OF (pre_defined_item, colour); 14853END_ENTITY; 14854 14855ENTITY pre_defined_curve_font 14856 SUBTYPE OF (pre_defined_item); 14857END_ENTITY; 14858 14859ENTITY pre_defined_dimension_symbol 14860 SUBTYPE OF (pre_defined_symbol); 14861 WHERE 14862 WR1: 14863 SELF.name IN [ 'arc length', 'conical taper', 'counterbore', 'countersink', 'depth', 'diameter', 'plus minus', 'radius', 'slope', 'spherical diameter', 'spherical radius', 'square' ]; 14864END_ENTITY; 14865 14866ENTITY pre_defined_geometrical_tolerance_symbol 14867 SUBTYPE OF (pre_defined_symbol); 14868 WHERE 14869 WR1: 14870 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' ]; 14871END_ENTITY; 14872 14873ENTITY pre_defined_item; 14874 name : label; 14875END_ENTITY; 14876 14877ENTITY pre_defined_marker 14878 SUBTYPE OF (pre_defined_item); 14879END_ENTITY; 14880 14881ENTITY pre_defined_point_marker_symbol 14882 SUBTYPE OF (pre_defined_marker, pre_defined_symbol); 14883 WHERE 14884 WR1: 14885 SELF.name IN [ 'asterisk', 'circle', 'dot', 'plus', 'square', 'triangle', 'x' ]; 14886END_ENTITY; 14887 14888-- IN AP214 14889ENTITY pre_defined_presentation_style 14890 SUBTYPE OF (founded_item, pre_defined_item); 14891END_ENTITY; 14892 14893ENTITY pre_defined_surface_condition_symbol 14894 SUBTYPE OF (pre_defined_symbol); 14895 WHERE 14896 WR1: 14897 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' ]; 14898END_ENTITY; 14899 14900-- IN AP203e2/AP242 14901ENTITY pre_defined_surface_side_style 14902 SUBTYPE OF (pre_defined_item); 14903END_ENTITY; 14904 14905ENTITY pre_defined_symbol 14906 SUBTYPE OF (pre_defined_item); 14907END_ENTITY; 14908 14909ENTITY pre_defined_terminator_symbol 14910 SUBTYPE OF (pre_defined_symbol); 14911 WHERE 14912 WR1: 14913 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' ]; 14914END_ENTITY; 14915 14916ENTITY pre_defined_text_font 14917 SUBTYPE OF (pre_defined_item); 14918END_ENTITY; 14919 14920-- IN AP203e2/AP242 14921ENTITY pre_defined_tile 14922 SUBTYPE OF (pre_defined_item); 14923END_ENTITY; 14924 14925ENTITY precision_qualifier; 14926 precision_value : INTEGER; 14927END_ENTITY; 14928 14929-- IN AP203e2/AP242 14930ENTITY predefined_picture_representation_item 14931 SUBTYPE OF (picture_representation_item); 14932 WHERE 14933 WR1: 14934 SELF\representation_item.name IN pre_defined_picture_representation_types; 14935END_ENTITY; 14936 14937-- IN AP242 14938ENTITY prescribed_path 14939 SUBTYPE OF (link_motion_representation_along_path); 14940 controlling_joints : OPTIONAL SET [1:6] OF kinematic_joint; 14941END_ENTITY; 14942 14943ENTITY presentation_area 14944 SUBTYPE OF (presentation_representation); 14945 WHERE 14946 WR1: 14947 (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); 14948END_ENTITY; 14949 14950ENTITY presentation_layer_assignment; 14951 name : label; 14952 description : text; 14953 assigned_items : SET [1:?] OF layered_item; 14954END_ENTITY; 14955 14956ENTITY presentation_representation 14957 SUPERTYPE OF (ONEOF(presentation_area, presentation_view)) 14958 SUBTYPE OF (representation); 14959 SELF\representation.context_of_items : geometric_representation_context; 14960 WHERE 14961 WR1: 14962 SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2; 14963 WR2: 14964 (('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); 14965END_ENTITY; 14966 14967ENTITY presentation_set; 14968 INVERSE 14969 areas : SET [1:?] OF area_in_set FOR in_set; 14970END_ENTITY; 14971 14972-- CASE DIFF IN AP214 14973ENTITY presentation_size; 14974 unit : presentation_size_assignment_select; 14975 size : planar_box; 14976 UNIQUE 14977 UR1 : unit; 14978 WHERE 14979 WR1: 14980 ('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); 14981END_ENTITY; 14982 14983ENTITY presentation_style_assignment 14984 SUBTYPE OF (founded_item); 14985 styles : SET [1:?] OF presentation_style_select; 14986 WHERE 14987 WR1: 14988 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; 14989 WR2: 14990 SIZEOF(QUERY (style1 <* SELF.styles| ('STEP_MERGED_CAD_SCHEMA.SURFACE_STYLE_USAGE' IN TYPEOF(style1)))) <= 2; 14991 WR3: 14992 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; 14993END_ENTITY; 14994 14995ENTITY presentation_style_by_context 14996 SUBTYPE OF (presentation_style_assignment); 14997 style_context : style_context_select; 14998END_ENTITY; 14999 15000ENTITY presentation_view 15001 SUBTYPE OF (presentation_representation); 15002END_ENTITY; 15003 15004ENTITY presented_item 15005 ABSTRACT SUPERTYPE; 15006END_ENTITY; 15007 15008ENTITY presented_item_representation; 15009 presentation : presentation_representation_select; 15010 item : presented_item; 15011END_ENTITY; 15012 15013-- IN AP203e2/AP242 15014ENTITY pressure_measure_with_unit 15015 SUBTYPE OF (measure_with_unit); 15016 WHERE 15017 WR1: 15018 'STEP_MERGED_CAD_SCHEMA.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 15019END_ENTITY; 15020 15021-- IN AP203e2/AP242 15022ENTITY pressure_unit 15023 SUBTYPE OF (derived_unit); 15024 WHERE 15025 WR1: 15026 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.pascal); 15027END_ENTITY; 15028 15029-- IN AP242 15030ENTITY previous_change_element_assignment 15031 SUBTYPE OF (group_assignment); 15032 items : SET [1:?] OF change_management_object; 15033 SELF\group_assignment.assigned_group : previous_element_assignment_select; 15034END_ENTITY; 15035 15036-- IN AP242 15037ENTITY primitive_2d 15038 SUPERTYPE OF (ONEOF(circular_area, elliptic_area, rectangular_area, polygonal_area, half_space_2d)) 15039 SUBTYPE OF (geometric_representation_item); 15040 WHERE 15041 WR1: 15042 SELF\geometric_representation_item.dim = 2; 15043END_ENTITY; 15044 15045-- IN AP242 15046ENTITY primitive_2d_with_inner_boundary 15047 SUBTYPE OF (complex_area, compound_representation_item); 15048 DERIVE 15049 inner_boundary : compound_inner_area_boundary := SELF\compound_representation_item.item_element; 15050 WHERE 15051 WR1: 15052 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; 15053 WR2: 15054 SIZEOF(QUERY (inner <* inner_boundary| ('STEP_MERGED_CAD_SCHEMA.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF(inner)))) = 0; 15055 WR3: 15056 open_path_based_inner_boundary(inner_boundary); 15057END_ENTITY; 15058 15059-- DIFF IN AP214 15060-- IN AP214/AP242 15061ENTITY prismatic_pair 15062 SUBTYPE OF (low_order_kinematic_pair); 15063 DERIVE 15064 SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; 15065 SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; 15066 SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; 15067 SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; 15068 SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; 15069 SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; 15070END_ENTITY; 15071 15072-- IN AP214 15073ENTITY prismatic_pair_range 15074 SUBTYPE OF (simple_pair_range); 15075 SELF\simple_pair_range.applies_to_pair : prismatic_pair; 15076 lower_limit_actual_translation : translational_range_measure; 15077 upper_limit_actual_translation : translational_range_measure; 15078 WHERE 15079 wr1: 15080 (('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); 15081END_ENTITY; 15082 15083-- DIFF IN AP214 15084-- IN AP214/AP242 15085ENTITY prismatic_pair_value 15086 SUBTYPE OF (pair_value); 15087 actual_translation : length_measure; 15088 SELF\pair_value.applies_to_pair : prismatic_pair; 15089END_ENTITY; 15090 15091-- IN AP242 15092ENTITY prismatic_pair_with_range 15093 SUBTYPE OF (prismatic_pair); 15094 lower_limit_actual_translation : OPTIONAL length_measure; 15095 upper_limit_actual_translation : OPTIONAL length_measure; 15096 WHERE 15097 WR1: 15098 (NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS(upper_limit_actual_translation)) XOR (lower_limit_actual_translation < upper_limit_actual_translation); 15099END_ENTITY; 15100 15101-- IN AP203e2/AP242 15102ENTITY procedural_representation 15103 SUBTYPE OF (representation); 15104 SELF\representation.items : SET [1:?] OF procedural_representation_sequence; 15105END_ENTITY; 15106 15107-- IN AP203e2/AP242 15108ENTITY procedural_representation_sequence 15109 SUBTYPE OF (representation_item); 15110 elements : LIST [1:?] OF representation_item; 15111 suppressed_items : SET [0:?] OF representation_item; 15112 rationale : text; 15113 WHERE 15114 WR1: 15115 SIZEOF(QUERY (q <* suppressed_items| NOT (q IN elements))) = 0; 15116END_ENTITY; 15117 15118-- IN AP203e2/AP242 15119ENTITY procedural_shape_representation 15120 SUBTYPE OF (procedural_representation, shape_representation); 15121 SELF\representation.items : SET [1:?] OF procedural_shape_representation_sequence; 15122END_ENTITY; 15123 15124-- DIFF IN AP203e2 15125-- IN AP203e2/AP242 15126ENTITY procedural_shape_representation_sequence 15127 SUBTYPE OF (geometric_representation_item, procedural_representation_sequence); 15128 SELF\procedural_representation_sequence.elements : LIST [1:?] OF shape_representation_item; 15129END_ENTITY; 15130 15131-- IN AP214/AP242 15132ENTITY process_operation 15133 SUBTYPE OF (action_method); 15134 WHERE 15135 WR1: 15136 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; 15137 WR2: 15138 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; 15139END_ENTITY; 15140 15141-- IN AP214/AP242 15142ENTITY process_plan 15143 SUBTYPE OF (action); 15144 WHERE 15145 WR1: 15146 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; 15147 WR2: 15148 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')); 15149END_ENTITY; 15150 15151-- IN AP214/AP242 15152ENTITY process_product_association; 15153 name : label; 15154 description : text; 15155 defined_product : characterized_product_definition; 15156 process : product_definition_process; 15157END_ENTITY; 15158 15159-- IN AP214/AP242 15160ENTITY process_property_association; 15161 name : label; 15162 description : text; 15163 process : property_process; 15164 property_or_shape : property_or_shape_select; 15165END_ENTITY; 15166 15167ENTITY product; 15168 id : identifier; 15169 name : label; 15170 description : OPTIONAL text; 15171 frame_of_reference : SET [1:?] OF product_context; 15172END_ENTITY; 15173 15174-- IN AP242 15175ENTITY product_as_planned 15176 SUBTYPE OF (product_definition_formation); 15177END_ENTITY; 15178 15179ENTITY product_category; 15180 name : label; 15181 description : OPTIONAL text; 15182 DERIVE 15183 id : identifier := get_id_value(SELF); 15184 WHERE 15185 WR1: 15186 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 15187END_ENTITY; 15188 15189-- IN AP214/AP242 15190ENTITY product_category_relationship; 15191 name : label; 15192 description : OPTIONAL text; 15193 category : product_category; 15194 sub_category : product_category; 15195 WHERE 15196 WR1: 15197 acyclic_product_category_relationship(SELF, [ SELF.sub_category ]); 15198END_ENTITY; 15199 15200ENTITY product_class 15201 SUBTYPE OF (product_concept, characterized_object); 15202END_ENTITY; 15203 15204-- CASE DIFF IN AP214 15205ENTITY product_concept; 15206 id : identifier; 15207 name : label; 15208 description : OPTIONAL text; 15209 market_context : product_concept_context; 15210 UNIQUE 15211 UR1 : id; 15212END_ENTITY; 15213 15214ENTITY product_concept_context 15215 SUBTYPE OF (application_context_element); 15216 market_segment_type : label; 15217END_ENTITY; 15218 15219ENTITY product_concept_feature; 15220 id : identifier; 15221 name : label; 15222 description : OPTIONAL text; 15223END_ENTITY; 15224 15225ENTITY product_concept_feature_association; 15226 name : label; 15227 description : OPTIONAL text; 15228 concept : product_concept; 15229 feature : product_concept_feature; 15230END_ENTITY; 15231 15232ENTITY product_concept_feature_category 15233 SUBTYPE OF (group); 15234 WHERE 15235 WR1: 15236 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; 15237END_ENTITY; 15238 15239-- DIFF IN AP214 15240ENTITY product_concept_feature_category_usage 15241 SUBTYPE OF (group_assignment); 15242 items : SET [1:?] OF category_usage_item; 15243 SELF\group_assignment.assigned_group : product_concept_feature_category; 15244 WHERE 15245 WR1: 15246 SELF.role.name IN [ 'mandatory category usage', 'optional category usage' ]; 15247END_ENTITY; 15248 15249ENTITY product_concept_relationship; 15250 name : label; 15251 description : OPTIONAL text; 15252 relating_product_concept : product_concept; 15253 related_product_concept : product_concept; 15254END_ENTITY; 15255 15256ENTITY product_context 15257 SUBTYPE OF (application_context_element); 15258 discipline_type : label; 15259END_ENTITY; 15260 15261-- IN AP242 15262ENTITY product_data_and_data_quality_relationship; 15263 description : text; 15264 product_data : product_definition; 15265 data_quality : data_quality_definition; 15266END_ENTITY; 15267 15268-- DIFF IN AP214 15269-- DIFF IN AP203e2 15270ENTITY product_definition 15271 SUPERTYPE OF (ONEOF(composite_assembly_sequence_definition, laminate_table, ply_laminate_sequence_definition)); 15272 id : identifier; 15273 description : OPTIONAL text; 15274 formation : product_definition_formation; 15275 frame_of_reference : product_definition_context; 15276 DERIVE 15277 name : label := get_name_value(SELF); 15278 WHERE 15279 WR1: 15280 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 15281END_ENTITY; 15282 15283ENTITY product_definition_context 15284 SUBTYPE OF (application_context_element); 15285 life_cycle_stage : label; 15286END_ENTITY; 15287 15288ENTITY product_definition_context_association; 15289 definition : product_definition; 15290 frame_of_reference : product_definition_context; 15291 role : product_definition_context_role; 15292END_ENTITY; 15293 15294ENTITY product_definition_context_role; 15295 name : label; 15296 description : OPTIONAL text; 15297END_ENTITY; 15298 15299ENTITY product_definition_effectivity 15300 SUBTYPE OF (effectivity); 15301 usage : product_definition_relationship; 15302 WHERE 15303 WR1: 15304 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0; 15305END_ENTITY; 15306 15307-- IN AP203e2/AP242 15308ENTITY product_definition_element_relationship 15309 SUBTYPE OF (group); 15310END_ENTITY; 15311 15312-- CASE DIFF IN AP214 15313ENTITY product_definition_formation; 15314 id : identifier; 15315 description : OPTIONAL text; 15316 of_product : product; 15317 UNIQUE 15318 UR1 : id, of_product; 15319END_ENTITY; 15320 15321ENTITY product_definition_formation_relationship; 15322 id : identifier; 15323 name : label; 15324 description : OPTIONAL text; 15325 relating_product_definition_formation : product_definition_formation; 15326 related_product_definition_formation : product_definition_formation; 15327END_ENTITY; 15328 15329ENTITY product_definition_formation_with_specified_source 15330 SUBTYPE OF (product_definition_formation); 15331 make_or_buy : source; 15332END_ENTITY; 15333 15334-- IN AP203e2/AP242 15335ENTITY product_definition_group_assignment 15336 SUBTYPE OF (group_assignment); 15337 items : SET [1:1] OF product_definition_or_product_definition_relationship; 15338 SELF\group_assignment.assigned_group : product_definition_element_relationship; 15339END_ENTITY; 15340 15341-- IN AP242 15342ENTITY product_definition_kinematics 15343 SUBTYPE OF (property_definition); 15344 SELF\property_definition.definition : product_definition; 15345 INVERSE 15346 representation_relation : kinematic_property_definition_representation FOR definition; 15347 UNIQUE 15348 UR1 : definition; 15349END_ENTITY; 15350 15351ENTITY product_definition_occurrence_relationship; 15352 name : label; 15353 description : OPTIONAL text; 15354 occurrence : product_definition; 15355 occurrence_usage : assembly_component_usage; 15356 WHERE 15357 WR1: 15358 occurrence_usage.relating_product_definition :<>: occurrence; 15359 WR2: 15360 occurrence_usage.related_product_definition :<>: occurrence; 15361 WR3: 15362 occurrence.formation :=: occurrence_usage.related_product_definition.formation; 15363END_ENTITY; 15364 15365-- IN AP214/AP242 15366ENTITY product_definition_process 15367 SUBTYPE OF (action); 15368 identification : identifier; 15369 INVERSE 15370 product_definitions : SET [1:?] OF process_product_association FOR process; 15371END_ENTITY; 15372 15373-- IN AP242 15374ENTITY product_definition_reference 15375 SUBTYPE OF (generic_product_definition_reference); 15376 product_id : identifier; 15377 product_definition_formation_id : identifier; 15378 product_definition_id : identifier; 15379 id_owning_organization_name : OPTIONAL label; 15380END_ENTITY; 15381 15382-- IN AP242 15383ENTITY product_definition_reference_with_local_representation 15384 SUBTYPE OF (generic_product_definition_reference, product_definition); 15385END_ENTITY; 15386 15387-- DIFF IN AP214 15388-- DIFF IN AP203e2 15389ENTITY product_definition_relationship; 15390 id : identifier; 15391 name : label; 15392 description : OPTIONAL text; 15393 relating_product_definition : product_definition_or_reference; 15394 related_product_definition : product_definition_or_reference; 15395END_ENTITY; 15396 15397-- IN AP242 15398ENTITY product_definition_relationship_kinematics 15399 SUBTYPE OF (property_definition); 15400 SELF\property_definition.definition : product_definition_relationship; 15401 UNIQUE 15402 UR1 : definition; 15403END_ENTITY; 15404 15405-- IN AP214/AP242 15406ENTITY product_definition_resource 15407 SUBTYPE OF (action_resource, product_definition); 15408 WHERE 15409 WR1: 15410 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > 0; 15411 WR2: 15412 SELF.frame_of_reference.name IN [ 'part_definition', 'part occurrence', 'physical occurrence' ]; 15413END_ENTITY; 15414 15415-- CASE DIFF IN AP214 15416ENTITY product_definition_shape 15417 SUBTYPE OF (property_definition); 15418 UNIQUE 15419 UR1 : SELF\property_definition.definition; 15420 WHERE 15421 WR1: 15422 SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CHARACTERIZED_PRODUCT_DEFINITION', 'STEP_MERGED_CAD_SCHEMA.CHARACTERIZED_OBJECT' ] * TYPEOF(SELF\property_definition.definition)) > 0; 15423END_ENTITY; 15424 15425ENTITY product_definition_substitute; 15426 description : OPTIONAL text; 15427 context_relationship : product_definition_relationship; 15428 substitute_definition : product_definition; 15429 DERIVE 15430 name : label := get_name_value(SELF); 15431 WHERE 15432 WR1: 15433 context_relationship.related_product_definition :<>: substitute_definition; 15434 WR2: 15435 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 15436END_ENTITY; 15437 15438-- CASE DIFF IN AP214 15439ENTITY product_definition_usage 15440 SUPERTYPE OF (ONEOF(make_from_usage_option, assembly_component_usage)) 15441 SUBTYPE OF (product_definition_relationship); 15442 UNIQUE 15443 UR1 : SELF\product_definition_relationship.id, SELF\product_definition_relationship.relating_product_definition, SELF\product_definition_relationship.related_product_definition; 15444 WHERE 15445 WR1: 15446 acyclic_product_definition_relationship(SELF, [ SELF\product_definition_relationship.related_product_definition ], 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_USAGE'); 15447END_ENTITY; 15448 15449ENTITY product_definition_with_associated_documents 15450 SUBTYPE OF (product_definition); 15451 documentation_ids : SET [1:?] OF document; 15452END_ENTITY; 15453 15454-- IN AP242 15455ENTITY product_design_to_individual 15456 SUBTYPE OF (product_relationship); 15457 DERIVE 15458 individual_product : product := SELF\product_relationship.related_product; 15459 product_design : product := SELF\product_relationship.relating_product; 15460END_ENTITY; 15461 15462-- IN AP242 15463ENTITY product_design_version_to_individual 15464 SUBTYPE OF (product_definition_formation_relationship); 15465 DERIVE 15466 individual_product : product_definition_formation := SELF\product_definition_formation_relationship.related_product_definition_formation; 15467 product_design_version : product_definition_formation := SELF\product_definition_formation_relationship.relating_product_definition_formation; 15468END_ENTITY; 15469 15470-- DIFF IN AP214 15471ENTITY product_identification 15472 SUBTYPE OF (configuration_item, characterized_object); 15473 SELF\configuration_item.item_concept : product_class; 15474 WHERE 15475 WR1: 15476 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; 15477 WR2: 15478 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'CONFIGURABLE_ITEM' IN TYPEOF(SELF)) XOR ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_SPECIFICATION' IN TYPEOF(SELF)); 15479END_ENTITY; 15480 15481-- IN AP203e2/AP242 15482ENTITY product_material_composition_relationship 15483 SUBTYPE OF (product_definition_relationship); 15484 class : label; 15485 constituent_amount : SET [1:?] OF characterized_product_composition_value; 15486 composition_basis : label; 15487 determination_method : text; 15488END_ENTITY; 15489 15490-- IN AP242 15491ENTITY product_planned_to_realized 15492 SUBTYPE OF (product_definition_formation_relationship); 15493 DERIVE 15494 planned_product : product_definition_formation := SELF\product_definition_formation_relationship.relating_product_definition_formation; 15495 realized_product : product_definition_formation := SELF\product_definition_formation_relationship.related_product_definition_formation; 15496END_ENTITY; 15497 15498-- IN AP214/AP242 15499ENTITY product_process_plan 15500 SUBTYPE OF (product_definition_process); 15501 WHERE 15502 WR1: 15503 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; 15504 WR2: 15505 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')); 15506 WR3: 15507 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; 15508END_ENTITY; 15509 15510ENTITY product_related_product_category 15511 SUBTYPE OF (product_category); 15512 products : SET [1:?] OF product; 15513END_ENTITY; 15514 15515-- IN AP242 15516ENTITY product_relationship; 15517 id : identifier; 15518 name : label; 15519 description : OPTIONAL text; 15520 relating_product : product; 15521 related_product : product; 15522END_ENTITY; 15523 15524ENTITY product_specification 15525 SUBTYPE OF (product_identification, configurable_item); 15526END_ENTITY; 15527 15528-- IN AP242 15529ENTITY profile_floor 15530 SUBTYPE OF (shape_aspect); 15531 WHERE 15532 WR1: 15533 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 15534 WR2: 15535 SELF.description IN [ 'planar', 'complex', 'through' ]; 15536 WR3: 15537 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); 15538 WR4: 15539 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); 15540 WR5: 15541 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); 15542 WR6: 15543 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); 15544 WR7: 15545 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; 15546 WR8: 15547 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); 15548 WR9: 15549 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); 15550 WR10: 15551 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); 15552END_ENTITY; 15553 15554-- DIFF IN AP214 15555-- DIFF IN AP203e2 15556ENTITY projected_zone_definition 15557 SUBTYPE OF (tolerance_zone_definition); 15558 projection_end : shape_aspect; 15559 projected_length : length_measure_with_unit; 15560 WHERE 15561 WR1: 15562 ('NUMBER' IN TYPEOF(projected_length\measure_with_unit.value_component)) AND (projected_length\measure_with_unit.value_component > 0.0); 15563 WR2: 15564 derive_dimensional_exponents(projected_length\measure_with_unit.unit_component) = dimensional_exponents(1, 0, 0, 0, 0, 0, 0); 15565END_ENTITY; 15566 15567-- IN AP242 15568ENTITY projected_zone_definition_with_offset 15569 SUBTYPE OF (projected_zone_definition); 15570 offset : length_measure_with_unit; 15571END_ENTITY; 15572 15573ENTITY projection_curve 15574 SUBTYPE OF (annotation_curve_occurrence); 15575END_ENTITY; 15576 15577ENTITY projection_directed_callout 15578 SUBTYPE OF (draughting_callout); 15579 WHERE 15580 WR1: 15581 SIZEOF(QUERY (p_1 <* SELF\draughting_callout.contents| ('STEP_MERGED_CAD_SCHEMA.PROJECTION_CURVE' IN TYPEOF(p_1)))) <= 2; 15582 WR2: 15583 SIZEOF(SELF\draughting_callout.contents) >= 2; 15584END_ENTITY; 15585 15586ENTITY promissory_usage_occurrence 15587 SUBTYPE OF (assembly_component_usage); 15588END_ENTITY; 15589 15590-- DIFF IN AP214 15591-- DIFF IN AP203e2 15592ENTITY property_definition 15593 SUPERTYPE OF (ONEOF(product_definition_kinematics, product_definition_relationship_kinematics, product_definition_shape)); 15594 name : label; 15595 description : OPTIONAL text; 15596 definition : characterized_definition; 15597 DERIVE 15598 id : identifier := get_id_value(SELF); 15599 WHERE 15600 WR1: 15601 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 15602END_ENTITY; 15603 15604ENTITY property_definition_relationship; 15605 name : label; 15606 description : text; 15607 relating_property_definition : property_definition; 15608 related_property_definition : property_definition; 15609END_ENTITY; 15610 15611ENTITY property_definition_representation; 15612 definition : represented_definition; 15613 used_representation : representation; 15614 DERIVE 15615 description : text := get_description_value(SELF); 15616 name : label := get_name_value(SELF); 15617 WHERE 15618 WR1: 15619 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 15620 WR2: 15621 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 15622END_ENTITY; 15623 15624-- IN AP214/AP242 15625ENTITY property_process 15626 SUBTYPE OF (action); 15627 identification : identifier; 15628 INVERSE 15629 properties : SET [1:?] OF process_property_association FOR process; 15630END_ENTITY; 15631 15632-- IN AP242 15633ENTITY protrusion 15634 SUBTYPE OF (feature_definition); 15635 WHERE 15636 WR1: 15637 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; 15638 WR2: 15639 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; 15640 WR3: 15641 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; 15642END_ENTITY; 15643 15644ENTITY qualified_representation_item 15645 SUBTYPE OF (representation_item); 15646 qualifiers : SET [1:?] OF value_qualifier; 15647 WHERE 15648 WR1: 15649 SIZEOF(QUERY (temp <* qualifiers| ('STEP_MERGED_CAD_SCHEMA.PRECISION_QUALIFIER' IN TYPEOF(temp)))) < 2; 15650END_ENTITY; 15651 15652ENTITY qualitative_uncertainty 15653 SUBTYPE OF (uncertainty_qualifier); 15654 uncertainty_value : text; 15655END_ENTITY; 15656 15657ENTITY quantified_assembly_component_usage 15658 SUBTYPE OF (assembly_component_usage); 15659 quantity : measure_with_unit; 15660 WHERE 15661 WR1: 15662 NOT ('NUMBER' IN TYPEOF(quantity.value_component)) OR (quantity.value_component > 0); 15663END_ENTITY; 15664 15665-- IN AP242 15666ENTITY quantifier_expression 15667 ABSTRACT SUPERTYPE 15668 SUBTYPE OF (multiple_arity_generic_expression); 15669 variables : LIST [1:?] OF UNIQUE generic_variable; 15670 WHERE 15671 WR1: 15672 SIZEOF(QUERY (vrbl <* variables| NOT (vrbl IN SELF\multiple_arity_generic_expression.operands))) = 0; 15673 WR2: 15674 SIZEOF(QUERY (vrbl <* variables| NOT (schema_prefix + 'BOUND_VARIABLE_SEMANTICS' IN TYPEOF(vrbl.interpretation.semantics)))) = 0; 15675END_ENTITY; 15676 15677ENTITY quasi_uniform_curve 15678 SUBTYPE OF (b_spline_curve); 15679END_ENTITY; 15680 15681ENTITY quasi_uniform_surface 15682 SUBTYPE OF (b_spline_surface); 15683END_ENTITY; 15684 15685-- DIFF IN AP214 15686-- IN AP214/AP242 15687ENTITY rack_and_pinion_pair 15688 SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); 15689 pinion_radius : length_measure; 15690 WHERE 15691 WR1: 15692 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 15693END_ENTITY; 15694 15695-- IN AP214 15696ENTITY rack_and_pinion_pair_range 15697 SUBTYPE OF (simple_pair_range); 15698 SELF\simple_pair_range.applies_to_pair : rack_and_pinion_pair; 15699 lower_limit_rack_displacement : translational_range_measure; 15700 upper_limit_rack_displacement : translational_range_measure; 15701 WHERE 15702 wr1: 15703 (('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); 15704END_ENTITY; 15705 15706-- DIFF IN AP214 15707-- IN AP214/AP242 15708ENTITY rack_and_pinion_pair_value 15709 SUBTYPE OF (pair_value); 15710 actual_displacement : length_measure; 15711 SELF\pair_value.applies_to_pair : rack_and_pinion_pair; 15712 DERIVE 15713 actual_rotation : plane_angle_measure := 0.0; 15714END_ENTITY; 15715 15716-- IN AP242 15717ENTITY rack_and_pinion_pair_with_range 15718 SUBTYPE OF (rack_and_pinion_pair); 15719 lower_limit_rack_displacement : OPTIONAL length_measure; 15720 upper_limit_rack_displacement : OPTIONAL length_measure; 15721 WHERE 15722 WR1: 15723 (NOT EXISTS(lower_limit_rack_displacement) OR NOT EXISTS(upper_limit_rack_displacement)) XOR (lower_limit_rack_displacement < upper_limit_rack_displacement); 15724END_ENTITY; 15725 15726-- IN AP203e2/AP242 15727ENTITY radioactivity_measure_with_unit 15728 SUBTYPE OF (measure_with_unit); 15729 WHERE 15730 WR1: 15731 'STEP_MERGED_CAD_SCHEMA.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 15732END_ENTITY; 15733 15734-- IN AP203e2/AP242 15735ENTITY radioactivity_unit 15736 SUBTYPE OF (derived_unit); 15737 WHERE 15738 WR1: 15739 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.becquerel); 15740END_ENTITY; 15741 15742ENTITY radius_dimension 15743 SUBTYPE OF (dimension_curve_directed_callout); 15744 WHERE 15745 WR1: 15746 SIZEOF(QUERY (con <* SELF.contents| ('STEP_MERGED_CAD_SCHEMA.PROJECTION_CURVE' IN TYPEOF(con)))) <= 1; 15747END_ENTITY; 15748 15749-- IN AP242 15750ENTITY radius_geometric_constraint 15751 SUBTYPE OF (explicit_geometric_constraint); 15752 SELF\explicit_constraint.constrained_elements : SET [1:?] OF radial_geometry_constraint_element; 15753 WHERE 15754 WR1: 15755 SIZEOF(SELF\explicit_constraint.reference_elements) = 0; 15756END_ENTITY; 15757 15758-- IN AP203e2/AP242 15759ENTITY range_characteristic 15760 SUBTYPE OF (representation, descriptive_representation_item); 15761 WHERE 15762 WR1: 15763 NOT (SELF\representation.name IN [ 'tolerance', 'minimum tolerance', 'maximum tolerance', 'nominal tolerance', 'plus minus tolerance', 'symmetrical tolerance', 'statistical tolerance' ]); 15764END_ENTITY; 15765 15766ENTITY ratio_measure_with_unit 15767 SUBTYPE OF (measure_with_unit); 15768 WHERE 15769 WR1: 15770 'STEP_MERGED_CAD_SCHEMA.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 15771END_ENTITY; 15772 15773ENTITY ratio_unit 15774 SUBTYPE OF (named_unit); 15775 WHERE 15776 WR1: 15777 ((((((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); 15778END_ENTITY; 15779 15780ENTITY rational_b_spline_curve 15781 SUBTYPE OF (b_spline_curve); 15782 weights_data : LIST [2:?] OF REAL; 15783 DERIVE 15784 weights : ARRAY [0:upper_index_on_control_points] OF REAL := list_to_array(weights_data, 0, upper_index_on_control_points); 15785 WHERE 15786 WR1: 15787 SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve.control_points_list); 15788 WR2: 15789 curve_weights_positive(SELF); 15790END_ENTITY; 15791 15792ENTITY rational_b_spline_surface 15793 SUBTYPE OF (b_spline_surface); 15794 weights_data : LIST [2:?] OF LIST [2:?] OF REAL; 15795 DERIVE 15796 weights : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF REAL := make_array_of_array(weights_data, 0, u_upper, 0, v_upper); 15797 WHERE 15798 WR1: 15799 (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])); 15800 WR2: 15801 surface_weights_positive(SELF); 15802END_ENTITY; 15803 15804-- IN AP203e2/AP242 15805ENTITY rational_representation_item 15806 SUBTYPE OF (representation_item, slash_expression); 15807 WHERE 15808 WR1: 15809 SIZEOF(QUERY (operand <* SELF\binary_generic_expression.operands| NOT ('STEP_MERGED_CAD_SCHEMA.INT_LITERAL' IN TYPEOF(operand)))) = 0; 15810END_ENTITY; 15811 15812-- IN AP242 15813ENTITY rationalize_function 15814 SUBTYPE OF (maths_function, unary_generic_expression); 15815 SELF\unary_generic_expression.operand : maths_function; 15816 DERIVE 15817 fun : maths_function := SELF\unary_generic_expression.operand; 15818 WHERE 15819 WR1: 15820 (space_dimension(fun.domain) = 1) AND (space_dimension(fun.range) = 1); 15821 WR2: 15822 number_tuple_subspace_check(factor1(fun.range)); 15823 WR3: 15824 space_dimension(factor1(fun.range)) > 1; 15825END_ENTITY; 15826 15827-- IN AP214/AP242 15828ENTITY real_defined_function 15829 ABSTRACT SUPERTYPE 15830 SUBTYPE OF (numeric_defined_function); 15831END_ENTITY; 15832 15833-- IN AP242 15834ENTITY real_interval_from_min 15835 SUBTYPE OF (maths_space, generic_literal); 15836 min : REAL; 15837 min_closure : open_closed; 15838END_ENTITY; 15839 15840-- IN AP242 15841ENTITY real_interval_to_max 15842 SUBTYPE OF (maths_space, generic_literal); 15843 max : REAL; 15844 max_closure : open_closed; 15845END_ENTITY; 15846 15847ENTITY real_literal 15848 SUBTYPE OF (literal_number); 15849 SELF\literal_number.the_value : REAL; 15850END_ENTITY; 15851 15852-- IN AP214/AP242 15853ENTITY real_numeric_variable 15854 SUBTYPE OF (numeric_variable); 15855END_ENTITY; 15856 15857-- IN AP203e2/AP242 15858ENTITY real_representation_item 15859 SUBTYPE OF (representation_item, real_literal); 15860END_ENTITY; 15861 15862-- IN AP242 15863ENTITY real_tuple_literal 15864 SUBTYPE OF (generic_literal); 15865 lit_value : LIST [1:?] OF REAL; 15866END_ENTITY; 15867 15868-- IN AP242 15869ENTITY rectangular_area 15870 SUBTYPE OF (primitive_2d); 15871 position : axis2_placement_2d; 15872 x : positive_length_measure; 15873 y : positive_length_measure; 15874END_ENTITY; 15875 15876-- IN AP242 15877ENTITY rectangular_array_placement_group_component 15878 SUBTYPE OF (array_placement_group); 15879END_ENTITY; 15880 15881-- IN AP214/AP242 15882ENTITY rectangular_closed_profile 15883 SUBTYPE OF (shape_aspect); 15884 WHERE 15885 WR1: 15886 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 15887 WR2: 15888 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; 15889 WR3: 15890 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; 15891 WR4: 15892 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; 15893 WR5: 15894 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; 15895 WR6: 15896 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; 15897 WR7: 15898 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; 15899 WR8: 15900 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; 15901END_ENTITY; 15902 15903ENTITY rectangular_composite_surface 15904 SUBTYPE OF (bounded_surface); 15905 segments : LIST [1:?] OF LIST [1:?] OF surface_patch; 15906 DERIVE 15907 n_u : INTEGER := SIZEOF(segments); 15908 n_v : INTEGER := SIZEOF(segments[1]); 15909 WHERE 15910 WR1: 15911 SIZEOF(QUERY (s <* segments| (n_v <> SIZEOF(s)))) = 0; 15912 WR2: 15913 constraints_rectangular_composite_surface(SELF); 15914END_ENTITY; 15915 15916-- IN AP242 15917ENTITY rectangular_composite_surface_transition_locator 15918 SUBTYPE OF (founded_item); 15919 basis_surface : rectangular_composite_surface; 15920 surface_parameter : u_or_v_parameter; 15921 u_transition_index : INTEGER; 15922 v_transition_index : INTEGER; 15923 WHERE 15924 WR1: 15925 SIZEOF(using_representations(SELF.basis_surface) * relating_shape_representations_of_extreme_values(SELF)) > 0; 15926END_ENTITY; 15927 15928-- IN AP214/AP242 15929ENTITY rectangular_pattern 15930 SUBTYPE OF (replicate_feature); 15931 WHERE 15932 WR1: 15933 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; 15934 WR2: 15935 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; 15936 WR3: 15937 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; 15938 WR4: 15939 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; 15940 WR5: 15941 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; 15942 WR6: 15943 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; 15944 WR7: 15945 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; 15946 WR8: 15947 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; 15948 WR9: 15949 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; 15950 WR10: 15951 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; 15952END_ENTITY; 15953 15954ENTITY rectangular_trimmed_surface 15955 SUBTYPE OF (bounded_surface); 15956 basis_surface : surface; 15957 u1 : parameter_value; 15958 u2 : parameter_value; 15959 v1 : parameter_value; 15960 v2 : parameter_value; 15961 usense : BOOLEAN; 15962 vsense : BOOLEAN; 15963 WHERE 15964 WR1: 15965 u1 <> u2; 15966 WR2: 15967 v1 <> v2; 15968 WR3: 15969 (('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)); 15970 WR4: 15971 (('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)); 15972END_ENTITY; 15973 15974ENTITY referenced_modified_datum 15975 SUBTYPE OF (datum_reference); 15976 modifier : limit_condition; 15977END_ENTITY; 15978 15979-- IN AP242 15980ENTITY reindexed_array_function 15981 SUBTYPE OF (maths_function, unary_generic_expression); 15982 starting_indices : LIST [1:?] OF INTEGER; 15983 SELF\unary_generic_expression.operand : maths_function; 15984 WHERE 15985 WR1: 15986 function_is_array(SELF\unary_generic_expression.operand); 15987 WR2: 15988 SIZEOF(starting_indices) = SIZEOF(shape_of_array(SELF\unary_generic_expression.operand)); 15989END_ENTITY; 15990 15991ENTITY relative_event_occurrence 15992 SUBTYPE OF (event_occurrence); 15993 base_event : event_occurrence; 15994 offset : time_measure_with_unit; 15995END_ENTITY; 15996 15997-- IN AP242 15998ENTITY removal_volume 15999 SUBTYPE OF (feature_definition); 16000 WHERE 16001 WR1: 16002 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; 16003 WR2: 16004 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; 16005END_ENTITY; 16006 16007ENTITY rep_item_group 16008 SUBTYPE OF (group, representation_item); 16009 WHERE 16010 WR1: 16011 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS')) > 0; 16012 WR2: 16013 SIZEOF(QUERY (r <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION.' + 'ITEMS')| (r.name = 'group representation'))) > 0; 16014 WR3: 16015 SIZEOF(QUERY (ga <* USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP')| (ga.role.name <> 'group membership'))) = 0; 16016 WR4: 16017 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; 16018END_ENTITY; 16019 16020-- IN AP242 16021ENTITY repackaging_function 16022 SUBTYPE OF (maths_function, unary_generic_expression); 16023 input_repack : repackage_options; 16024 output_repack : repackage_options; 16025 selected_output : nonnegative_integer; 16026 SELF\unary_generic_expression.operand : maths_function; 16027 WHERE 16028 WR1: 16029 (input_repack <> ro_wrap_as_tuple) OR (space_dimension(operand.domain) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(operand.domain))); 16030 WR2: 16031 (output_repack <> ro_unwrap_tuple) OR (space_dimension(operand.range) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(operand.range))); 16032 WR3: 16033 selected_output <= space_dimension(repackage(operand.range, output_repack)); 16034END_ENTITY; 16035 16036ENTITY reparametrised_composite_curve_segment 16037 SUBTYPE OF (composite_curve_segment); 16038 param_length : parameter_value; 16039 WHERE 16040 WR1: 16041 param_length > 0.0; 16042END_ENTITY; 16043 16044-- DIFF IN AP214 16045-- IN AP214/AP242 16046ENTITY replicate_feature 16047 SUPERTYPE OF (ONEOF(circular_pattern, rectangular_pattern, feature_pattern)) 16048 SUBTYPE OF (feature_definition); 16049 WHERE 16050 WR1: 16051 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; 16052 WR2: 16053 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; 16054 WR3: 16055 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; 16056END_ENTITY; 16057 16058-- IN AP242 16059ENTITY repositioned_neutral_sketch 16060 SUBTYPE OF (mapped_item, geometric_representation_item); 16061 DERIVE 16062 map : representation_map := SELF\mapped_item.mapping_source; 16063 WHERE 16064 WR1: 16065 'STEP_MERGED_CAD_SCHEMA.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF(map.mapped_representation); 16066 WR2: 16067 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_2D' IN TYPEOF(map.mapping_origin); 16068 WR3: 16069 'STEP_MERGED_CAD_SCHEMA.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\mapped_item.mapping_target); 16070END_ENTITY; 16071 16072-- IN AP242 16073ENTITY repositioned_tessellated_item 16074 SUBTYPE OF (tessellated_item); 16075 location : axis2_placement_3d; 16076 WHERE 16077 WR1: 16078 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); 16079END_ENTITY; 16080 16081-- DIFF IN AP214 16082-- DIFF IN AP203e2 16083ENTITY representation 16084 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)); 16085 name : label; 16086 items : SET [1:?] OF representation_item; 16087 context_of_items : representation_context; 16088 DERIVE 16089 description : text := get_description_value(SELF); 16090 id : identifier := get_id_value(SELF); 16091 WHERE 16092 WR1: 16093 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 16094 WR2: 16095 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; 16096END_ENTITY; 16097 16098ENTITY representation_context; 16099 context_identifier : identifier; 16100 context_type : text; 16101 INVERSE 16102 representations_in_context : SET [1:?] OF representation FOR context_of_items; 16103END_ENTITY; 16104 16105-- DIFF IN AP214 16106-- DIFF IN AP203e2 16107ENTITY representation_item 16108 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)); 16109 name : label; 16110 WHERE 16111 WR1: 16112 SIZEOF(using_representations(SELF)) > 0; 16113END_ENTITY; 16114 16115-- IN AP203e2/AP242 16116ENTITY representation_item_relationship; 16117 name : label; 16118 description : OPTIONAL text; 16119 relating_representation_item : representation_item; 16120 related_representation_item : representation_item; 16121END_ENTITY; 16122 16123ENTITY representation_map; 16124 mapping_origin : representation_item; 16125 mapped_representation : representation; 16126 INVERSE 16127 map_usage : SET [1:?] OF mapped_item FOR mapping_source; 16128 WHERE 16129 WR1: 16130 item_in_context(SELF.mapping_origin, SELF.mapped_representation.context_of_items); 16131END_ENTITY; 16132 16133-- IN AP242 16134ENTITY representation_proxy_item 16135 SUBTYPE OF (representation_item); 16136END_ENTITY; 16137 16138ENTITY representation_relationship; 16139 name : label; 16140 description : OPTIONAL text; 16141 rep_1 : representation; 16142 rep_2 : representation; 16143END_ENTITY; 16144 16145ENTITY representation_relationship_with_transformation 16146 SUBTYPE OF (representation_relationship); 16147 transformation_operator : transformation; 16148 WHERE 16149 WR1: 16150 SELF\representation_relationship.rep_1.context_of_items :<>: SELF\representation_relationship.rep_2.context_of_items; 16151END_ENTITY; 16152 16153-- IN AP242 16154ENTITY representative_shape_representation 16155 SUBTYPE OF (shape_representation); 16156 WHERE 16157 WR1: 16158 unique_in_product_definition(SELF) OR unique_in_shape_aspect(SELF); 16159END_ENTITY; 16160 16161-- IN AP203e2/AP242 16162ENTITY requirement_assigned_object 16163 SUBTYPE OF (group_assignment); 16164 items : SET [1:1] OF requirement_assigned_item; 16165 SELF\group_assignment.assigned_group : requirement_assignment; 16166END_ENTITY; 16167 16168-- IN AP203e2/AP242 16169ENTITY requirement_assignment 16170 SUBTYPE OF (characterized_object, group); 16171END_ENTITY; 16172 16173-- IN AP214/AP242 16174ENTITY requirement_for_action_resource 16175 SUBTYPE OF (action_resource_requirement); 16176 resources : SET [1:?] OF action_resource; 16177END_ENTITY; 16178 16179-- IN AP203e2/AP242 16180ENTITY requirement_source 16181 SUBTYPE OF (group); 16182END_ENTITY; 16183 16184-- IN AP203e2 16185ENTITY requirement_view_definition_relationship 16186 SUBTYPE OF (product_definition_relationship); 16187END_ENTITY; 16188 16189-- IN AP203e2/AP242 16190ENTITY resistance_measure_with_unit 16191 SUBTYPE OF (measure_with_unit); 16192 WHERE 16193 WR1: 16194 'STEP_MERGED_CAD_SCHEMA.RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 16195END_ENTITY; 16196 16197-- IN AP203e2/AP242 16198ENTITY resistance_unit 16199 SUBTYPE OF (derived_unit); 16200 WHERE 16201 WR1: 16202 derive_dimensional_exponents(SELF) = dimensions_for_si_unit(si_unit_name.ohm); 16203END_ENTITY; 16204 16205-- IN AP214/AP242 16206ENTITY resource_property; 16207 name : label; 16208 description : text; 16209 resource : characterized_resource_definition; 16210END_ENTITY; 16211 16212-- IN AP214/AP242 16213ENTITY resource_property_representation; 16214 name : label; 16215 description : text; 16216 property : resource_property; 16217 representation : representation; 16218END_ENTITY; 16219 16220-- IN AP214/AP242 16221ENTITY resource_requirement_type; 16222 name : label; 16223 description : text; 16224END_ENTITY; 16225 16226-- IN AP242 16227ENTITY restriction_function 16228 SUBTYPE OF (maths_function, unary_generic_expression); 16229 SELF\unary_generic_expression.operand : maths_space; 16230END_ENTITY; 16231 16232-- DIFF IN AP214 16233-- IN AP214/AP242 16234ENTITY resulting_path 16235 SUBTYPE OF (motion_link_relationship, link_motion_representation_along_path); 16236 controlling_joints : SET [1:?] OF kinematic_joint; 16237END_ENTITY; 16238 16239-- IN AP214/AP242 16240ENTITY retention 16241 SUBTYPE OF (action); 16242 WHERE 16243 WR1: 16244 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; 16245 WR2: 16246 ((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); 16247 WR3: 16248 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; 16249END_ENTITY; 16250 16251-- DIFF IN AP214 16252-- IN AP214/AP242 16253ENTITY revolute_pair 16254 SUBTYPE OF (low_order_kinematic_pair); 16255 DERIVE 16256 SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; 16257 SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; 16258 SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; 16259 SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; 16260 SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; 16261 SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; 16262END_ENTITY; 16263 16264-- IN AP214 16265ENTITY revolute_pair_range 16266 SUBTYPE OF (simple_pair_range); 16267 SELF\simple_pair_range.applies_to_pair : revolute_pair; 16268 lower_limit_actual_rotation : rotational_range_measure; 16269 upper_limit_actual_rotation : rotational_range_measure; 16270 WHERE 16271 wr1: 16272 (('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); 16273END_ENTITY; 16274 16275-- DIFF IN AP214 16276-- IN AP214/AP242 16277ENTITY revolute_pair_value 16278 SUBTYPE OF (pair_value); 16279 actual_rotation : plane_angle_measure; 16280 SELF\pair_value.applies_to_pair : revolute_pair; 16281END_ENTITY; 16282 16283-- IN AP242 16284ENTITY revolute_pair_with_range 16285 SUBTYPE OF (revolute_pair); 16286 lower_limit_actual_rotation : OPTIONAL plane_angle_measure; 16287 upper_limit_actual_rotation : OPTIONAL plane_angle_measure; 16288 WHERE 16289 WR1: 16290 (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); 16291END_ENTITY; 16292 16293ENTITY revolved_area_solid 16294 SUBTYPE OF (swept_area_solid); 16295 axis : axis1_placement; 16296 angle : plane_angle_measure; 16297 DERIVE 16298 axis_line : line := representation_item('') || geometric_representation_item() || curve() || line(axis.location, representation_item('') || geometric_representation_item() || vector(axis.z, 1.0)); 16299END_ENTITY; 16300 16301ENTITY revolved_face_solid 16302 SUBTYPE OF (swept_face_solid); 16303 axis : axis1_placement; 16304 angle : plane_angle_measure; 16305 DERIVE 16306 axis_line : line := representation_item('') || geometric_representation_item() || curve() || line(axis.location, representation_item('') || geometric_representation_item() || vector(axis.z, 1.0)); 16307END_ENTITY; 16308 16309-- IN AP203e2/AP242 16310ENTITY revolved_face_solid_with_trim_conditions 16311 SUBTYPE OF (revolved_face_solid); 16312 first_trim_condition : trim_condition_select; 16313 second_trim_condition : trim_condition_select; 16314 WHERE 16315 WR1: 16316 NOT (('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) OR ('STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))); 16317 WR2: 16318 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)); 16319END_ENTITY; 16320 16321-- IN AP242 16322ENTITY revolved_profile 16323 SUBTYPE OF (feature_definition); 16324 WHERE 16325 WR1: 16326 SELF\characterized_object.description IN [ 'groove', 'flat', 'round', 'open profile' ]; 16327 WR2: 16328 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; 16329 WR3: 16330 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; 16331 WR4: 16332 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; 16333 WR5: 16334 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); 16335 WR6: 16336 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); 16337 WR7: 16338 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); 16339 WR8: 16340 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); 16341 WR9: 16342 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; 16343END_ENTITY; 16344 16345-- IN AP242 16346ENTITY rgc_with_dimension 16347 SUBTYPE OF (radius_geometric_constraint); 16348 radius_value : positive_length_measure; 16349END_ENTITY; 16350 16351-- IN AP214 16352ENTITY rib 16353 SUBTYPE OF (feature_definition); 16354 WHERE 16355 wr1: 16356 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; 16357 wr2: 16358 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; 16359 wr3: 16360 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; 16361 wr4: 16362 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; 16363 wr5: 16364 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; 16365 wr6: 16366 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; 16367 wr7: 16368 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; 16369END_ENTITY; 16370 16371-- IN AP242 16372ENTITY rib_top 16373 SUBTYPE OF (feature_definition); 16374 WHERE 16375 WR1: 16376 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; 16377 WR2: 16378 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; 16379 WR3: 16380 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; 16381END_ENTITY; 16382 16383-- IN AP242 16384ENTITY rib_top_floor 16385 SUBTYPE OF (shape_aspect); 16386 WHERE 16387 WR1: 16388 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 16389 WR2: 16390 SELF.description IN [ 'planar', 'complex' ]; 16391 WR3: 16392 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; 16393 WR4: 16394 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); 16395 WR5: 16396 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); 16397 WR6: 16398 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); 16399END_ENTITY; 16400 16401ENTITY right_angular_wedge 16402 SUBTYPE OF (geometric_representation_item); 16403 position : axis2_placement_3d; 16404 x : positive_length_measure; 16405 y : positive_length_measure; 16406 z : positive_length_measure; 16407 ltx : length_measure; 16408 WHERE 16409 WR1: 16410 (0.0 <= ltx) AND (ltx < x); 16411END_ENTITY; 16412 16413ENTITY right_circular_cone 16414 SUBTYPE OF (geometric_representation_item); 16415 position : axis1_placement; 16416 height : positive_length_measure; 16417 radius : length_measure; 16418 semi_angle : plane_angle_measure; 16419 WHERE 16420 WR1: 16421 radius >= 0.0; 16422END_ENTITY; 16423 16424ENTITY right_circular_cylinder 16425 SUBTYPE OF (geometric_representation_item); 16426 position : axis1_placement; 16427 height : positive_length_measure; 16428 radius : positive_length_measure; 16429END_ENTITY; 16430 16431-- IN AP203e2/AP242 16432ENTITY right_to_usage_association 16433 SUBTYPE OF (action_method_relationship); 16434 SELF\action_method_relationship.related_method : information_right; 16435 SELF\action_method_relationship.relating_method : information_usage_right; 16436 DERIVE 16437 right_applied : information_right := SELF\action_method_relationship.related_method; 16438 right_usage : information_usage_right := SELF\action_method_relationship.relating_method; 16439END_ENTITY; 16440 16441-- IN AP242 16442ENTITY rigid_link_representation 16443 SUBTYPE OF (kinematic_link_representation); 16444END_ENTITY; 16445 16446-- IN AP242 16447ENTITY rigid_subsketch 16448 SUBTYPE OF (subsketch); 16449END_ENTITY; 16450 16451ENTITY role_association; 16452 role : object_role; 16453 item_with_role : role_select; 16454END_ENTITY; 16455 16456-- IN AP214/AP242 16457ENTITY rolling_curve_pair 16458 SUBTYPE OF (planar_curve_pair); 16459END_ENTITY; 16460 16461-- DIFF IN AP214 16462-- IN AP214/AP242 16463ENTITY rolling_curve_pair_value 16464 SUBTYPE OF (pair_value); 16465 actual_point_on_curve_1 : point_on_curve; 16466 SELF\pair_value.applies_to_pair : rolling_curve_pair; 16467 WHERE 16468 WR1: 16469 SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve; 16470END_ENTITY; 16471 16472-- IN AP214/AP242 16473ENTITY rolling_surface_pair 16474 SUBTYPE OF (surface_pair); 16475END_ENTITY; 16476 16477-- DIFF IN AP214 16478-- IN AP214/AP242 16479ENTITY rolling_surface_pair_value 16480 SUBTYPE OF (pair_value); 16481 actual_point_on_surface : point_on_surface; 16482 actual_rotation : plane_angle_measure; 16483 SELF\pair_value.applies_to_pair : rolling_surface_pair; 16484 WHERE 16485 WR1: 16486 SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface.basis_surface; 16487END_ENTITY; 16488 16489-- DIFF IN AP214 16490-- IN AP214/AP242 16491ENTITY rotation_about_direction 16492 SUBTYPE OF (geometric_representation_item); 16493 direction_of_axis : direction; 16494 rotation_angle : plane_angle_measure; 16495 WHERE 16496 WR1: 16497 SIZEOF(direction_of_axis.direction_ratios) = 3; 16498END_ENTITY; 16499 16500-- IN AP214/AP242 16501ENTITY round_hole 16502 SUBTYPE OF (feature_definition); 16503 WHERE 16504 WR1: 16505 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; 16506 WR2: 16507 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; 16508 WR3: 16509 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; 16510 WR4: 16511 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; 16512 WR5: 16513 SIZEOF(QUERY (pdr <* get_property_definition_representations(SELF)| ('STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1; 16514END_ENTITY; 16515 16516-- IN AP242 16517ENTITY rounded_end 16518 SUBTYPE OF (feature_definition); 16519 WHERE 16520 WR1: 16521 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; 16522 WR2: 16523 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; 16524 WR3: 16525 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; 16526 WR4: 16527 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; 16528END_ENTITY; 16529 16530-- IN AP214/AP242 16531ENTITY rounded_u_profile 16532 SUBTYPE OF (shape_aspect); 16533 WHERE 16534 WR1: 16535 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 16536 WR2: 16537 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; 16538 WR3: 16539 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; 16540 WR4: 16541 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; 16542 WR5: 16543 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; 16544 WR6: 16545 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; 16546 WR7: 16547 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; 16548END_ENTITY; 16549 16550ENTITY roundness_tolerance 16551 SUBTYPE OF (geometric_tolerance); 16552 WHERE 16553 WR1: 16554 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); 16555END_ENTITY; 16556 16557-- IN AP203e2/AP242 16558ENTITY row_representation_item 16559 SUBTYPE OF (compound_representation_item); 16560 SELF\compound_representation_item.item_element : list_representation_item; 16561END_ENTITY; 16562 16563-- IN AP203e2/AP242 16564ENTITY row_value 16565 SUBTYPE OF (compound_representation_item); 16566END_ENTITY; 16567 16568-- IN AP203e2/AP242 16569ENTITY row_variable 16570 SUBTYPE OF (abstract_variable); 16571END_ENTITY; 16572 16573-- IN AP203e2/AP242 16574ENTITY rule_action 16575 SUBTYPE OF (action); 16576END_ENTITY; 16577 16578-- IN AP203e2/AP242 16579ENTITY rule_condition 16580 SUBTYPE OF (atomic_formula); 16581END_ENTITY; 16582 16583-- IN AP203e2/AP242 16584ENTITY rule_definition 16585 SUBTYPE OF (rule_software_definition); 16586END_ENTITY; 16587 16588-- IN AP203e2/AP242 16589ENTITY rule_set 16590 SUBTYPE OF (rule_software_definition); 16591END_ENTITY; 16592 16593-- IN AP203e2/AP242 16594ENTITY rule_set_group 16595 SUBTYPE OF (rule_software_definition); 16596END_ENTITY; 16597 16598-- IN AP203e2/AP242 16599ENTITY rule_software_definition 16600 SUBTYPE OF (product_definition); 16601END_ENTITY; 16602 16603-- IN AP203e2/AP242 16604ENTITY rule_superseded_assignment 16605 SUBTYPE OF (action_assignment); 16606 items : SET [1:?] OF rule_superseded_item; 16607END_ENTITY; 16608 16609-- IN AP203e2/AP242 16610ENTITY rule_supersedence 16611 SUBTYPE OF (rule_action); 16612END_ENTITY; 16613 16614ENTITY ruled_surface_swept_area_solid 16615 SUBTYPE OF (surface_curve_swept_area_solid); 16616 WHERE 16617 WR1: 16618 ('STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND (SELF.reference_surface\b_spline_surface.u_degree = 1); 16619 WR2: 16620 ('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); 16621END_ENTITY; 16622 16623ENTITY runout_zone_definition 16624 SUBTYPE OF (tolerance_zone_definition); 16625 orientation : runout_zone_orientation; 16626END_ENTITY; 16627 16628-- DIFF IN AP214 16629-- DIFF IN AP203e2 16630ENTITY runout_zone_orientation; 16631 angle : plane_angle_measure_with_unit; 16632END_ENTITY; 16633 16634ENTITY runout_zone_orientation_reference_direction 16635 SUBTYPE OF (runout_zone_orientation); 16636 orientation_defining_relationship : shape_aspect_relationship; 16637END_ENTITY; 16638 16639-- IN AP203e2/AP242 16640ENTITY satisfied_requirement 16641 SUBTYPE OF (group_assignment); 16642 items : SET [1:1] OF product_definition; 16643 SELF\group_assignment.assigned_group : satisfies_requirement; 16644END_ENTITY; 16645 16646-- IN AP203e2/AP242 16647ENTITY satisfies_requirement 16648 SUBTYPE OF (group); 16649END_ENTITY; 16650 16651-- IN AP203e2/AP242 16652ENTITY satisfying_item 16653 SUBTYPE OF (group_assignment); 16654 items : SET [1:1] OF requirement_satisfaction_item; 16655 SELF\group_assignment.assigned_group : satisfies_requirement; 16656END_ENTITY; 16657 16658-- IN AP203e2/AP242 16659ENTITY scalar_variable 16660 SUBTYPE OF (abstract_variable); 16661END_ENTITY; 16662 16663-- IN AP203e2 16664ENTITY scattering_parameter 16665 SUBTYPE OF (polar_complex_number_literal); 16666 WHERE 16667 WR1: 16668 SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\polar_complex_number_literal || SELF\scattering_parameter)) = 0; 16669END_ENTITY; 16670 16671-- DIFF IN AP214 16672-- IN AP214/AP242 16673ENTITY screw_pair 16674 SUBTYPE OF (low_order_kinematic_pair_with_motion_coupling); 16675 pitch : length_measure; 16676 WHERE 16677 WR1: 16678 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 16679END_ENTITY; 16680 16681-- IN AP214 16682ENTITY screw_pair_range 16683 SUBTYPE OF (simple_pair_range); 16684 SELF\simple_pair_range.applies_to_pair : screw_pair; 16685 lower_limit_actual_rotation : rotational_range_measure; 16686 upper_limit_actual_rotation : rotational_range_measure; 16687 WHERE 16688 wr1: 16689 (('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); 16690END_ENTITY; 16691 16692-- DIFF IN AP214 16693-- IN AP214/AP242 16694ENTITY screw_pair_value 16695 SUBTYPE OF (pair_value); 16696 actual_rotation : plane_angle_measure; 16697 SELF\pair_value.applies_to_pair : screw_pair; 16698 DERIVE 16699 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; 16700END_ENTITY; 16701 16702-- IN AP242 16703ENTITY screw_pair_with_range 16704 SUBTYPE OF (screw_pair); 16705 lower_limit_actual_rotation : OPTIONAL plane_angle_measure; 16706 upper_limit_actual_rotation : OPTIONAL plane_angle_measure; 16707 WHERE 16708 WR1: 16709 (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); 16710END_ENTITY; 16711 16712-- IN AP203e2/AP242 16713ENTITY sculptured_solid 16714 SUBTYPE OF (modified_solid); 16715 sculpturing_element : generalized_surface_select; 16716 positive_side : BOOLEAN; 16717END_ENTITY; 16718 16719-- IN AP242 16720ENTITY sdgc_with_dimension 16721 SUBTYPE OF (surface_distance_geometric_constraint); 16722 distance_value : non_negative_length_measure; 16723END_ENTITY; 16724 16725ENTITY seam_curve 16726 SUBTYPE OF (surface_curve); 16727 WHERE 16728 WR1: 16729 SIZEOF(SELF\surface_curve.associated_geometry) = 2; 16730 WR2: 16731 associated_surface(SELF\surface_curve.associated_geometry[1]) = associated_surface(SELF\surface_curve.associated_geometry[2]); 16732 WR3: 16733 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[1]); 16734 WR4: 16735 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(SELF\surface_curve.associated_geometry[2]); 16736END_ENTITY; 16737 16738-- IN AP214 16739ENTITY seam_edge 16740 SUBTYPE OF (oriented_edge); 16741 pcurve_reference : pcurve; 16742 WHERE 16743 wr1: 16744 ('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)); 16745 wr2: 16746 pcurve_reference IN edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry; 16747END_ENTITY; 16748 16749ENTITY security_classification; 16750 name : label; 16751 purpose : text; 16752 security_level : security_classification_level; 16753END_ENTITY; 16754 16755ENTITY security_classification_assignment 16756 ABSTRACT SUPERTYPE; 16757 assigned_security_classification : security_classification; 16758 DERIVE 16759 role : object_role := get_role(SELF); 16760 WHERE 16761 WR1: 16762 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; 16763END_ENTITY; 16764 16765ENTITY security_classification_level; 16766 name : label; 16767END_ENTITY; 16768 16769-- IN AP242 16770ENTITY selector_function 16771 SUBTYPE OF (maths_function, generic_literal); 16772 selector : input_selector; 16773 source_of_domain : maths_space_or_function; 16774 WHERE 16775 WR1: 16776 no_cyclic_domain_reference(source_of_domain, [ SELF ]); 16777 WR2: 16778 expression_is_constant(domain_from(source_of_domain)); 16779END_ENTITY; 16780 16781-- IN AP242 16782ENTITY self_intersecting_curve 16783 SUBTYPE OF (self_intersecting_geometry); 16784 arc_length_separation_factor : REAL; 16785 interference_tolerance : length_measure; 16786 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 16787 WHERE 16788 WR1: 16789 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 16790 WR2: 16791 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE' ]); 16792 WR3: 16793 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE' ]); 16794 WR4: 16795 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 16796END_ENTITY; 16797 16798-- IN AP242 16799ENTITY self_intersecting_geometry 16800 ABSTRACT SUPERTYPE OF (ONEOF(self_intersecting_curve, self_intersecting_surface)) 16801 SUBTYPE OF (inapt_geometry); 16802END_ENTITY; 16803 16804-- IN AP242 16805ENTITY self_intersecting_loop 16806 SUBTYPE OF (topology_related_to_self_intersecting_geometry); 16807 arc_length_distance_factor : REAL; 16808 interference_tolerance : length_measure; 16809 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 16810 WHERE 16811 WR1: 16812 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 16813 WR2: 16814 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' ]); 16815 WR3: 16816 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]); 16817 WR4: 16818 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 16819END_ENTITY; 16820 16821-- IN AP242 16822ENTITY self_intersecting_shell 16823 SUBTYPE OF (topology_related_to_self_intersecting_geometry); 16824 geodesic_separation_factor : REAL; 16825 interference_tolerance : length_measure; 16826 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 16827 WHERE 16828 WR1: 16829 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 16830 WR2: 16831 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 16832 WR3: 16833 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE', 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_FACE_SURFACE' ]); 16834 WR4: 16835 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 16836END_ENTITY; 16837 16838-- IN AP242 16839ENTITY self_intersecting_surface 16840 SUBTYPE OF (self_intersecting_geometry); 16841 geodesic_separation_factor : REAL; 16842 interference_tolerance : length_measure; 16843 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 16844 WHERE 16845 WR1: 16846 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 16847 WR2: 16848 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]); 16849 WR3: 16850 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE', 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]); 16851 WR4: 16852 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 16853END_ENTITY; 16854 16855ENTITY serial_numbered_effectivity 16856 SUBTYPE OF (effectivity); 16857 effectivity_start_id : identifier; 16858 effectivity_end_id : OPTIONAL identifier; 16859END_ENTITY; 16860 16861-- IN AP242 16862ENTITY series_composed_function 16863 SUBTYPE OF (maths_function, multiple_arity_generic_expression); 16864 SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF maths_function; 16865 WHERE 16866 WR1: 16867 composable_sequence(SELF\multiple_arity_generic_expression.operands); 16868END_ENTITY; 16869 16870-- DIFF IN AP214 16871-- DIFF IN AP203e2 16872ENTITY shape_aspect 16873 SUPERTYPE OF (ONEOF(contacting_feature, datum, datum_feature, datum_target, datum_system, general_datum_reference)); 16874 name : label; 16875 description : OPTIONAL text; 16876 of_shape : product_definition_shape; 16877 product_definitional : LOGICAL; 16878 DERIVE 16879 id : identifier := get_id_value(SELF); 16880 UNIQUE 16881 UR1 : id, of_shape; 16882 WHERE 16883 WR1: 16884 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 16885END_ENTITY; 16886 16887ENTITY shape_aspect_associativity 16888 SUBTYPE OF (shape_aspect_relationship); 16889 WHERE 16890 WR1: 16891 SELF.relating_shape_aspect.product_definitional; 16892 WR2: 16893 NOT SELF.related_shape_aspect.product_definitional; 16894END_ENTITY; 16895 16896-- DIFF IN AP214 16897-- DIFF IN AP203e2 16898ENTITY shape_aspect_deriving_relationship 16899 SUBTYPE OF (shape_aspect_relationship); 16900 SELF\shape_aspect_relationship.relating_shape_aspect : derived_shape_aspect; 16901END_ENTITY; 16902 16903ENTITY shape_aspect_relationship; 16904 name : label; 16905 description : OPTIONAL text; 16906 relating_shape_aspect : shape_aspect; 16907 related_shape_aspect : shape_aspect; 16908 DERIVE 16909 id : identifier := get_id_value(SELF); 16910 WHERE 16911 WR1: 16912 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; 16913END_ENTITY; 16914 16915-- IN AP242 16916ENTITY shape_aspect_relationship_representation_association; 16917 represented_shape_aspect_relationship : shape_aspect_relationship; 16918 representing_representation_relationship : representation_relationship; 16919 WHERE 16920 WR1: 16921 ('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)); 16922 WR2: 16923 (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)); 16924 WR3: 16925 (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); 16926 WR4: 16927 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); 16928 WR5: 16929 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) ]); 16930END_ENTITY; 16931 16932-- IN AP214 16933ENTITY shape_aspect_transition 16934 SUBTYPE OF (shape_aspect_relationship); 16935 WHERE 16936 wr1: 16937 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; 16938 wr2: 16939 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; 16940 wr3: 16941 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; 16942 wr4: 16943 SELF.name IN [ 'g0', 'g1', 'g2' ]; 16944END_ENTITY; 16945 16946-- IN AP242 16947ENTITY shape_criteria_representation_with_accuracy 16948 SUBTYPE OF (shape_data_quality_criteria_representation); 16949 required_general_accuracy : SET [1:?] OF shape_measurement_accuracy; 16950END_ENTITY; 16951 16952-- IN AP242 16953ENTITY shape_data_quality_assessment_by_logical_test 16954 SUBTYPE OF (data_quality_assessment_specification); 16955END_ENTITY; 16956 16957-- IN AP242 16958ENTITY shape_data_quality_assessment_by_numerical_test 16959 SUBTYPE OF (data_quality_assessment_specification); 16960 threshold : shape_data_quality_value_limit_type_select; 16961END_ENTITY; 16962 16963-- IN AP242 16964ENTITY shape_data_quality_criteria_representation 16965 SUBTYPE OF (data_quality_criteria_representation); 16966 WHERE 16967 WR1: 16968 SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_CRITERION' IN TYPEOF(q)))) > 0; 16969END_ENTITY; 16970 16971-- IN AP242 16972ENTITY shape_data_quality_criterion 16973 SUPERTYPE OF (ONEOF(erroneous_data, inapt_data)) 16974 SUBTYPE OF (data_quality_criterion, data_quality_measurement_requirement); 16975 assessment_specification : shape_data_quality_assessment_specification_select; 16976 WHERE 16977 WR1: 16978 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION')) = 0; 16979 WR2: 16980 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; 16981 WR3: 16982 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; 16983END_ENTITY; 16984 16985-- IN AP242 16986ENTITY shape_data_quality_criterion_and_accuracy_association; 16987 required_specific_accuracy : shape_measurement_accuracy; 16988 shape_data_quality_criterion : shape_data_quality_criterion; 16989END_ENTITY; 16990 16991-- IN AP242 16992ENTITY shape_data_quality_inspected_shape_and_result_relationship 16993 SUBTYPE OF (shape_representation_relationship); 16994 SELF\representation_relationship.rep_1 : shape_representation; 16995 SELF\representation_relationship.rep_2 : shape_data_quality_inspection_result_representation; 16996 WHERE 16997 WR1: 16998 SIZEOF(using_product_definition_of_shape_representation(SELF.rep_1) * bag_to_set(inspected_product_definition(SELF.rep_2))) > 0; 16999 WR2: 17000 SELF.rep_1\representation.context_of_items :=: SELF.rep_2\representation.context_of_items; 17001END_ENTITY; 17002 17003-- IN AP242 17004ENTITY shape_data_quality_inspection_criterion_report 17005 SUBTYPE OF (data_quality_inspection_criterion_report); 17006 representative_measured_value : measured_value_select; 17007END_ENTITY; 17008 17009-- IN AP242 17010ENTITY shape_data_quality_inspection_instance_report 17011 SUBTYPE OF (data_quality_inspection_instance_report); 17012 SELF\data_quality_inspection_instance_report.inspected_instances : LIST [1:?] OF shape_data_quality_inspection_instance_report_item; 17013END_ENTITY; 17014 17015-- IN AP242 17016ENTITY shape_data_quality_inspection_instance_report_item 17017 SUBTYPE OF (data_quality_inspection_instance_report_item); 17018 measured_value : measured_value_select; 17019 SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1:?] OF inspected_shape_element_select; 17020END_ENTITY; 17021 17022-- IN AP242 17023ENTITY shape_data_quality_inspection_result 17024 SUBTYPE OF (data_quality_inspection_result); 17025 SELF\data_quality_inspection_result.criterion_inspected : shape_data_quality_criterion; 17026END_ENTITY; 17027 17028-- IN AP242 17029ENTITY shape_data_quality_inspection_result_representation 17030 SUBTYPE OF (data_quality_inspection_result_representation); 17031 WHERE 17032 WR1: 17033 SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)))) > 0; 17034 WR2: 17035 'STEP_MERGED_CAD_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); 17036 WR3: 17037 SIZEOF(USEDIN(SELF, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2')) > 0; 17038END_ENTITY; 17039 17040-- IN AP242 17041ENTITY shape_data_quality_lower_value_limit 17042 SUBTYPE OF (shape_data_quality_value_limit); 17043 WHERE 17044 WR1: 17045 SELF\qualified_representation_item.qualifiers[1].name = 'minimum'; 17046END_ENTITY; 17047 17048-- IN AP242 17049ENTITY shape_data_quality_upper_value_limit 17050 SUBTYPE OF (shape_data_quality_value_limit); 17051 WHERE 17052 WR1: 17053 SELF\qualified_representation_item.qualifiers[1].name = 'maximum'; 17054END_ENTITY; 17055 17056-- IN AP242 17057ENTITY shape_data_quality_value_limit 17058 ABSTRACT SUPERTYPE OF (ONEOF(shape_data_quality_upper_value_limit, shape_data_quality_lower_value_limit)) 17059 SUBTYPE OF (measure_representation_item, qualified_representation_item); 17060END_ENTITY; 17061 17062-- IN AP242 17063ENTITY shape_data_quality_value_range 17064 SUBTYPE OF (compound_representation_item); 17065 WHERE 17066 WR1: 17067 ('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))); 17068 WR2: 17069 (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); 17070 WR3: 17071 (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); 17072END_ENTITY; 17073 17074-- IN AP214/AP242 17075ENTITY shape_defining_relationship 17076 SUBTYPE OF (shape_aspect_relationship); 17077END_ENTITY; 17078 17079-- DIFF IN AP214 17080-- DIFF IN AP203e2 17081ENTITY shape_definition_representation 17082 SUBTYPE OF (property_definition_representation); 17083 SELF\property_definition_representation.definition : property_definition; 17084 SELF\property_definition_representation.used_representation : shape_representation; 17085 WHERE 17086 WR1: 17087 ('STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(definition)) OR ('STEP_MERGED_CAD_SCHEMA.SHAPE_DEFINITION' IN TYPEOF(definition\property_definition.definition)); 17088END_ENTITY; 17089 17090-- DIFF IN AP214 17091-- DIFF IN AP203e2 17092ENTITY shape_dimension_representation 17093 SUBTYPE OF (shape_representation); 17094 SELF\representation.items : SET [1:?] OF shape_dimension_representation_item; 17095END_ENTITY; 17096 17097-- DIFF IN AP203e2 17098-- IN AP203e2/AP242 17099ENTITY shape_feature_definition 17100 SUBTYPE OF (feature_definition); 17101END_ENTITY; 17102 17103-- IN AP242 17104ENTITY shape_inspection_result_accuracy_association; 17105 applied_specific_accuracy : shape_measurement_accuracy; 17106 shape_data_quality_result : shape_data_quality_inspection_result; 17107END_ENTITY; 17108 17109-- IN AP242 17110ENTITY shape_inspection_result_representation_with_accuracy 17111 SUBTYPE OF (shape_data_quality_inspection_result_representation); 17112 applied_general_accuracy : SET [1:?] OF shape_measurement_accuracy; 17113END_ENTITY; 17114 17115-- IN AP242 17116ENTITY shape_measurement_accuracy; 17117 description : text; 17118 range : shape_data_quality_value_limit_type_select; 17119END_ENTITY; 17120 17121ENTITY shape_representation 17122 SUBTYPE OF (representation); 17123END_ENTITY; 17124 17125ENTITY shape_representation_relationship 17126 SUBTYPE OF (representation_relationship); 17127 WHERE 17128 WR1: 17129 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2); 17130END_ENTITY; 17131 17132-- DIFF IN AP214 17133-- DIFF IN AP203e2 17134ENTITY shape_representation_with_parameters 17135 SUBTYPE OF (shape_representation); 17136 SELF\representation.items : SET [1:?] OF shape_representation_with_parameters_items; 17137END_ENTITY; 17138 17139-- IN AP242 17140ENTITY shape_summary_request_with_representative_value 17141 SUBTYPE OF (summary_report_request); 17142END_ENTITY; 17143 17144ENTITY shell_based_surface_model 17145 SUBTYPE OF (geometric_representation_item); 17146 sbsm_boundary : SET [1:?] OF shell; 17147 WHERE 17148 WR1: 17149 constraints_geometry_shell_based_surface_model(SELF); 17150END_ENTITY; 17151 17152-- IN AP203e2/AP242 17153ENTITY shell_based_wireframe_model 17154 SUBTYPE OF (geometric_representation_item); 17155 sbwm_boundary : SET [1:?] OF shell; 17156 WHERE 17157 WR1: 17158 constraints_geometry_shell_based_wireframe_model(SELF); 17159END_ENTITY; 17160 17161-- IN AP203e2/AP242 17162ENTITY shell_based_wireframe_shape_representation 17163 SUBTYPE OF (shape_representation); 17164 WHERE 17165 WR1: 17166 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; 17167 WR2: 17168 SIZEOF(QUERY (it <* SELF.items| (SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.SHELL_BASED_WIREFRAME_MODEL', 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' ] * TYPEOF(it)) = 1))) >= 1; 17169 WR3: 17170 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; 17171 WR4: 17172 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; 17173 WR5: 17174 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; 17175 WR6: 17176 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; 17177 WR7: 17178 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; 17179 WR8: 17180 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; 17181 WR9: 17182 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; 17183 WR10: 17184 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; 17185 WR11: 17186 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; 17187 WR12: 17188 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; 17189 WR13: 17190 SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3; 17191END_ENTITY; 17192 17193-- IN AP203e2/AP242 17194ENTITY shelled_solid 17195 SUPERTYPE OF (ONEOF(double_offset_shelled_solid, complex_shelled_solid)) 17196 SUBTYPE OF (modified_solid); 17197 deleted_face_set : SET [1:?] OF face_surface; 17198 thickness : length_measure; 17199 WHERE 17200 WR1: 17201 thickness <> 0; 17202END_ENTITY; 17203 17204-- IN AP242 17205ENTITY short_length_curve 17206 SUBTYPE OF (nearly_degenerate_geometry); 17207 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 17208 WHERE 17209 WR1: 17210 ('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)); 17211 WR2: 17212 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 17213 WR3: 17214 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CURVE' ]); 17215 WR4: 17216 validate_locations_of_extreme_value_type(SELF, []); 17217 WR5: 17218 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 17219END_ENTITY; 17220 17221-- IN AP242 17222ENTITY short_length_curve_segment 17223 SUBTYPE OF (geometry_with_local_near_degeneracy); 17224 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 17225 WHERE 17226 WR1: 17227 ('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)); 17228 WR2: 17229 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 17230 WR3: 17231 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_CURVE' ]); 17232 WR4: 17233 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_CURVE_SEGMENT' ]); 17234 WR5: 17235 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 17236END_ENTITY; 17237 17238-- IN AP242 17239ENTITY short_length_edge 17240 SUBTYPE OF (topology_related_to_nearly_degenerate_geometry); 17241 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 17242 WHERE 17243 WR1: 17244 ('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)); 17245 WR2: 17246 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 17247 WR3: 17248 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_CURVE' ]); 17249 WR4: 17250 validate_locations_of_extreme_value_type(SELF, []); 17251 WR5: 17252 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 17253END_ENTITY; 17254 17255-- IN AP203e2/AP242 17256ENTITY si_absorbed_dose_unit 17257 SUBTYPE OF (absorbed_dose_unit, si_unit); 17258 WHERE 17259 WR1: 17260 SELF\si_unit.name = si_unit_name.gray; 17261 WR2: 17262 NOT EXISTS(SELF\derived_unit.name); 17263END_ENTITY; 17264 17265-- IN AP203e2/AP242 17266ENTITY si_capacitance_unit 17267 SUBTYPE OF (capacitance_unit, si_unit); 17268 WHERE 17269 WR1: 17270 SELF\si_unit.name = si_unit_name.farad; 17271 WR2: 17272 NOT EXISTS(SELF\derived_unit.name); 17273END_ENTITY; 17274 17275-- IN AP203e2/AP242 17276ENTITY si_conductance_unit 17277 SUBTYPE OF (conductance_unit, si_unit); 17278 WHERE 17279 WR1: 17280 SELF\si_unit.name = si_unit_name.siemens; 17281 WR2: 17282 NOT EXISTS(SELF\derived_unit.name); 17283END_ENTITY; 17284 17285-- IN AP203e2/AP242 17286ENTITY si_dose_equivalent_unit 17287 SUBTYPE OF (dose_equivalent_unit, si_unit); 17288 WHERE 17289 WR1: 17290 SELF\si_unit.name = si_unit_name.sievert; 17291 WR2: 17292 NOT EXISTS(SELF\derived_unit.name); 17293END_ENTITY; 17294 17295-- IN AP203e2/AP242 17296ENTITY si_electric_charge_unit 17297 SUBTYPE OF (electric_charge_unit, si_unit); 17298 WHERE 17299 WR1: 17300 SELF\si_unit.name = si_unit_name.coulomb; 17301 WR2: 17302 NOT EXISTS(SELF\derived_unit.name); 17303END_ENTITY; 17304 17305-- IN AP203e2/AP242 17306ENTITY si_electric_potential_unit 17307 SUBTYPE OF (electric_potential_unit, si_unit); 17308 WHERE 17309 WR1: 17310 SELF\si_unit.name = si_unit_name.volt; 17311 WR2: 17312 NOT EXISTS(SELF\derived_unit.name); 17313END_ENTITY; 17314 17315-- IN AP203e2/AP242 17316ENTITY si_energy_unit 17317 SUBTYPE OF (energy_unit, si_unit); 17318 WHERE 17319 WR1: 17320 SELF\si_unit.name = si_unit_name.joule; 17321 WR2: 17322 NOT EXISTS(SELF\derived_unit.name); 17323END_ENTITY; 17324 17325-- IN AP203e2/AP242 17326ENTITY si_force_unit 17327 SUBTYPE OF (force_unit, si_unit); 17328 WHERE 17329 WR1: 17330 SELF\si_unit.name = si_unit_name.newton; 17331 WR2: 17332 NOT EXISTS(SELF\derived_unit.name); 17333END_ENTITY; 17334 17335-- IN AP203e2/AP242 17336ENTITY si_frequency_unit 17337 SUBTYPE OF (frequency_unit, si_unit); 17338 WHERE 17339 WR1: 17340 SELF\si_unit.name = si_unit_name.hertz; 17341 WR2: 17342 NOT EXISTS(SELF\derived_unit.name); 17343END_ENTITY; 17344 17345-- IN AP203e2/AP242 17346ENTITY si_illuminance_unit 17347 SUBTYPE OF (illuminance_unit, si_unit); 17348 WHERE 17349 WR1: 17350 SELF\si_unit.name = si_unit_name.lux; 17351 WR2: 17352 NOT EXISTS(SELF\derived_unit.name); 17353END_ENTITY; 17354 17355-- IN AP203e2/AP242 17356ENTITY si_inductance_unit 17357 SUBTYPE OF (inductance_unit, si_unit); 17358 WHERE 17359 WR1: 17360 SELF\si_unit.name = si_unit_name.henry; 17361 WR2: 17362 NOT EXISTS(SELF\derived_unit.name); 17363END_ENTITY; 17364 17365-- IN AP203e2/AP242 17366ENTITY si_magnetic_flux_density_unit 17367 SUBTYPE OF (magnetic_flux_density_unit, si_unit); 17368 WHERE 17369 WR1: 17370 SELF\si_unit.name = si_unit_name.tesla; 17371 WR2: 17372 NOT EXISTS(SELF\derived_unit.name); 17373END_ENTITY; 17374 17375-- IN AP203e2/AP242 17376ENTITY si_magnetic_flux_unit 17377 SUBTYPE OF (magnetic_flux_unit, si_unit); 17378 WHERE 17379 WR1: 17380 SELF\si_unit.name = si_unit_name.weber; 17381 WR2: 17382 NOT EXISTS(SELF\derived_unit.name); 17383END_ENTITY; 17384 17385-- IN AP203e2/AP242 17386ENTITY si_power_unit 17387 SUBTYPE OF (power_unit, si_unit); 17388 WHERE 17389 WR1: 17390 SELF\si_unit.name = si_unit_name.watt; 17391 WR2: 17392 NOT EXISTS(SELF\derived_unit.name); 17393END_ENTITY; 17394 17395-- IN AP203e2/AP242 17396ENTITY si_pressure_unit 17397 SUBTYPE OF (pressure_unit, si_unit); 17398 WHERE 17399 WR1: 17400 SELF\si_unit.name = si_unit_name.pascal; 17401 WR2: 17402 NOT EXISTS(SELF\derived_unit.name); 17403END_ENTITY; 17404 17405-- IN AP203e2/AP242 17406ENTITY si_radioactivity_unit 17407 SUBTYPE OF (radioactivity_unit, si_unit); 17408 WHERE 17409 WR1: 17410 SELF\si_unit.name = si_unit_name.becquerel; 17411 WR2: 17412 NOT EXISTS(SELF\derived_unit.name); 17413END_ENTITY; 17414 17415-- IN AP203e2/AP242 17416ENTITY si_resistance_unit 17417 SUBTYPE OF (resistance_unit, si_unit); 17418 WHERE 17419 WR1: 17420 SELF\si_unit.name = si_unit_name.ohm; 17421 WR2: 17422 NOT EXISTS(SELF\derived_unit.name); 17423END_ENTITY; 17424 17425ENTITY si_unit 17426 SUBTYPE OF (named_unit); 17427 prefix : OPTIONAL si_prefix; 17428 name : si_unit_name; 17429 DERIVE 17430 SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name); 17431 WHERE 17432 WR1: 17433 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); 17434END_ENTITY; 17435 17436-- DIFF IN AP203e2 17437ENTITY simple_boolean_expression 17438 ABSTRACT SUPERTYPE OF (ONEOF(boolean_literal, boolean_variable)) 17439 SUBTYPE OF (boolean_expression, simple_generic_expression); 17440END_ENTITY; 17441 17442-- IN AP203e2/AP242 17443ENTITY simple_clause 17444 SUBTYPE OF (compound_representation_item); 17445END_ENTITY; 17446 17447ENTITY simple_generic_expression 17448 ABSTRACT SUPERTYPE OF (ONEOF(generic_literal, generic_variable)) 17449 SUBTYPE OF (generic_expression); 17450END_ENTITY; 17451 17452-- DIFF IN AP203e2 17453ENTITY simple_numeric_expression 17454 ABSTRACT SUPERTYPE OF (ONEOF(literal_number, numeric_variable)) 17455 SUBTYPE OF (numeric_expression, simple_generic_expression); 17456END_ENTITY; 17457 17458-- IN AP214 17459ENTITY simple_pair_range; 17460 applies_to_pair : kinematic_pair; 17461END_ENTITY; 17462 17463-- IN AP214/AP242 17464ENTITY simple_string_expression 17465 ABSTRACT SUPERTYPE OF (ONEOF(string_literal, string_variable)) 17466 SUBTYPE OF (string_expression, simple_generic_expression); 17467END_ENTITY; 17468 17469-- IN AP242 17470ENTITY simultaneous_constraint_group 17471 SUBTYPE OF (variational_representation_item); 17472 constraint_group : SET [2:?] OF constraint_group_member; 17473 WHERE 17474 WR1: 17475 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; 17476 WR2: 17477 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; 17478 WR3: 17479 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; 17480END_ENTITY; 17481 17482-- IN AP214/AP242 17483ENTITY sin_function 17484 SUBTYPE OF (unary_function_call); 17485END_ENTITY; 17486 17487-- IN AP242 17488ENTITY single_area_csg_2d_shape_representation 17489 SUBTYPE OF (csg_2d_shape_representation); 17490 SELF\representation.items : SET [1:?] OF csg_2d_area_select; 17491 WHERE 17492 WR1: 17493 SIZEOF(QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)))) = 0; 17494 WR2: 17495 SIZEOF(QUERY (it <* SELF.items| ('STEP_MERGED_CAD_SCHEMA.CSG_SOLID_2D' IN TYPEOF(it)))) = 1; 17496END_ENTITY; 17497 17498-- IN AP242 17499ENTITY single_boundary_csg_2d_shape_representation 17500 SUBTYPE OF (single_area_csg_2d_shape_representation); 17501 WHERE 17502 WR1: 17503 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; 17504END_ENTITY; 17505 17506-- IN AP242 17507ENTITY single_property_is_definition 17508 SUBTYPE OF (property_definition); 17509 SELF\property_definition.definition : product_definition; 17510 UNIQUE 17511 UR1 : definition; 17512END_ENTITY; 17513 17514-- IN AP242 17515ENTITY skew_line_distance_geometric_constraint 17516 SUBTYPE OF (explicit_geometric_constraint); 17517 distance_value : non_negative_length_measure; 17518 SELF\explicit_constraint.constrained_elements : SET [1:2] OF line; 17519 SELF\explicit_constraint.reference_elements : SET [0:1] OF line; 17520 WHERE 17521 WR1: 17522 SIZEOF(SELF\explicit_constraint.constrained_elements + SELF\explicit_constraint.reference_elements) = 2; 17523END_ENTITY; 17524 17525ENTITY slash_expression 17526 SUBTYPE OF (binary_numeric_expression); 17527END_ENTITY; 17528 17529-- IN AP214/AP242 17530ENTITY sliding_curve_pair 17531 SUBTYPE OF (planar_curve_pair); 17532END_ENTITY; 17533 17534-- DIFF IN AP214 17535-- IN AP214/AP242 17536ENTITY sliding_curve_pair_value 17537 SUBTYPE OF (pair_value); 17538 actual_point_on_curve_1 : point_on_curve; 17539 actual_point_on_curve_2 : point_on_curve; 17540 SELF\pair_value.applies_to_pair : sliding_curve_pair; 17541 WHERE 17542 WR1: 17543 SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=: actual_point_on_curve_1.basis_curve; 17544 WR2: 17545 SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=: actual_point_on_curve_2.basis_curve; 17546END_ENTITY; 17547 17548-- IN AP214/AP242 17549ENTITY sliding_surface_pair 17550 SUBTYPE OF (surface_pair); 17551END_ENTITY; 17552 17553-- DIFF IN AP214 17554-- IN AP214/AP242 17555ENTITY sliding_surface_pair_value 17556 SUBTYPE OF (pair_value); 17557 actual_point_on_surface_1 : point_on_surface; 17558 actual_point_on_surface_2 : point_on_surface; 17559 actual_rotation : plane_angle_measure; 17560 SELF\pair_value.applies_to_pair : sliding_surface_pair; 17561 WHERE 17562 WR1: 17563 SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=: actual_point_on_surface_1.basis_surface; 17564 WR2: 17565 SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=: actual_point_on_surface_2.basis_surface; 17566END_ENTITY; 17567 17568-- IN AP214/AP242 17569ENTITY slot 17570 SUBTYPE OF (feature_definition); 17571 WHERE 17572 WR1: 17573 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; 17574 WR2: 17575 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; 17576 WR3: 17577 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; 17578 WR4: 17579 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; 17580 WR5: 17581 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); 17582 WR6: 17583 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; 17584END_ENTITY; 17585 17586-- IN AP214/AP242 17587ENTITY slot_end 17588 SUBTYPE OF (shape_aspect); 17589 WHERE 17590 WR1: 17591 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 17592 WR2: 17593 SELF.description IN [ 'open', 'radiused', 'flat', 'woodruff', 'loop' ]; 17594 WR3: 17595 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); 17596 WR4: 17597 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); 17598 WR5: 17599 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); 17600 WR6: 17601 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); 17602 WR7: 17603 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); 17604 WR8: 17605 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); 17606 WR9: 17607 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); 17608 WR10: 17609 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; 17610END_ENTITY; 17611 17612-- IN AP242 17613ENTITY small_area_face 17614 SUBTYPE OF (topology_related_to_nearly_degenerate_geometry); 17615 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 17616 WHERE 17617 WR1: 17618 ('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)); 17619 WR2: 17620 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE'); 17621 WR3: 17622 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 17623 WR4: 17624 validate_locations_of_extreme_value_type(SELF, []); 17625 WR5: 17626 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]); 17627END_ENTITY; 17628 17629-- IN AP242 17630ENTITY small_area_surface 17631 SUBTYPE OF (nearly_degenerate_geometry); 17632 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 17633 WHERE 17634 WR1: 17635 ('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)); 17636 WR2: 17637 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE'); 17638 WR3: 17639 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]); 17640 WR4: 17641 validate_locations_of_extreme_value_type(SELF, []); 17642 WR5: 17643 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]); 17644END_ENTITY; 17645 17646-- IN AP242 17647ENTITY small_area_surface_patch 17648 SUBTYPE OF (geometry_with_local_near_degeneracy); 17649 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 17650 WHERE 17651 WR1: 17652 ('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)); 17653 WR2: 17654 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE'); 17655 WR3: 17656 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.B_SPLINE_SURFACE' ]); 17657 WR4: 17658 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_PATCH' ]); 17659 WR5: 17660 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' ]); 17661END_ENTITY; 17662 17663-- IN AP242 17664ENTITY small_volume_solid 17665 SUBTYPE OF (inapt_manifold_solid_brep); 17666 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 17667 WHERE 17668 WR1: 17669 ('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)); 17670 WR2: 17671 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.VOLUME_MEASURE'); 17672 WR3: 17673 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]); 17674 WR4: 17675 validate_locations_of_extreme_value_type(SELF, []); 17676 WR5: 17677 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.VOLUME_MEASURE' ]); 17678END_ENTITY; 17679 17680-- IN AP203e2/AP242 17681ENTITY smeared_material_definition 17682 SUBTYPE OF (zone_structural_makeup); 17683END_ENTITY; 17684 17685-- IN AP242 17686ENTITY software_for_data_quality_check; 17687 description : text; 17688 software_name : text; 17689 software_version : text; 17690 data_quality : data_quality_definition_representation_relationship; 17691END_ENTITY; 17692 17693ENTITY solid_angle_measure_with_unit 17694 SUBTYPE OF (measure_with_unit); 17695 WHERE 17696 WR1: 17697 'STEP_MERGED_CAD_SCHEMA.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 17698END_ENTITY; 17699 17700ENTITY solid_angle_unit 17701 SUBTYPE OF (named_unit); 17702 WHERE 17703 WR1: 17704 ((((((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); 17705END_ENTITY; 17706 17707-- IN AP203e2/AP242 17708ENTITY solid_curve_font 17709 SUBTYPE OF (pre_defined_curve_font); 17710END_ENTITY; 17711 17712ENTITY solid_model 17713 SUPERTYPE OF (ONEOF(csg_solid, manifold_solid_brep, swept_face_solid, swept_area_solid, swept_disk_solid, solid_replica)) 17714 SUBTYPE OF (geometric_representation_item); 17715END_ENTITY; 17716 17717ENTITY solid_replica 17718 SUBTYPE OF (solid_model); 17719 parent_solid : solid_model; 17720 transformation : cartesian_transformation_operator_3d; 17721 WHERE 17722 WR1: 17723 acyclic_solid_replica(SELF, parent_solid); 17724 WR2: 17725 parent_solid\geometric_representation_item.dim = 3; 17726END_ENTITY; 17727 17728-- IN AP203e2/AP242 17729ENTITY solid_with_angle_based_chamfer 17730 SUBTYPE OF (solid_with_chamfered_edges); 17731 offset_distance : positive_length_measure; 17732 left_offset : BOOLEAN; 17733 offset_angle : positive_plane_angle_measure; 17734END_ENTITY; 17735 17736-- IN AP203e2/AP242 17737ENTITY solid_with_chamfered_edges 17738 ABSTRACT SUPERTYPE OF (ONEOF(solid_with_single_offset_chamfer, solid_with_double_offset_chamfer, solid_with_angle_based_chamfer)) 17739 SUBTYPE OF (edge_blended_solid); 17740END_ENTITY; 17741 17742-- IN AP203e2/AP242 17743ENTITY solid_with_circular_pattern 17744 SUPERTYPE OF (solid_with_incomplete_circular_pattern) 17745 SUBTYPE OF (solid_with_shape_element_pattern); 17746 replicate_count : positive_integer; 17747 angular_spacing : plane_angle_measure; 17748 radial_alignment : BOOLEAN; 17749 reference_point : point; 17750END_ENTITY; 17751 17752-- IN AP203e2/AP242 17753ENTITY solid_with_circular_pocket 17754 SUBTYPE OF (solid_with_pocket); 17755 pocket_radius : positive_length_measure; 17756 WHERE 17757 WR1: 17758 SELF\solid_with_pocket.floor_blend_radius <= pocket_radius; 17759END_ENTITY; 17760 17761-- IN AP203e2/AP242 17762ENTITY solid_with_circular_protrusion 17763 SUBTYPE OF (solid_with_protrusion); 17764 protrusion_radius : positive_length_measure; 17765END_ENTITY; 17766 17767-- IN AP203e2/AP242 17768ENTITY solid_with_conical_bottom_round_hole 17769 SUBTYPE OF (solid_with_stepped_round_hole); 17770 semi_apex_angle : positive_plane_angle_measure; 17771 tip_radius : non_negative_length_measure; 17772 WHERE 17773 WR1: 17774 tip_radius < SELF\solid_with_stepped_round_hole.segment_radii[segments]; 17775END_ENTITY; 17776 17777-- IN AP203e2/AP242 17778ENTITY solid_with_constant_radius_edge_blend 17779 SUBTYPE OF (edge_blended_solid); 17780 radius : positive_length_measure; 17781END_ENTITY; 17782 17783-- IN AP203e2/AP242 17784ENTITY solid_with_curved_slot 17785 SUBTYPE OF (solid_with_slot); 17786 slot_centreline : bounded_curve; 17787END_ENTITY; 17788 17789-- IN AP203e2/AP242 17790ENTITY solid_with_depression 17791 ABSTRACT SUPERTYPE OF (solid_with_through_depression ANDOR ONEOF(solid_with_hole, solid_with_pocket, solid_with_slot, solid_with_groove)) 17792 SUBTYPE OF (modified_solid_with_placed_configuration); 17793 depth : positive_length_measure; 17794END_ENTITY; 17795 17796-- IN AP203e2/AP242 17797ENTITY solid_with_double_offset_chamfer 17798 SUBTYPE OF (solid_with_chamfered_edges); 17799 left_offset_distance : positive_length_measure; 17800 right_offset_distance : positive_length_measure; 17801END_ENTITY; 17802 17803-- IN AP242 17804ENTITY solid_with_excessive_number_of_voids 17805 SUBTYPE OF (inapt_manifold_solid_brep); 17806 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 17807 WHERE 17808 WR1: 17809 ('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)); 17810 WR2: 17811 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 17812 WR3: 17813 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.MANIFOLD_SOLID_BREP' ]); 17814 WR4: 17815 validate_locations_of_extreme_value_type(SELF, []); 17816 WR5: 17817 validate_accuracy_types(SELF, []); 17818END_ENTITY; 17819 17820-- IN AP203e2/AP242 17821ENTITY solid_with_flat_bottom_round_hole 17822 SUBTYPE OF (solid_with_stepped_round_hole); 17823 fillet_radius : non_negative_length_measure; 17824 WHERE 17825 WR1: 17826 fillet_radius < SELF\solid_with_stepped_round_hole.segment_radii[segments]; 17827END_ENTITY; 17828 17829-- IN AP203e2/AP242 17830ENTITY solid_with_general_pocket 17831 SUBTYPE OF (solid_with_pocket); 17832 profile : positioned_sketch; 17833 reference_point : point; 17834 WHERE 17835 WR1: 17836 SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ] * TYPEOF(profile.sketch_basis)) = 1; 17837 WR2: 17838 profile IN using_items(reference_point, []); 17839END_ENTITY; 17840 17841-- IN AP203e2/AP242 17842ENTITY solid_with_general_protrusion 17843 SUBTYPE OF (solid_with_protrusion); 17844 profile : positioned_sketch; 17845 reference_point : point; 17846 WHERE 17847 WR1: 17848 SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE', 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ] * TYPEOF(profile.sketch_basis)) = 1; 17849 WR2: 17850 profile IN using_items(reference_point, []); 17851END_ENTITY; 17852 17853-- IN AP203e2/AP242 17854ENTITY solid_with_groove 17855 SUBTYPE OF (solid_with_depression); 17856 groove_radius : positive_length_measure; 17857 groove_width : positive_length_measure; 17858 draft_angle : plane_angle_measure; 17859 floor_fillet_radius : non_negative_length_measure; 17860 external_groove : BOOLEAN; 17861 WHERE 17862 WR1: 17863 NOT ('STEP_MERGED_CAD_SCHEMA.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)); 17864END_ENTITY; 17865 17866-- IN AP203e2/AP242 17867ENTITY solid_with_hole 17868 ABSTRACT SUPERTYPE OF (solid_with_stepped_round_hole) 17869 SUBTYPE OF (solid_with_depression); 17870END_ENTITY; 17871 17872-- IN AP203e2/AP242 17873ENTITY solid_with_incomplete_circular_pattern 17874 SUBTYPE OF (solid_with_circular_pattern); 17875 omitted_instances : SET [1:?] OF positive_integer; 17876 WHERE 17877 WR1: 17878 SIZEOF(omitted_instances) < SELF\solid_with_circular_pattern.replicate_count; 17879 WR2: 17880 SIZEOF(QUERY (q <* omitted_instances| (q > SELF\solid_with_circular_pattern.replicate_count))) = 0; 17881END_ENTITY; 17882 17883-- IN AP203e2/AP242 17884ENTITY solid_with_incomplete_rectangular_pattern 17885 SUBTYPE OF (solid_with_rectangular_pattern); 17886 omitted_instances : SET [1:?] OF LIST [2:2] OF positive_integer; 17887 WHERE 17888 WR1: 17889 NOT ([ 1, 1 ] IN omitted_instances); 17890 WR2: 17891 SIZEOF(omitted_instances) < SELF\solid_with_rectangular_pattern.row_count * SELF\solid_with_rectangular_pattern.column_count - 1; 17892 WR3: 17893 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; 17894END_ENTITY; 17895 17896-- IN AP203e2/AP242 17897ENTITY solid_with_pocket 17898 ABSTRACT SUPERTYPE OF (ONEOF(solid_with_rectangular_pocket, solid_with_circular_pocket, solid_with_general_pocket)) 17899 SUBTYPE OF (solid_with_depression); 17900 floor_blend_radius : non_negative_length_measure; 17901 draft_angle : plane_angle_measure; 17902END_ENTITY; 17903 17904-- IN AP203e2/AP242 17905ENTITY solid_with_protrusion 17906 ABSTRACT SUPERTYPE OF (ONEOF(solid_with_circular_protrusion, solid_with_rectangular_protrusion, solid_with_general_protrusion)) 17907 SUBTYPE OF (modified_solid_with_placed_configuration); 17908 protrusion_height : positive_length_measure; 17909 protrusion_draft_angle : plane_angle_measure; 17910END_ENTITY; 17911 17912-- IN AP203e2/AP242 17913ENTITY solid_with_rectangular_pattern 17914 SUPERTYPE OF (solid_with_incomplete_rectangular_pattern) 17915 SUBTYPE OF (solid_with_shape_element_pattern); 17916 row_count : positive_integer; 17917 column_count : positive_integer; 17918 row_spacing : length_measure; 17919 column_spacing : length_measure; 17920 WHERE 17921 WR1: 17922 row_count * column_count > 1; 17923END_ENTITY; 17924 17925-- IN AP203e2/AP242 17926ENTITY solid_with_rectangular_pocket 17927 SUBTYPE OF (solid_with_pocket); 17928 pocket_length : positive_length_measure; 17929 pocket_width : positive_length_measure; 17930 corner_radius : non_negative_length_measure; 17931 WHERE 17932 WR1: 17933 (corner_radius < pocket_width / 2) AND (corner_radius < pocket_length / 2); 17934END_ENTITY; 17935 17936-- IN AP203e2/AP242 17937ENTITY solid_with_rectangular_protrusion 17938 SUBTYPE OF (solid_with_protrusion); 17939 protrusion_length : positive_length_measure; 17940 protrusion_width : positive_length_measure; 17941 protrusion_corner_radius : non_negative_length_measure; 17942 WHERE 17943 WR1: 17944 (protrusion_corner_radius <= protrusion_width / 2) AND (protrusion_corner_radius <= protrusion_length / 2); 17945END_ENTITY; 17946 17947-- IN AP203e2/AP242 17948ENTITY solid_with_shape_element_pattern 17949 ABSTRACT SUPERTYPE OF (ONEOF(solid_with_circular_pattern, solid_with_rectangular_pattern)) 17950 SUBTYPE OF (modified_solid_with_placed_configuration); 17951 replicated_element : modified_solid_with_placed_configuration; 17952END_ENTITY; 17953 17954-- IN AP203e2/AP242 17955ENTITY solid_with_single_offset_chamfer 17956 SUBTYPE OF (solid_with_chamfered_edges); 17957 offset_distance : positive_length_measure; 17958END_ENTITY; 17959 17960-- IN AP203e2/AP242 17961ENTITY solid_with_slot 17962 ABSTRACT SUPERTYPE OF (ONEOF(solid_with_trapezoidal_section_slot, solid_with_tee_section_slot) AND ONEOF(solid_with_straight_slot, solid_with_curved_slot)) 17963 SUBTYPE OF (solid_with_depression); 17964 slot_width : positive_length_measure; 17965 closed_ends : LIST [2:2] OF LOGICAL; 17966 end_exit_faces : LIST [2:2] OF SET [0:?] OF face_surface; 17967 WHERE 17968 WR1: 17969 NOT (('STEP_MERGED_CAD_SCHEMA.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) AND (closed_ends = [ FALSE, FALSE ])); 17970 WR2: 17971 NOT ((closed_ends[1] = TRUE) AND (SIZEOF(end_exit_faces[1]) <> 0) OR (closed_ends[2] = TRUE) AND (SIZEOF(end_exit_faces[2]) <> 0)); 17972END_ENTITY; 17973 17974-- IN AP203e2/AP242 17975ENTITY solid_with_spherical_bottom_round_hole 17976 SUBTYPE OF (solid_with_stepped_round_hole); 17977 sphere_radius : positive_length_measure; 17978 WHERE 17979 WR1: 17980 sphere_radius >= SELF\solid_with_stepped_round_hole.segment_radii[segments]; 17981END_ENTITY; 17982 17983-- IN AP203e2/AP242 17984ENTITY solid_with_stepped_round_hole 17985 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)) 17986 SUBTYPE OF (solid_with_hole); 17987 segments : positive_integer; 17988 segment_radii : LIST [1:segments] OF positive_length_measure; 17989 segment_depths : LIST [1:segments] OF positive_length_measure; 17990 DERIVE 17991 SELF\solid_with_depression.depth : positive_length_measure := compute_total_depth(SELF); 17992 WHERE 17993 WR1: 17994 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)); 17995END_ENTITY; 17996 17997-- IN AP203e2/AP242 17998ENTITY solid_with_stepped_round_hole_and_conical_transitions 17999 SUBTYPE OF (solid_with_stepped_round_hole); 18000 conical_transitions : SET [1:?] OF conical_stepped_hole_transition; 18001 WHERE 18002 WR1: 18003 SIZEOF(conical_transitions) <= SELF\solid_with_stepped_round_hole.segments + 1; 18004 WR2: 18005 ('STEP_MERGED_CAD_SCHEMA.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) XOR (SIZEOF(conical_transitions) <= SELF\solid_with_stepped_round_hole.segments); 18006 WR3: 18007 validate_countersink_radii(SELF); 18008END_ENTITY; 18009 18010-- IN AP203e2/AP242 18011ENTITY solid_with_straight_slot 18012 SUBTYPE OF (solid_with_slot); 18013 slot_length : positive_length_measure; 18014END_ENTITY; 18015 18016-- IN AP203e2/AP242 18017ENTITY solid_with_tee_section_slot 18018 SUBTYPE OF (solid_with_slot); 18019 tee_section_width : positive_length_measure; 18020 collar_depth : positive_length_measure; 18021 WHERE 18022 WR1: 18023 collar_depth < SELF\solid_with_depression.depth; 18024 WR2: 18025 tee_section_width > SELF\solid_with_slot.slot_width; 18026END_ENTITY; 18027 18028-- IN AP203e2/AP242 18029ENTITY solid_with_through_depression 18030 SUBTYPE OF (solid_with_depression); 18031 exit_faces : SET [1:?] OF face_surface; 18032 WHERE 18033 WR1: 18034 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; 18035END_ENTITY; 18036 18037-- IN AP203e2/AP242 18038ENTITY solid_with_trapezoidal_section_slot 18039 SUBTYPE OF (solid_with_slot); 18040 draft_angle : plane_angle_measure; 18041 floor_fillet_radius : non_negative_length_measure; 18042END_ENTITY; 18043 18044-- DIFF IN AP203e2 18045-- IN AP203e2/AP242 18046ENTITY solid_with_variable_radius_edge_blend 18047 SUBTYPE OF (track_blended_solid); 18048 point_list : LIST [2:?] OF point; 18049 radius_list : LIST [2:?] OF positive_length_measure; 18050 edge_function_list : LIST [1:?] OF blend_radius_variation_type; 18051 WHERE 18052 WR1: 18053 SIZEOF(point_list) = SIZEOF(radius_list); 18054 WR2: 18055 SIZEOF(edge_function_list) = SIZEOF(radius_list) - 1; 18056 WR3: 18057 NOT ((point_list[1] = point_list[HIINDEX(point_list)]) AND NOT (radius_list[1] = radius_list[HIINDEX(radius_list)])); 18058END_ENTITY; 18059 18060-- IN AP242 18061ENTITY solid_with_wrong_number_of_voids 18062 SUBTYPE OF (erroneous_manifold_solid_brep); 18063 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 18064 WHERE 18065 WR1: 18066 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 18067 WR2: 18068 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BREP_WITH_VOIDS' ]); 18069 WR3: 18070 validate_locations_of_extreme_value_type(SELF, []); 18071 WR4: 18072 validate_accuracy_types(SELF, []); 18073END_ENTITY; 18074 18075-- IN AP203e2/AP242 18076ENTITY source_for_requirement 18077 SUBTYPE OF (group_assignment); 18078 items : SET [1:1] OF requirement_source_item; 18079 SELF\group_assignment.assigned_group : requirement_source; 18080END_ENTITY; 18081 18082-- IN AP203e2/AP242 18083ENTITY sourced_requirement 18084 SUBTYPE OF (group_assignment); 18085 items : SET [1:1] OF product_definition; 18086 SELF\group_assignment.assigned_group : requirement_source; 18087END_ENTITY; 18088 18089-- IN AP203e2/AP242 18090ENTITY specification_definition 18091 SUBTYPE OF (product_definition); 18092END_ENTITY; 18093 18094-- CASE DIFF IN AP214 18095ENTITY specified_higher_usage_occurrence 18096 SUBTYPE OF (assembly_component_usage); 18097 upper_usage : assembly_component_usage; 18098 next_usage : next_assembly_usage_occurrence; 18099 UNIQUE 18100 UR1 : upper_usage, next_usage; 18101 WHERE 18102 WR1: 18103 SELF :<>: upper_usage; 18104 WR2: 18105 SELF\product_definition_relationship.relating_product_definition :=: upper_usage.relating_product_definition; 18106 WR3: 18107 SELF\product_definition_relationship.related_product_definition :=: next_usage.related_product_definition; 18108 WR4: 18109 (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); 18110 WR5: 18111 SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.NEXT_ASSEMBLY_USAGE_OCCURRENCE', 'STEP_MERGED_CAD_SCHEMA.SPECIFIED_HIGHER_USAGE_OCCURRENCE' ] * TYPEOF(upper_usage)) = 1; 18112END_ENTITY; 18113 18114ENTITY sphere 18115 SUBTYPE OF (geometric_representation_item); 18116 radius : positive_length_measure; 18117 centre : point; 18118END_ENTITY; 18119 18120-- IN AP242 18121ENTITY spherical_cap 18122 SUBTYPE OF (feature_definition); 18123 WHERE 18124 WR1: 18125 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; 18126 WR2: 18127 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; 18128 WR3: 18129 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; 18130END_ENTITY; 18131 18132-- DIFF IN AP214 18133-- IN AP214/AP242 18134ENTITY spherical_pair 18135 SUBTYPE OF (low_order_kinematic_pair); 18136 DERIVE 18137 SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; 18138 SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; 18139 SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; 18140 SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; 18141 SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; 18142 SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; 18143END_ENTITY; 18144 18145-- IN AP214 18146ENTITY spherical_pair_range 18147 SUBTYPE OF (simple_pair_range); 18148 SELF\simple_pair_range.applies_to_pair : spherical_pair; 18149 lower_limit_yaw : rotational_range_measure; 18150 upper_limit_yaw : rotational_range_measure; 18151 lower_limit_pitch : rotational_range_measure; 18152 upper_limit_pitch : rotational_range_measure; 18153 lower_limit_roll : rotational_range_measure; 18154 upper_limit_roll : rotational_range_measure; 18155 WHERE 18156 wr1: 18157 (('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); 18158 wr2: 18159 (('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); 18160 wr3: 18161 (('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); 18162END_ENTITY; 18163 18164-- DIFF IN AP214 18165-- IN AP214/AP242 18166ENTITY spherical_pair_value 18167 SUBTYPE OF (pair_value); 18168 input_orientation : spatial_rotation; 18169 SELF\pair_value.applies_to_pair : spherical_pair_select; 18170 DERIVE 18171 actual_orientation : ypr_rotation := convert_spatial_to_ypr_rotation(SELF\pair_value.applies_to_pair, input_orientation); 18172END_ENTITY; 18173 18174-- IN AP242 18175ENTITY spherical_pair_with_pin 18176 SUBTYPE OF (low_order_kinematic_pair); 18177 DERIVE 18178 SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; 18179 SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; 18180 SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; 18181 SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; 18182 SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; 18183 SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; 18184END_ENTITY; 18185 18186-- IN AP242 18187ENTITY spherical_pair_with_pin_and_range 18188 SUBTYPE OF (spherical_pair_with_pin); 18189 lower_limit_yaw : OPTIONAL plane_angle_measure; 18190 upper_limit_yaw : OPTIONAL plane_angle_measure; 18191 lower_limit_roll : OPTIONAL plane_angle_measure; 18192 upper_limit_roll : OPTIONAL plane_angle_measure; 18193 WHERE 18194 WR1: 18195 (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); 18196 WR2: 18197 (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); 18198END_ENTITY; 18199 18200-- IN AP242 18201ENTITY spherical_pair_with_range 18202 SUBTYPE OF (spherical_pair); 18203 lower_limit_yaw : OPTIONAL plane_angle_measure; 18204 upper_limit_yaw : OPTIONAL plane_angle_measure; 18205 lower_limit_pitch : OPTIONAL plane_angle_measure; 18206 upper_limit_pitch : OPTIONAL plane_angle_measure; 18207 lower_limit_roll : OPTIONAL plane_angle_measure; 18208 upper_limit_roll : OPTIONAL plane_angle_measure; 18209 WHERE 18210 WR1: 18211 (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); 18212 WR2: 18213 (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); 18214 WR3: 18215 (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); 18216END_ENTITY; 18217 18218ENTITY spherical_surface 18219 SUBTYPE OF (elementary_surface); 18220 radius : positive_length_measure; 18221END_ENTITY; 18222 18223-- CASE DIFF IN AP214 18224-- IN AP214/AP242 18225ENTITY SQL_mappable_defined_function 18226 ABSTRACT SUPERTYPE 18227 SUBTYPE OF (defined_function); 18228END_ENTITY; 18229 18230-- IN AP214/AP242 18231ENTITY square_root_function 18232 SUBTYPE OF (unary_function_call); 18233END_ENTITY; 18234 18235-- IN AP214/AP242 18236ENTITY square_u_profile 18237 SUBTYPE OF (shape_aspect); 18238 WHERE 18239 WR1: 18240 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 18241 WR2: 18242 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; 18243 WR3: 18244 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; 18245 WR4: 18246 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; 18247 WR5: 18248 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; 18249 WR6: 18250 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; 18251 WR7: 18252 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; 18253 WR8: 18254 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; 18255 WR9: 18256 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; 18257 WR10: 18258 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; 18259 WR11: 18260 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; 18261 WR12: 18262 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; 18263END_ENTITY; 18264 18265-- DIFF IN AP214 18266ENTITY standard_uncertainty 18267 SUPERTYPE OF (expanded_uncertainty) 18268 SUBTYPE OF (uncertainty_qualifier); 18269 uncertainty_value : REAL; 18270END_ENTITY; 18271 18272-- IN AP203e2/AP242 18273ENTITY start_request 18274 SUBTYPE OF (action_request_assignment); 18275 items : SET [1:?] OF start_request_item; 18276END_ENTITY; 18277 18278-- IN AP203e2/AP242 18279ENTITY start_work 18280 SUBTYPE OF (action_assignment); 18281 items : SET [1:?] OF work_item; 18282END_ENTITY; 18283 18284-- IN AP242 18285ENTITY steep_angle_between_adjacent_edges 18286 SUBTYPE OF (steep_geometry_transition_across_edge); 18287 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 18288 WHERE 18289 WR1: 18290 ('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)); 18291 WR2: 18292 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE'); 18293 WR3: 18294 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.EDGE_LOOP' ]); 18295 WR4: 18296 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' ]); 18297 WR5: 18298 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]); 18299END_ENTITY; 18300 18301-- IN AP242 18302ENTITY steep_angle_between_adjacent_faces 18303 SUBTYPE OF (steep_geometry_transition_across_edge); 18304 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 18305 WHERE 18306 WR1: 18307 ('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)); 18308 WR2: 18309 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE'); 18310 WR3: 18311 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.CONNECTED_FACE_SET' ]); 18312 WR4: 18313 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'POINT_ON_EDGE_CURVE' ]); 18314 WR5: 18315 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]); 18316END_ENTITY; 18317 18318-- IN AP242 18319ENTITY steep_geometry_transition_across_edge 18320 ABSTRACT SUPERTYPE OF (ONEOF(steep_angle_between_adjacent_edges, steep_angle_between_adjacent_faces)) 18321 SUBTYPE OF (inapt_topology_and_geometry_relationship); 18322END_ENTITY; 18323 18324-- IN AP242 18325ENTITY step 18326 SUBTYPE OF (feature_definition); 18327 WHERE 18328 WR1: 18329 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; 18330 WR2: 18331 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; 18332 WR3: 18333 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; 18334 WR4: 18335 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; 18336 WR5: 18337 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; 18338END_ENTITY; 18339 18340ENTITY straightness_tolerance 18341 SUBTYPE OF (geometric_tolerance); 18342 WHERE 18343 WR1: 18344 NOT ('STEP_MERGED_CAD_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); 18345END_ENTITY; 18346 18347-- IN AP214/AP242 18348ENTITY string_defined_function 18349 ABSTRACT SUPERTYPE 18350 SUBTYPE OF (defined_function, string_expression); 18351END_ENTITY; 18352 18353-- IN AP214/AP242 18354ENTITY string_expression 18355 ABSTRACT SUPERTYPE OF (ONEOF(simple_string_expression, index_expression, substring_expression, concat_expression, format_function, string_defined_function)) 18356 SUBTYPE OF (expression); 18357END_ENTITY; 18358 18359-- IN AP214/AP242 18360ENTITY string_literal 18361 SUBTYPE OF (simple_string_expression, generic_literal); 18362 the_value : STRING; 18363END_ENTITY; 18364 18365-- IN AP214/AP242 18366ENTITY string_variable 18367 SUBTYPE OF (simple_string_expression, variable); 18368END_ENTITY; 18369 18370ENTITY structured_dimension_callout 18371 SUBTYPE OF (draughting_callout); 18372 WHERE 18373 WR1: 18374 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; 18375 WR2: 18376 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; 18377 WR3: 18378 SIZEOF(QUERY (ato <* QUERY (con <* SELF.contents| ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)))| (ato.name = 'dimension value'))) >= 1; 18379 WR4: 18380 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; 18381 WR5: 18382 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; 18383 WR6: 18384 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); 18385 WR7: 18386 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); 18387END_ENTITY; 18388 18389-- IN AP203e2/AP242 18390ENTITY structured_text_composition 18391 SUBTYPE OF (compound_representation_item); 18392END_ENTITY; 18393 18394-- IN AP203e2/AP242 18395ENTITY structured_text_representation 18396 SUBTYPE OF (representation); 18397 SELF\representation.items : SET [1:?] OF string_representation_item_select; 18398END_ENTITY; 18399 18400-- DIFF IN AP214 18401-- DIFF IN AP203e2 18402ENTITY styled_item 18403 SUBTYPE OF (representation_item); 18404 styles : SET [1:?] OF presentation_style_assignment; 18405 item : styled_item_target; 18406 WHERE 18407 WR1: 18408 (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); 18409 WR2: 18410 NOT ('STEP_MERGED_CAD_SCHEMA.STYLED_ITEM' IN TYPEOF(item)); 18411 WR3: 18412 (('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)); 18413END_ENTITY; 18414 18415-- IN AP242 18416ENTITY su_parameters 18417 SUBTYPE OF (geometric_representation_item); 18418 a : length_measure; 18419 alpha : plane_angle_measure; 18420 b : length_measure; 18421 beta : plane_angle_measure; 18422 c : length_measure; 18423 gamma : plane_angle_measure; 18424 WHERE 18425 WR1: 18426 SELF\geometric_representation_item.dim = 3; 18427END_ENTITY; 18428 18429ENTITY subedge 18430 SUBTYPE OF (edge); 18431 parent_edge : edge; 18432END_ENTITY; 18433 18434ENTITY subface 18435 SUBTYPE OF (face); 18436 parent_face : face; 18437 WHERE 18438 WR1: 18439 NOT mixed_loop_type_set((list_to_set(list_face_loops(SELF)) + list_to_set(list_face_loops(parent_face)))); 18440END_ENTITY; 18441 18442-- IN AP242 18443ENTITY subsketch 18444 SUBTYPE OF (geometric_representation_item); 18445 subsketch_elements : SET [1:?] OF sketch_element_select; 18446 owning_sketch : sketch_type_select; 18447 WHERE 18448 WR1: 18449 ('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); 18450END_ENTITY; 18451 18452-- DIFF IN AP214 18453-- IN AP214/AP242 18454ENTITY substring_expression 18455 SUBTYPE OF (string_expression, multiple_arity_generic_expression); 18456 DERIVE 18457 index1 : generic_expression := SELF\multiple_arity_generic_expression.operands[2]; 18458 index2 : generic_expression := SELF\multiple_arity_generic_expression.operands[3]; 18459 operand : generic_expression := SELF\multiple_arity_generic_expression.operands[1]; 18460 WHERE 18461 WR1: 18462 (('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)); 18463 WR2: 18464 SIZEOF(SELF\multiple_arity_generic_expression.operands) = 3; 18465 WR3: 18466 is_int_expr(index1); 18467 WR4: 18468 is_int_expr(index2); 18469END_ENTITY; 18470 18471-- IN AP242 18472ENTITY summary_report_request 18473 SUBTYPE OF (data_quality_report_request); 18474 summary_report_request_type : summary_report_type; 18475END_ENTITY; 18476 18477-- IN AP203e2/AP242 18478ENTITY supplied_part_relationship 18479 SUBTYPE OF (product_definition_relationship); 18480END_ENTITY; 18481 18482ENTITY surface 18483 SUPERTYPE OF (ONEOF(elementary_surface, swept_surface, bounded_surface, offset_surface, surface_replica)) 18484 SUBTYPE OF (geometric_representation_item); 18485END_ENTITY; 18486 18487ENTITY surface_condition_callout 18488 SUBTYPE OF (draughting_callout); 18489 WHERE 18490 WR1: 18491 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; 18492END_ENTITY; 18493 18494ENTITY surface_curve 18495 SUPERTYPE OF (ONEOF(intersection_curve, seam_curve) ANDOR bounded_surface_curve) 18496 SUBTYPE OF (curve); 18497 curve_3d : curve; 18498 associated_geometry : LIST [1:2] OF pcurve_or_surface; 18499 master_representation : preferred_surface_curve_representation; 18500 DERIVE 18501 basis_surface : SET [1:2] OF surface := get_basis_surface(SELF); 18502 WHERE 18503 WR1: 18504 curve_3d.dim = 3; 18505 WR2: 18506 ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(associated_geometry[1])) OR (master_representation <> pcurve_s1); 18507 WR3: 18508 ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(associated_geometry[2])) OR (master_representation <> pcurve_s2); 18509 WR4: 18510 NOT ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(curve_3d)); 18511END_ENTITY; 18512 18513ENTITY surface_curve_swept_area_solid 18514 SUBTYPE OF (swept_area_solid); 18515 directrix : curve; 18516 start_param : REAL; 18517 end_param : REAL; 18518 reference_surface : surface; 18519 WHERE 18520 WR1: 18521 NOT ('STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(directrix)) OR (reference_surface IN directrix\surface_curve.basis_surface); 18522END_ENTITY; 18523 18524-- IN AP242 18525ENTITY surface_distance_assembly_constraint_with_dimension 18526 SUBTYPE OF (binary_assembly_constraint, sdgc_with_dimension); 18527END_ENTITY; 18528 18529-- IN AP242 18530ENTITY surface_distance_geometric_constraint 18531 SUBTYPE OF (explicit_geometric_constraint); 18532 near_points : SET [0:4] OF near_point_relationship; 18533 SELF\explicit_constraint.constrained_elements : SET [1:2] OF surface; 18534 SELF\explicit_constraint.reference_elements : SET [0:4] OF point_curve_or_surface_constraint_element; 18535 WHERE 18536 WR1: 18537 (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); 18538 WR2: 18539 SIZEOF(near_points) <= SIZEOF(SELF\explicit_constraint.reference_elements); 18540 WR3: 18541 SIZEOF(QUERY (q <* near_points| NOT (q\representation_item_relationship.relating_representation_item IN SELF\explicit_constraint.reference_elements))) = 0; 18542END_ENTITY; 18543 18544ENTITY surface_of_linear_extrusion 18545 SUBTYPE OF (swept_surface); 18546 extrusion_axis : vector; 18547END_ENTITY; 18548 18549ENTITY surface_of_revolution 18550 SUBTYPE OF (swept_surface); 18551 axis_position : axis1_placement; 18552 DERIVE 18553 axis_line : line := representation_item('') || geometric_representation_item() || curve() || line(axis_position.location, representation_item('') || geometric_representation_item() || vector(axis_position.z, 1.0)); 18554END_ENTITY; 18555 18556-- DIFF IN AP214 18557-- IN AP214/AP242 18558ENTITY surface_pair 18559 ABSTRACT SUPERTYPE OF (ONEOF(sliding_surface_pair, rolling_surface_pair) ANDOR surface_pair_with_range) 18560 SUBTYPE OF (high_order_kinematic_pair); 18561 surface_1 : surface; 18562 surface_2 : surface; 18563 orientation : BOOLEAN; 18564 WHERE 18565 WR1: 18566 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (surface_1 IN r.items))) = 0; 18567 WR2: 18568 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_2| NOT (surface_2 IN r.items))) = 0; 18569 WR3: 18570 SIZEOF(QUERY (lr <* SELF\kinematic_pair.associated_link_representations_1| NOT ('STEP_MERGED_CAD_SCHEMA.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; 18571END_ENTITY; 18572 18573-- IN AP214 18574ENTITY surface_pair_range 18575 SUBTYPE OF (simple_pair_range); 18576 SELF\simple_pair_range.applies_to_pair : surface_pair; 18577 range_on_surface_1 : rectangular_trimmed_surface; 18578 range_on_surface_2 : rectangular_trimmed_surface; 18579 lower_limit_actual_rotation : rotational_range_measure; 18580 upper_limit_actual_rotation : rotational_range_measure; 18581 WHERE 18582 wr1: 18583 SELF\simple_pair_range.applies_to_pair\surface_pair.surface_1 :=: range_on_surface_1.basis_surface; 18584 wr2: 18585 SELF\simple_pair_range.applies_to_pair\surface_pair.surface_2 :=: range_on_surface_2.basis_surface; 18586 wr3: 18587 (('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); 18588END_ENTITY; 18589 18590-- IN AP242 18591ENTITY surface_pair_with_range 18592 SUBTYPE OF (surface_pair); 18593 range_on_surface_1 : rectangular_trimmed_surface; 18594 range_on_surface_2 : rectangular_trimmed_surface; 18595 lower_limit_actual_rotation : OPTIONAL plane_angle_measure; 18596 upper_limit_actual_rotation : OPTIONAL plane_angle_measure; 18597 WHERE 18598 WR1: 18599 SELF\surface_pair.surface_1 :=: range_on_surface_1.basis_surface; 18600 WR2: 18601 SELF\surface_pair.surface_2 :=: range_on_surface_2.basis_surface; 18602 WR3: 18603 (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); 18604 WR4: 18605 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_1| NOT (range_on_surface_1 IN r.items))) = 0; 18606 WR5: 18607 SIZEOF(QUERY (r <* SELF\kinematic_pair.associated_link_representations_2| NOT (range_on_surface_2 IN r.items))) = 0; 18608END_ENTITY; 18609 18610ENTITY surface_patch 18611 SUBTYPE OF (founded_item); 18612 parent_surface : bounded_surface; 18613 u_transition : transition_code; 18614 v_transition : transition_code; 18615 u_sense : BOOLEAN; 18616 v_sense : BOOLEAN; 18617 INVERSE 18618 using_surfaces : BAG [1:?] OF rectangular_composite_surface FOR segments; 18619 WHERE 18620 WR1: 18621 NOT ('STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE' IN TYPEOF(parent_surface)); 18622END_ENTITY; 18623 18624-- IN AP242 18625ENTITY surface_patch_set 18626 SUBTYPE OF (geometric_representation_item); 18627 patches : SET [1:?] OF surface_patch; 18628END_ENTITY; 18629 18630ENTITY surface_profile_tolerance 18631 SUBTYPE OF (geometric_tolerance); 18632END_ENTITY; 18633 18634ENTITY surface_rendering_properties; 18635 rendered_colour : colour; 18636END_ENTITY; 18637 18638ENTITY surface_replica 18639 SUBTYPE OF (surface); 18640 parent_surface : surface; 18641 transformation : cartesian_transformation_operator_3d; 18642 WHERE 18643 WR1: 18644 acyclic_surface_replica(SELF, parent_surface); 18645END_ENTITY; 18646 18647ENTITY surface_side_style 18648 SUBTYPE OF (founded_item); 18649 name : label; 18650 styles : SET [1:7] OF surface_style_element_select; 18651 WHERE 18652 WR1: 18653 SIZEOF(QUERY (style1 <* SELF.styles| (SIZEOF(QUERY (style2 <* SELF.styles - style1| (TYPEOF(style1) = TYPEOF(style2)))) > 0))) = 0; 18654END_ENTITY; 18655 18656-- IN AP242 18657ENTITY surface_smoothness_geometric_constraint 18658 SUBTYPE OF (explicit_geometric_constraint); 18659 u_smoothness : transition_code; 18660 v_smoothness : transition_code; 18661 SELF\explicit_constraint.constrained_elements : SET [1:1] OF surface_patch_set; 18662 WHERE 18663 WR1: 18664 SIZEOF(SELF\explicit_constraint.reference_elements) = 0; 18665END_ENTITY; 18666 18667ENTITY surface_style_boundary 18668 SUBTYPE OF (founded_item); 18669 style_of_boundary : curve_or_render; 18670END_ENTITY; 18671 18672ENTITY surface_style_control_grid 18673 SUBTYPE OF (founded_item); 18674 style_of_control_grid : curve_or_render; 18675END_ENTITY; 18676 18677ENTITY surface_style_fill_area 18678 SUBTYPE OF (founded_item); 18679 fill_area : fill_area_style; 18680END_ENTITY; 18681 18682ENTITY surface_style_parameter_line 18683 SUBTYPE OF (founded_item); 18684 style_of_parameter_lines : curve_or_render; 18685 direction_counts : SET [1:2] OF direction_count_select; 18686 WHERE 18687 WR1: 18688 (HIINDEX(SELF.direction_counts) = 1) XOR (TYPEOF(SELF.direction_counts[1]) <> TYPEOF(SELF.direction_counts[2])); 18689END_ENTITY; 18690 18691ENTITY surface_style_reflectance_ambient; 18692 ambient_reflectance : REAL; 18693END_ENTITY; 18694 18695ENTITY surface_style_reflectance_ambient_diffuse 18696 SUBTYPE OF (surface_style_reflectance_ambient); 18697 diffuse_reflectance : REAL; 18698END_ENTITY; 18699 18700ENTITY surface_style_reflectance_ambient_diffuse_specular 18701 SUBTYPE OF (surface_style_reflectance_ambient_diffuse); 18702 specular_reflectance : REAL; 18703 specular_exponent : REAL; 18704 specular_colour : colour; 18705END_ENTITY; 18706 18707ENTITY surface_style_rendering; 18708 rendering_method : shading_surface_method; 18709 surface_colour : colour; 18710END_ENTITY; 18711 18712ENTITY surface_style_rendering_with_properties 18713 SUBTYPE OF (surface_style_rendering); 18714 properties : SET [1:2] OF rendering_properties_select; 18715 WHERE 18716 WR1: 18717 (HIINDEX(SELF.properties) = 1) XOR (TYPEOF(SELF.properties[1]) <> TYPEOF(SELF.properties[2])); 18718END_ENTITY; 18719 18720ENTITY surface_style_segmentation_curve 18721 SUBTYPE OF (founded_item); 18722 style_of_segmentation_curve : curve_or_render; 18723END_ENTITY; 18724 18725ENTITY surface_style_silhouette 18726 SUBTYPE OF (founded_item); 18727 style_of_silhouette : curve_or_render; 18728END_ENTITY; 18729 18730ENTITY surface_style_transparent; 18731 transparency : REAL; 18732 WHERE 18733 WR1: 18734 (0.0 <= transparency) AND (transparency <= 1.0); 18735END_ENTITY; 18736 18737ENTITY surface_style_usage 18738 SUBTYPE OF (founded_item); 18739 side : surface_side; 18740 style : surface_side_style_select; 18741END_ENTITY; 18742 18743ENTITY surface_texture_representation 18744 SUBTYPE OF (representation); 18745 WHERE 18746 WR1: 18747 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; 18748 WR2: 18749 (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); 18750 WR3: 18751 SIZEOF(QUERY (i <* SELF.items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE') ] * TYPEOF(i)) = 1))) > 0; 18752 WR4: 18753 ((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'))); 18754 WR5: 18755 (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); 18756END_ENTITY; 18757 18758-- IN AP242 18759ENTITY surface_with_excessive_patches_in_one_direction 18760 SUBTYPE OF (overcomplex_geometry); 18761 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 18762 WHERE 18763 WR1: 18764 ('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)); 18765 WR2: 18766 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 18767 WR3: 18768 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ]); 18769 WR4: 18770 validate_locations_of_extreme_value_type(SELF, []); 18771 WR5: 18772 validate_accuracy_types(SELF, []); 18773END_ENTITY; 18774 18775-- IN AP242 18776ENTITY surface_with_small_curvature_radius 18777 SUBTYPE OF (geometry_with_local_near_degeneracy); 18778 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 18779 WHERE 18780 WR1: 18781 ('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)); 18782 WR2: 18783 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE'); 18784 WR3: 18785 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]); 18786 WR4: 18787 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]); 18788 WR5: 18789 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 18790END_ENTITY; 18791 18792-- IN AP203e2/AP242 18793ENTITY surfaced_open_shell 18794 SUBTYPE OF (open_shell); 18795 WHERE 18796 WR1: 18797 SIZEOF(QUERY (q <* SELF\connected_face_set.cfs_faces| NOT ('STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(q)))) = 0; 18798END_ENTITY; 18799 18800ENTITY swept_area_solid 18801 SUPERTYPE OF (ONEOF(revolved_area_solid, extruded_area_solid, surface_curve_swept_area_solid)) 18802 SUBTYPE OF (solid_model); 18803 swept_area : curve_bounded_surface; 18804 WHERE 18805 WR1: 18806 'STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(swept_area.basis_surface); 18807END_ENTITY; 18808 18809-- IN AP242 18810ENTITY swept_curve_surface_geometric_constraint 18811 SUBTYPE OF (explicit_geometric_constraint); 18812 SELF\explicit_constraint.constrained_elements : SET [1:?] OF surface; 18813 SELF\explicit_constraint.reference_elements : SET [1:1] OF swept_surface_or_solid; 18814END_ENTITY; 18815 18816ENTITY swept_disk_solid 18817 SUBTYPE OF (solid_model); 18818 directrix : curve; 18819 radius : positive_length_measure; 18820 inner_radius : OPTIONAL positive_length_measure; 18821 start_param : REAL; 18822 end_param : REAL; 18823 WHERE 18824 WR1: 18825 directrix.dim = 3; 18826 WR2: 18827 NOT EXISTS(inner_radius) OR (radius > inner_radius); 18828END_ENTITY; 18829 18830ENTITY swept_face_solid 18831 SUPERTYPE OF (ONEOF(extruded_face_solid, revolved_face_solid)) 18832 SUBTYPE OF (solid_model); 18833 swept_face : face_surface; 18834 WHERE 18835 WR1: 18836 'STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(swept_face.face_geometry); 18837END_ENTITY; 18838 18839-- IN AP242 18840ENTITY swept_point_curve_geometric_constraint 18841 SUBTYPE OF (explicit_geometric_constraint); 18842 SELF\explicit_constraint.constrained_elements : SET [1:?] OF curve; 18843 SELF\explicit_constraint.reference_elements : SET [1:1] OF swept_face_solid; 18844END_ENTITY; 18845 18846ENTITY swept_surface 18847 SUPERTYPE OF (ONEOF(surface_of_linear_extrusion, surface_of_revolution)) 18848 SUBTYPE OF (surface); 18849 swept_curve : curve; 18850END_ENTITY; 18851 18852-- IN AP203e2/AP242 18853ENTITY symbol 18854 SUBTYPE OF (representation_item); 18855END_ENTITY; 18856 18857ENTITY symbol_colour; 18858 colour_of_symbol : colour; 18859END_ENTITY; 18860 18861ENTITY symbol_representation 18862 SUBTYPE OF (representation); 18863END_ENTITY; 18864 18865ENTITY symbol_representation_map 18866 SUBTYPE OF (representation_map); 18867 SELF\representation_map.mapped_representation : symbol_representation; 18868 SELF\representation_map.mapping_origin : axis2_placement; 18869 WHERE 18870 WR1: 18871 SIZEOF(QUERY (mi <* SELF\representation_map.map_usage| NOT ('STEP_MERGED_CAD_SCHEMA.ANNOTATION_SYMBOL' IN TYPEOF(mi)))) = 0; 18872END_ENTITY; 18873 18874ENTITY symbol_style 18875 SUBTYPE OF (founded_item); 18876 name : label; 18877 style_of_symbol : symbol_style_select; 18878END_ENTITY; 18879 18880ENTITY symbol_target 18881 SUBTYPE OF (geometric_representation_item); 18882 placement : axis2_placement; 18883 x_scale : positive_ratio_measure; 18884 y_scale : positive_ratio_measure; 18885END_ENTITY; 18886 18887-- DIFF IN AP214 18888-- DIFF IN AP203e2 18889ENTITY symmetric_shape_aspect 18890 SUBTYPE OF (shape_aspect); 18891 INVERSE 18892 basis_relationships : SET [1:?] OF shape_aspect_deriving_relationship FOR related_shape_aspect; 18893END_ENTITY; 18894 18895-- IN AP242 18896ENTITY symmetry_geometric_constraint 18897 SUBTYPE OF (explicit_geometric_constraint); 18898 mirror_element : linear_geometry_constraint_element; 18899 SELF\explicit_constraint.constrained_elements : SET [2:2] OF geometric_representation_item; 18900 WHERE 18901 WR1: 18902 SIZEOF(SELF\explicit_constraint.reference_elements) = 0; 18903 WR2: 18904 SIZEOF(TYPEOF(mirror_element) * [ 'STEP_MERGED_CAD_SCHEMA.DIRECTION', 'STEP_MERGED_CAD_SCHEMA.VECTOR' ]) = 0; 18905 WR3: 18906 NOT ((SELF\geometric_representation_item.dim = 2) AND ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(mirror_element))); 18907END_ENTITY; 18908 18909ENTITY symmetry_tolerance 18910 SUBTYPE OF (geometric_tolerance_with_datum_reference); 18911END_ENTITY; 18912 18913-- IN AP203e2/AP242 18914ENTITY table_representation_item 18915 SUBTYPE OF (compound_representation_item); 18916 WHERE 18917 WR1: 18918 SIZEOF(QUERY (itet <* SELF\compound_representation_item.item_element| NOT ('STEP_MERGED_CAD_SCHEMA.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet)))) = 0; 18919END_ENTITY; 18920 18921ENTITY tactile_appearance_representation 18922 SUBTYPE OF (representation); 18923 WHERE 18924 WR1: 18925 SIZEOF(QUERY (i <* SELF.items| (SIZEOF([ ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM'), ('STEP_MERGED_CAD_SCHEMA.' + 'VALUE_RANGE') ] * TYPEOF(i)) <> 1))) = 0; 18926 WR2: 18927 SIZEOF(QUERY (i <* SELF.items| (name = 'depth'))) <= 1; 18928 WR3: 18929 (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); 18930END_ENTITY; 18931 18932-- IN AP203e2/AP242 18933ENTITY tagged_text_format 18934 SUBTYPE OF (representation_context); 18935END_ENTITY; 18936 18937-- IN AP203e2/AP242 18938ENTITY tagged_text_item 18939 SUBTYPE OF (descriptive_representation_item); 18940END_ENTITY; 18941 18942-- IN AP214/AP242 18943ENTITY tan_function 18944 SUBTYPE OF (unary_function_call); 18945END_ENTITY; 18946 18947ENTITY tangent 18948 SUBTYPE OF (derived_shape_aspect); 18949 WHERE 18950 WR1: 18951 SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; 18952END_ENTITY; 18953 18954-- IN AP242 18955ENTITY tangent_assembly_constraint 18956 SUBTYPE OF (binary_assembly_constraint, tangent_geometric_constraint); 18957END_ENTITY; 18958 18959-- IN AP242 18960ENTITY tangent_geometric_constraint 18961 SUBTYPE OF (explicit_geometric_constraint); 18962 near_points : SET [0:?] OF near_point_relationship; 18963 tangent_contact : tangent_contact_type; 18964 SELF\explicit_constraint.constrained_elements : SET [1:?] OF curve_or_surface_constraint_element; 18965 SELF\explicit_constraint.reference_elements : SET [0:?] OF curve_or_surface_constraint_element; 18966 WHERE 18967 WR1: 18968 (SIZEOF(SELF\explicit_constraint.reference_elements) > 0) OR (SIZEOF(SELF\explicit_constraint.constrained_elements) = 2); 18969 WR2: 18970 NOT ((SELF\geometric_representation_item.dim = 2) AND (tangent_contact = surface_contact)); 18971 WR3: 18972 SIZEOF(QUERY (q <* near_points| NOT (q\representation_item_relationship.relating_representation_item IN SELF\explicit_constraint.reference_elements))) = 0; 18973END_ENTITY; 18974 18975-- IN AP214/AP242 18976ENTITY taper 18977 SUBTYPE OF (shape_aspect); 18978 WHERE 18979 WR1: 18980 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 18981 WR2: 18982 SELF.description IN [ 'angle taper', 'diameter taper', 'directed taper' ]; 18983 WR3: 18984 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; 18985 WR4: 18986 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; 18987 WR5: 18988 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); 18989 WR6: 18990 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); 18991 WR7: 18992 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); 18993 WR8: 18994 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); 18995END_ENTITY; 18996 18997-- IN AP214/AP242 18998ENTITY tee_profile 18999 SUBTYPE OF (shape_aspect); 19000 WHERE 19001 WR1: 19002 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 19003 WR2: 19004 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; 19005 WR3: 19006 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; 19007 WR4: 19008 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; 19009 WR5: 19010 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; 19011 WR6: 19012 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; 19013 WR7: 19014 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; 19015 WR8: 19016 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; 19017 WR9: 19018 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; 19019 WR10: 19020 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; 19021 WR11: 19022 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; 19023 WR12: 19024 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; 19025 WR13: 19026 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; 19027 WR14: 19028 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; 19029 WR15: 19030 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; 19031END_ENTITY; 19032 19033ENTITY terminator_symbol 19034 SUBTYPE OF (annotation_symbol_occurrence); 19035 annotated_curve : annotation_curve_occurrence; 19036END_ENTITY; 19037 19038-- IN AP242 19039ENTITY tessellated_annotation_occurrence 19040 SUBTYPE OF (annotation_occurrence); 19041 SELF\styled_item.item : tessellated_geometric_set; 19042END_ENTITY; 19043 19044-- IN AP242 19045ENTITY tessellated_connecting_edge 19046 SUBTYPE OF (tessellated_edge); 19047 smooth : LOGICAL; 19048 face1 : tessellated_face; 19049 face2 : tessellated_face; 19050 line_strip_face1 : LIST [2:?] OF INTEGER; 19051 line_strip_face2 : LIST [2:?] OF INTEGER; 19052 WHERE 19053 WR1: 19054 SIZEOF(line_strip_face1) = SIZEOF(line_strip_face2); 19055 WR2: 19056 SIZEOF(line_strip_face1) = SIZEOF(SELF\tessellated_edge.line_strip); 19057END_ENTITY; 19058 19059-- IN AP242 19060ENTITY tessellated_curve_set 19061 SUBTYPE OF (tessellated_item); 19062 coordinates : coordinates_list; 19063 line_strips : LIST [1:?] OF LIST [2:?] OF INTEGER; 19064END_ENTITY; 19065 19066-- IN AP242 19067ENTITY tessellated_edge 19068 SUBTYPE OF (tessellated_structured_item); 19069 coordinates : coordinates_list; 19070 geometric_link : OPTIONAL edge_or_curve; 19071 line_strip : LIST [2:?] OF INTEGER; 19072END_ENTITY; 19073 19074-- IN AP242 19075ENTITY tessellated_face 19076 ABSTRACT SUPERTYPE OF (ONEOF(triangulated_face, complex_triangulated_face)) 19077 SUBTYPE OF (tessellated_structured_item); 19078 coordinates : coordinates_list; 19079 pnmax : INTEGER; 19080 normals : LIST [0:?] OF LIST [3:3] OF REAL; 19081 geometric_link : OPTIONAL face_or_surface; 19082 WHERE 19083 WR1: 19084 ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1)) OR (SIZEOF(normals) = pnmax); 19085END_ENTITY; 19086 19087-- IN AP242 19088ENTITY tessellated_geometric_set 19089 SUBTYPE OF (tessellated_item); 19090 children : SET [1:?] OF tessellated_item; 19091END_ENTITY; 19092 19093-- IN AP242 19094ENTITY tessellated_item 19095 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)) 19096 SUBTYPE OF (geometric_representation_item); 19097 WHERE 19098 WR1: 19099 SIZEOF(QUERY (using_rep <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF(using_rep)))) = 0; 19100END_ENTITY; 19101 19102-- IN AP242 19103ENTITY tessellated_point_set 19104 SUBTYPE OF (tessellated_item); 19105 coordinates : coordinates_list; 19106 point_list : LIST [1:?] OF INTEGER; 19107END_ENTITY; 19108 19109-- IN AP242 19110ENTITY tessellated_shape_representation 19111 SUBTYPE OF (shape_representation); 19112 SELF\representation.items : SET [1:?] OF tessellated_item; 19113 WHERE 19114 WR1: 19115 'STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); 19116END_ENTITY; 19117 19118-- IN AP242 19119ENTITY tessellated_shell 19120 SUBTYPE OF (tessellated_item); 19121 items : SET [1:?] OF tessellated_structured_item; 19122 topological_link : OPTIONAL connected_face_set; 19123END_ENTITY; 19124 19125-- IN AP242 19126ENTITY tessellated_solid 19127 SUBTYPE OF (tessellated_item); 19128 items : SET [1:?] OF tessellated_structured_item; 19129 geometric_link : OPTIONAL manifold_solid_brep; 19130END_ENTITY; 19131 19132-- IN AP242 19133ENTITY tessellated_structured_item 19134 SUPERTYPE OF (ONEOF(tessellated_face, tessellated_edge, tessellated_vertex)) 19135 SUBTYPE OF (tessellated_item); 19136END_ENTITY; 19137 19138-- IN AP242 19139ENTITY tessellated_surface_set 19140 ABSTRACT SUPERTYPE OF (ONEOF(triangulated_surface_set, complex_triangulated_surface_set)) 19141 SUBTYPE OF (tessellated_item); 19142 coordinates : coordinates_list; 19143 pnmax : INTEGER; 19144 normals : LIST [0:?] OF LIST [3:3] OF REAL; 19145 WHERE 19146 WR1: 19147 ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1)) OR (SIZEOF(normals) = pnmax); 19148END_ENTITY; 19149 19150-- IN AP242 19151ENTITY tessellated_vertex 19152 SUBTYPE OF (tessellated_structured_item); 19153 coordinates : coordinates_list; 19154 topological_link : OPTIONAL vertex_point; 19155 point_index : INTEGER; 19156END_ENTITY; 19157 19158-- IN AP242 19159ENTITY tessellated_wire 19160 SUBTYPE OF (tessellated_item); 19161 items : SET [1:?] OF tessellated_edge_or_vertex; 19162 geometric_model_link : OPTIONAL path_or_composite_curve; 19163END_ENTITY; 19164 19165-- IN AP203e2/AP242 19166ENTITY text_font; 19167 id : identifier; 19168 name : label; 19169 description : text; 19170 INVERSE 19171 glyphs : SET [1:?] OF character_glyph_font_usage FOR font; 19172END_ENTITY; 19173 19174-- IN AP203e2/AP242 19175ENTITY text_font_family; 19176 id : identifier; 19177 name : label; 19178 description : text; 19179 INVERSE 19180 fonts : SET [1:?] OF text_font_in_family FOR family; 19181END_ENTITY; 19182 19183-- IN AP203e2/AP242 19184ENTITY text_font_in_family; 19185 font : text_font; 19186 family : text_font_family; 19187END_ENTITY; 19188 19189ENTITY text_literal 19190 SUBTYPE OF (geometric_representation_item); 19191 literal : presentable_text; 19192 placement : axis2_placement; 19193 alignment : text_alignment; 19194 path : text_path; 19195 font : font_select; 19196END_ENTITY; 19197 19198ENTITY text_literal_with_associated_curves 19199 SUBTYPE OF (text_literal); 19200 associated_curves : SET [1:?] OF curve; 19201END_ENTITY; 19202 19203ENTITY text_literal_with_blanking_box 19204 SUBTYPE OF (text_literal); 19205 blanking : planar_box; 19206END_ENTITY; 19207 19208ENTITY text_literal_with_delineation 19209 SUBTYPE OF (text_literal); 19210 delineation : text_delineation; 19211END_ENTITY; 19212 19213ENTITY text_literal_with_extent 19214 SUBTYPE OF (text_literal); 19215 extent : planar_extent; 19216END_ENTITY; 19217 19218ENTITY text_string_representation 19219 SUBTYPE OF (representation); 19220 SELF\representation.items : SET [1:?] OF text_string_representation_item; 19221 WHERE 19222 WR1: 19223 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; 19224 WR2: 19225 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; 19226END_ENTITY; 19227 19228ENTITY text_style 19229 SUBTYPE OF (founded_item); 19230 name : label; 19231 character_appearance : character_style_select; 19232END_ENTITY; 19233 19234ENTITY text_style_for_defined_font; 19235 text_colour : colour; 19236END_ENTITY; 19237 19238ENTITY text_style_with_box_characteristics 19239 SUBTYPE OF (text_style); 19240 characteristics : SET [1:4] OF box_characteristic_select; 19241 WHERE 19242 WR1: 19243 SIZEOF(QUERY (c1 <* SELF.characteristics| (SIZEOF(QUERY (c2 <* SELF.characteristics - c1| (TYPEOF(c1) = TYPEOF(c2)))) > 0))) = 0; 19244END_ENTITY; 19245 19246ENTITY text_style_with_mirror 19247 SUBTYPE OF (text_style); 19248 mirror_placement : axis2_placement; 19249END_ENTITY; 19250 19251ENTITY text_style_with_spacing 19252 SUBTYPE OF (text_style); 19253 character_spacing : character_spacing_select; 19254END_ENTITY; 19255 19256-- IN AP242 19257ENTITY thermal_component 19258 SUBTYPE OF (assembly_component); 19259END_ENTITY; 19260 19261-- IN AP203e2/AP242 19262ENTITY thermal_resistance_measure_with_unit 19263 SUBTYPE OF (measure_with_unit); 19264 WHERE 19265 WR1: 19266 'STEP_MERGED_CAD_SCHEMA.THERMAL_RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 19267END_ENTITY; 19268 19269-- IN AP203e2/AP242 19270ENTITY thermal_resistance_unit 19271 SUBTYPE OF (derived_unit); 19272 WHERE 19273 WR1: 19274 derive_dimensional_exponents(SELF) = dimensional_exponents(-1.0, -1.0, -3.0, 0.0, 1.0, 0.0, 0.0); 19275END_ENTITY; 19276 19277ENTITY thermodynamic_temperature_measure_with_unit 19278 SUBTYPE OF (measure_with_unit); 19279 WHERE 19280 WR1: 19281 'STEP_MERGED_CAD_SCHEMA.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 19282END_ENTITY; 19283 19284ENTITY thermodynamic_temperature_unit 19285 SUBTYPE OF (named_unit); 19286 WHERE 19287 WR1: 19288 ((((((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); 19289END_ENTITY; 19290 19291-- IN AP203e2/AP242 19292ENTITY thickened_face_solid 19293 SUBTYPE OF (solid_model); 19294 base_element : generalized_surface_select; 19295 offset1 : length_measure; 19296 offset2 : length_measure; 19297 WHERE 19298 WR1: 19299 NOT (('STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(base_element)) AND NOT ('STEP_MERGED_CAD_SCHEMA.BOUNDED_SURFACE' IN TYPEOF(base_element))); 19300 WR2: 19301 offset1 <> offset2; 19302END_ENTITY; 19303 19304-- IN AP203e2 19305ENTITY thickness_laminate_definition 19306 SUBTYPE OF (product_definition); 19307 WHERE 19308 WR1: 19309 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; 19310END_ENTITY; 19311 19312-- IN AP203e2/AP242 19313ENTITY thickness_laminate_table 19314 SUBTYPE OF (zone_structural_makeup); 19315END_ENTITY; 19316 19317-- IN AP214/AP242 19318ENTITY thread 19319 SUBTYPE OF (feature_definition); 19320 WHERE 19321 WR1: 19322 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; 19323 WR2: 19324 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; 19325 WR3: 19326 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; 19327 WR4: 19328 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; 19329 WR5: 19330 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; 19331 WR6: 19332 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; 19333 WR7: 19334 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; 19335 WR8: 19336 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; 19337 WR9: 19338 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; 19339 WR10: 19340 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; 19341 WR11: 19342 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; 19343 WR12: 19344 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; 19345 WR13: 19346 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; 19347 WR14: 19348 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; 19349 WR15: 19350 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; 19351 WR16: 19352 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; 19353END_ENTITY; 19354 19355-- IN AP242 19356ENTITY thread_runout 19357 SUBTYPE OF (shape_aspect); 19358 WHERE 19359 WR1: 19360 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape); 19361 WR2: 19362 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; 19363 WR3: 19364 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; 19365 WR4: 19366 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; 19367 WR5: 19368 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; 19369 WR6: 19370 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; 19371 WR7: 19372 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; 19373END_ENTITY; 19374 19375ENTITY time_interval; 19376 id : identifier; 19377 name : label; 19378 description : OPTIONAL text; 19379END_ENTITY; 19380 19381ENTITY time_interval_assignment 19382 ABSTRACT SUPERTYPE; 19383 assigned_time_interval : time_interval; 19384 role : time_interval_role; 19385END_ENTITY; 19386 19387ENTITY time_interval_based_effectivity 19388 SUBTYPE OF (effectivity); 19389 effectivity_period : time_interval; 19390END_ENTITY; 19391 19392-- IN AP203e2/AP242 19393ENTITY time_interval_relationship; 19394 name : label; 19395 description : OPTIONAL text; 19396 relating_time_interval : time_interval; 19397 related_time_interval : time_interval; 19398END_ENTITY; 19399 19400ENTITY time_interval_role; 19401 name : label; 19402 description : OPTIONAL text; 19403END_ENTITY; 19404 19405ENTITY time_interval_with_bounds 19406 SUBTYPE OF (time_interval); 19407 primary_bound : OPTIONAL date_time_or_event_occurrence; 19408 secondary_bound : OPTIONAL date_time_or_event_occurrence; 19409 duration : OPTIONAL time_measure_with_unit; 19410 WHERE 19411 WR1: 19412 NOT (EXISTS(secondary_bound) AND EXISTS(duration)); 19413 WR2: 19414 EXISTS(primary_bound) OR EXISTS(secondary_bound); 19415END_ENTITY; 19416 19417ENTITY time_measure_with_unit 19418 SUBTYPE OF (measure_with_unit); 19419 WHERE 19420 WR1: 19421 'STEP_MERGED_CAD_SCHEMA.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 19422END_ENTITY; 19423 19424ENTITY time_unit 19425 SUBTYPE OF (named_unit); 19426 WHERE 19427 WR1: 19428 ((((((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); 19429END_ENTITY; 19430 19431-- DIFF IN AP214 19432ENTITY tolerance_value; 19433 lower_bound : measure_with_unit; 19434 upper_bound : measure_with_unit; 19435 DERIVE 19436 lbvc : REAL := lower_bound\measure_with_unit.value_component; 19437 ubvc : REAL := upper_bound\measure_with_unit.value_component; 19438 WHERE 19439 WR1: 19440 ubvc > lbvc; 19441 WR2: 19442 upper_bound\measure_with_unit.unit_component = lower_bound\measure_with_unit.unit_component; 19443END_ENTITY; 19444 19445-- DIFF IN AP214 19446-- DIFF IN AP203e2 19447ENTITY tolerance_zone 19448 SUBTYPE OF (shape_aspect); 19449 defining_tolerance : SET [1:?] OF tolerance_zone_target; 19450 form : tolerance_zone_form; 19451END_ENTITY; 19452 19453-- DIFF IN AP214 19454-- DIFF IN AP203e2 19455ENTITY tolerance_zone_definition 19456 SUPERTYPE OF (ONEOF(projected_zone_definition, non_uniform_zone_definition, runout_zone_definition)); 19457 zone : tolerance_zone; 19458 boundaries : SET [0:?] OF shape_aspect; 19459END_ENTITY; 19460 19461ENTITY tolerance_zone_form; 19462 name : label; 19463END_ENTITY; 19464 19465-- DIFF IN AP214 19466ENTITY topological_representation_item 19467 SUPERTYPE OF (ONEOF(vertex, edge, face_bound, face, vertex_shell, wire_shell, connected_edge_set, connected_face_set, loop ANDOR path)) 19468 SUBTYPE OF (representation_item); 19469END_ENTITY; 19470 19471-- IN AP242 19472ENTITY topology_related_to_multiply_defined_geometry 19473 ABSTRACT SUPERTYPE OF (ONEOF(multiply_defined_faces, multiply_defined_vertices, multiply_defined_edges)) 19474 SUBTYPE OF (inapt_topology_and_geometry_relationship); 19475END_ENTITY; 19476 19477-- IN AP242 19478ENTITY topology_related_to_nearly_degenerate_geometry 19479 ABSTRACT SUPERTYPE OF (ONEOF(short_length_edge, small_area_face, entirely_narrow_face)) 19480 SUBTYPE OF (inapt_topology_and_geometry_relationship); 19481END_ENTITY; 19482 19483-- IN AP242 19484ENTITY topology_related_to_overlapping_geometry 19485 ABSTRACT SUPERTYPE OF (ONEOF(partly_overlapping_faces, partly_overlapping_edges)) 19486 SUBTYPE OF (inapt_topology_and_geometry_relationship); 19487END_ENTITY; 19488 19489-- IN AP242 19490ENTITY topology_related_to_self_intersecting_geometry 19491 ABSTRACT SUPERTYPE OF (ONEOF(self_intersecting_loop, self_intersecting_shell, intersecting_connected_face_sets)) 19492 SUBTYPE OF (inapt_topology_and_geometry_relationship); 19493END_ENTITY; 19494 19495ENTITY toroidal_surface 19496 SUBTYPE OF (elementary_surface); 19497 major_radius : positive_length_measure; 19498 minor_radius : positive_length_measure; 19499END_ENTITY; 19500 19501ENTITY torus 19502 SUBTYPE OF (geometric_representation_item); 19503 position : axis1_placement; 19504 major_radius : positive_length_measure; 19505 minor_radius : positive_length_measure; 19506 WHERE 19507 WR1: 19508 major_radius > minor_radius; 19509END_ENTITY; 19510 19511ENTITY total_runout_tolerance 19512 SUBTYPE OF (geometric_tolerance_with_datum_reference); 19513END_ENTITY; 19514 19515-- IN AP203e2/AP242 19516ENTITY track_blended_solid 19517 ABSTRACT SUPERTYPE OF (track_blended_solid_with_end_conditions) 19518 SUBTYPE OF (edge_blended_solid); 19519 WHERE 19520 WR1: 19521 check_continuous_edges(SELF\edge_blended_solid.blended_edges); 19522END_ENTITY; 19523 19524-- IN AP203e2/AP242 19525ENTITY track_blended_solid_with_end_conditions 19526 SUBTYPE OF (track_blended_solid); 19527 end_conditions : LIST [2:2] OF blend_end_condition_select; 19528 WHERE 19529 WR1: 19530 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; 19531 WR2: 19532 NOT (('STEP_MERGED_CAD_SCHEMA.VERTEX' IN TYPEOF(end_conditions[1])) AND ('STEP_MERGED_CAD_SCHEMA.VERTEX' IN TYPEOF(end_conditions[2]))); 19533 WR3: 19534 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))); 19535 WR4: 19536 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))); 19537END_ENTITY; 19538 19539-- IN AP203e2/AP242 19540ENTITY transformation_with_derived_angle 19541 SUPERTYPE OF (ONEOF(draped_defined_transformation, laid_defined_transformation)) 19542 SUBTYPE OF (item_defined_transformation); 19543 SELF\item_defined_transformation.transform_item_1 : angle_direction_reference_with_a2p3d_select; 19544 SELF\item_defined_transformation.transform_item_2 : axis2_placement_3d; 19545 DERIVE 19546 orientation_angle : plane_angle_measure := derive_angle(SELF\item_defined_transformation.transform_item_1, SELF\item_defined_transformation.transform_item_2); 19547 WHERE 19548 WR1: 19549 ((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]); 19550END_ENTITY; 19551 19552-- DIFF IN AP214 19553-- IN AP214/AP242 19554ENTITY transition_feature 19555 SUPERTYPE OF (ONEOF(chamfer, edge_round, fillet)) 19556 SUBTYPE OF (shape_aspect); 19557 WHERE 19558 WR1: 19559 SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION', 'STEP_MERGED_CAD_SCHEMA.COMPOUND_FEATURE' ] * TYPEOF(SELF.of_shape.definition)) = 1; 19560 WR2: 19561 SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CHAMFER', 'STEP_MERGED_CAD_SCHEMA.EDGE_ROUND', 'STEP_MERGED_CAD_SCHEMA.FILLET' ] * TYPEOF(SELF)) = 1; 19562END_ENTITY; 19563 19564-- IN AP242 19565ENTITY triangulated_face 19566 SUBTYPE OF (tessellated_face); 19567 pnindex : LIST [0:?] OF INTEGER; 19568 triangles : LIST [1:?] OF LIST [3:3] OF INTEGER; 19569 WHERE 19570 WR1: 19571 (SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_face.pnmax); 19572 WR2: 19573 NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_face.pnmax <> coordinates.npoints)); 19574END_ENTITY; 19575 19576-- IN AP242 19577ENTITY triangulated_surface_set 19578 SUBTYPE OF (tessellated_surface_set); 19579 pnindex : LIST [0:?] OF INTEGER; 19580 triangles : LIST [1:?] OF LIST [3:3] OF INTEGER; 19581 WHERE 19582 WR1: 19583 (SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\tessellated_surface_set.pnmax); 19584 WR2: 19585 NOT ((SIZEOF(pnindex) = 0) AND (SELF\tessellated_surface_set.pnmax <> coordinates.npoints)); 19586END_ENTITY; 19587 19588ENTITY trimmed_curve 19589 SUBTYPE OF (bounded_curve); 19590 basis_curve : curve; 19591 trim_1 : SET [1:2] OF trimming_select; 19592 trim_2 : SET [1:2] OF trimming_select; 19593 sense_agreement : BOOLEAN; 19594 master_representation : trimming_preference; 19595 WHERE 19596 WR1: 19597 (HIINDEX(trim_1) = 1) OR (TYPEOF(trim_1[1]) <> TYPEOF(trim_1[2])); 19598 WR2: 19599 (HIINDEX(trim_2) = 1) OR (TYPEOF(trim_2[1]) <> TYPEOF(trim_2[2])); 19600END_ENTITY; 19601 19602-- IN AP242 19603ENTITY turned_knurl 19604 SUBTYPE OF (feature_definition); 19605 WHERE 19606 WR1: 19607 SELF\characterized_object.description IN [ 'diamond', 'diagonal', 'straight' ]; 19608 WR2: 19609 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; 19610 WR3: 19611 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; 19612 WR4: 19613 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; 19614 WR5: 19615 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; 19616 WR6: 19617 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; 19618 WR7: 19619 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; 19620 WR8: 19621 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; 19622 WR9: 19623 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); 19624 WR10: 19625 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); 19626 WR11: 19627 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; 19628 WR12: 19629 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; 19630END_ENTITY; 19631 19632ENTITY two_direction_repeat_factor 19633 SUBTYPE OF (one_direction_repeat_factor); 19634 second_repeat_factor : vector; 19635END_ENTITY; 19636 19637ENTITY type_qualifier; 19638 name : label; 19639END_ENTITY; 19640 19641-- IN AP214/AP242 19642ENTITY unary_boolean_expression 19643 ABSTRACT SUPERTYPE OF (ONEOF(not_expression, odd_function)) 19644 SUBTYPE OF (boolean_expression, unary_generic_expression); 19645END_ENTITY; 19646 19647-- IN AP214/AP242 19648ENTITY unary_function_call 19649 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)) 19650 SUBTYPE OF (unary_numeric_expression); 19651END_ENTITY; 19652 19653ENTITY unary_generic_expression 19654 ABSTRACT SUPERTYPE 19655 SUBTYPE OF (generic_expression); 19656 operand : generic_expression; 19657END_ENTITY; 19658 19659-- DIFF IN AP214 19660ENTITY unary_numeric_expression 19661 ABSTRACT SUPERTYPE 19662 SUBTYPE OF (numeric_expression, unary_generic_expression); 19663 SELF\unary_generic_expression.operand : numeric_expression; 19664END_ENTITY; 19665 19666-- IN AP242 19667ENTITY unbound_parameter_environment 19668 SUBTYPE OF (environment); 19669 WHERE 19670 WR1: 19671 ('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)); 19672END_ENTITY; 19673 19674-- IN AP242 19675ENTITY unbound_variational_parameter 19676 SUBTYPE OF (variational_parameter); 19677 WHERE 19678 WR1: 19679 'STEP_MERGED_CAD_SCHEMA.UNBOUND_PARAMETER_ENVIRONMENT' IN TYPEOF(SELF\generic_variable.interpretation); 19680END_ENTITY; 19681 19682-- IN AP242 19683ENTITY unbound_variational_parameter_semantics 19684 SUBTYPE OF (variable_semantics); 19685END_ENTITY; 19686 19687ENTITY uncertainty_assigned_representation 19688 SUBTYPE OF (representation); 19689 uncertainty : SET [1:?] OF uncertainty_measure_with_unit; 19690END_ENTITY; 19691 19692ENTITY uncertainty_measure_with_unit 19693 SUBTYPE OF (measure_with_unit); 19694 name : label; 19695 description : OPTIONAL text; 19696 WHERE 19697 WR1: 19698 valid_measure_value(SELF\measure_with_unit.value_component); 19699END_ENTITY; 19700 19701ENTITY uncertainty_qualifier 19702 SUPERTYPE OF (ONEOF(standard_uncertainty, qualitative_uncertainty)); 19703 measure_name : label; 19704 description : text; 19705END_ENTITY; 19706 19707-- DIFF IN AP214 19708-- IN AP214/AP242 19709ENTITY unconstrained_pair 19710 SUBTYPE OF (low_order_kinematic_pair); 19711 DERIVE 19712 SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; 19713 SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; 19714 SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; 19715 SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; 19716 SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; 19717 SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; 19718END_ENTITY; 19719 19720-- DIFF IN AP214 19721-- IN AP214/AP242 19722ENTITY unconstrained_pair_value 19723 SUBTYPE OF (pair_value); 19724 actual_placement : axis2_placement_3d; 19725 SELF\pair_value.applies_to_pair : unconstrained_pair; 19726END_ENTITY; 19727 19728-- IN AP242 19729ENTITY unequally_disposed_geometric_tolerance 19730 SUBTYPE OF (geometric_tolerance); 19731 displacement : length_measure_with_unit; 19732 WHERE 19733 WR1: 19734 ('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); 19735END_ENTITY; 19736 19737ENTITY uniform_curve 19738 SUBTYPE OF (b_spline_curve); 19739END_ENTITY; 19740 19741-- IN AP242 19742ENTITY uniform_product_space 19743 SUBTYPE OF (maths_space, generic_literal); 19744 base : maths_space; 19745 exponent : positive_integer; 19746 WHERE 19747 WR1: 19748 expression_is_constant(base); 19749 WR2: 19750 no_cyclic_space_reference(SELF, []); 19751 WR3: 19752 base <> the_empty_space; 19753END_ENTITY; 19754 19755-- IN AP203e2/AP242 19756ENTITY uniform_resource_identifier 19757 SUBTYPE OF (descriptive_representation_item); 19758END_ENTITY; 19759 19760ENTITY uniform_surface 19761 SUBTYPE OF (b_spline_surface); 19762END_ENTITY; 19763 19764-- DIFF IN AP214 19765-- IN AP214/AP242 19766ENTITY universal_pair 19767 SUBTYPE OF (low_order_kinematic_pair); 19768 input_skew_angle : OPTIONAL plane_angle_measure; 19769 DERIVE 19770 SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; 19771 SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; 19772 SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; 19773 skew_angle : plane_angle_measure := NVL(input_skew_angle, 0.0); 19774 SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; 19775 SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; 19776 SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; 19777 WHERE 19778 WR1: 19779 cos(plane_angle_for_pair_in_radian(SELF, skew_angle)) > 0.0; 19780END_ENTITY; 19781 19782-- IN AP214 19783ENTITY universal_pair_range 19784 SUBTYPE OF (simple_pair_range); 19785 SELF\simple_pair_range.applies_to_pair : universal_pair; 19786 lower_limit_first_rotation : rotational_range_measure; 19787 upper_limit_first_rotation : rotational_range_measure; 19788 lower_limit_second_rotation : rotational_range_measure; 19789 upper_limit_second_rotation : rotational_range_measure; 19790 WHERE 19791 wr1: 19792 (('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); 19793 wr2: 19794 (('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); 19795END_ENTITY; 19796 19797-- DIFF IN AP214 19798-- IN AP214/AP242 19799ENTITY universal_pair_value 19800 SUBTYPE OF (pair_value); 19801 first_rotation_angle : plane_angle_measure; 19802 second_rotation_angle : plane_angle_measure; 19803 SELF\pair_value.applies_to_pair : universal_pair; 19804END_ENTITY; 19805 19806-- IN AP242 19807ENTITY universal_pair_with_range 19808 SUBTYPE OF (universal_pair); 19809 lower_limit_first_rotation : OPTIONAL plane_angle_measure; 19810 upper_limit_first_rotation : OPTIONAL plane_angle_measure; 19811 lower_limit_second_rotation : OPTIONAL plane_angle_measure; 19812 upper_limit_second_rotation : OPTIONAL plane_angle_measure; 19813 WHERE 19814 WR1: 19815 (NOT EXISTS(lower_limit_first_rotation) OR NOT EXISTS(upper_limit_first_rotation)) XOR (lower_limit_first_rotation < upper_limit_first_rotation); 19816 WR2: 19817 (NOT EXISTS(lower_limit_second_rotation) OR NOT EXISTS(upper_limit_second_rotation)) XOR (lower_limit_second_rotation < upper_limit_second_rotation); 19818END_ENTITY; 19819 19820-- IN AP242 19821ENTITY unused_patches 19822 SUBTYPE OF (overcomplex_topology_and_geometry_relationship); 19823 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 19824 WHERE 19825 WR1: 19826 ('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)); 19827 WR2: 19828 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.COUNT_MEASURE'); 19829 WR3: 19830 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' ]); 19831 WR4: 19832 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.' + 'B_SPLINE_SURFACE_STRIP' ]); 19833 WR5: 19834 validate_accuracy_types(SELF, []); 19835END_ENTITY; 19836 19837-- IN AP242 19838ENTITY unused_shape_element 19839 SUBTYPE OF (externally_conditioned_data_quality_criterion); 19840 WHERE 19841 WR1: 19842 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' ]); 19843END_ENTITY; 19844 19845-- IN AP203e2/AP242 19846ENTITY usage_association 19847 SUBTYPE OF (action_method_relationship); 19848 SELF\action_method_relationship.related_method : information_usage_right; 19849 SELF\action_method_relationship.relating_method : information_usage_right; 19850 DERIVE 19851 related : information_usage_right := SELF\action_method_relationship.related_method; 19852 relating : information_usage_right := SELF\action_method_relationship.relating_method; 19853END_ENTITY; 19854 19855-- IN AP203e2/AP242 19856ENTITY user_defined_curve_font 19857 SUBTYPE OF (curve_style_font, mapped_item); 19858END_ENTITY; 19859 19860-- IN AP203e2/AP242 19861ENTITY user_defined_marker 19862 SUBTYPE OF (mapped_item, pre_defined_marker); 19863END_ENTITY; 19864 19865-- IN AP203e2/AP242 19866ENTITY user_defined_terminator_symbol 19867 SUBTYPE OF (mapped_item, pre_defined_symbol); 19868END_ENTITY; 19869 19870-- IN AP203e2/AP242 19871ENTITY user_selected_elements 19872 SUBTYPE OF (representation_item); 19873 picked_items : SET [1:?] OF representation_item; 19874END_ENTITY; 19875 19876-- DIFF IN AP203e2 19877-- IN AP203e2/AP242 19878ENTITY user_selected_shape_elements 19879 SUBTYPE OF (user_selected_elements); 19880 SELF\user_selected_elements.picked_items : SET [1:?] OF shape_representation_item; 19881END_ENTITY; 19882 19883-- IN AP242 19884ENTITY value_format_type_qualifier; 19885 format_type : value_format_type; 19886END_ENTITY; 19887 19888-- IN AP214/AP242 19889ENTITY value_function 19890 SUPERTYPE OF (int_value_function) 19891 SUBTYPE OF (numeric_expression, unary_generic_expression); 19892 SELF\unary_generic_expression.operand : string_expression; 19893END_ENTITY; 19894 19895ENTITY value_range 19896 SUBTYPE OF (compound_representation_item); 19897 WHERE 19898 WR1: 19899 ('STEP_MERGED_CAD_SCHEMA.' + 'SET_REPRESENTATION_ITEM' IN TYPEOF(item_element)) AND value_range_wr1(item_element); 19900 WR2: 19901 value_range_wr2(item_element); 19902 WR3: 19903 value_range_wr3(item_element); 19904END_ENTITY; 19905 19906ENTITY value_representation_item 19907 SUBTYPE OF (representation_item); 19908 value_component : measure_value; 19909 WHERE 19910 WR1: 19911 SIZEOF(QUERY (rep <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(rep.context_of_items)))) = 0; 19912END_ENTITY; 19913 19914-- IN AP214/AP242 19915ENTITY variable 19916 ABSTRACT SUPERTYPE OF (ONEOF(numeric_variable, boolean_variable, string_variable)) 19917 SUBTYPE OF (generic_variable); 19918END_ENTITY; 19919 19920-- IN AP242 19921ENTITY variable_expression 19922 SUBTYPE OF (variable_semantics); 19923 property_associated : property_variable_rep_select; 19924END_ENTITY; 19925 19926ENTITY variable_semantics 19927 ABSTRACT SUPERTYPE; 19928END_ENTITY; 19929 19930-- IN AP242 19931ENTITY variational_current_representation_relationship 19932 SUBTYPE OF (representation_relationship); 19933 current_result : representation; 19934 SELF\representation_relationship.rep_1 : variational_representation; 19935 UNIQUE 19936 UR1 : current_result; 19937 WHERE 19938 WR1: 19939 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; 19940 WR2: 19941 SELF\representation_relationship.rep_1.context_of_items :=: SELF\representation_relationship.rep_2.context_of_items; 19942 WR3: 19943 SIZEOF(QUERY (q <* SELF\representation_relationship.rep_2.items| ('STEP_MERGED_CAD_SCHEMA.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q)))) = 0; 19944 WR4: 19945 TYPEOF(SELF\representation_relationship.rep_1) - TYPEOF(SELF\representation_relationship.rep_2) = [ 'STEP_MERGED_CAD_SCHEMA.VARIATIONAL_REPRESENTATION' ]; 19946 WR5: 19947 current_result :=: SELF\representation_relationship.rep_2; 19948END_ENTITY; 19949 19950-- IN AP242 19951ENTITY variational_parameter 19952 ABSTRACT SUPERTYPE OF (ONEOF(bound_variational_parameter, unbound_variational_parameter)) 19953 SUBTYPE OF (variational_representation_item, maths_variable); 19954 parameter_description : OPTIONAL text; 19955 parameter_current_value : maths_value; 19956 WHERE 19957 WR1: 19958 member_of(parameter_current_value, SELF\maths_variable.values_space); 19959 WR2: 19960 SELF\maths_variable.name = SELF\representation_item.name; 19961END_ENTITY; 19962 19963-- IN AP242 19964ENTITY variational_representation 19965 SUBTYPE OF (representation); 19966 INVERSE 19967 cm_link : variational_current_representation_relationship FOR rep_1; 19968 WHERE 19969 WR1: 19970 SIZEOF(QUERY (q <* SELF\representation.items| ('STEP_MERGED_CAD_SCHEMA.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q)))) > 0; 19971 WR2: 19972 SIZEOF(QUERY (q <* SELF\representation.items - cm_link.rep_2.items| invalidate_vrep_item(q))) = 0; 19973END_ENTITY; 19974 19975-- IN AP203e2/AP242 19976ENTITY variational_representation_item 19977 ABSTRACT SUPERTYPE OF (auxiliary_geometric_representation_item) 19978 SUBTYPE OF (representation_item); 19979 WHERE 19980 WR1: 19981 SIZEOF(QUERY (q <* using_representations(SELF)| NOT ('STEP_MERGED_CAD_SCHEMA.VARIATIONAL_REPRESENTATION' IN TYPEOF(q)))) = 0; 19982 WR2: 19983 SIZEOF(QUERY (q <* using_representations(SELF)| NOT (SELF IN q.items))) = 0; 19984END_ENTITY; 19985 19986ENTITY vector 19987 SUBTYPE OF (geometric_representation_item); 19988 orientation : direction; 19989 magnitude : length_measure; 19990 WHERE 19991 WR1: 19992 magnitude >= 0.0; 19993END_ENTITY; 19994 19995-- DIFF IN AP214 19996ENTITY vector_style 19997 SUBTYPE OF (curve_style, pre_defined_terminator_symbol); 19998END_ENTITY; 19999 20000-- IN AP214/AP242 20001ENTITY vee_profile 20002 SUBTYPE OF (shape_aspect); 20003 WHERE 20004 WR1: 20005 'STEP_MERGED_CAD_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); 20006 WR2: 20007 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; 20008 WR3: 20009 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; 20010 WR4: 20011 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; 20012 WR5: 20013 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; 20014 WR6: 20015 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; 20016 WR7: 20017 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; 20018 WR8: 20019 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; 20020 WR9: 20021 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; 20022 WR10: 20023 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; 20024 WR11: 20025 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; 20026END_ENTITY; 20027 20028-- IN AP203e2/AP242 20029ENTITY velocity_measure_with_unit 20030 SUBTYPE OF (measure_with_unit); 20031 WHERE 20032 WR1: 20033 'STEP_MERGED_CAD_SCHEMA.VELOCITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 20034END_ENTITY; 20035 20036-- IN AP203e2/AP242 20037ENTITY velocity_unit 20038 SUBTYPE OF (derived_unit); 20039 WHERE 20040 WR1: 20041 derive_dimensional_exponents(SELF) = dimensional_exponents(1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0); 20042END_ENTITY; 20043 20044-- DIFF IN AP214 20045-- DIFF IN AP203e2 20046ENTITY versioned_action_request; 20047 id : identifier; 20048 version : OPTIONAL label; 20049 purpose : text; 20050 description : OPTIONAL text; 20051END_ENTITY; 20052 20053-- IN AP214/AP242 20054ENTITY versioned_action_request_relationship; 20055 id : identifier; 20056 name : label; 20057 description : OPTIONAL text; 20058 relating_versioned_action_request : versioned_action_request; 20059 related_versioned_action_request : versioned_action_request; 20060END_ENTITY; 20061 20062ENTITY vertex 20063 SUBTYPE OF (topological_representation_item); 20064END_ENTITY; 20065 20066ENTITY vertex_loop 20067 SUBTYPE OF (loop); 20068 loop_vertex : vertex; 20069END_ENTITY; 20070 20071ENTITY vertex_point 20072 SUBTYPE OF (vertex, geometric_representation_item); 20073 vertex_geometry : point; 20074END_ENTITY; 20075 20076-- IN AP203e2/AP242 20077ENTITY vertex_shell 20078 SUBTYPE OF (topological_representation_item); 20079 vertex_shell_extent : vertex_loop; 20080END_ENTITY; 20081 20082-- DIFF IN AP214 20083-- DIFF IN AP203e2 20084ENTITY view_volume 20085 SUBTYPE OF (founded_item); 20086 projection_type : central_or_parallel; 20087 projection_point : cartesian_point; 20088 view_plane_distance : length_measure; 20089 front_plane_distance : length_measure; 20090 front_plane_clipping : BOOLEAN; 20091 back_plane_distance : length_measure; 20092 back_plane_clipping : BOOLEAN; 20093 view_volume_sides_clipping : BOOLEAN; 20094 view_window : planar_box; 20095 INVERSE 20096 camera_usages : SET [1:?] OF camera_model_d3 FOR perspective_of_volume; 20097 WHERE 20098 WR1: 20099 ('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); 20100 WR2: 20101 view_plane_distance = view_window.placement\placement.location.coordinates[3]; 20102END_ENTITY; 20103 20104ENTITY visual_appearance_representation 20105 SUBTYPE OF (representation); 20106 WHERE 20107 WR1: 20108 ((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)); 20109 WR2: 20110 SIZEOF(QUERY (i <* SELF.items| (i.name = 'colour id'))) = 1; 20111 WR3: 20112 SIZEOF(QUERY (i <* SELF.items| (i.name = 'lustre'))) = 1; 20113 WR4: 20114 SIZEOF(QUERY (i <* SELF.items| (i.name = 'colour name'))) <= 1; 20115 WR5: 20116 SIZEOF(QUERY (i <* SELF.items| (i.name = 'pattern'))) <= 1; 20117 WR6: 20118 SIZEOF(QUERY (i <* SELF.items| (i.name = 'transparency'))) <= 1; 20119 WR7: 20120 SIZEOF(QUERY (i <* SELF.items| (i.name = 'texture map'))) <= 1; 20121 WR8: 20122 SIZEOF(QUERY (i <* SELF.items| (i.name = 'refraction index'))) <= 1; 20123 WR9: 20124 SIZEOF(QUERY (i <* SELF.items| (i.name = 'opacity'))) <= 1; 20125 WR10: 20126 SIZEOF(QUERY (i <* SELF.items| (i.name = 'orientation'))) <= 1; 20127 WR11: 20128 (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); 20129END_ENTITY; 20130 20131-- IN AP242 20132ENTITY volume 20133 SUBTYPE OF (geometric_representation_item); 20134 WHERE 20135 WR1: 20136 SELF\geometric_representation_item.dim = 3; 20137END_ENTITY; 20138 20139ENTITY volume_measure_with_unit 20140 SUBTYPE OF (measure_with_unit); 20141 WHERE 20142 WR1: 20143 'STEP_MERGED_CAD_SCHEMA.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); 20144END_ENTITY; 20145 20146ENTITY volume_unit 20147 SUBTYPE OF (derived_unit); 20148 WHERE 20149 WR1: 20150 derive_dimensional_exponents(SELF) = dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 20151END_ENTITY; 20152 20153-- IN AP203e2/AP242 20154ENTITY week_of_year_and_day_date 20155 SUBTYPE OF (date); 20156 week_component : week_in_year_number; 20157 day_component : OPTIONAL day_in_week_number; 20158END_ENTITY; 20159 20160-- IN AP203e2/AP242 20161ENTITY wire_shell 20162 SUBTYPE OF (topological_representation_item); 20163 wire_shell_extent : SET [1:?] OF loop; 20164 WHERE 20165 WR1: 20166 NOT mixed_loop_type_set(wire_shell_extent); 20167END_ENTITY; 20168 20169-- IN AP242 20170ENTITY wrong_element_name 20171 SUBTYPE OF (externally_conditioned_data_quality_criterion); 20172 WHERE 20173 WR1: 20174 validate_ecdq_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' ]); 20175END_ENTITY; 20176 20177-- IN AP242 20178ENTITY wrongly_oriented_void 20179 SUBTYPE OF (erroneous_manifold_solid_brep); 20180 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 20181 WHERE 20182 WR1: 20183 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 20184 WR2: 20185 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BREP_WITH_VOIDS' ]); 20186 WR3: 20187 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' ]); 20188 WR4: 20189 validate_accuracy_types(SELF, []); 20190END_ENTITY; 20191 20192-- IN AP242 20193ENTITY wrongly_placed_loop 20194 SUBTYPE OF (erroneous_topology_and_geometry_relationship); 20195 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 20196 WHERE 20197 WR1: 20198 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 20199 WR2: 20200 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE' ]); 20201 WR3: 20202 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.FACE_BOUND' ]); 20203 WR4: 20204 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' ]); 20205END_ENTITY; 20206 20207-- IN AP242 20208ENTITY wrongly_placed_void 20209 SUBTYPE OF (erroneous_manifold_solid_brep); 20210 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_logical_test; 20211 WHERE 20212 WR1: 20213 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_VALUE'); 20214 WR2: 20215 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.BREP_WITH_VOIDS' ]); 20216 WR3: 20217 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' ]); 20218 WR4: 20219 validate_accuracy_types(SELF, []); 20220END_ENTITY; 20221 20222-- IN AP214/AP242 20223ENTITY xor_expression 20224 SUBTYPE OF (binary_boolean_expression); 20225 SELF\binary_generic_expression.operands : LIST [2:2] OF boolean_expression; 20226END_ENTITY; 20227 20228-- IN AP203e2/AP242 20229ENTITY year_month 20230 SUBTYPE OF (date); 20231 month_component : month_in_year_number; 20232END_ENTITY; 20233 20234-- IN AP242 20235ENTITY zero_surface_normal 20236 SUBTYPE OF (geometry_with_local_irregularity); 20237 SELF\shape_data_quality_criterion.assessment_specification : shape_data_quality_assessment_by_numerical_test; 20238 WHERE 20239 WR1: 20240 ('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)); 20241 WR2: 20242 validate_measured_data_type(SELF, 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE'); 20243 WR3: 20244 validate_inspected_elements_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.SURFACE' ]); 20245 WR4: 20246 validate_locations_of_extreme_value_type(SELF, [ 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' ]); 20247 WR5: 20248 validate_accuracy_types(SELF, [ 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' ]); 20249END_ENTITY; 20250 20251-- IN AP203e2/AP242 20252ENTITY zone_structural_makeup 20253 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)) 20254 SUBTYPE OF (laminate_table); 20255END_ENTITY; 20256 20257-- DIFF IN AP203e2 20258-- IN AP203e2/AP242 20259RULE alternative_solution_requires_solution_definition FOR (product_definition_formation ); 20260 LOCAL 20261 solution_versions : SET OF product_definition_formation := []; 20262 END_LOCAL; 20263 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); 20264 WHERE 20265 WR1: 20266 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; 20267END_RULE; 20268 20269RULE application_protocol_definition_required FOR (application_context ); 20270 WHERE 20271 WR1: 20272 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; 20273END_RULE; 20274 20275-- IN AP214 20276RULE approval_person_organization_requires_date_time FOR (approval_person_organization ); 20277 WHERE 20278 wr1: 20279 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; 20280END_RULE; 20281 20282-- IN AP214 20283RULE approval_requires_approval_assignment FOR (approval ); 20284 WHERE 20285 wr1: 20286 SIZEOF(QUERY (a <* approval| (SIZEOF(USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.APPROVAL_ASSIGNMENT.ASSIGNED_APPROVAL')) = 0))) = 0; 20287END_RULE; 20288 20289-- IN AP203e2/AP242 20290RULE breakdown_element_requires_product_definition FOR (product_definition_formation ); 20291 WHERE 20292 WR1: 20293 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; 20294 WR2: 20295 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; 20296END_RULE; 20297 20298-- IN AP242 20299RULE chamfer_offset_requires_faces FOR (chamfer_offset, property_definition_representation ); 20300 WHERE 20301 WR1: 20302 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; 20303END_RULE; 20304 20305-- IN AP242 20306RULE chamfer_requires_faces FOR (chamfer, property_definition_representation ); 20307 WHERE 20308 WR1: 20309 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; 20310END_RULE; 20311 20312RULE compatible_dimension FOR (cartesian_point, direction, representation_context, geometric_representation_context ); 20313 WHERE 20314 WR1: 20315 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; 20316 WR2: 20317 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; 20318END_RULE; 20319 20320-- IN AP214 20321RULE complex_product_requires_product_definition FOR (product_definition, product_definition_formation, product_related_product_category ); 20322 WHERE 20323 wr1: 20324 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; 20325END_RULE; 20326 20327-- IN AP203e2/AP242 20328RULE component_class_for_assembly_select FOR (composite_assembly_sequence_definition, next_assembly_usage_occurrence, product_related_product_category ); 20329 LOCAL 20330 i : INTEGER := 0; 20331 j : INTEGER := 0; 20332 k : INTEGER := 0; 20333 dkuhr : LOGICAL := TRUE; 20334 nnauo : INTEGER := 0; 20335 nprpc : INTEGER := 0; 20336 rp : product; 20337 END_LOCAL; 20338 REPEAT i := LOINDEX(composite_assembly_sequence_definition) TO HIINDEX(composite_assembly_sequence_definition); 20339 nnauo := 0; 20340 REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence); 20341 IF composite_assembly_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition THEN 20342 rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product; 20343 nprpc := 0; 20344 REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); 20345 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 20346 nprpc := nprpc + 1; 20347 END_IF; 20348 END_REPEAT; 20349 IF nprpc = 1 THEN 20350 nnauo := nnauo + 1; 20351 ELSE 20352 dkuhr := FALSE; 20353 ESCAPE; 20354 END_IF; 20355 END_IF; 20356 END_REPEAT; 20357 IF dkuhr = FALSE THEN 20358 ESCAPE; 20359 END_IF; 20360 IF nnauo = 0 THEN 20361 dkuhr := FALSE; 20362 ESCAPE; 20363 END_IF; 20364 END_REPEAT; 20365 WHERE 20366 WR1: 20367 dkuhr; 20368END_RULE; 20369 20370-- IN AP214 20371RULE compound_features_of_equal_type FOR (compound_feature, shape_aspect_relationship ); 20372 WHERE 20373 wr1: 20374 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; 20375END_RULE; 20376 20377RULE consistent_uncertainty FOR (global_uncertainty_assigned_context, qualified_representation_item, uncertainty_assigned_representation ); 20378 WHERE 20379 WR1: 20380 SIZEOF(QUERY (guac <* global_uncertainty_assigned_context| (SIZEOF(QUERY (u1 <* guac.uncertainty| (SIZEOF(QUERY (u2 <* guac.uncertainty| (u2.name = u1.name))) > 1))) > 0))) = 0; 20381 WR2: 20382 SIZEOF(QUERY (uar <* uncertainty_assigned_representation| (SIZEOF(QUERY (u1 <* uar.uncertainty| (SIZEOF(QUERY (u2 <* uar.uncertainty| (u2.name = u1.name))) > 1))) > 0))) = 0; 20383 WR3: 20384 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; 20385END_RULE; 20386 20387-- IN AP203e2/AP242 20388RULE constraint_definition_requires_constraint_category FOR (product_definition ); 20389 LOCAL 20390 constraint_definitions : SET OF product_definition := []; 20391 END_LOCAL; 20392 constraint_definitions := QUERY (pd <* product_definition| pd.frame_of_reference.name = 'design constraint definition'); 20393 WHERE 20394 WR1: 20395 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; 20396END_RULE; 20397 20398-- IN AP214 20399RULE coordinated_assembly_and_shape FOR (next_assembly_usage_occurrence ); 20400 WHERE 20401 wr1: 20402 SIZEOF(QUERY (nauo <* next_assembly_usage_occurrence| NOT assembly_shape_is_defined(nauo))) = 0; 20403END_RULE; 20404 20405-- IN AP214 20406RULE curve_font_usage FOR (curve_style_font, externally_defined_curve_font, pre_defined_curve_font ); 20407 WHERE 20408 wr1: 20409 SIZEOF(QUERY (csf <* curve_style_font| (SIZEOF(USEDIN(csf, 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE.CURVE_FONT')) = 0))) = 0; 20410 wr2: 20411 SIZEOF(QUERY (pdcf <* pre_defined_curve_font| (SIZEOF(USEDIN(pdcf, 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE.CURVE_FONT')) = 0))) = 0; 20412 wr3: 20413 SIZEOF(QUERY (edcf <* externally_defined_curve_font| NOT (SIZEOF(USEDIN(edcf, 'STEP_MERGED_CAD_SCHEMA.CURVE_STYLE.CURVE_FONT')) >= 1))) = 0; 20414END_RULE; 20415 20416-- IN AP214 20417RULE dependent_instantiable_action_directive FOR (action_directive ); 20418 WHERE 20419 wr1: 20420 SIZEOF(QUERY (a <* action_directive| NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0; 20421END_RULE; 20422 20423-- IN AP214 20424RULE dependent_instantiable_action_resource_type FOR (action_resource_type ); 20425 WHERE 20426 wr1: 20427 SIZEOF(QUERY (a <* action_resource_type| NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0; 20428END_RULE; 20429 20430-- IN AP214 20431RULE dependent_instantiable_approval_role FOR (approval_role ); 20432 WHERE 20433 wr1: 20434 SIZEOF(QUERY (a <* approval_role| NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0; 20435END_RULE; 20436 20437-- IN AP214 20438RULE dependent_instantiable_attribute_value_role FOR (attribute_value_role ); 20439 WHERE 20440 wr1: 20441 SIZEOF(QUERY (a <* attribute_value_role| NOT (SIZEOF(USEDIN(a, '')) > 0))) = 0; 20442END_RULE; 20443 20444-- IN AP214 20445RULE dependent_instantiable_classification_role FOR (classification_role ); 20446 WHERE 20447 wr1: 20448 SIZEOF(QUERY (c <* classification_role| NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0; 20449END_RULE; 20450 20451-- IN AP214 20452RULE dependent_instantiable_colour_rgb FOR (colour_rgb ); 20453 WHERE 20454 wr1: 20455 SIZEOF(QUERY (c <* colour_rgb| NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0; 20456END_RULE; 20457 20458-- IN AP214 20459RULE dependent_instantiable_contract_type FOR (contract_type ); 20460 WHERE 20461 wr1: 20462 SIZEOF(QUERY (c <* contract_type| NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0; 20463END_RULE; 20464 20465-- IN AP214 20466RULE dependent_instantiable_curve_style FOR (curve_style ); 20467 WHERE 20468 wr1: 20469 SIZEOF(QUERY (c <* curve_style| NOT (SIZEOF(USEDIN(c, '')) > 0))) = 0; 20470END_RULE; 20471 20472-- IN AP214 20473RULE dependent_instantiable_date FOR (date ); 20474 WHERE 20475 wr1: 20476 SIZEOF(QUERY (d <* date| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; 20477END_RULE; 20478 20479-- IN AP214 20480RULE dependent_instantiable_date_and_time FOR (date_and_time ); 20481 WHERE 20482 wr1: 20483 SIZEOF(QUERY (d <* date_and_time| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; 20484END_RULE; 20485 20486-- IN AP214 20487RULE dependent_instantiable_date_role FOR (date_role ); 20488 WHERE 20489 wr1: 20490 SIZEOF(QUERY (d <* date_role| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; 20491END_RULE; 20492 20493-- IN AP214 20494RULE dependent_instantiable_date_time_role FOR (date_time_role ); 20495 WHERE 20496 wr1: 20497 SIZEOF(QUERY (d <* date_time_role| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; 20498END_RULE; 20499 20500-- IN AP214 20501RULE dependent_instantiable_derived_unit FOR (derived_unit ); 20502 WHERE 20503 wr1: 20504 SIZEOF(QUERY (d <* derived_unit| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; 20505END_RULE; 20506 20507-- IN AP214 20508RULE dependent_instantiable_dimensional_size FOR (dimensional_size ); 20509 WHERE 20510 wr1: 20511 SIZEOF(QUERY (d <* dimensional_size| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; 20512END_RULE; 20513 20514-- IN AP214 20515RULE dependent_instantiable_document_usage_role FOR (document_usage_role ); 20516 WHERE 20517 wr1: 20518 SIZEOF(QUERY (d <* document_usage_role| NOT (SIZEOF(USEDIN(d, '')) > 0))) = 0; 20519END_RULE; 20520 20521-- IN AP214 20522RULE dependent_instantiable_effectivity_context_role FOR (effectivity_context_role ); 20523 WHERE 20524 wr1: 20525 SIZEOF(QUERY (e <* effectivity_context_role| NOT (SIZEOF(USEDIN(e, '')) > 0))) = 0; 20526END_RULE; 20527 20528-- IN AP214 20529RULE dependent_instantiable_event_occurrence_role FOR (event_occurrence_role ); 20530 WHERE 20531 wr1: 20532 SIZEOF(QUERY (e <* event_occurrence_role| NOT (SIZEOF(USEDIN(e, '')) > 0))) = 0; 20533END_RULE; 20534 20535-- IN AP214 20536RULE dependent_instantiable_externally_defined_symbol FOR (externally_defined_symbol ); 20537 WHERE 20538 wr1: 20539 SIZEOF(QUERY (e <* externally_defined_symbol| NOT (SIZEOF(USEDIN(e, '')) > 0))) = 0; 20540END_RULE; 20541 20542-- IN AP214 20543RULE dependent_instantiable_fill_area_style FOR (fill_area_style ); 20544 WHERE 20545 wr1: 20546 SIZEOF(QUERY (f <* fill_area_style| NOT (SIZEOF(USEDIN(f, '')) > 0))) = 0; 20547END_RULE; 20548 20549-- IN AP214 20550RULE dependent_instantiable_fill_area_style_colour FOR (fill_area_style_colour ); 20551 WHERE 20552 wr1: 20553 SIZEOF(QUERY (f <* fill_area_style_colour| NOT (SIZEOF(USEDIN(f, '')) > 0))) = 0; 20554END_RULE; 20555 20556-- IN AP214 20557RULE dependent_instantiable_identification_role FOR (identification_role ); 20558 WHERE 20559 wr1: 20560 SIZEOF(QUERY (i <* identification_role| NOT (SIZEOF(USEDIN(i, '')) > 0))) = 0; 20561END_RULE; 20562 20563-- IN AP214 20564RULE dependent_instantiable_measure_with_unit FOR (measure_with_unit ); 20565 WHERE 20566 wr1: 20567 SIZEOF(QUERY (m <* measure_with_unit| NOT (SIZEOF(USEDIN(m, '')) > 0))) = 0; 20568END_RULE; 20569 20570-- IN AP214 20571RULE dependent_instantiable_named_unit FOR (named_unit ); 20572 WHERE 20573 wr1: 20574 SIZEOF(QUERY (n <* named_unit| NOT (SIZEOF(USEDIN(n, '')) > 0))) = 0; 20575END_RULE; 20576 20577-- IN AP214 20578RULE dependent_instantiable_object_role FOR (object_role ); 20579 WHERE 20580 wr1: 20581 SIZEOF(QUERY (o <* object_role| NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0; 20582END_RULE; 20583 20584-- IN AP214 20585RULE dependent_instantiable_organization_role FOR (organization_role ); 20586 WHERE 20587 wr1: 20588 SIZEOF(QUERY (o <* organization_role| NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0; 20589END_RULE; 20590 20591-- IN AP214 20592RULE dependent_instantiable_organizational_project_role FOR (organizational_project_role ); 20593 WHERE 20594 wr1: 20595 SIZEOF(QUERY (o <* organizational_project_role| NOT (SIZEOF(USEDIN(o, '')) > 0))) = 0; 20596END_RULE; 20597 20598-- IN AP214 20599RULE dependent_instantiable_person_and_organization_role FOR (person_and_organization_role ); 20600 WHERE 20601 wr1: 20602 SIZEOF(QUERY (p <* person_and_organization_role| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0; 20603END_RULE; 20604 20605-- IN AP214 20606RULE dependent_instantiable_pre_defined_colour FOR (pre_defined_colour ); 20607 WHERE 20608 wr1: 20609 SIZEOF(QUERY (p <* pre_defined_colour| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0; 20610END_RULE; 20611 20612-- IN AP214 20613RULE dependent_instantiable_pre_defined_symbol FOR (pre_defined_symbol ); 20614 WHERE 20615 wr1: 20616 SIZEOF(QUERY (p <* pre_defined_symbol| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0; 20617END_RULE; 20618 20619-- IN AP214 20620RULE dependent_instantiable_precision_qualifier FOR (precision_qualifier ); 20621 WHERE 20622 wr1: 20623 SIZEOF(QUERY (p <* precision_qualifier| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0; 20624END_RULE; 20625 20626-- IN AP214 20627RULE dependent_instantiable_presentation_style_by_context FOR (presentation_style_by_context ); 20628 WHERE 20629 wr1: 20630 SIZEOF(QUERY (p <* presentation_style_by_context| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0; 20631END_RULE; 20632 20633-- IN AP214 20634RULE dependent_instantiable_product_definition_context_role FOR (product_definition_context_role ); 20635 WHERE 20636 wr1: 20637 SIZEOF(QUERY (p <* product_definition_context_role| NOT (SIZEOF(USEDIN(p, '')) > 0))) = 0; 20638END_RULE; 20639 20640-- IN AP214 20641RULE dependent_instantiable_resource_requirement_type FOR (resource_requirement_type ); 20642 WHERE 20643 wr1: 20644 SIZEOF(QUERY (r <* resource_requirement_type| NOT (SIZEOF(USEDIN(r, '')) > 0))) = 0; 20645END_RULE; 20646 20647-- IN AP214 20648RULE dependent_instantiable_retention FOR (retention ); 20649 WHERE 20650 wr1: 20651 SIZEOF(QUERY (r <* retention| NOT (SIZEOF(USEDIN(r, '')) > 0))) = 0; 20652END_RULE; 20653 20654-- IN AP214 20655RULE dependent_instantiable_standard_uncertainty FOR (standard_uncertainty ); 20656 WHERE 20657 wr1: 20658 SIZEOF(QUERY (s <* standard_uncertainty| NOT (SIZEOF(USEDIN(s, '')) > 0))) = 0; 20659END_RULE; 20660 20661-- IN AP214 20662RULE dependent_instantiable_symbol_colour FOR (symbol_colour ); 20663 WHERE 20664 wr1: 20665 SIZEOF(QUERY (s <* symbol_colour| NOT (SIZEOF(USEDIN(s, '')) > 0))) = 0; 20666END_RULE; 20667 20668-- IN AP214 20669RULE dependent_instantiable_text_style FOR (text_style ); 20670 WHERE 20671 wr1: 20672 SIZEOF(QUERY (t <* text_style| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; 20673END_RULE; 20674 20675-- IN AP214 20676RULE dependent_instantiable_text_style_for_defined_font FOR (text_style_for_defined_font ); 20677 WHERE 20678 wr1: 20679 SIZEOF(QUERY (t <* text_style_for_defined_font| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; 20680END_RULE; 20681 20682-- IN AP214 20683RULE dependent_instantiable_time_interval_role FOR (time_interval_role ); 20684 WHERE 20685 wr1: 20686 SIZEOF(QUERY (t <* time_interval_role| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; 20687END_RULE; 20688 20689-- IN AP214 20690RULE dependent_instantiable_tolerance_value FOR (tolerance_value ); 20691 WHERE 20692 wr1: 20693 SIZEOF(QUERY (t <* tolerance_value| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; 20694END_RULE; 20695 20696-- IN AP214 20697RULE dependent_instantiable_type_qualifier FOR (type_qualifier ); 20698 WHERE 20699 wr1: 20700 SIZEOF(QUERY (t <* type_qualifier| NOT (SIZEOF(USEDIN(t, '')) > 0))) = 0; 20701END_RULE; 20702 20703-- IN AP214 20704RULE dependent_instantiable_uncertainty_qualifier FOR (uncertainty_qualifier ); 20705 WHERE 20706 wr1: 20707 SIZEOF(QUERY (u <* uncertainty_qualifier| NOT (SIZEOF(USEDIN(u, '')) > 0))) = 0; 20708END_RULE; 20709 20710-- DIFF IN AP214 20711RULE design_constraint_requires_product_definition FOR (product_definition_formation ); 20712 WHERE 20713 WR1: 20714 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; 20715END_RULE; 20716 20717-- IN AP214 20718RULE dimensionality_is_two_or_three FOR (geometric_representation_context ); 20719 WHERE 20720 wr1: 20721 SIZEOF(QUERY (g <* geometric_representation_context| NOT ((g.coordinate_space_dimension = 2) OR (g.coordinate_space_dimension = 3)))) = 0; 20722END_RULE; 20723 20724-- IN AP242 20725RULE dimensioning_data_requires_document FOR (applied_document_reference, product_definition_context_association, role_association ); 20726 LOCAL 20727 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'))); 20728 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')); 20729 ra : SET OF role_association := QUERY (ra <* role_association| ra\role_association.role\object_role.name = 'dimensioning standard'); 20730 ra1 : SET OF role_association := []; 20731 pdpdca : SET OF product_definition := []; 20732 pdadr : SET OF product_definition := []; 20733 pass : BOOLEAN := TRUE; 20734 END_LOCAL; 20735 REPEAT i := 1 TO HIINDEX(pdca); 20736 pdpdca := pdpdca + pdca[i]\product_definition_context_association.definition; 20737 END_REPEAT; 20738 REPEAT i := 1 TO HIINDEX(adr); 20739 ra1 := bag_to_set(USEDIN(adr[i], 'STEP_MERGED_CAD_SCHEMA.ROLE_ASSOCIATION.ITEM_WITH_ROLE')); 20740 IF ra1 * ra <> ra1 THEN 20741 pass := FALSE; 20742 END_IF; 20743 REPEAT j := 1 TO HIINDEX(adr[i]\applied_document_reference.items); 20744 IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(adr[i]\applied_document_reference.items[j]) THEN 20745 pdadr := pdadr + adr[i]\applied_document_reference.items[j]; 20746 END_IF; 20747 END_REPEAT; 20748 END_REPEAT; 20749 WHERE 20750 WR1: 20751 pass; 20752 WR2: 20753 pdpdca = pdadr; 20754END_RULE; 20755 20756-- IN AP203e2/AP242 20757RULE draughting_model_items_constraint FOR (draughting_model ); 20758 WHERE 20759 WR1: 20760 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; 20761 WR2: 20762 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; 20763END_RULE; 20764 20765-- IN AP214 20766RULE draughting_subfigure_representation_layers FOR (draughting_subfigure_representation ); 20767 WHERE 20768 wr1: 20769 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; 20770END_RULE; 20771 20772-- IN AP214 20773RULE drawing_sheet_annotation_layers FOR (drawing_sheet_revision ); 20774 WHERE 20775 wr1: 20776 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; 20777END_RULE; 20778 20779-- IN AP214 20780RULE drawing_sheet_layout_usage FOR (mapped_item ); 20781 WHERE 20782 wr1: 20783 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; 20784END_RULE; 20785 20786-- IN AP214 20787RULE drawing_view_annotation_layers FOR (presentation_view ); 20788 WHERE 20789 wr1: 20790 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; 20791END_RULE; 20792 20793-- IN AP242 20794RULE edge_round_requires_faces FOR (edge_round, property_definition_representation ); 20795 WHERE 20796 WR1: 20797 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')))))); 20798 WR2: 20799 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; 20800 WR3: 20801 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; 20802END_RULE; 20803 20804-- IN AP214 20805RULE event_occurrence_requires_event_occurrence_assignment FOR (event_occurrence, event_occurrence_assignment, relative_event_occurrence ); 20806 WHERE 20807 wr1: 20808 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; 20809END_RULE; 20810 20811-- IN AP214 20812RULE executed_action_requires_action_status FOR (executed_action ); 20813 WHERE 20814 wr1: 20815 SIZEOF(QUERY (ea <* executed_action| (SIZEOF(USEDIN(ea, 'STEP_MERGED_CAD_SCHEMA.ACTION_STATUS.ASSIGNED_ACTION')) > 1))) = 0; 20816END_RULE; 20817 20818-- IN AP203e2/AP242 20819RULE external_version_assignments_are_valid FOR (applied_external_identification_assignment ); 20820 WHERE 20821 WR1: 20822 SIZEOF(QUERY (aia <* applied_external_identification_assignment| NOT external_version_assignment_is_valid(aia))) = 0; 20823END_RULE; 20824 20825-- IN AP214 20826RULE externally_defined_class_with_known_source_requirement FOR (externally_defined_class ); 20827 WHERE 20828 wr1: 20829 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; 20830END_RULE; 20831 20832-- IN AP214 20833RULE fill_area_style_tile_symbol_constraint FOR (fill_area_style_tile_symbol_with_style ); 20834 WHERE 20835 wr1: 20836 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; 20837END_RULE; 20838 20839-- IN AP214 20840RULE full_model_change_completeness_for_action_property FOR (action_property ); 20841 WHERE 20842 wr1: 20843 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; 20844 wr2: 20845 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; 20846 wr3: 20847 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; 20848 wr4: 20849 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; 20850END_RULE; 20851 20852-- IN AP214 20853RULE full_model_change_completeness_for_property_definition FOR (property_definition ); 20854 WHERE 20855 wr1: 20856 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; 20857 wr2: 20858 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; 20859 wr3: 20860 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; 20861 wr4: 20862 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; 20863END_RULE; 20864 20865-- IN AP214 20866RULE global_length_and_angle_units_2d_or_3d FOR (global_unit_assigned_context ); 20867 WHERE 20868 wr1: 20869 SIZEOF(QUERY (guac <* global_unit_assigned_context| (SIZEOF(guac.units) < 2))) = 0; 20870 wr2: 20871 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; 20872END_RULE; 20873 20874-- IN AP242 20875RULE machining_feature_definition_constraints FOR (feature_definition ); 20876 LOCAL 20877 mfds : SET OF feature_definition := []; 20878 END_LOCAL; 20879 mfds := QUERY (temp <* feature_definition| 'STEP_MERGED_CAD_SCHEMA.MACHINING_FEATURE_DEFINITION' IN TYPEOF(temp)); 20880 WHERE 20881 WR1: 20882 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; 20883 WR2: 20884 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; 20885 WR3: 20886 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; 20887END_RULE; 20888 20889-- IN AP242 20890RULE machining_feature_life_cycle FOR (instanced_feature ); 20891 WHERE 20892 WR1: 20893 SIZEOF(QUERY (mf <* instanced_feature| NOT (mf.of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning'))) = 0; 20894END_RULE; 20895 20896-- IN AP203e2/AP242 20897RULE material_for_coating_layer FOR (shape_aspect ); 20898 LOCAL 20899 coating_layers : SET OF shape_aspect := []; 20900 END_LOCAL; 20901 coating_layers := QUERY (r <* shape_aspect| r.name = 'coating layer'); 20902 WHERE 20903 WR1: 20904 SIZEOF(QUERY (r <* coating_layers| (SIZEOF(USEDIN(r, 'STEP_MERGED_CAD_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS')) <> 1))) = 0; 20905END_RULE; 20906 20907-- IN AP214 20908RULE person_requires_person_and_organization FOR (person ); 20909 WHERE 20910 wr1: 20911 SIZEOF(QUERY (p <* person| (SIZEOF(USEDIN(p, 'STEP_MERGED_CAD_SCHEMA.PERSON_AND_ORGANIZATION.THE_PERSON')) = 0))) = 0; 20912END_RULE; 20913 20914-- IN AP214 20915RULE physical_instance_requires_product_definition FOR (product_definition, product_definition_formation, product_related_product_category ); 20916 WHERE 20917 wr1: 20918 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; 20919END_RULE; 20920 20921-- IN AP214 20922RULE plib_class_reference_requires_version FOR (externally_defined_class ); 20923 WHERE 20924 wr1: 20925 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; 20926 wr2: 20927 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; 20928END_RULE; 20929 20930-- DIFF IN AP214 20931-- DIFF IN AP203e2 20932RULE plib_property_reference_requires_name_scope FOR (externally_defined_general_property ); 20933 LOCAL 20934 known_sourced_properties : SET OF externally_defined_general_property; 20935 END_LOCAL; 20936 known_sourced_properties := QUERY (edc <* externally_defined_general_property| 'STEP_MERGED_CAD_SCHEMA.KNOWN_SOURCE' IN TYPEOF(edc.source)); 20937 WHERE 20938 WR1: 20939 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; 20940END_RULE; 20941 20942-- DIFF IN AP214 20943-- DIFF IN AP203e2 20944RULE plib_property_reference_requires_version FOR (externally_defined_general_property ); 20945 LOCAL 20946 plib_properties : SET OF externally_defined_general_property := []; 20947 END_LOCAL; 20948 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')); 20949 WHERE 20950 WR1: 20951 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; 20952END_RULE; 20953 20954-- IN AP203e2/AP242 20955RULE ply_reference FOR (ply_laminate_sequence_definition, next_assembly_usage_occurrence, product_related_product_category ); 20956 LOCAL 20957 i : INTEGER; 20958 j : INTEGER; 20959 k : INTEGER; 20960 dkuhr : LOGICAL := TRUE; 20961 nnauo : INTEGER; 20962 nprpc : INTEGER := 0; 20963 rp : product; 20964 END_LOCAL; 20965 REPEAT i := LOINDEX(ply_laminate_sequence_definition) TO HIINDEX(ply_laminate_sequence_definition); 20966 nnauo := 0; 20967 REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence); 20968 IF ply_laminate_sequence_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition THEN 20969 rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product; 20970 nprpc := 0; 20971 REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); 20972 IF (product_related_product_category[k].name = 'ply') AND (rp IN product_related_product_category[k].products) THEN 20973 nprpc := nprpc + 1; 20974 END_IF; 20975 END_REPEAT; 20976 IF nprpc = 1 THEN 20977 nnauo := nnauo + 1; 20978 ELSE 20979 dkuhr := FALSE; 20980 ESCAPE; 20981 END_IF; 20982 END_IF; 20983 END_REPEAT; 20984 IF dkuhr = FALSE THEN 20985 ESCAPE; 20986 END_IF; 20987 IF nnauo = 0 THEN 20988 dkuhr := FALSE; 20989 ESCAPE; 20990 END_IF; 20991 END_REPEAT; 20992 WHERE 20993 WR1: 20994 dkuhr; 20995END_RULE; 20996 20997-- IN AP203e2/AP242 20998RULE ply_stock_material_select FOR (product_related_product_category, make_from_usage_option ); 20999 LOCAL 21000 i : INTEGER; 21001 j : INTEGER; 21002 k : INTEGER; 21003 kp : INTEGER; 21004 dkuhr : LOGICAL; 21005 nmfuo : INTEGER; 21006 nprpc : INTEGER := 0; 21007 rp : product; 21008 END_LOCAL; 21009 dkuhr := TRUE; 21010 REPEAT kp := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); 21011 IF product_related_product_category[kp].name = 'ply' THEN 21012 REPEAT i := LOINDEX(product_related_product_category[kp].products) TO HIINDEX(product_related_product_category[kp].products); 21013 nmfuo := 0; 21014 REPEAT j := LOINDEX(make_from_usage_option) TO HIINDEX(make_from_usage_option); 21015 rp := make_from_usage_option[j].related_product_definition.formation.of_product; 21016 IF product_related_product_category[kp].products[i] = rp THEN 21017 REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); 21018 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 21019 nprpc := nprpc + 1; 21020 END_IF; 21021 END_REPEAT; 21022 IF nprpc = 1 THEN 21023 nmfuo := nmfuo + 1; 21024 ELSE 21025 dkuhr := FALSE; 21026 ESCAPE; 21027 END_IF; 21028 END_IF; 21029 END_REPEAT; 21030 IF dkuhr = FALSE THEN 21031 ESCAPE; 21032 END_IF; 21033 IF nmfuo <> 1 THEN 21034 dkuhr := FALSE; 21035 ESCAPE; 21036 END_IF; 21037 END_REPEAT; 21038 END_IF; 21039 END_REPEAT; 21040 WHERE 21041 WR1: 21042 dkuhr; 21043END_RULE; 21044 21045-- IN AP214 21046RULE presentation_layer_assignment_constraint_2d_or_3d FOR (presentation_layer_assignment ); 21047 WHERE 21048 wr1: 21049 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; 21050 wr2: 21051 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; 21052 wr3: 21053 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; 21054 wr4: 21055 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; 21056END_RULE; 21057 21058-- IN AP214 21059RULE presentation_view_presented_once FOR (presentation_view ); 21060 WHERE 21061 wr1: 21062 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; 21063END_RULE; 21064 21065-- DIFF IN AP214 21066RULE product_concept_feature_requires_category FOR (product_concept_feature ); 21067 WHERE 21068 WR1: 21069 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; 21070END_RULE; 21071 21072-- DIFF IN AP214 21073RULE product_definition_replacement_requires_effectivity_assignment FOR (product_definition_relationship ); 21074 WHERE 21075 WR1: 21076 SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'definition replacement') AND (SIZEOF(USEDIN(pdr, 'STEP_MERGED_CAD_SCHEMA.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS')) = 0))) = 0; 21077END_RULE; 21078 21079-- IN AP214 21080RULE product_requires_category FOR (product, product_related_product_category ); 21081 WHERE 21082 wr1: 21083 SIZEOF(QUERY (p <* product| (SIZEOF(USEDIN(p, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')) = 0))) = 0; 21084END_RULE; 21085 21086-- IN AP214 21087RULE product_requires_id_owner FOR (product ); 21088 WHERE 21089 wr1: 21090 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; 21091END_RULE; 21092 21093-- IN AP214 21094RULE product_requires_version FOR (product ); 21095 WHERE 21096 wr1: 21097 SIZEOF(QUERY (prod <* product| (SIZEOF(USEDIN(prod, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_FORMATION.OF_PRODUCT')) = 0))) = 0; 21098END_RULE; 21099 21100-- IN AP214 21101RULE restrict_action_resource_requirement_for_process_operation FOR (action, action_resource_requirement ); 21102 WHERE 21103 wr1: 21104 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; 21105 wr2: 21106 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; 21107 wr3: 21108 SIZEOF(QUERY (arr <* action_resource_requirement| (arr.name <> 'reference tool') AND (arr.name <> 'non reference tool'))) = 0; 21109END_RULE; 21110 21111-- DIFF IN AP214 21112RULE restrict_alternative_definition FOR (product_definition ); 21113 LOCAL 21114 solution_definitions : SET OF product_definition := []; 21115 END_LOCAL; 21116 solution_definitions := QUERY (pd <* product_definition| pd.frame_of_reference.name = 'alternative definition'); 21117 WHERE 21118 WR1: 21119 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; 21120 WR2: 21121 SIZEOF(QUERY (pd <* solution_definitions| NOT (pd.name IN [ 'technical', 'supplier', 'technical supplier', '' ]))) = 0; 21122 WR3: 21123 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; 21124END_RULE; 21125 21126-- IN AP214 21127RULE restrict_applied_action_assignment FOR (applied_action_assignment, object_role ); 21128 WHERE 21129 wr1: 21130 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; 21131 wr2: 21132 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; 21133 wr3: 21134 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; 21135 wr4: 21136 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; 21137 wr5: 21138 SIZEOF(QUERY (aaa <* applied_action_assignment| (aaa.role.name = 'retention') AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'RETENTION' IN TYPEOF(aaa.assigned_action)))) = 0; 21139 wr6: 21140 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; 21141 wr7: 21142 SIZEOF(QUERY (aaa <* applied_action_assignment| (aaa.role.name = 'test activity') AND NOT item_correlation(aaa.items, [ 'PROPERTY_DEFINITION' ]))) = 0; 21143END_RULE; 21144 21145-- IN AP214 21146RULE restrict_applied_action_request_assignment FOR (applied_action_request_assignment, object_role ); 21147 WHERE 21148 wr1: 21149 SIZEOF(QUERY (aara <* applied_action_request_assignment| (aara.role.name <> 'scope'))) = 0; 21150END_RULE; 21151 21152-- IN AP214 21153RULE restrict_applied_classification_assignment_role FOR (applied_classification_assignment ); 21154 WHERE 21155 wr1: 21156 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; 21157 wr2: 21158 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; 21159 wr3: 21160 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; 21161 wr4: 21162 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; 21163END_RULE; 21164 21165-- IN AP214 21166RULE restrict_applied_event_occurrence_assignment FOR (applied_event_occurrence_assignment ); 21167 WHERE 21168 wr1: 21169 SIZEOF(QUERY (eo <* applied_event_occurrence_assignment| (eo\event_occurrence_assignment.role.name = 'event context') AND (SIZEOF(eo.items) > 1))) = 0; 21170END_RULE; 21171 21172-- IN AP214 21173RULE restrict_applied_organizational_project_assignment FOR (applied_organizational_project_assignment, object_role ); 21174 WHERE 21175 wr1: 21176 SIZEOF(QUERY (aopa <* applied_organizational_project_assignment| (aopa.role.name = 'affecting project') AND NOT item_correlation(aopa.items, [ 'PRODUCT_CONCEPT' ]))) = 0; 21177 wr2: 21178 SIZEOF(QUERY (aopa <* applied_organizational_project_assignment| (aopa.role.name = 'work program') AND NOT item_correlation(aopa.items, [ 'EXECUTED_ACTION' ]))) = 0; 21179END_RULE; 21180 21181-- IN AP214 21182RULE restrict_approval FOR (approval, approval_date_time ); 21183 WHERE 21184 wr1: 21185 SIZEOF(QUERY (a <* approval| (SIZEOF(USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.APPROVAL_DATE_TIME.DATED_APPROVAL')) > 2))) = 0; 21186 wr2: 21187 SIZEOF(QUERY (adt <* approval_date_time| NOT EXISTS(adt.role) OR NOT (adt.role.name IN [ 'actual', 'planned' ]))) = 0; 21188 wr3: 21189 SIZEOF(QUERY (a <* approval| (SIZEOF(QUERY (adt <* USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.APPROVAL_DATE_TIME.DATED_APPROVAL')| (adt.role.name = 'actual'))) > 1))) = 0; 21190 wr4: 21191 SIZEOF(QUERY (a <* approval| (SIZEOF(QUERY (adt <* USEDIN(a, 'STEP_MERGED_CAD_SCHEMA.APPROVAL_DATE_TIME.DATED_APPROVAL')| (adt.role.name = 'planned'))) > 1))) = 0; 21192END_RULE; 21193 21194-- IN AP203e2/AP242 21195RULE restrict_assembly_category FOR (product_definition ); 21196 LOCAL 21197 assembly_definitions : SET OF product_definition := []; 21198 END_LOCAL; 21199 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); 21200 WHERE 21201 WR1: 21202 SIZEOF(QUERY (pd <* assembly_definitions| NOT ('assembly' IN categories_of_product(pd.formation.of_product)))) = 0; 21203END_RULE; 21204 21205-- IN AP214 21206RULE restrict_camera_image_in_view FOR (camera_image, presentation_view ); 21207 WHERE 21208 wr1: 21209 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; 21210 wr2: 21211 SIZEOF(QUERY (pv <* presentation_view| (SIZEOF(QUERY (ri <* pv\representation.items| ('STEP_MERGED_CAD_SCHEMA.' + 'CAMERA_IMAGE' IN TYPEOF(ri)))) > 1))) = 0; 21212END_RULE; 21213 21214RULE restrict_centre_of_mass_representation FOR (representation ); 21215 WHERE 21216 WR1: 21217 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; 21218END_RULE; 21219 21220-- IN AP214 21221RULE restrict_class_system_assignment_for_approval_status FOR (applied_classification_assignment, approval_status ); 21222 WHERE 21223 wr1: 21224 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; 21225END_RULE; 21226 21227-- IN AP214 21228RULE restrict_class_system_assignment_for_class FOR (applied_classification_assignment, class ); 21229 WHERE 21230 wr1: 21231 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; 21232END_RULE; 21233 21234-- IN AP214 21235RULE restrict_class_system_assignment_for_descriptive_representation_item FOR (applied_classification_assignment, descriptive_representation_item ); 21236 WHERE 21237 wr1: 21238 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; 21239END_RULE; 21240 21241-- IN AP214 21242RULE restrict_class_system_assignment_for_document_type FOR (applied_classification_assignment, document_type ); 21243 WHERE 21244 wr1: 21245 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; 21246END_RULE; 21247 21248-- IN AP214 21249RULE restrict_class_system_assignment_for_security_classification_level FOR (applied_classification_assignment, security_classification_level ); 21250 WHERE 21251 wr1: 21252 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; 21253END_RULE; 21254 21255-- IN AP203e2/AP242 21256RULE restrict_classification_assignments FOR (applied_classification_assignment ); 21257 WHERE 21258 WR1: 21259 SIZEOF(QUERY (aia <* applied_classification_assignment| NOT class_assignment_is_valid(aia))) = 0; 21260END_RULE; 21261 21262-- DIFF IN AP203e2 21263-- IN AP203e2/AP242 21264RULE restrict_collection_category FOR (product_definition ); 21265 LOCAL 21266 collection_definitions : SET OF product_definition := []; 21267 END_LOCAL; 21268 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); 21269 WHERE 21270 WR1: 21271 SIZEOF(QUERY (pd <* collection_definitions| NOT ('collection' IN categories_of_product(pd.formation.of_product)))) = 0; 21272END_RULE; 21273 21274RULE restrict_concept_feature_operator FOR (concept_feature_operator ); 21275 WHERE 21276 WR1: 21277 SIZEOF(QUERY (cfo <* concept_feature_operator| NOT (cfo.name IN [ 'and', 'or', 'oneof', 'not', 'implication' ]))) = 0; 21278 WR2: 21279 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; 21280 WR3: 21281 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; 21282END_RULE; 21283 21284-- IN AP203e2/AP242 21285RULE restrict_configuration_design_for_class_breakdown_association FOR (configuration_design ); 21286 WHERE 21287 WR1: 21288 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; 21289 WR2: 21290 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; 21291 WR3: 21292 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; 21293END_RULE; 21294 21295-- IN AP203e2/AP242 21296RULE restrict_configuration_design_for_design_constraint FOR (configuration_design ); 21297 WHERE 21298 WR1: 21299 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; 21300END_RULE; 21301 21302-- IN AP214 21303RULE restrict_configuration_design_for_product_class FOR (configuration_design, product_class ); 21304 WHERE 21305 wr1: 21306 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; 21307 wr2: 21308 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; 21309 wr3: 21310 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; 21311 wr4: 21312 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; 21313 wr5: 21314 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; 21315 wr6: 21316 SIZEOF(QUERY (cd <* configuration_design| (cd.name = 'physical instance basis') AND NOT ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF(cd.configuration)))) = 0; 21317END_RULE; 21318 21319-- IN AP214 21320RULE restrict_default_settings FOR (applied_document_reference, representation ); 21321 WHERE 21322 wr1: 21323 (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); 21324 wr2: 21325 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; 21326END_RULE; 21327 21328-- IN AP214 21329RULE restrict_default_thickness FOR (representation ); 21330 WHERE 21331 wr1: 21332 (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); 21333 wr2: 21334 (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); 21335 wr3: 21336 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; 21337END_RULE; 21338 21339-- IN AP214 21340RULE restrict_drawing FOR (draughting_title, drawing_revision ); 21341 WHERE 21342 wr1: 21343 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; 21344 wr2: 21345 SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(USEDIN(dr, 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_TITLE.ITEMS')) > 1))) = 0; 21346 wr3: 21347 SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(USEDIN(ais.area, 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_TITLE.ITEMS')) > 1))) > 0))) = 0; 21348 wr4: 21349 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; 21350 wr5: 21351 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; 21352 wr6: 21353 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; 21354 wr7: 21355 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; 21356 wr8: 21357 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; 21358 wr9: 21359 SIZEOF(QUERY (dr <* drawing_revision| (SIZEOF(QUERY (ais <* dr.areas| (SIZEOF(ais.area.context_of_items.representations_in_context) > 1))) > 0))) = 0; 21360 wr10: 21361 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; 21362 wr11: 21363 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; 21364 wr12: 21365 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; 21366 wr13: 21367 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; 21368END_RULE; 21369 21370-- IN AP214 21371RULE restrict_effectivity_assignment_for_class_category_usage FOR (applied_effectivity_assignment, product_concept_feature_category_usage ); 21372 WHERE 21373 wr1: 21374 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; 21375END_RULE; 21376 21377-- IN AP214 21378RULE restrict_effectivity_for_effectivity_relationship FOR (effectivity_relationship ); 21379 WHERE 21380 wr1: 21381 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; 21382END_RULE; 21383 21384-- IN AP214 21385RULE restrict_effectivity_usage FOR (configured_effectivity_assignment, effectivity ); 21386 WHERE 21387 wr1: 21388 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; 21389END_RULE; 21390 21391-- IN AP214 21392RULE restrict_externally_defined_item_relationship FOR (externally_defined_item_relationship ); 21393 WHERE 21394 wr1: 21395 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; 21396END_RULE; 21397 21398-- IN AP203e2/AP242 21399RULE restrict_group_relationship_for_classification_hierarchy FOR (group_relationship ); 21400 WHERE 21401 WR1: 21402 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; 21403END_RULE; 21404 21405-- IN AP214 21406RULE restrict_group_relationship_for_general_classification_hierarchy FOR (class, group_relationship ); 21407 WHERE 21408 wr1: 21409 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; 21410END_RULE; 21411 21412-- DIFF IN AP214 21413RULE restrict_group_relationship_for_specification_category FOR (group_relationship ); 21414 WHERE 21415 WR1: 21416 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; 21417END_RULE; 21418 21419-- IN AP203e2/AP242 21420RULE restrict_language_assignment_per_attribute FOR (attribute_language_assignment ); 21421 WHERE 21422 WR1: 21423 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; 21424END_RULE; 21425 21426-- IN AP214 21427RULE restrict_multi_language_for_action FOR (action ); 21428 WHERE 21429 wr1: 21430 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; 21431 wr2: 21432 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; 21433 wr3: 21434 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; 21435END_RULE; 21436 21437-- IN AP214 21438RULE restrict_multi_language_for_action_directive FOR (action_directive ); 21439 WHERE 21440 wr1: 21441 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; 21442 wr2: 21443 SIZEOF(QUERY (ent <* action_directive| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'comment'))) > 0))) = 0; 21444 wr3: 21445 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; 21446END_RULE; 21447 21448-- IN AP214 21449RULE restrict_multi_language_for_action_method FOR (action_method ); 21450 WHERE 21451 wr1: 21452 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; 21453 wr2: 21454 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; 21455 wr3: 21456 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; 21457END_RULE; 21458 21459-- IN AP214 21460RULE restrict_multi_language_for_action_property FOR (action_property ); 21461 WHERE 21462 wr1: 21463 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; 21464 wr2: 21465 SIZEOF(QUERY (ent <* action_property| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21466 wr3: 21467 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; 21468END_RULE; 21469 21470-- IN AP214 21471RULE restrict_multi_language_for_action_relationship FOR (action_relationship ); 21472 WHERE 21473 wr1: 21474 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; 21475 wr2: 21476 SIZEOF(QUERY (ent <* action_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21477 wr3: 21478 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; 21479END_RULE; 21480 21481-- IN AP214 21482RULE restrict_multi_language_for_alternate_product_relationship FOR (alternate_product_relationship ); 21483 WHERE 21484 wr1: 21485 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; 21486 wr2: 21487 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; 21488 wr3: 21489 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; 21490END_RULE; 21491 21492-- IN AP214 21493RULE restrict_multi_language_for_application_context FOR (application_context ); 21494 WHERE 21495 wr1: 21496 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; 21497 wr2: 21498 SIZEOF(QUERY (ent <* application_context| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21499 wr3: 21500 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; 21501END_RULE; 21502 21503-- IN AP214 21504RULE restrict_multi_language_for_approval_relationship FOR (approval_relationship ); 21505 WHERE 21506 wr1: 21507 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; 21508 wr2: 21509 SIZEOF(QUERY (ent <* approval_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21510 wr3: 21511 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; 21512END_RULE; 21513 21514-- IN AP214 21515RULE restrict_multi_language_for_assembly_component_usage_substitute FOR (assembly_component_usage_substitute ); 21516 WHERE 21517 wr1: 21518 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; 21519 wr2: 21520 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; 21521 wr3: 21522 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; 21523END_RULE; 21524 21525-- IN AP214 21526RULE restrict_multi_language_for_certification FOR (certification ); 21527 WHERE 21528 wr1: 21529 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; 21530 wr2: 21531 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; 21532 wr3: 21533 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; 21534END_RULE; 21535 21536-- IN AP214 21537RULE restrict_multi_language_for_configuration_design FOR (configuration_design ); 21538 WHERE 21539 wr1: 21540 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; 21541 wr2: 21542 SIZEOF(QUERY (ent <* configuration_design| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21543 wr3: 21544 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; 21545END_RULE; 21546 21547-- IN AP214 21548RULE restrict_multi_language_for_configuration_item FOR (configuration_item ); 21549 WHERE 21550 wr1: 21551 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; 21552 wr2: 21553 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; 21554 wr3: 21555 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; 21556END_RULE; 21557 21558-- IN AP214 21559RULE restrict_multi_language_for_contract FOR (contract ); 21560 WHERE 21561 wr1: 21562 SIZEOF(QUERY (ent <* contract| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'purpose'))) > 0))) = 0; 21563 wr2: 21564 SIZEOF(QUERY (ent <* contract| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'purpose'))) > 0))) = 0; 21565 wr3: 21566 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; 21567END_RULE; 21568 21569-- IN AP214 21570RULE restrict_multi_language_for_data_environment FOR (data_environment ); 21571 WHERE 21572 wr1: 21573 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; 21574 wr2: 21575 SIZEOF(QUERY (ent <* data_environment| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21576 wr3: 21577 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; 21578END_RULE; 21579 21580-- IN AP214 21581RULE restrict_multi_language_for_date_role FOR (date_role ); 21582 WHERE 21583 wr1: 21584 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; 21585 wr2: 21586 SIZEOF(QUERY (ent <* date_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21587 wr3: 21588 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; 21589END_RULE; 21590 21591-- IN AP214 21592RULE restrict_multi_language_for_date_time_role FOR (date_time_role ); 21593 WHERE 21594 wr1: 21595 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; 21596 wr2: 21597 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; 21598 wr3: 21599 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; 21600END_RULE; 21601 21602-- IN AP214 21603RULE restrict_multi_language_for_descriptive_representation_item FOR (descriptive_representation_item ); 21604 WHERE 21605 wr1: 21606 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; 21607 wr2: 21608 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; 21609 wr3: 21610 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; 21611END_RULE; 21612 21613-- IN AP214 21614RULE restrict_multi_language_for_document_relationship FOR (document_relationship ); 21615 WHERE 21616 wr1: 21617 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; 21618 wr2: 21619 SIZEOF(QUERY (ent <* document_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21620 wr3: 21621 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; 21622END_RULE; 21623 21624-- IN AP214 21625RULE restrict_multi_language_for_draughting_title FOR (draughting_title ); 21626 WHERE 21627 wr1: 21628 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; 21629 wr2: 21630 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; 21631 wr3: 21632 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; 21633END_RULE; 21634 21635-- IN AP214 21636RULE restrict_multi_language_for_effectivity FOR (effectivity ); 21637 WHERE 21638 wr1: 21639 SIZEOF(QUERY (ent <* effectivity| (SIZEOF(QUERY (mlaa <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS')| (mlaa.attribute_name <> 'description'))) > 0))) = 0; 21640 wr2: 21641 SIZEOF(QUERY (ent <* effectivity| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21642 wr3: 21643 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; 21644END_RULE; 21645 21646-- IN AP214 21647RULE restrict_multi_language_for_effectivity_relationship FOR (effectivity_relationship ); 21648 WHERE 21649 wr1: 21650 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; 21651 wr2: 21652 SIZEOF(QUERY (ent <* effectivity_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21653 wr3: 21654 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; 21655END_RULE; 21656 21657-- IN AP214 21658RULE restrict_multi_language_for_event_occurrence FOR (event_occurrence ); 21659 WHERE 21660 wr1: 21661 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; 21662 wr2: 21663 SIZEOF(QUERY (ent <* event_occurrence| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21664 wr3: 21665 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; 21666END_RULE; 21667 21668-- IN AP214 21669RULE restrict_multi_language_for_external_source FOR (external_source ); 21670 WHERE 21671 wr1: 21672 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; 21673 wr2: 21674 SIZEOF(QUERY (ent <* external_source| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21675 wr3: 21676 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; 21677END_RULE; 21678 21679-- IN AP214 21680RULE restrict_multi_language_for_general_property FOR (general_property ); 21681 WHERE 21682 wr1: 21683 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; 21684 wr2: 21685 SIZEOF(QUERY (ent <* general_property| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21686 wr3: 21687 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; 21688END_RULE; 21689 21690-- IN AP214 21691RULE restrict_multi_language_for_general_property_relationship FOR (general_property_relationship ); 21692 WHERE 21693 wr1: 21694 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; 21695 wr2: 21696 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; 21697 wr3: 21698 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; 21699END_RULE; 21700 21701-- IN AP214 21702RULE restrict_multi_language_for_geometric_representation_item FOR (geometric_representation_item ); 21703 WHERE 21704 wr1: 21705 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; 21706 wr2: 21707 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; 21708 wr3: 21709 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; 21710END_RULE; 21711 21712-- IN AP214 21713RULE restrict_multi_language_for_geometric_tolerance FOR (geometric_tolerance ); 21714 WHERE 21715 wr1: 21716 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; 21717 wr2: 21718 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; 21719 wr3: 21720 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; 21721END_RULE; 21722 21723-- IN AP214 21724RULE restrict_multi_language_for_group FOR (group ); 21725 WHERE 21726 wr1: 21727 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; 21728 wr2: 21729 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; 21730 wr3: 21731 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; 21732END_RULE; 21733 21734-- IN AP214 21735RULE restrict_multi_language_for_group_relationship FOR (group_relationship ); 21736 WHERE 21737 wr1: 21738 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; 21739 wr2: 21740 SIZEOF(QUERY (ent <* group_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21741 wr3: 21742 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; 21743END_RULE; 21744 21745-- IN AP214 21746RULE restrict_multi_language_for_identification_role FOR (identification_role ); 21747 WHERE 21748 wr1: 21749 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; 21750 wr2: 21751 SIZEOF(QUERY (ent <* identification_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21752 wr3: 21753 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; 21754END_RULE; 21755 21756-- IN AP214 21757RULE restrict_multi_language_for_kinematic_pair FOR (kinematic_pair ); 21758 WHERE 21759 wr1: 21760 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; 21761 wr2: 21762 SIZEOF(QUERY (ent <* kinematic_pair| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0; 21763 wr3: 21764 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; 21765END_RULE; 21766 21767-- IN AP214 21768RULE restrict_multi_language_for_mapped_item FOR (mapped_item ); 21769 WHERE 21770 wr1: 21771 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; 21772 wr2: 21773 SIZEOF(QUERY (ent <* mapped_item| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0; 21774 wr3: 21775 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; 21776END_RULE; 21777 21778-- IN AP214 21779RULE restrict_multi_language_for_name_assignment FOR (name_assignment ); 21780 WHERE 21781 wr1: 21782 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; 21783 wr2: 21784 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; 21785 wr3: 21786 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; 21787END_RULE; 21788 21789-- IN AP214 21790RULE restrict_multi_language_for_organization_relationship FOR (organization_relationship ); 21791 WHERE 21792 wr1: 21793 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; 21794 wr2: 21795 SIZEOF(QUERY (ent <* organization_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21796 wr3: 21797 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; 21798END_RULE; 21799 21800-- IN AP214 21801RULE restrict_multi_language_for_organization_role FOR (organization_role ); 21802 WHERE 21803 wr1: 21804 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; 21805 wr2: 21806 SIZEOF(QUERY (ent <* organization_role| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 21807 wr3: 21808 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; 21809END_RULE; 21810 21811-- IN AP214 21812RULE restrict_multi_language_for_organizational_project FOR (organizational_project ); 21813 WHERE 21814 wr1: 21815 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; 21816 wr2: 21817 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; 21818 wr3: 21819 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; 21820END_RULE; 21821 21822-- IN AP214 21823RULE restrict_multi_language_for_organizational_project_relationship FOR (organizational_project_relationship ); 21824 WHERE 21825 wr1: 21826 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; 21827 wr2: 21828 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; 21829 wr3: 21830 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; 21831END_RULE; 21832 21833-- IN AP214 21834RULE restrict_multi_language_for_pair_actuator FOR (pair_actuator ); 21835 WHERE 21836 wr1: 21837 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; 21838 wr2: 21839 SIZEOF(QUERY (ent <* pair_actuator| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0; 21840 wr3: 21841 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; 21842END_RULE; 21843 21844-- IN AP214 21845RULE restrict_multi_language_for_person_and_organization_role FOR (person_and_organization_role ); 21846 WHERE 21847 wr1: 21848 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; 21849 wr2: 21850 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; 21851 wr3: 21852 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; 21853END_RULE; 21854 21855-- IN AP214 21856RULE restrict_multi_language_for_presentation_layer_assignment FOR (presentation_layer_assignment ); 21857 WHERE 21858 wr1: 21859 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; 21860 wr2: 21861 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; 21862 wr3: 21863 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; 21864END_RULE; 21865 21866-- IN AP214 21867RULE restrict_multi_language_for_process_product_association FOR (process_product_association ); 21868 WHERE 21869 wr1: 21870 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; 21871 wr2: 21872 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; 21873 wr3: 21874 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; 21875END_RULE; 21876 21877-- IN AP214 21878RULE restrict_multi_language_for_product FOR (product ); 21879 WHERE 21880 wr1: 21881 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; 21882 wr2: 21883 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; 21884 wr3: 21885 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; 21886END_RULE; 21887 21888-- IN AP214 21889RULE restrict_multi_language_for_product_concept FOR (product_concept ); 21890 WHERE 21891 wr1: 21892 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; 21893 wr2: 21894 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; 21895 wr3: 21896 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; 21897END_RULE; 21898 21899-- IN AP214 21900RULE restrict_multi_language_for_product_concept_feature FOR (product_concept_feature ); 21901 WHERE 21902 wr1: 21903 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; 21904 wr2: 21905 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; 21906 wr3: 21907 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; 21908END_RULE; 21909 21910-- IN AP214 21911RULE restrict_multi_language_for_product_concept_feature_association FOR (product_concept_feature_association ); 21912 WHERE 21913 wr1: 21914 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; 21915 wr2: 21916 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; 21917 wr3: 21918 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; 21919END_RULE; 21920 21921-- IN AP214 21922RULE restrict_multi_language_for_product_concept_relationship FOR (product_concept_relationship ); 21923 WHERE 21924 wr1: 21925 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; 21926 wr2: 21927 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; 21928 wr3: 21929 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; 21930END_RULE; 21931 21932-- IN AP214 21933RULE restrict_multi_language_for_product_definition FOR (product_definition ); 21934 WHERE 21935 wr1: 21936 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; 21937 wr2: 21938 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; 21939 wr3: 21940 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; 21941END_RULE; 21942 21943-- IN AP214 21944RULE restrict_multi_language_for_product_definition_formation FOR (product_definition_formation ); 21945 WHERE 21946 wr1: 21947 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; 21948 wr2: 21949 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; 21950 wr3: 21951 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; 21952END_RULE; 21953 21954-- IN AP214 21955RULE restrict_multi_language_for_product_definition_formation_relationship FOR (product_definition_formation_relationship ); 21956 WHERE 21957 wr1: 21958 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; 21959 wr2: 21960 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; 21961 wr3: 21962 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; 21963END_RULE; 21964 21965-- IN AP214 21966RULE restrict_multi_language_for_product_definition_relationship FOR (product_definition_relationship ); 21967 WHERE 21968 wr1: 21969 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; 21970 wr2: 21971 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; 21972 wr3: 21973 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; 21974END_RULE; 21975 21976-- IN AP214 21977RULE restrict_multi_language_for_product_definition_substitute FOR (product_definition_substitute ); 21978 WHERE 21979 wr1: 21980 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; 21981 wr2: 21982 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; 21983 wr3: 21984 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; 21985END_RULE; 21986 21987-- IN AP214 21988RULE restrict_multi_language_for_product_related_product_category FOR (product_related_product_category ); 21989 WHERE 21990 wr1: 21991 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; 21992 wr2: 21993 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; 21994 wr3: 21995 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; 21996END_RULE; 21997 21998-- IN AP214 21999RULE restrict_multi_language_for_property_definition FOR (property_definition ); 22000 WHERE 22001 wr1: 22002 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; 22003 wr2: 22004 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; 22005 wr3: 22006 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; 22007END_RULE; 22008 22009-- IN AP214 22010RULE restrict_multi_language_for_property_definition_relationship FOR (property_definition_relationship ); 22011 WHERE 22012 wr1: 22013 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; 22014 wr2: 22015 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; 22016 wr3: 22017 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; 22018END_RULE; 22019 22020-- IN AP214 22021RULE restrict_multi_language_for_representation FOR (representation ); 22022 WHERE 22023 wr1: 22024 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; 22025 wr2: 22026 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; 22027 wr3: 22028 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; 22029END_RULE; 22030 22031-- IN AP214 22032RULE restrict_multi_language_for_representation_relationship FOR (representation_relationship ); 22033 WHERE 22034 wr1: 22035 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; 22036 wr2: 22037 SIZEOF(QUERY (ent <* representation_relationship| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 22038 wr3: 22039 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; 22040END_RULE; 22041 22042-- IN AP214 22043RULE restrict_multi_language_for_requirement_for_action_resource FOR (requirement_for_action_resource ); 22044 WHERE 22045 wr1: 22046 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; 22047 wr2: 22048 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; 22049 wr3: 22050 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; 22051END_RULE; 22052 22053-- IN AP214 22054RULE restrict_multi_language_for_resource_property FOR (resource_property ); 22055 WHERE 22056 wr1: 22057 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; 22058 wr2: 22059 SIZEOF(QUERY (ent <* resource_property| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 22060 wr3: 22061 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; 22062END_RULE; 22063 22064-- IN AP214 22065RULE restrict_multi_language_for_resource_requirement_type FOR (resource_requirement_type ); 22066 WHERE 22067 wr1: 22068 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; 22069 wr2: 22070 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; 22071 wr3: 22072 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; 22073END_RULE; 22074 22075-- IN AP214 22076RULE restrict_multi_language_for_security_classification FOR (security_classification ); 22077 WHERE 22078 wr1: 22079 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; 22080 wr2: 22081 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; 22082 wr3: 22083 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; 22084END_RULE; 22085 22086-- IN AP214 22087RULE restrict_multi_language_for_shape_aspect FOR (shape_aspect ); 22088 WHERE 22089 wr1: 22090 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; 22091 wr2: 22092 SIZEOF(QUERY (ent <* shape_aspect| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 22093 wr3: 22094 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; 22095END_RULE; 22096 22097-- IN AP214 22098RULE restrict_multi_language_for_shape_aspect_relationship FOR (shape_aspect_relationship ); 22099 WHERE 22100 wr1: 22101 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; 22102 wr2: 22103 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; 22104 wr3: 22105 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; 22106END_RULE; 22107 22108-- IN AP214 22109RULE restrict_multi_language_for_styled_item FOR (styled_item ); 22110 WHERE 22111 wr1: 22112 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; 22113 wr2: 22114 SIZEOF(QUERY (ent <* styled_item| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'name'))) > 0))) = 0; 22115 wr3: 22116 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; 22117END_RULE; 22118 22119-- IN AP214 22120RULE restrict_multi_language_for_time_interval_role FOR (time_interval_role ); 22121 WHERE 22122 wr1: 22123 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; 22124 wr2: 22125 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; 22126 wr3: 22127 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; 22128END_RULE; 22129 22130-- IN AP214 22131RULE restrict_multi_language_for_topological_representation_item FOR (topological_representation_item ); 22132 WHERE 22133 wr1: 22134 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; 22135 wr2: 22136 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; 22137 wr3: 22138 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; 22139END_RULE; 22140 22141-- IN AP214 22142RULE restrict_multi_language_for_uncertainty_measure_with_unit FOR (uncertainty_measure_with_unit ); 22143 WHERE 22144 wr1: 22145 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; 22146 wr2: 22147 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; 22148 wr3: 22149 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; 22150END_RULE; 22151 22152-- IN AP214 22153RULE restrict_multi_language_for_uncertainty_qualifier FOR (uncertainty_qualifier ); 22154 WHERE 22155 wr1: 22156 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; 22157 wr2: 22158 SIZEOF(QUERY (ent <* uncertainty_qualifier| (SIZEOF(QUERY (ala <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS')| (ala.attribute_name <> 'description'))) > 0))) = 0; 22159 wr3: 22160 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; 22161END_RULE; 22162 22163-- IN AP214 22164RULE restrict_multi_language_for_versioned_action_request FOR (versioned_action_request ); 22165 WHERE 22166 wr1: 22167 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; 22168 wr2: 22169 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; 22170 wr3: 22171 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; 22172END_RULE; 22173 22174-- IN AP214 22175RULE restrict_multi_language_for_versioned_action_request_relationship FOR (versioned_action_request_relationship ); 22176 WHERE 22177 wr1: 22178 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; 22179 wr2: 22180 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; 22181 wr3: 22182 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; 22183END_RULE; 22184 22185-- IN AP214 22186RULE restrict_name_assignment_for_kinematic_joint FOR (kinematic_joint ); 22187 WHERE 22188 wr1: 22189 SIZEOF(QUERY (ent <* kinematic_joint| (SIZEOF(USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1))) = 0; 22190END_RULE; 22191 22192-- IN AP214 22193RULE restrict_name_assignment_for_kinematic_link FOR (kinematic_link ); 22194 WHERE 22195 wr1: 22196 SIZEOF(QUERY (ent <* kinematic_link| (SIZEOF(USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1))) = 0; 22197END_RULE; 22198 22199-- IN AP214 22200RULE restrict_name_assignment_for_kinematic_structure FOR (kinematic_structure ); 22201 WHERE 22202 wr1: 22203 SIZEOF(QUERY (ent <* kinematic_structure| (SIZEOF(USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_NAME_ASSIGNMENT.ITEMS')) > 1))) = 0; 22204END_RULE; 22205 22206-- IN AP214 22207RULE restrict_name_for_known_source FOR (known_source ); 22208 WHERE 22209 wr1: 22210 SIZEOF(QUERY (ks <* known_source| (ks.name <> 'ISO 13584 library'))) = 0; 22211END_RULE; 22212 22213-- DIFF IN AP214 22214RULE restrict_part_occurrence FOR (product_definition ); 22215 LOCAL 22216 part_occurrences : SET OF product_definition := QUERY (pd <* product_definition| pd.frame_of_reference.name = 'part occurrence'); 22217 END_LOCAL; 22218 WHERE 22219 WR1: 22220 SIZEOF(QUERY (pd <* part_occurrences| NOT (pd.name IN [ 'single instance', 'selected instance', 'quantified instance', 'specified instance' ]))) = 0; 22221 WR2: 22222 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; 22223 WR3: 22224 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; 22225 WR4: 22226 SIZEOF(QUERY (pd <* part_occurrences| (pd.name = 'selected instance') AND NOT valid_selected_instance_representation(pd))) = 0; 22227 WR5: 22228 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; 22229 WR6: 22230 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; 22231END_RULE; 22232 22233-- IN AP203e2/AP242 22234RULE restrict_part_occurrence_category FOR (product_definition ); 22235 LOCAL 22236 part_occurrences : SET OF product_definition := QUERY (pd <* product_definition| pd.frame_of_reference.name = 'part occurrence'); 22237 END_LOCAL; 22238 WHERE 22239 WR1: 22240 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; 22241END_RULE; 22242 22243-- IN AP214 22244RULE restrict_process_product_association FOR (process_product_association ); 22245 WHERE 22246 wr1: 22247 SIZEOF(QUERY (ppa <* process_product_association| NOT (ppa.name IN [ 'input', 'output', 'produced output' ]))) = 0; 22248 wr2: 22249 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; 22250 wr3: 22251 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; 22252END_RULE; 22253 22254-- IN AP214 22255RULE restrict_product_categories_for_tool_part_relationship FOR (product_definition_relationship ); 22256 WHERE 22257 wr1: 22258 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; 22259END_RULE; 22260 22261-- IN AP214 22262RULE restrict_product_category_for_product FOR (product ); 22263 WHERE 22264 wr1: 22265 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; 22266 wr2: 22267 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; 22268END_RULE; 22269 22270-- IN AP214 22271RULE restrict_product_definition_context_for_external_properties FOR (general_property_association, product_definition ); 22272 WHERE 22273 wr1: 22274 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; 22275END_RULE; 22276 22277-- IN AP214 22278RULE restrict_product_definition_context_for_product FOR (product_definition, product_related_product_category ); 22279 WHERE 22280 wr1: 22281 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; 22282 wr2: 22283 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; 22284 wr3: 22285 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; 22286 wr4: 22287 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; 22288 wr5: 22289 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; 22290 wr6: 22291 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; 22292 wr7: 22293 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; 22294END_RULE; 22295 22296-- IN AP214 22297RULE restrict_product_definition_for_mating_tree FOR (product_definition ); 22298 WHERE 22299 wr1: 22300 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; 22301 wr2: 22302 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; 22303 wr3: 22304 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; 22305END_RULE; 22306 22307-- IN AP214 22308RULE restrict_product_definition_substitute FOR (product_definition_substitute ); 22309 WHERE 22310 wr1: 22311 SIZEOF(QUERY (pds <* product_definition_substitute| (SIZEOF(USEDIN(pds, 'STEP_MERGED_CAD_SCHEMA.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS')) = 0))) = 0; 22312 wr2: 22313 SIZEOF(QUERY (pds <* product_definition_substitute| (pds.substitute_definition.frame_of_reference.name <> 'part occurrence'))) = 0; 22314 wr3: 22315 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; 22316END_RULE; 22317 22318-- IN AP203e2/AP242 22319RULE restrict_product_definitions_for_base_element FOR (product_definition_relationship ); 22320 WHERE 22321 WR1: 22322 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; 22323END_RULE; 22324 22325-- IN AP203e2/AP242 22326RULE restrict_product_definitions_for_collection FOR (product_definition_relationship ); 22327 WHERE 22328 WR1: 22329 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; 22330END_RULE; 22331 22332-- IN AP203e2/AP242 22333RULE restrict_product_definitions_for_definition_usage FOR (product_definition_relationship ); 22334 WHERE 22335 WR1: 22336 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; 22337END_RULE; 22338 22339-- IN AP203e2/AP242 22340RULE restrict_product_definitions_for_design_constraint_association FOR (product_definition_relationship ); 22341 WHERE 22342 WR1: 22343 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; 22344END_RULE; 22345 22346-- IN AP203e2/AP242 22347RULE restrict_product_definitions_for_part_definition_relationship FOR (product_definition_relationship ); 22348 WHERE 22349 WR1: 22350 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; 22351END_RULE; 22352 22353-- IN AP214 22354RULE restrict_product_definitions_for_product_definition_relationship FOR (assembly_component_usage, product_definition_relationship ); 22355 WHERE 22356 wr1: 22357 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; 22358 wr2: 22359 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; 22360 wr3: 22361 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; 22362 wr4: 22363 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; 22364 wr5: 22365 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; 22366 wr6: 22367 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; 22368 wr7: 22369 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; 22370 wr8: 22371 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; 22372 wr9: 22373 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; 22374 wr10: 22375 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; 22376END_RULE; 22377 22378-- IN AP214 22379RULE restrict_properties_of_document_file FOR (document_file ); 22380 WHERE 22381 wr1: 22382 SIZEOF(QUERY (df <* document_file| (SIZEOF(QUERY (pd <* USEDIN(df, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'document property'))) > 1))) = 0; 22383 wr2: 22384 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; 22385END_RULE; 22386 22387-- IN AP214 22388RULE restrict_properties_of_document_representation FOR (product_definition ); 22389 WHERE 22390 wr1: 22391 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; 22392END_RULE; 22393 22394-- IN AP214 22395RULE restrict_representation_for_document_content_property FOR (representation, representation_item ); 22396 WHERE 22397 wr1: 22398 SIZEOF(QUERY (r <* representation| (r.name = 'document content') AND ((SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0; 22399 wr2: 22400 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; 22401 wr3: 22402 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; 22403 wr4: 22404 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; 22405 wr5: 22406 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; 22407END_RULE; 22408 22409-- IN AP214 22410RULE restrict_representation_for_document_creation_property FOR (representation, representation_item ); 22411 WHERE 22412 wr1: 22413 SIZEOF(QUERY (r <* representation| (r.name = 'document creation') AND ((SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0; 22414 wr2: 22415 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; 22416 wr3: 22417 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; 22418 wr4: 22419 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; 22420 wr5: 22421 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; 22422END_RULE; 22423 22424-- IN AP214 22425RULE restrict_representation_for_document_format_property FOR (representation, representation_item ); 22426 WHERE 22427 wr1: 22428 SIZEOF(QUERY (r <* representation| (r.name = 'document format') AND ((SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 3)))) = 0; 22429 wr2: 22430 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; 22431 wr3: 22432 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; 22433 wr4: 22434 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; 22435 wr5: 22436 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; 22437END_RULE; 22438 22439-- IN AP214 22440RULE restrict_representation_for_document_properties FOR (property_definition, representation, representation_context ); 22441 WHERE 22442 wr1: 22443 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; 22444 wr2: 22445 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; 22446 wr3: 22447 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; 22448 wr4: 22449 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; 22450END_RULE; 22451 22452-- IN AP214 22453RULE restrict_representation_for_document_size_property FOR (representation, representation_item ); 22454 WHERE 22455 wr1: 22456 SIZEOF(QUERY (r <* representation| (r.name = 'document size') AND ((SIZEOF(r.items) < 1) OR (SIZEOF(r.items) > 2)))) = 0; 22457 wr2: 22458 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; 22459 wr3: 22460 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; 22461 wr4: 22462 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; 22463END_RULE; 22464 22465RULE restrict_representation_for_surface_condition FOR (property_definition_representation ); 22466 WHERE 22467 WR1: 22468 SIZEOF(QUERY (pdr <* property_definition_representation| NOT surface_condition_correlation(pdr.definition, pdr.used_representation))) = 0; 22469END_RULE; 22470 22471-- IN AP214 22472RULE restrict_representation_item_for_hybrid_geometric_model_3d FOR (shape_representation ); 22473 WHERE 22474 wr1: 22475 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; 22476END_RULE; 22477 22478-- DIFF IN AP214 22479RULE restrict_treatment_result FOR (representation ); 22480 LOCAL 22481 treatment_results : SET OF representation := []; 22482 END_LOCAL; 22483 treatment_results := QUERY (r <* representation| r.name = 'treatment result'); 22484 WHERE 22485 WR1: 22486 (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); 22487 WR2: 22488 SIZEOF(QUERY (r <* treatment_results| (SIZEOF(QUERY (i <* r.items| (i.name = 'result'))) = 0))) = 0; 22489 WR3: 22490 SIZEOF(QUERY (r <* treatment_results| (SIZEOF(QUERY (i <* r.items| (i.name = 'purpose'))) > 1))) = 0; 22491END_RULE; 22492 22493-- IN AP214 22494RULE restrict_version_assignment_for_action FOR (action ); 22495 WHERE 22496 wr1: 22497 SIZEOF(QUERY (ent <* action| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22498END_RULE; 22499 22500-- IN AP214 22501RULE restrict_version_assignment_for_action_directive FOR (action_directive ); 22502 WHERE 22503 wr1: 22504 SIZEOF(QUERY (ent <* action_directive| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22505END_RULE; 22506 22507-- IN AP214 22508RULE restrict_version_assignment_for_action_method FOR (action_method ); 22509 WHERE 22510 wr1: 22511 SIZEOF(QUERY (ent <* action_method| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22512END_RULE; 22513 22514-- IN AP214 22515RULE restrict_version_assignment_for_applied_identification_assignment FOR (applied_identification_assignment ); 22516 WHERE 22517 wr1: 22518 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; 22519END_RULE; 22520 22521-- IN AP214 22522RULE restrict_version_assignment_for_class FOR (class ); 22523 WHERE 22524 wr1: 22525 SIZEOF(QUERY (ent <* class| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22526END_RULE; 22527 22528-- IN AP214 22529RULE restrict_version_assignment_for_configuration_item FOR (configuration_item ); 22530 WHERE 22531 wr1: 22532 SIZEOF(QUERY (ent <* configuration_item| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22533END_RULE; 22534 22535-- IN AP214 22536RULE restrict_version_assignment_for_document_file FOR (document_file ); 22537 WHERE 22538 wr1: 22539 SIZEOF(QUERY (ent <* document_file| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22540END_RULE; 22541 22542-- IN AP214 22543RULE restrict_version_assignment_for_draughting_model FOR (draughting_model ); 22544 WHERE 22545 wr1: 22546 SIZEOF(QUERY (ent <* draughting_model| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22547END_RULE; 22548 22549-- IN AP214 22550RULE restrict_version_assignment_for_effectivity FOR (effectivity ); 22551 WHERE 22552 wr1: 22553 SIZEOF(QUERY (ent <* effectivity| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22554END_RULE; 22555 22556-- IN AP214 22557RULE restrict_version_assignment_for_general_property FOR (general_property ); 22558 WHERE 22559 wr1: 22560 SIZEOF(QUERY (ent <* general_property| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22561END_RULE; 22562 22563-- IN AP214 22564RULE restrict_version_assignment_for_mechanical_design_geometric_presentation_representation FOR (mechanical_design_geometric_presentation_representation ); 22565 WHERE 22566 wr1: 22567 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; 22568END_RULE; 22569 22570-- IN AP214 22571RULE restrict_version_assignment_for_presentation_area FOR (presentation_area ); 22572 WHERE 22573 wr1: 22574 SIZEOF(QUERY (ent <* presentation_area| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22575END_RULE; 22576 22577-- IN AP214 22578RULE restrict_version_assignment_for_product_concept FOR (product_concept ); 22579 WHERE 22580 wr1: 22581 SIZEOF(QUERY (ent <* product_concept| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22582END_RULE; 22583 22584-- IN AP214 22585RULE restrict_version_assignment_for_product_concept_feature FOR (product_concept_feature ); 22586 WHERE 22587 wr1: 22588 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; 22589END_RULE; 22590 22591-- IN AP214 22592RULE restrict_version_assignment_for_shape_representation FOR (shape_representation ); 22593 WHERE 22594 wr1: 22595 SIZEOF(QUERY (ent <* shape_representation| (SIZEOF(QUERY (ia <* USEDIN(ent, 'STEP_MERGED_CAD_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (ia.role.name = 'version'))) > 1))) = 0; 22596END_RULE; 22597 22598-- IN AP214 22599RULE restrict_viewing_plane_usage FOR (geometric_tolerance ); 22600 WHERE 22601 wr1: 22602 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; 22603 wr2: 22604 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; 22605END_RULE; 22606 22607-- IN AP214 22608RULE restrict_zone_boundary FOR (tolerance_zone_definition ); 22609 WHERE 22610 wr1: 22611 SIZEOF(QUERY (tzd <* tolerance_zone_definition| (SIZEOF(tzd.boundaries) > 2))) = 0; 22612END_RULE; 22613 22614-- IN AP214 22615RULE retention_requires_retention_assignment FOR (retention ); 22616 WHERE 22617 wr1: 22618 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; 22619END_RULE; 22620 22621-- IN AP214 22622RULE security_classification_requires_security_classification_assignment FOR (security_classification ); 22623 WHERE 22624 wr1: 22625 SIZEOF(QUERY (sc <* security_classification| (SIZEOF(USEDIN(sc, 'STEP_MERGED_CAD_SCHEMA.SECURITY_CLASSIFICATION_ASSIGNMENT.ASSIGNED_SECURITY_CLASSIFICATION')) = 0))) = 0; 22626END_RULE; 22627 22628-- DIFF IN AP214 22629RULE selected_instance_usage_requires_representation FOR (assembly_component_usage ); 22630 LOCAL 22631 selected_instance_usages : SET OF assembly_component_usage := QUERY (acr <* assembly_component_usage| acr.name = 'selected instance usage'); 22632 END_LOCAL; 22633 WHERE 22634 WR1: 22635 SIZEOF(QUERY (acr <* selected_instance_usages| NOT valid_selected_instance_representation(acr))) = 0; 22636END_RULE; 22637 22638-- IN AP214 22639RULE sheets_belong_to_one_drawing FOR (drawing_sheet_revision ); 22640 WHERE 22641 wr1: 22642 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; 22643END_RULE; 22644 22645-- IN AP203e2/AP242 22646RULE solution_definition_requires_solution_category FOR (product_definition ); 22647 LOCAL 22648 solution_definitions : SET OF product_definition := []; 22649 END_LOCAL; 22650 solution_definitions := QUERY (pd <* product_definition| pd.frame_of_reference.name = 'alternative definition'); 22651 WHERE 22652 WR1: 22653 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; 22654END_RULE; 22655 22656-- IN AP203e2 22657RULE stock_material_reference FOR (percentage_ply_definition, make_from_usage_option, product_related_product_category ); 22658 LOCAL 22659 i : INTEGER; 22660 j : INTEGER; 22661 k : INTEGER; 22662 dkuhr : LOGICAL; 22663 nmfuo : INTEGER; 22664 nprpc : INTEGER; 22665 rp : product; 22666 END_LOCAL; 22667 dkuhr := TRUE; 22668 REPEAT i := LOINDEX(percentage_ply_definition) TO HIINDEX(percentage_ply_definition); 22669 nmfuo := 0; 22670 REPEAT j := LOINDEX(make_from_usage_option) TO HIINDEX(make_from_usage_option); 22671 IF percentage_ply_definition[i] = make_from_usage_option[j].relating_product_definition THEN 22672 rp := make_from_usage_option[j].related_product_definition.formation.of_product; 22673 nprpc := 0; 22674 REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); 22675 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 22676 nprpc := nprpc + 1; 22677 END_IF; 22678 END_REPEAT; 22679 IF nprpc = 1 THEN 22680 nmfuo := nmfuo + 1; 22681 ELSE 22682 dkuhr := FALSE; 22683 ESCAPE; 22684 END_IF; 22685 END_IF; 22686 END_REPEAT; 22687 IF dkuhr = FALSE THEN 22688 ESCAPE; 22689 END_IF; 22690 IF nmfuo = 0 THEN 22691 dkuhr := FALSE; 22692 ESCAPE; 22693 END_IF; 22694 END_REPEAT; 22695 WHERE 22696 WR1: 22697 dkuhr; 22698END_RULE; 22699 22700RULE styled_curve FOR (styled_item ); 22701 WHERE 22702 WR1: 22703 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; 22704END_RULE; 22705 22706-- IN AP214 22707RULE subtype_exclusiveness_action FOR (action ); 22708 WHERE 22709 wr1: 22710 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; 22711END_RULE; 22712 22713-- IN AP214 22714RULE subtype_exclusiveness_characterized_object FOR (characterized_object ); 22715 WHERE 22716 wr1: 22717 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; 22718END_RULE; 22719 22720-- IN AP214 22721RULE subtype_exclusiveness_classification_assignment FOR (classification_assignment ); 22722 WHERE 22723 wr1: 22724 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; 22725END_RULE; 22726 22727-- IN AP214 22728RULE subtype_exclusiveness_colour FOR (colour ); 22729 WHERE 22730 wr1: 22731 SIZEOF(QUERY (c <* colour| NOT type_check_function(c, [ ('STEP_MERGED_CAD_SCHEMA.' + 'COLOUR_SPECIFICATION'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRE_DEFINED_COLOUR') ], 3))) = 0; 22732END_RULE; 22733 22734-- IN AP214 22735RULE subtype_exclusiveness_compound_representation_item FOR (compound_representation_item ); 22736 WHERE 22737 wr1: 22738 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; 22739END_RULE; 22740 22741-- IN AP214 22742RULE subtype_exclusiveness_document_reference FOR (document_reference ); 22743 WHERE 22744 wr1: 22745 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; 22746END_RULE; 22747 22748-- IN AP214 22749RULE subtype_exclusiveness_effectivity FOR (effectivity ); 22750 WHERE 22751 wr1: 22752 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; 22753END_RULE; 22754 22755-- IN AP214 22756RULE subtype_exclusiveness_effectivity_assignment FOR (effectivity_assignment ); 22757 WHERE 22758 wr1: 22759 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; 22760END_RULE; 22761 22762-- IN AP214 22763RULE subtype_exclusiveness_effectivity_context_assignment FOR (effectivity_context_assignment ); 22764 WHERE 22765 wr1: 22766 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; 22767END_RULE; 22768 22769-- IN AP214 22770RULE subtype_exclusiveness_externally_defined_item FOR (externally_defined_item ); 22771 WHERE 22772 wr1: 22773 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; 22774END_RULE; 22775 22776-- IN AP214 22777RULE subtype_exclusiveness_feature_component_relationship FOR (feature_component_relationship ); 22778 WHERE 22779 wr1: 22780 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; 22781END_RULE; 22782 22783-- IN AP214 22784RULE subtype_exclusiveness_feature_definition FOR (feature_definition ); 22785 WHERE 22786 wr1: 22787 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; 22788END_RULE; 22789 22790-- IN AP214 22791RULE subtype_exclusiveness_founded_item FOR (founded_item ); 22792 WHERE 22793 wr1: 22794 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; 22795END_RULE; 22796 22797RULE subtype_exclusiveness_geometric_tolerance FOR (geometric_tolerance ); 22798 WHERE 22799 WR1: 22800 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; 22801END_RULE; 22802 22803-- IN AP214 22804RULE subtype_exclusiveness_group FOR (group ); 22805 WHERE 22806 wr1: 22807 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; 22808END_RULE; 22809 22810-- IN AP214 22811RULE subtype_exclusiveness_group_assignment FOR (group_assignment ); 22812 WHERE 22813 wr1: 22814 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; 22815END_RULE; 22816 22817-- IN AP214 22818RULE subtype_exclusiveness_identification_assignment FOR (identification_assignment ); 22819 WHERE 22820 wr1: 22821 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; 22822END_RULE; 22823 22824-- IN AP214 22825RULE subtype_exclusiveness_mapped_item FOR (mapped_item ); 22826 WHERE 22827 wr1: 22828 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; 22829END_RULE; 22830 22831-- IN AP214 22832RULE subtype_exclusiveness_pre_defined_item FOR (pre_defined_item ); 22833 WHERE 22834 wr1: 22835 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; 22836END_RULE; 22837 22838-- IN AP214 22839RULE subtype_exclusiveness_pre_defined_symbol FOR (pre_defined_symbol ); 22840 WHERE 22841 wr1: 22842 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; 22843END_RULE; 22844 22845-- IN AP214 22846RULE subtype_exclusiveness_presentation_area FOR (presentation_area ); 22847 WHERE 22848 wr1: 22849 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; 22850END_RULE; 22851 22852-- IN AP214 22853RULE subtype_exclusiveness_presentation_representation FOR (presentation_representation ); 22854 WHERE 22855 wr1: 22856 SIZEOF(QUERY (pr <* presentation_representation| NOT type_check_function(pr, [ ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_AREA'), ('STEP_MERGED_CAD_SCHEMA.' + 'PRESENTATION_VIEW') ], 3))) = 0; 22857END_RULE; 22858 22859-- IN AP214 22860RULE subtype_exclusiveness_property_definition FOR (property_definition ); 22861 WHERE 22862 wr1: 22863 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; 22864END_RULE; 22865 22866-- IN AP214 22867RULE subtype_exclusiveness_property_definition_representation FOR (property_definition_representation ); 22868 WHERE 22869 wr1: 22870 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; 22871END_RULE; 22872 22873-- IN AP214 22874RULE subtype_exclusiveness_replicate_feature FOR (replicate_feature ); 22875 WHERE 22876 wr1: 22877 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; 22878END_RULE; 22879 22880-- IN AP214 22881RULE subtype_exclusiveness_representation FOR (representation ); 22882 WHERE 22883 wr1: 22884 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; 22885END_RULE; 22886 22887RULE subtype_exclusiveness_representation_item FOR (representation_item ); 22888 WHERE 22889 WR1: 22890 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; 22891END_RULE; 22892 22893-- IN AP214 22894RULE subtype_exclusiveness_representation_map FOR (representation_map ); 22895 WHERE 22896 wr1: 22897 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; 22898END_RULE; 22899 22900-- IN AP214 22901RULE subtype_exclusiveness_representation_relationship FOR (representation_relationship ); 22902 WHERE 22903 wr1: 22904 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; 22905END_RULE; 22906 22907-- IN AP214 22908RULE subtype_exclusiveness_representation_relationship_with_transformation FOR (representation_relationship_with_transformation ); 22909 WHERE 22910 wr1: 22911 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; 22912END_RULE; 22913 22914-- IN AP214 22915RULE subtype_exclusiveness_shape_aspect FOR (shape_aspect ); 22916 WHERE 22917 wr1: 22918 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; 22919END_RULE; 22920 22921-- IN AP214 22922RULE subtype_exclusiveness_shape_aspect_relationship FOR (shape_aspect_relationship ); 22923 WHERE 22924 wr1: 22925 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; 22926END_RULE; 22927 22928-- IN AP214 22929RULE subtype_exclusiveness_shape_representation_feature_geometry FOR (shape_representation ); 22930 WHERE 22931 wr1: 22932 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; 22933END_RULE; 22934 22935-- IN AP214 22936RULE subtype_exclusiveness_shape_representation_geometry FOR (shape_representation ); 22937 WHERE 22938 wr1: 22939 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; 22940END_RULE; 22941 22942-- IN AP214 22943RULE subtype_exclusiveness_symbol_representation FOR (symbol_representation ); 22944 WHERE 22945 wr1: 22946 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; 22947END_RULE; 22948 22949-- IN AP214 22950RULE subtype_exclusiveness_transition_feature FOR (transition_feature ); 22951 WHERE 22952 wr1: 22953 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; 22954END_RULE; 22955 22956-- IN AP214 22957RULE subtype_mandatory_address FOR (address ); 22958 WHERE 22959 wr1: 22960 SIZEOF(QUERY (a <* address| NOT type_check_function(a, [ ('STEP_MERGED_CAD_SCHEMA.' + 'ORGANIZATIONAL_ADDRESS'), ('STEP_MERGED_CAD_SCHEMA.' + 'PERSONAL_ADDRESS') ], 0))) = 0; 22961END_RULE; 22962 22963-- IN AP214 22964RULE subtype_mandatory_annotation_occurrence FOR (annotation_occurrence ); 22965 WHERE 22966 wr1: 22967 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; 22968END_RULE; 22969 22970-- IN AP214 22971RULE subtype_mandatory_camera_image FOR (camera_image ); 22972 WHERE 22973 wr1: 22974 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; 22975END_RULE; 22976 22977-- IN AP214 22978RULE subtype_mandatory_camera_model FOR (camera_model ); 22979 WHERE 22980 wr1: 22981 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; 22982END_RULE; 22983 22984-- IN AP214 22985RULE subtype_mandatory_colour_specification FOR (colour_specification ); 22986 WHERE 22987 wr1: 22988 SIZEOF(QUERY (cs <* colour_specification| NOT type_check_function(cs, [ ('STEP_MERGED_CAD_SCHEMA.' + 'COLOUR_RGB') ], 0))) = 0; 22989END_RULE; 22990 22991-- IN AP214 22992RULE subtype_mandatory_configurable_item FOR (configurable_item ); 22993 WHERE 22994 wr1: 22995 SIZEOF(QUERY (ci <* configurable_item| NOT type_check_function(ci, [ ('STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_SPECIFICATION') ], 0))) = 0; 22996END_RULE; 22997 22998-- IN AP214 22999RULE subtype_mandatory_document_product_association FOR (document_product_association ); 23000 WHERE 23001 wr1: 23002 SIZEOF(QUERY (dpa <* document_product_association| NOT type_check_function(dpa, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DOCUMENT_PRODUCT_EQUIVALENCE') ], 0))) = 0; 23003END_RULE; 23004 23005-- IN AP214 23006RULE subtype_mandatory_draughting_callout FOR (draughting_callout ); 23007 WHERE 23008 wr1: 23009 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; 23010END_RULE; 23011 23012-- IN AP214 23013RULE subtype_mandatory_externally_defined_item FOR (externally_defined_item ); 23014 WHERE 23015 wr1: 23016 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; 23017END_RULE; 23018 23019-- IN AP214 23020RULE subtype_mandatory_founded_item FOR (founded_item ); 23021 WHERE 23022 wr1: 23023 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; 23024END_RULE; 23025 23026-- IN AP203e2/AP214 23027RULE subtype_mandatory_geometric_tolerance FOR (geometric_tolerance ); 23028 WHERE 23029 wr1: 23030 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; 23031END_RULE; 23032 23033-- IN AP214 23034RULE subtype_mandatory_pre_defined_colour FOR (pre_defined_colour ); 23035 WHERE 23036 wr1: 23037 SIZEOF(QUERY (pdc <* pre_defined_colour| NOT type_check_function(pdc, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_COLOUR') ], 0))) = 0; 23038END_RULE; 23039 23040-- IN AP214 23041RULE subtype_mandatory_pre_defined_curve_font FOR (pre_defined_curve_font ); 23042 WHERE 23043 wr1: 23044 SIZEOF(QUERY (pdcf <* pre_defined_curve_font| NOT type_check_function(pdcf, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT') ], 0))) = 0; 23045END_RULE; 23046 23047-- IN AP214 23048RULE subtype_mandatory_pre_defined_item FOR (pre_defined_item ); 23049 WHERE 23050 wr1: 23051 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; 23052END_RULE; 23053 23054-- IN AP214 23055RULE subtype_mandatory_pre_defined_symbol FOR (pre_defined_symbol ); 23056 WHERE 23057 wr1: 23058 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; 23059END_RULE; 23060 23061-- IN AP214 23062RULE subtype_mandatory_pre_defined_text_font FOR (pre_defined_text_font ); 23063 WHERE 23064 wr1: 23065 SIZEOF(QUERY (pdtf <* pre_defined_text_font| NOT type_check_function(pdtf, [ ('STEP_MERGED_CAD_SCHEMA.' + 'DRAUGHTING_PRE_DEFINED_TEXT_FONT') ], 0))) = 0; 23066END_RULE; 23067 23068-- IN AP242 23069RULE subtype_mandatory_shape_representation FOR (shape_representation ); 23070 WHERE 23071 WR1: 23072 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; 23073END_RULE; 23074 23075-- IN AP214 23076RULE terminator_symbol_constraint FOR (terminator_symbol ); 23077 WHERE 23078 wr1: 23079 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; 23080END_RULE; 23081 23082RULE text_font_usage FOR (externally_defined_text_font, pre_defined_text_font ); 23083 WHERE 23084 WR1: 23085 SIZEOF(QUERY (pdtf <* pre_defined_text_font| (SIZEOF(USEDIN(pdtf, 'STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL.FONT')) = 0))) = 0; 23086 WR2: 23087 SIZEOF(QUERY (edtf <* externally_defined_text_font| (SIZEOF(USEDIN(edtf, 'STEP_MERGED_CAD_SCHEMA.TEXT_LITERAL.FONT')) = 0))) = 0; 23088END_RULE; 23089 23090-- IN AP203e2 23091RULE thickness_laminate_table_component_select FOR (thickness_laminate_definition, next_assembly_usage_occurrence, product_related_product_category ); 23092 LOCAL 23093 i : INTEGER; 23094 j : INTEGER; 23095 k : INTEGER; 23096 dkuhr : LOGICAL; 23097 nnauo : INTEGER; 23098 nprpc : INTEGER; 23099 rp : product; 23100 END_LOCAL; 23101 dkuhr := TRUE; 23102 REPEAT i := LOINDEX(thickness_laminate_definition) TO HIINDEX(thickness_laminate_definition); 23103 nnauo := 0; 23104 REPEAT j := LOINDEX(next_assembly_usage_occurrence) TO HIINDEX(next_assembly_usage_occurrence); 23105 IF thickness_laminate_definition[i] = next_assembly_usage_occurrence[j].relating_product_definition THEN 23106 rp := next_assembly_usage_occurrence[j].related_product_definition.formation.of_product; 23107 nprpc := 0; 23108 REPEAT k := LOINDEX(product_related_product_category) TO HIINDEX(product_related_product_category); 23109 IF (rp IN product_related_product_category[k].products) AND (product_related_product_category[k].name IN [ 'ply', 'filament laminate', 'processed core' ]) THEN 23110 nprpc := nprpc + 1; 23111 END_IF; 23112 END_REPEAT; 23113 IF nprpc = 1 THEN 23114 nnauo := nnauo + 1; 23115 ELSE 23116 dkuhr := FALSE; 23117 ESCAPE; 23118 END_IF; 23119 END_IF; 23120 END_REPEAT; 23121 IF dkuhr = FALSE THEN 23122 ESCAPE; 23123 END_IF; 23124 IF nnauo <> 1 THEN 23125 dkuhr := FALSE; 23126 ESCAPE; 23127 END_IF; 23128 END_REPEAT; 23129 WHERE 23130 WR1: 23131 dkuhr; 23132END_RULE; 23133 23134-- IN AP242 23135RULE tolerance_zone_form_name_constraint FOR (tolerance_zone_form ); 23136 LOCAL 23137 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' ]; 23138 pass : BOOLEAN := TRUE; 23139 END_LOCAL; 23140 REPEAT i := 1 TO SIZEOF(tolerance_zone_form) WHILE pass; 23141 pass := tolerance_zone_form[i].name IN names; 23142 END_REPEAT; 23143 WHERE 23144 WR1: 23145 pass; 23146END_RULE; 23147 23148-- IN AP242 23149RULE transition_feature_life_cycle FOR (transition_feature ); 23150 WHERE 23151 WR1: 23152 SIZEOF(QUERY (tf <* transition_feature| NOT (tf.of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning'))) = 0; 23153END_RULE; 23154 23155-- IN AP242 23156RULE transition_feature_on_part_boundary FOR (transition_feature ); 23157 WHERE 23158 WR1: 23159 SIZEOF(QUERY (tf <* transition_feature| NOT tf.product_definitional)) = 0; 23160END_RULE; 23161 23162-- IN AP242 23163RULE unique_datum_system FOR (datum_system ); 23164 LOCAL 23165 pass : BOOLEAN := TRUE; 23166 END_LOCAL; 23167 REPEAT i := 1 TO SIZEOF(datum_system); 23168 REPEAT j := 1 TO SIZEOF(datum_system); 23169 IF i <> j THEN 23170 IF datum_system[i]\datum_system.constituents = datum_system[j]\datum_system.constituents THEN 23171 pass := FALSE; 23172 END_IF; 23173 END_IF; 23174 END_REPEAT; 23175 END_REPEAT; 23176 WHERE 23177 WR1: 23178 pass; 23179END_RULE; 23180 23181-- IN AP242 23182RULE unique_gdt_element_id_constraint FOR (product_definition_shape, dimensional_location, dimensional_size, shape_aspect, shape_aspect_relationship ); 23183 LOCAL 23184 bss : BAG OF STRING := []; 23185 ds : SET OF dimensional_size := QUERY (ds <* dimensional_size| EXISTS(ds\dimensional_size.id)); 23186 sa : SET OF shape_aspect := QUERY (sa <* shape_aspect| EXISTS(sa\shape_aspect.id)); 23187 sar : SET OF shape_aspect_relationship := QUERY (sar <* shape_aspect_relationship| EXISTS(sar\shape_aspect_relationship.id)); 23188 ssa : SET OF shape_aspect := []; 23189 pass : BOOLEAN := TRUE; 23190 END_LOCAL; 23191 REPEAT ii := 1 TO SIZEOF(product_definition_shape) WHILE pass; 23192 bss := []; 23193 ssa := bag_to_set(USEDIN(product_definition_shape[ii], 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_ASPECT.' + 'OF_SHAPE')); 23194 REPEAT i := 1 TO SIZEOF(ds); 23195 IF ds[i]\dimensional_size.applies_to IN ssa THEN 23196 bss := bss + ds[i]\dimensional_size.id; 23197 END_IF; 23198 END_REPEAT; 23199 REPEAT i := 1 TO SIZEOF(sa); 23200 IF sa[i] IN ssa THEN 23201 bss := bss + sa[i]\shape_aspect.id; 23202 END_IF; 23203 END_REPEAT; 23204 REPEAT i := 1 TO SIZEOF(sar); 23205 IF sar[i]\shape_aspect_relationship.relating_shape_aspect IN ssa THEN 23206 bss := bss + sar[i]\shape_aspect_relationship.id; 23207 END_IF; 23208 END_REPEAT; 23209 IF SIZEOF(bag_to_set(bss)) <> SIZEOF(bss) THEN 23210 pass := FALSE; 23211 END_IF; 23212 END_REPEAT; 23213 WHERE 23214 WR1: 23215 pass; 23216END_RULE; 23217 23218-- IN AP242 23219RULE valid_product_and_manufacturing_information_view_contexts FOR (product_definition_context ); 23220 LOCAL 23221 design_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.life_cycle_stage = 'design'); 23222 gdt_representation_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'geometrical dimensioning and tolerancing representation'); 23223 machining_feature_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'machining feature'); 23224 material_specification_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'material specification'); 23225 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'); 23226 model_based_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'model based product geometry'); 23227 process_state_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'process state'); 23228 surface_finish_view_contexts : SET OF product_definition_context := QUERY (pdc <* product_definition_context| pdc.frame_of_reference.application = 'surface finish'); 23229 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; 23230 need_initial_model_based_view_contexts : SET OF product_definition_context := gdt_representation_view_contexts + model_based_3d_annotation_presentation_view_contexts; 23231 END_LOCAL; 23232 WHERE 23233 WR1: 23234 SIZEOF(gdt_representation_view_contexts * design_view_contexts) = SIZEOF(gdt_representation_view_contexts); 23235 WR2: 23236 SIZEOF(machining_feature_view_contexts * design_view_contexts) = SIZEOF(machining_feature_view_contexts); 23237 WR3: 23238 SIZEOF(material_specification_view_contexts * design_view_contexts) = SIZEOF(material_specification_view_contexts); 23239 WR4: 23240 SIZEOF(model_based_3d_annotation_presentation_view_contexts * design_view_contexts) = SIZEOF(model_based_3d_annotation_presentation_view_contexts); 23241 WR5: 23242 SIZEOF(model_based_view_contexts * design_view_contexts) = SIZEOF(model_based_view_contexts); 23243 WR6: 23244 SIZEOF(process_state_view_contexts * design_view_contexts) = SIZEOF(process_state_view_contexts); 23245 WR7: 23246 SIZEOF(surface_finish_view_contexts * design_view_contexts) = SIZEOF(surface_finish_view_contexts); 23247 WR8: 23248 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); 23249 WR9: 23250 SIZEOF(QUERY (avc <* additional_view_contexts| (SIZEOF(USEDIN(avc, 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION.FRAME_OF_REFERENCE')) = 0))) = SIZEOF(additional_view_contexts); 23251 WR10: 23252 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; 23253 WR11: 23254 SIZEOF(QUERY (gdt_pdc <* gdt_representation_view_contexts| (SIZEOF([ 'ISO 1101', 'ASME Y14.5' ] * get_associated_mandatory_document_ids(gdt_pdc)) = 0))) = 0; 23255 WR12: 23256 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; 23257END_RULE; 23258 23259-- DIFF IN AP203e2 23260-- IN AP203e2/AP242 23261RULE 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 ); 23262 LOCAL 23263 number_of_input_instances : INTEGER; 23264 previous_in_chain : LIST OF GENERIC := []; 23265 set_of_input_types : SET OF STRING := []; 23266 all_instances : SET OF GENERIC := []; 23267 END_LOCAL; 23268 all_instances := all_instances + abstracted_expression_function; 23269 all_instances := all_instances + action_method_role; 23270 all_instances := all_instances + action_resource_type; 23271 all_instances := all_instances + application_defined_function; 23272 all_instances := all_instances + atom_based_literal; 23273 all_instances := all_instances + attribute_value_role; 23274 all_instances := all_instances + b_spline_basis; 23275 all_instances := all_instances + b_spline_function; 23276 all_instances := all_instances + basic_sparse_matrix; 23277 all_instances := all_instances + binary_literal; 23278 all_instances := all_instances + camera_model_d2; 23279 all_instances := all_instances + cartesian_complex_number_region; 23280 all_instances := all_instances + cartesian_transformation_operator; 23281 all_instances := all_instances + complex_number_literal; 23282 all_instances := all_instances + concept_feature_relationship; 23283 all_instances := all_instances + concept_feature_relationship_with_condition; 23284 all_instances := all_instances + constant_function; 23285 all_instances := all_instances + definite_integral_expression; 23286 all_instances := all_instances + definite_integral_function; 23287 all_instances := all_instances + document_usage_constraint; 23288 all_instances := all_instances + edge_blended_solid; 23289 all_instances := all_instances + effectivity_context_role; 23290 all_instances := all_instances + elementary_function; 23291 all_instances := all_instances + event_occurrence_role; 23292 all_instances := all_instances + explicit_procedural_representation_item_relationship; 23293 all_instances := all_instances + explicit_table_function; 23294 all_instances := all_instances + expression_denoted_function; 23295 all_instances := all_instances + extended_tuple_space; 23296 all_instances := all_instances + externally_listed_data; 23297 all_instances := all_instances + finite_function; 23298 all_instances := all_instances + founded_item; 23299 all_instances := all_instances + function_application; 23300 all_instances := all_instances + function_space; 23301 all_instances := all_instances + general_linear_function; 23302 all_instances := all_instances + homogeneous_linear_function; 23303 all_instances := all_instances + imported_curve_function; 23304 all_instances := all_instances + imported_point_function; 23305 all_instances := all_instances + imported_surface_function; 23306 all_instances := all_instances + imported_volume_function; 23307 all_instances := all_instances + indirectly_selected_elements; 23308 all_instances := all_instances + integer_tuple_literal; 23309 all_instances := all_instances + linearized_table_function; 23310 all_instances := all_instances + listed_data; 23311 all_instances := all_instances + maths_enum_literal; 23312 all_instances := all_instances + maths_function; 23313 all_instances := all_instances + maths_tuple_literal; 23314 all_instances := all_instances + modified_solid_with_placed_configuration; 23315 all_instances := all_instances + one_direction_repeat_factor; 23316 all_instances := all_instances + oriented_open_shell; 23317 all_instances := all_instances + oriented_path; 23318 all_instances := all_instances + parallel_composed_function; 23319 all_instances := all_instances + partial_derivative_expression; 23320 all_instances := all_instances + partial_derivative_function; 23321 all_instances := all_instances + polar_complex_number_region; 23322 all_instances := all_instances + procedural_representation; 23323 all_instances := all_instances + procedural_representation_sequence; 23324 all_instances := all_instances + product_definition_effectivity; 23325 all_instances := all_instances + quantifier_expression; 23326 all_instances := all_instances + rationalize_function; 23327 all_instances := all_instances + real_tuple_literal; 23328 all_instances := all_instances + reindexed_array_function; 23329 all_instances := all_instances + repackaging_function; 23330 all_instances := all_instances + restriction_function; 23331 all_instances := all_instances + runout_zone_orientation; 23332 all_instances := all_instances + selector_function; 23333 all_instances := all_instances + series_composed_function; 23334 all_instances := all_instances + solid_with_depression; 23335 all_instances := all_instances + solid_with_hole; 23336 all_instances := all_instances + solid_with_pocket; 23337 all_instances := all_instances + solid_with_protrusion; 23338 all_instances := all_instances + solid_with_shape_element_pattern; 23339 all_instances := all_instances + solid_with_slot; 23340 all_instances := all_instances + swept_area_solid; 23341 all_instances := all_instances + symbol_target; 23342 all_instances := all_instances + two_direction_repeat_factor; 23343 all_instances := all_instances + user_selected_elements; 23344 all_instances := all_instances + volume; 23345 number_of_input_instances := SIZEOF(all_instances); 23346 REPEAT i := 1 TO number_of_input_instances; 23347 set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]); 23348 END_REPEAT; 23349 WHERE 23350 WR1: 23351 dependently_instantiated(all_instances, set_of_input_types, previous_in_chain); 23352END_RULE; 23353 23354-- IN AP214 23355RULE versioned_action_request_requires_date_and_person_or_organization FOR (versioned_action_request ); 23356 WHERE 23357 wr1: 23358 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; 23359 wr2: 23360 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; 23361END_RULE; 23362 23363-- IN AP214 23364RULE versioned_action_request_requires_status FOR (action_request_status, versioned_action_request ); 23365 WHERE 23366 wr1: 23367 SIZEOF(QUERY (ar <* versioned_action_request| NOT (SIZEOF(QUERY (ars <* action_request_status| (ar :=: ars.assigned_request))) = 1))) = 0; 23368END_RULE; 23369 23370-- DIFF IN AP214 23371FUNCTION acyclic 23372 (arg1 : generic_expression; 23373 arg2 : SET [0:?] OF generic_expression ) : BOOLEAN; 23374 LOCAL 23375 result : BOOLEAN := TRUE; 23376 END_LOCAL; 23377 IF 'STEP_MERGED_CAD_SCHEMA.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN 23378 RETURN (TRUE); 23379 END_IF; 23380 IF arg1 IN arg2 THEN 23381 RETURN (FALSE); 23382 END_IF; 23383 IF 'STEP_MERGED_CAD_SCHEMA.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN 23384 RETURN (acyclic(arg1\unary_generic_expression.operand, arg2 + [ arg1 ])); 23385 END_IF; 23386 IF 'STEP_MERGED_CAD_SCHEMA.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN 23387 RETURN (acyclic(arg1\binary_generic_expression.operands[1], (arg2 + [ arg1 ])) AND acyclic(arg1\binary_generic_expression.operands[2], (arg2 + [ arg1 ]))); 23388 END_IF; 23389 IF 'STEP_MERGED_CAD_SCHEMA.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN 23390 result := TRUE; 23391 REPEAT i := 1 TO SIZEOF(arg1\multiple_arity_generic_expression.operands); 23392 result := result AND acyclic(arg1\multiple_arity_generic_expression.operands[i], (arg2 + [ arg1 ])); 23393 END_REPEAT; 23394 RETURN (result); 23395 END_IF; 23396 RETURN (result); 23397END_FUNCTION; 23398 23399-- DIFF IN AP214 23400FUNCTION acyclic_composite_text 23401 (start_composite : composite_text; 23402 child_text : SET [1:?] OF text_or_character ) : LOGICAL; 23403 LOCAL 23404 i : INTEGER; 23405 local_composite_text : SET [0:?] OF composite_text; 23406 local_annotation_text : SET [0:?] OF annotation_text; 23407 local_children : SET [0:?] OF text_or_character; 23408 END_LOCAL; 23409 local_composite_text := QUERY (child <* child_text| 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_TEXT' IN TYPEOF(child)); 23410 IF SIZEOF(local_composite_text) > 0 THEN 23411 REPEAT i := 1 TO HIINDEX(local_composite_text); 23412 IF start_composite :=: local_composite_text[i] THEN 23413 RETURN (FALSE); 23414 END_IF; 23415 END_REPEAT; 23416 END_IF; 23417 local_children := child_text; 23418 IF SIZEOF(local_composite_text) > 0 THEN 23419 REPEAT i := 1 TO HIINDEX(local_composite_text); 23420 local_children := local_children + local_composite_text[i].collected_text; 23421 END_REPEAT; 23422 END_IF; 23423 local_annotation_text := QUERY (child <* child_text| 'STEP_MERGED_CAD_SCHEMA.ANNOTATION_TEXT' IN TYPEOF(child)); 23424 IF SIZEOF(local_annotation_text) > 0 THEN 23425 REPEAT i := 1 TO HIINDEX(local_annotation_text); 23426 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)); 23427 END_REPEAT; 23428 END_IF; 23429 IF local_children :<>: child_text THEN 23430 RETURN (acyclic_composite_text(start_composite, local_children)); 23431 ELSE 23432 RETURN (TRUE); 23433 END_IF; 23434END_FUNCTION; 23435 23436FUNCTION acyclic_curve_replica 23437 (rep : curve_replica; 23438 parent : curve ) : BOOLEAN; 23439 IF NOT ('STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(parent)) THEN 23440 RETURN (TRUE); 23441 END_IF; 23442 IF parent :=: rep THEN 23443 RETURN (FALSE); 23444 ELSE 23445 RETURN (acyclic_curve_replica(rep, parent\curve_replica.parent_curve)); 23446 END_IF; 23447END_FUNCTION; 23448 23449-- IN AP203e2/AP214 23450FUNCTION acyclic_mapped_item_usage 23451 (rep : representation ) : BOOLEAN; 23452 LOCAL 23453 items : SET OF representation_item; 23454 END_LOCAL; 23455 items := QUERY (item <* rep.items| 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(item)); 23456 IF SIZEOF(items) = 0 THEN 23457 RETURN (FALSE); 23458 ELSE 23459 REPEAT i := 1 TO HIINDEX(items); 23460 IF items[i]\mapped_item.mapping_source.mapped_representation :=: rep THEN 23461 RETURN (TRUE); 23462 ELSE 23463 RETURN (acyclic_mapped_item_usage(items[i]\mapped_item.mapping_source.mapped_representation)); 23464 END_IF; 23465 END_REPEAT; 23466 RETURN (FALSE); 23467 END_IF; 23468END_FUNCTION; 23469 23470-- DIFF IN AP214 23471FUNCTION acyclic_mapped_representation 23472 (mi : mapped_item ) : BOOLEAN; 23473 LOCAL 23474 rms : SET OF representation_map; 23475 mis : SET OF mapped_item; 23476 rs1 : SET OF representation; 23477 rs2 : SET OF representation; 23478 END_LOCAL; 23479 rs1 := using_representations(mi); 23480 rs2 := []; 23481 REPEAT WHILE SIZEOF(rs1) > 0; 23482 REPEAT i := 1 TO HIINDEX(rs1); 23483 rms := bag_to_set(USEDIN(rs1[i], 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); 23484 IF SIZEOF(rms) > 0 THEN 23485 REPEAT j := 1 TO HIINDEX(rms); 23486 mis := bag_to_set(USEDIN(rms[i], 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE')); 23487 IF SIZEOF(mis) > 0 THEN 23488 REPEAT j := 1 TO HIINDEX(mis); 23489 IF mis[i] :=: mi THEN 23490 RETURN (FALSE); 23491 END_IF; 23492 rs2 := rs2 + using_representations(mis[i]); 23493 END_REPEAT; 23494 END_IF; 23495 END_REPEAT; 23496 END_IF; 23497 END_REPEAT; 23498 rs1 := rs2; 23499 rs2 := []; 23500 END_REPEAT; 23501 RETURN (TRUE); 23502END_FUNCTION; 23503 23504FUNCTION acyclic_point_replica 23505 (rep : point_replica; 23506 parent : point ) : BOOLEAN; 23507 IF NOT ('STEP_MERGED_CAD_SCHEMA.POINT_REPLICA' IN TYPEOF(parent)) THEN 23508 RETURN (TRUE); 23509 END_IF; 23510 IF parent :=: rep THEN 23511 RETURN (FALSE); 23512 ELSE 23513 RETURN (acyclic_point_replica(rep, parent\point_replica.parent_pt)); 23514 END_IF; 23515END_FUNCTION; 23516 23517-- DIFF IN AP214 23518-- IN AP214/AP242 23519FUNCTION acyclic_product_category_relationship 23520 (relation : product_category_relationship; 23521 children : SET [0:?] OF product_category ) : BOOLEAN; 23522 LOCAL 23523 x : SET OF product_category_relationship; 23524 local_children : SET OF product_category; 23525 END_LOCAL; 23526 REPEAT i := 1 TO HIINDEX(children); 23527 IF relation.category :=: children[i] THEN 23528 RETURN (FALSE); 23529 END_IF; 23530 END_REPEAT; 23531 x := bag_to_set(USEDIN(relation.category, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY')); 23532 local_children := children + relation.category; 23533 IF SIZEOF(x) > 0 THEN 23534 REPEAT i := 1 TO HIINDEX(x); 23535 IF NOT acyclic_product_category_relationship(x[i], local_children) THEN 23536 RETURN (FALSE); 23537 END_IF; 23538 END_REPEAT; 23539 END_IF; 23540 RETURN (TRUE); 23541END_FUNCTION; 23542 23543-- DIFF IN AP214 23544-- DIFF IN AP203e2 23545FUNCTION acyclic_product_definition_relationship 23546 (relation : product_definition_relationship; 23547 relatives : SET [1:?] OF product_definition_or_reference; 23548 specific_relation : STRING ) : BOOLEAN; 23549 LOCAL 23550 x : SET OF product_definition_relationship; 23551 END_LOCAL; 23552 IF relation.relating_product_definition IN relatives THEN 23553 RETURN (FALSE); 23554 END_IF; 23555 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)); 23556 REPEAT i := 1 TO HIINDEX(x); 23557 IF NOT acyclic_product_definition_relationship(x[i], (relatives + relation.relating_product_definition), specific_relation) THEN 23558 RETURN (FALSE); 23559 END_IF; 23560 END_REPEAT; 23561 RETURN (TRUE); 23562END_FUNCTION; 23563 23564-- IN AP203e2/AP242 23565FUNCTION acyclic_representation_relationship 23566 (relation : representation_relationship; 23567 relatives : SET [1:?] OF representation; 23568 specific_relation : STRING ) : BOOLEAN; 23569 LOCAL 23570 x : SET OF representation_relationship; 23571 END_LOCAL; 23572 IF relation.rep_1 IN relatives THEN 23573 RETURN (FALSE); 23574 END_IF; 23575 x := QUERY (r <* bag_to_set(USEDIN(relation.rep_1, 'STEP_MERGED_CAD_SCHEMA.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2'))| specific_relation IN TYPEOF(r)); 23576 REPEAT i := 1 TO HIINDEX(x); 23577 IF NOT acyclic_representation_relationship(x[i], (relatives + relation.rep_1), specific_relation) THEN 23578 RETURN (FALSE); 23579 END_IF; 23580 END_REPEAT; 23581 RETURN (TRUE); 23582END_FUNCTION; 23583 23584-- IN AP242 23585FUNCTION acyclic_shape_aspect_relationship 23586 (relation : shape_aspect_relationship; 23587 relatives : SET [1:?] OF shape_aspect; 23588 specific_relation : STRING ) : BOOLEAN; 23589 LOCAL 23590 x : SET OF shape_aspect_relationship; 23591 END_LOCAL; 23592 IF relation.relating_shape_aspect IN relatives THEN 23593 RETURN (FALSE); 23594 END_IF; 23595 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)); 23596 REPEAT i := 1 TO HIINDEX(x); 23597 IF NOT acyclic_shape_aspect_relationship(x[i], (relatives + relation.relating_shape_aspect), specific_relation) THEN 23598 RETURN (FALSE); 23599 END_IF; 23600 END_REPEAT; 23601 RETURN (TRUE); 23602END_FUNCTION; 23603 23604FUNCTION acyclic_solid_replica 23605 (rep : solid_replica; 23606 parent : solid_model ) : BOOLEAN; 23607 IF NOT ('STEP_MERGED_CAD_SCHEMA.SOLID_REPLICA' IN TYPEOF(parent)) THEN 23608 RETURN (TRUE); 23609 END_IF; 23610 IF parent :=: rep THEN 23611 RETURN (FALSE); 23612 ELSE 23613 RETURN (acyclic_solid_replica(rep, parent\solid_replica.parent_solid)); 23614 END_IF; 23615END_FUNCTION; 23616 23617FUNCTION acyclic_surface_replica 23618 (rep : surface_replica; 23619 parent : surface ) : BOOLEAN; 23620 IF NOT ('STEP_MERGED_CAD_SCHEMA.SURFACE_REPLICA' IN TYPEOF(parent)) THEN 23621 RETURN (TRUE); 23622 END_IF; 23623 IF parent :=: rep THEN 23624 RETURN (FALSE); 23625 ELSE 23626 RETURN (acyclic_surface_replica(rep, parent\surface_replica.parent_surface)); 23627 END_IF; 23628END_FUNCTION; 23629 23630-- DIFF IN AP214 23631FUNCTION advanced_face_properties 23632 (testface : face ) : BOOLEAN; 23633 IF 'STEP_MERGED_CAD_SCHEMA.ADVANCED_FACE' IN TYPEOF(testface) THEN 23634 RETURN (TRUE); 23635 END_IF; 23636 IF 'STEP_MERGED_CAD_SCHEMA.SUBFACE' IN TYPEOF(testface) THEN 23637 RETURN (advanced_face_properties(testface\subface.parent_face)); 23638 ELSE 23639 RETURN (FALSE); 23640 END_IF; 23641END_FUNCTION; 23642 23643-- IN AP242 23644FUNCTION all_members_of_es 23645 (sv : SET [0:?] OF maths_value; 23646 es : elementary_space_enumerators ) : LOGICAL; 23647 CONSTANT 23648 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' ]; 23649 END_CONSTANT; 23650 LOCAL 23651 v : maths_value; 23652 key_type : STRING := ''; 23653 types : SET OF STRING; 23654 ge : generic_expression; 23655 cum : LOGICAL := TRUE; 23656 vspc : maths_space; 23657 END_LOCAL; 23658 IF NOT EXISTS(sv) OR NOT EXISTS(es) THEN 23659 RETURN (FALSE); 23660 END_IF; 23661 CASE es OF 23662 es_numbers : 23663 key_type := 'NUMBER'; 23664 es_complex_numbers : 23665 key_type := 'COMPLEX_NUMBER_LITERAL'; 23666 es_reals : 23667 key_type := 'REAL'; 23668 es_integers : 23669 key_type := 'INTEGER'; 23670 es_logicals : 23671 key_type := 'LOGICAL'; 23672 es_booleans : 23673 key_type := 'BOOLEAN'; 23674 es_strings : 23675 key_type := 'STRING'; 23676 es_binarys : 23677 key_type := 'BINARY'; 23678 es_maths_spaces : 23679 key_type := 'MATHS_SPACE'; 23680 es_maths_functions : 23681 key_type := 'MATHS_FUNCTION'; 23682 es_generics : 23683 RETURN (TRUE); 23684 END_CASE; 23685 REPEAT i := 1 TO SIZEOF(sv); 23686 IF NOT EXISTS(sv[i]) THEN 23687 RETURN (FALSE); 23688 END_IF; 23689 v := simplify_maths_value(sv[i]); 23690 types := stripped_typeof(v); 23691 IF key_type IN types THEN 23692 SKIP; 23693 END_IF; 23694 IF (es = es_numbers) AND ('COMPLEX_NUMBER_LITERAL' IN types) THEN 23695 SKIP; 23696 END_IF; 23697 IF SIZEOF(base_types * types) > 0 THEN 23698 RETURN (FALSE); 23699 END_IF; 23700 ge := v; 23701 IF has_values_space(ge) THEN 23702 vspc := values_space_of(ge); 23703 IF NOT subspace_of_es(vspc, es) THEN 23704 IF NOT compatible_spaces(vspc, make_elementary_space(es)) THEN 23705 RETURN (FALSE); 23706 END_IF; 23707 cum := UNKNOWN; 23708 END_IF; 23709 ELSE 23710 cum := UNKNOWN; 23711 END_IF; 23712 IF cum = FALSE THEN 23713 RETURN (FALSE); 23714 END_IF; 23715 END_REPEAT; 23716 RETURN (cum); 23717END_FUNCTION; 23718 23719-- IN AP242 23720FUNCTION any_space_satisfies 23721 (sc : space_constraint_type; 23722 spc : maths_space ) : BOOLEAN; 23723 LOCAL 23724 spc_id : elementary_space_enumerators; 23725 END_LOCAL; 23726 IF (sc = sc_equal) OR NOT ('ELEMENTARY_SPACE' IN stripped_typeof(spc)) THEN 23727 RETURN (FALSE); 23728 END_IF; 23729 spc_id := spc\elementary_space.space_id; 23730 IF sc = sc_subspace THEN 23731 RETURN (bool(spc_id = es_generics)); 23732 END_IF; 23733 IF sc = sc_member THEN 23734 RETURN (bool((spc_id = es_generics) OR (spc_id = es_maths_spaces))); 23735 END_IF; 23736 RETURN (?); 23737END_FUNCTION; 23738 23739FUNCTION aspect_ratio 23740 (p : planar_box ) : positive_ratio_measure; 23741 IF (p.size_in_x > 0.0) AND (p.size_in_y > 0.0) THEN 23742 RETURN (p.size_in_x / p.size_in_y); 23743 ELSE 23744 RETURN (?); 23745 END_IF; 23746END_FUNCTION; 23747 23748-- IN AP242 23749FUNCTION assembly_leaf 23750 (item : product_definition ) : BOOLEAN; 23751 LOCAL 23752 local_relation : SET OF assembly_component_usage := []; 23753 local_relation2 : BAG OF assembly_component_usage := []; 23754 END_LOCAL; 23755 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))); 23756 local_relation := bag_to_set(local_relation2); 23757 IF SIZEOF(local_relation) = 0 THEN 23758 RETURN (TRUE); 23759 ELSE 23760 RETURN (FALSE); 23761 END_IF; 23762END_FUNCTION; 23763 23764-- IN AP242 23765FUNCTION assembly_root 23766 (item : product_definition ) : BOOLEAN; 23767 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 23768 RETURN (TRUE); 23769 ELSE 23770 RETURN (FALSE); 23771 END_IF; 23772END_FUNCTION; 23773 23774-- IN AP214 23775FUNCTION assembly_shape_is_defined 23776 (assy : next_assembly_usage_occurrence ) : BOOLEAN; 23777 LOCAL 23778 sdr_set : SET OF shape_definition_representation := []; 23779 srr_set : SET OF shape_representation_relationship := []; 23780 sdr1_set : SET OF shape_definition_representation := []; 23781 pd_set : SET OF property_definition := []; 23782 pdr_set : SET OF product_definition_relationship := []; 23783 pds_set : SET OF product_definition_shape := []; 23784 prop_set : SET OF property_definition := []; 23785 END_LOCAL; 23786 pd_set := bag_to_set(USEDIN(assy.related_product_definition, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); 23787 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); 23788 IF SIZEOF(pd_set) > 0 THEN 23789 REPEAT i := 1 TO HIINDEX(pd_set); 23790 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))); 23791 END_REPEAT; 23792 END_IF; 23793 IF SIZEOF(pdr_set) > 0 THEN 23794 REPEAT i := 1 TO HIINDEX(pdr_set); 23795 prop_set := prop_set + bag_to_set(USEDIN(pdr_set[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); 23796 END_REPEAT; 23797 IF SIZEOF(prop_set) > 0 THEN 23798 REPEAT i := 1 TO HIINDEX(prop_set); 23799 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))); 23800 END_REPEAT; 23801 END_IF; 23802 END_IF; 23803 IF SIZEOF(sdr_set) > 0 THEN 23804 REPEAT i := 1 TO HIINDEX(sdr_set); 23805 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)); 23806 pd_set := bag_to_set(USEDIN(assy.relating_product_definition, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); 23807 IF SIZEOF(pd_set) > 0 THEN 23808 REPEAT i := 1 TO HIINDEX(pd_set); 23809 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))); 23810 END_REPEAT; 23811 END_IF; 23812 IF (SIZEOF(sdr_set) > 0) AND (SIZEOF(sdr1_set) > 0) THEN 23813 IF SIZEOF(srr_set) > 0 THEN 23814 REPEAT j := 1 TO HIINDEX(srr_set); 23815 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 23816 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)); 23817 IF SIZEOF(pds_set) = 0 THEN 23818 RETURN (FALSE); 23819 END_IF; 23820 REPEAT k := 1 TO HIINDEX(pds_set); 23821 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 23822 RETURN (FALSE); 23823 END_IF; 23824 END_REPEAT; 23825 END_IF; 23826 END_REPEAT; 23827 END_IF; 23828 END_IF; 23829 END_REPEAT; 23830 END_IF; 23831 RETURN (TRUE); 23832END_FUNCTION; 23833 23834-- IN AP242 23835FUNCTION assoc_product_space 23836 (ts1 : tuple_space; 23837 ts2 : tuple_space ) : tuple_space; 23838 LOCAL 23839 types1 : SET OF STRING := stripped_typeof(ts1); 23840 types2 : SET OF STRING := stripped_typeof(ts2); 23841 up1 : uniform_product_space := make_uniform_product_space(the_reals, 1); 23842 up2 : uniform_product_space := make_uniform_product_space(the_reals, 1); 23843 lp1 : listed_product_space := the_zero_tuple_space; 23844 lp2 : listed_product_space := the_zero_tuple_space; 23845 lps : listed_product_space := the_zero_tuple_space; 23846 et1 : extended_tuple_space := the_tuples; 23847 et2 : extended_tuple_space := the_tuples; 23848 ets : extended_tuple_space := the_tuples; 23849 use_up1 : BOOLEAN; 23850 use_up2 : BOOLEAN; 23851 use_lp1 : BOOLEAN; 23852 use_lp2 : BOOLEAN; 23853 factors : LIST OF maths_space := []; 23854 tspace : tuple_space; 23855 END_LOCAL; 23856 IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN 23857 up1 := ts1; 23858 use_up1 := FALSE; 23859 use_lp1 := FALSE; 23860 ELSE 23861 IF 'LISTED_PRODUCT_SPACE' IN types1 THEN 23862 lp1 := ts1; 23863 use_up1 := FALSE; 23864 use_lp1 := FALSE; 23865 ELSE 23866 IF NOT ('EXTENDED_TUPLE_SPACE' IN types1) THEN 23867 RETURN (?); 23868 END_IF; 23869 et1 := ts1; 23870 use_up1 := FALSE; 23871 use_lp1 := FALSE; 23872 END_IF; 23873 END_IF; 23874 IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN 23875 up2 := ts2; 23876 use_up2 := FALSE; 23877 use_lp2 := FALSE; 23878 ELSE 23879 IF 'LISTED_PRODUCT_SPACE' IN types2 THEN 23880 lp2 := ts2; 23881 use_up2 := FALSE; 23882 use_lp2 := FALSE; 23883 ELSE 23884 IF NOT ('EXTENDED_TUPLE_SPACE' IN types2) THEN 23885 RETURN (?); 23886 END_IF; 23887 et2 := ts2; 23888 use_up2 := FALSE; 23889 use_lp2 := FALSE; 23890 END_IF; 23891 END_IF; 23892 IF use_up1 THEN 23893 IF use_up2 THEN 23894 IF up1.base = up2.base THEN 23895 tspace := make_uniform_product_space(up1.base, up1.exponent + up2.exponent); 23896 ELSE 23897 factors := [ up1.base, up2.base ]; 23898 tspace := make_listed_product_space(factors); 23899 END_IF; 23900 ELSE 23901 IF use_lp2 THEN 23902 factors := [ up1.base ]; 23903 factors := factors + lp2.factors; 23904 tspace := make_listed_product_space(factors); 23905 ELSE 23906 tspace := assoc_product_space(up1, et2.base); 23907 tspace := make_extended_tuple_space(tspace, et2.extender); 23908 END_IF; 23909 END_IF; 23910 ELSE 23911 IF use_lp1 THEN 23912 IF use_up2 THEN 23913 factors := [ up2.base ]; 23914 factors := lp1.factors + factors; 23915 tspace := make_listed_product_space(factors); 23916 ELSE 23917 IF use_lp2 THEN 23918 tspace := make_listed_product_space(lp1.factors + lp2.factors); 23919 ELSE 23920 tspace := assoc_product_space(lp1, et2.base); 23921 tspace := make_extended_tuple_space(tspace, et2.extender); 23922 END_IF; 23923 END_IF; 23924 ELSE 23925 IF use_up2 THEN 23926 IF et1.extender = up2.base THEN 23927 tspace := assoc_product_space(et1.base, up2); 23928 tspace := make_extended_tuple_space(tspace, et1.extender); 23929 ELSE 23930 RETURN (?); 23931 END_IF; 23932 ELSE 23933 IF use_lp2 THEN 23934 factors := lp2.factors; 23935 REPEAT i := 1 TO SIZEOF(factors); 23936 IF et1.extender <> factors[i] THEN 23937 RETURN (?); 23938 END_IF; 23939 END_REPEAT; 23940 tspace := assoc_product_space(et1.base, lp2); 23941 tspace := make_extended_tuple_space(tspace, et1.extender); 23942 ELSE 23943 IF et1.extender = et2.extender THEN 23944 tspace := assoc_product_space(et1, et2.base); 23945 ELSE 23946 RETURN (?); 23947 END_IF; 23948 END_IF; 23949 END_IF; 23950 END_IF; 23951 END_IF; 23952 RETURN (tspace); 23953END_FUNCTION; 23954 23955FUNCTION associated_surface 23956 (arg : pcurve_or_surface ) : surface; 23957 LOCAL 23958 surf : surface; 23959 END_LOCAL; 23960 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(arg) THEN 23961 surf := arg\pcurve.basis_surface; 23962 ELSE 23963 surf := arg; 23964 END_IF; 23965 RETURN (surf); 23966END_FUNCTION; 23967 23968-- IN AP242 23969FUNCTION atan2 23970 (y : REAL; 23971 x : REAL ) : REAL; 23972 LOCAL 23973 r : REAL; 23974 END_LOCAL; 23975 IF (y = 0.0) AND (x = 0.0) THEN 23976 RETURN (?); 23977 END_IF; 23978 r := atan(y, x); 23979 IF x < 0.0 THEN 23980 IF y < 0.0 THEN 23981 r := r - 3.14159; 23982 ELSE 23983 r := r + 3.14159; 23984 END_IF; 23985 END_IF; 23986 RETURN (r); 23987END_FUNCTION; 23988 23989-- DIFF IN AP214 23990FUNCTION bag_to_set 23991 (the_bag : BAG [0:?] OF GENERIC : intype ) : SET [0:?] OF GENERIC : intype; 23992 LOCAL 23993 the_set : SET OF GENERIC : intype := []; 23994 END_LOCAL; 23995 IF SIZEOF(the_bag) > 0 THEN 23996 REPEAT i := 1 TO HIINDEX(the_bag); 23997 the_set := the_set + the_bag[i]; 23998 END_REPEAT; 23999 END_IF; 24000 RETURN (the_set); 24001END_FUNCTION; 24002 24003FUNCTION base_axis 24004 (dim : INTEGER; 24005 axis1 : direction; 24006 axis2 : direction; 24007 axis3 : direction ) : LIST [2:3] OF direction; 24008 LOCAL 24009 u : LIST [2:3] OF direction; 24010 factor : REAL; 24011 d1 : direction; 24012 d2 : direction; 24013 END_LOCAL; 24014 IF dim = 3 THEN 24015 d1 := NVL(normalise(axis3), dummy_gri || direction([ 0.0, 0.0, 1.0 ])); 24016 d2 := first_proj_axis(d1, axis1); 24017 u := [ d2, second_proj_axis(d1, d2, axis2), d1 ]; 24018 ELSE 24019 IF EXISTS(axis1) THEN 24020 d1 := normalise(axis1); 24021 u := [ d1, orthogonal_complement(d1) ]; 24022 IF EXISTS(axis2) THEN 24023 factor := dot_product(axis2, u[2]); 24024 IF factor < 0.0 THEN 24025 u[2].direction_ratios[1] := -u[2].direction_ratios[1]; 24026 u[2].direction_ratios[2] := -u[2].direction_ratios[2]; 24027 END_IF; 24028 END_IF; 24029 ELSE 24030 IF EXISTS(axis2) THEN 24031 d1 := normalise(axis2); 24032 u := [ orthogonal_complement(d1), d1 ]; 24033 u[1].direction_ratios[1] := -u[1].direction_ratios[1]; 24034 u[1].direction_ratios[2] := -u[1].direction_ratios[2]; 24035 ELSE 24036 u := [ dummy_gri || direction([ 1.0, 0.0 ]), dummy_gri || direction([ 0.0, 1.0 ]) ]; 24037 END_IF; 24038 END_IF; 24039 END_IF; 24040 RETURN (u); 24041END_FUNCTION; 24042 24043-- IN AP242 24044FUNCTION bool 24045 (lgcl : LOGICAL ) : BOOLEAN; 24046 IF NOT EXISTS(lgcl) THEN 24047 RETURN (FALSE); 24048 END_IF; 24049 IF lgcl <> TRUE THEN 24050 RETURN (FALSE); 24051 END_IF; 24052 RETURN (TRUE); 24053END_FUNCTION; 24054 24055FUNCTION boolean_choose 24056 (b : BOOLEAN; 24057 choice1 : GENERIC : item; 24058 choice2 : GENERIC : item ) : GENERIC : item; 24059 IF b THEN 24060 RETURN (choice1); 24061 ELSE 24062 RETURN (choice2); 24063 END_IF; 24064END_FUNCTION; 24065 24066FUNCTION build_2axes 24067 (ref_direction : direction ) : LIST [2:2] OF direction; 24068 LOCAL 24069 d : direction := NVL(normalise(ref_direction), dummy_gri || direction([ 1.0, 0.0 ])); 24070 END_LOCAL; 24071 RETURN ([ d, orthogonal_complement(d) ]); 24072END_FUNCTION; 24073 24074FUNCTION build_axes 24075 (axis : direction; 24076 ref_direction : direction ) : LIST [3:3] OF direction; 24077 LOCAL 24078 d1 : direction; 24079 d2 : direction; 24080 END_LOCAL; 24081 d1 := NVL(normalise(axis), dummy_gri || direction([ 0.0, 0.0, 1.0 ])); 24082 d2 := first_proj_axis(d1, ref_direction); 24083 RETURN ([ d2, normalise(cross_product(d1, d2))\vector.orientation, d1 ]); 24084END_FUNCTION; 24085 24086-- IN AP203e2/AP242 24087FUNCTION categories_of_product 24088 (obj : product ) : SET [0:?] OF STRING; 24089 LOCAL 24090 category_assignments : BAG OF product_category; 24091 categories : SET OF STRING := []; 24092 END_LOCAL; 24093 category_assignments := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS'); 24094 REPEAT i := LOINDEX(category_assignments) TO HIINDEX(category_assignments) BY 1; 24095 categories := categories + category_assignments[i].name; 24096 END_REPEAT; 24097 RETURN (categories); 24098END_FUNCTION; 24099 24100-- IN AP214 24101FUNCTION check_associative_shape_aspects 24102 (sdr : shape_definition_representation ) : BOOLEAN; 24103 LOCAL 24104 sr1 : SET OF representation; 24105 sr2 : SET OF representation; 24106 dm : SET OF representation; 24107 pv : SET OF representation; 24108 END_LOCAL; 24109 IF SIZEOF(sdr.used_representation.items) <> 2 THEN 24110 RETURN (FALSE); 24111 END_IF; 24112 sr1 := using_representations(sdr.used_representation.items[1]); 24113 sr2 := using_representations(sdr.used_representation.items[2]); 24114 REPEAT i := 1 TO HIINDEX(sr1); 24115 dm := representations_mapped_into(sr1[i]); 24116 REPEAT j := 1 TO HIINDEX(dm); 24117 IF 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_MODEL' IN TYPEOF(dm[j]) THEN 24118 IF dm[j] IN sr2 THEN 24119 RETURN (TRUE); 24120 END_IF; 24121 pv := representations_mapped_into(dm[j]); 24122 REPEAT k := 1 TO HIINDEX(pv); 24123 IF 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(pv[k]) THEN 24124 IF pv[k] IN sr2 THEN 24125 RETURN (TRUE); 24126 END_IF; 24127 END_IF; 24128 END_REPEAT; 24129 END_IF; 24130 END_REPEAT; 24131 END_REPEAT; 24132 REPEAT i := 1 TO HIINDEX(sr2); 24133 dm := representations_mapped_into(sr2[i]); 24134 REPEAT j := 1 TO HIINDEX(dm); 24135 IF 'STEP_MERGED_CAD_SCHEMA.DRAUGHTING_MODEL' IN TYPEOF(dm[j]) THEN 24136 IF dm[j] IN sr1 THEN 24137 RETURN (TRUE); 24138 END_IF; 24139 pv := representations_mapped_into(dm[j]); 24140 REPEAT k := 1 TO HIINDEX(pv); 24141 IF 'STEP_MERGED_CAD_SCHEMA.PRESENTATION_VIEW' IN TYPEOF(pv[k]) THEN 24142 IF pv[k] IN sr1 THEN 24143 RETURN (TRUE); 24144 END_IF; 24145 END_IF; 24146 END_REPEAT; 24147 END_IF; 24148 END_REPEAT; 24149 END_REPEAT; 24150 RETURN (FALSE); 24151END_FUNCTION; 24152 24153-- IN AP203e2/AP242 24154FUNCTION check_continuous_edges 24155 (edges : LIST [0:?] OF UNIQUE edge_curve ) : BOOLEAN; 24156 LOCAL 24157 i : INTEGER; 24158 next_vertex : vertex; 24159 END_LOCAL; 24160 IF SIZEOF(edges) = 1 THEN 24161 RETURN (TRUE); 24162 END_IF; 24163 IF (edges[2].edge_start :=: edges[1].edge_end) XOR (edges[2].edge_start :=: edges[1].edge_start) THEN 24164 next_vertex := edges[2].edge_end; 24165 ELSE 24166 IF (edges[2].edge_end :=: edges[1].edge_end) XOR (edges[2].edge_end :=: edges[1].edge_start) THEN 24167 next_vertex := edges[2].edge_start; 24168 ELSE 24169 RETURN (FALSE); 24170 END_IF; 24171 END_IF; 24172 IF SIZEOF(edges) = 2 THEN 24173 RETURN (TRUE); 24174 END_IF; 24175 REPEAT i := 3 TO HIINDEX(edges); 24176 IF edges[i].edge_start :=: next_vertex THEN 24177 next_vertex := edges[i].edge_end; 24178 ELSE 24179 IF edges[i].edge_end :=: next_vertex THEN 24180 next_vertex := edges[i].edge_start; 24181 ELSE 24182 RETURN (FALSE); 24183 END_IF; 24184 END_IF; 24185 END_REPEAT; 24186 RETURN (TRUE); 24187END_FUNCTION; 24188 24189-- IN AP242 24190FUNCTION check_curve_planarity 24191 (checked_curve : curve ) : BOOLEAN; 24192 LOCAL 24193 crv : curve := checked_curve; 24194 i : INTEGER; 24195 j : INTEGER; 24196 result : BOOLEAN := FALSE; 24197 END_LOCAL; 24198 IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.LINE' ] * TYPEOF(crv)) > 0 THEN 24199 result := TRUE; 24200 ELSE 24201 IF ('STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' IN TYPEOF(crv)) AND check_curve_planarity(crv\trimmed_curve.basis_curve) THEN 24202 result := TRUE; 24203 ELSE 24204 IF ('STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(crv)) AND ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(crv\pcurve.basis_surface)) THEN 24205 result := TRUE; 24206 ELSE 24207 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(crv) THEN 24208 BEGIN 24209 REPEAT j := 1 TO HIINDEX(crv\surface_curve.basis_surface); 24210 IF 'STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(crv\surface_curve.basis_surface[j]) THEN 24211 result := TRUE; 24212 END_IF; 24213 END_REPEAT; 24214 END; 24215 END_IF; 24216 END_IF; 24217 END_IF; 24218 END_IF; 24219 RETURN (result); 24220END_FUNCTION; 24221 24222-- IN AP242 24223FUNCTION check_sparse_index_domain 24224 (idxdom : tuple_space; 24225 base : zero_or_one; 24226 shape : LIST [1:?] OF positive_integer; 24227 order : ordering_type ) : BOOLEAN; 24228 LOCAL 24229 mthspc : maths_space; 24230 interval : finite_integer_interval; 24231 i : INTEGER; 24232 END_LOCAL; 24233 mthspc := factor1(idxdom); 24234 interval := mthspc; 24235 IF order = by_rows THEN 24236 i := 1; 24237 ELSE 24238 i := 2; 24239 END_IF; 24240 RETURN (bool((interval.min <= base) AND (interval.max >= base + shape[i]))); 24241END_FUNCTION; 24242 24243-- IN AP242 24244FUNCTION check_sparse_index_to_loc 24245 (index_range : tuple_space; 24246 loc_domain : tuple_space ) : BOOLEAN; 24247 LOCAL 24248 temp : maths_space; 24249 idx_rng_itvl : finite_integer_interval; 24250 loc_dmn_itvl : finite_integer_interval; 24251 END_LOCAL; 24252 temp := factor1(index_range); 24253 IF schema_prefix + 'TUPLE_SPACE' IN TYPEOF(temp) THEN 24254 temp := factor1(temp); 24255 END_IF; 24256 IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN 24257 RETURN (FALSE); 24258 END_IF; 24259 idx_rng_itvl := temp; 24260 temp := factor1(loc_domain); 24261 IF schema_prefix + 'TUPLE_SPACE' IN TYPEOF(temp) THEN 24262 temp := factor1(temp); 24263 END_IF; 24264 IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN 24265 RETURN (FALSE); 24266 END_IF; 24267 loc_dmn_itvl := temp; 24268 RETURN (bool((loc_dmn_itvl.min <= idx_rng_itvl.min) AND (idx_rng_itvl.max <= loc_dmn_itvl.max + 1))); 24269END_FUNCTION; 24270 24271-- IN AP242 24272FUNCTION check_sparse_loc_range 24273 (locrng : tuple_space; 24274 base : zero_or_one; 24275 shape : LIST [1:?] OF positive_integer; 24276 order : ordering_type ) : BOOLEAN; 24277 LOCAL 24278 mthspc : maths_space; 24279 interval : finite_integer_interval; 24280 i : INTEGER; 24281 END_LOCAL; 24282 IF space_dimension(locrng) <> 1 THEN 24283 RETURN (FALSE); 24284 END_IF; 24285 mthspc := factor1(locrng); 24286 IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(mthspc)) THEN 24287 RETURN (FALSE); 24288 END_IF; 24289 interval := mthspc; 24290 IF order = by_rows THEN 24291 i := 2; 24292 ELSE 24293 i := 1; 24294 END_IF; 24295 RETURN (bool((interval.min >= base) AND (interval.max <= base + shape[i] - 1))); 24296END_FUNCTION; 24297 24298FUNCTION check_text_alignment 24299 (ct : composite_text ) : BOOLEAN; 24300 LOCAL 24301 a : SET OF text_alignment := []; 24302 END_LOCAL; 24303 REPEAT i := 1 TO HIINDEX(ct.collected_text); 24304 a := a + [ ct.collected_text[i]\text_literal.alignment ]; 24305 END_REPEAT; 24306 RETURN (SIZEOF(a) = 1); 24307END_FUNCTION; 24308 24309FUNCTION check_text_font 24310 (ct : composite_text ) : BOOLEAN; 24311 LOCAL 24312 f : SET OF font_select := []; 24313 END_LOCAL; 24314 REPEAT i := 1 TO HIINDEX(ct.collected_text); 24315 f := f + [ ct.collected_text[i]\text_literal.font ]; 24316 END_REPEAT; 24317 RETURN (SIZEOF(f) <= 1); 24318END_FUNCTION; 24319 24320-- DIFF IN AP203e2 24321-- IN AP203e2/AP242 24322FUNCTION class_assignment_is_valid 24323 (aia : applied_classification_assignment ) : BOOLEAN; 24324 LOCAL 24325 item : classification_item; 24326 role : classification_role; 24327 END_LOCAL; 24328 role := aia\classification_assignment.role; 24329 IF 'STEP_MERGED_CAD_SCHEMA.CLASS_SYSTEM' IN TYPEOF(aia\classification_assignment.assigned_class) THEN 24330 IF role\classification_role.name <> 'class system membership' THEN 24331 RETURN (FALSE); 24332 END_IF; 24333 REPEAT i := LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items); 24334 item := aia\applied_classification_assignment.items[i]; 24335 IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CHARACTERIZED_CLASS' ] * TYPEOF(item)) = 0 THEN 24336 RETURN (FALSE); 24337 END_IF; 24338 END_REPEAT; 24339 END_IF; 24340 IF 'STEP_MERGED_CAD_SCHEMA.CHARACTERIZED_CLASS' IN TYPEOF(aia\classification_assignment.assigned_class) THEN 24341 IF NOT (role\classification_role.name IN [ 'definitional', 'non-definitional', '' ]) THEN 24342 RETURN (FALSE); 24343 END_IF; 24344 REPEAT i := LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items); 24345 item := aia\applied_classification_assignment.items[i]; 24346 IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CLASSIFIED_ITEM' ] * TYPEOF(item)) = 0 THEN 24347 RETURN (FALSE); 24348 END_IF; 24349 END_REPEAT; 24350 END_IF; 24351 IF role\classification_role.name = 'definitional' THEN 24352 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 24353 RETURN (FALSE); 24354 END_IF; 24355 END_IF; 24356 RETURN (TRUE); 24357END_FUNCTION; 24358 24359FUNCTION closed_shell_reversed 24360 (a_shell : closed_shell ) : oriented_closed_shell; 24361 LOCAL 24362 the_reverse : oriented_closed_shell; 24363 END_LOCAL; 24364 IF 'STEP_MERGED_CAD_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(a_shell) THEN 24365 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); 24366 ELSE 24367 the_reverse := dummy_tri || connected_face_set(a_shell\connected_face_set.cfs_faces) || closed_shell() || oriented_closed_shell(a_shell, FALSE); 24368 END_IF; 24369 RETURN (the_reverse); 24370END_FUNCTION; 24371 24372-- IN AP242 24373FUNCTION collect_joints 24374 (items : SET [1:?] OF pair_representation_relationship ) : SET [0:?] OF kinematic_joint; 24375 LOCAL 24376 result : SET OF kinematic_joint := []; 24377 END_LOCAL; 24378 REPEAT i := 1 TO HIINDEX(items); 24379 result := result + items[i].transformation_operator.joint; 24380 END_REPEAT; 24381 RETURN (result); 24382END_FUNCTION; 24383 24384-- IN AP242 24385FUNCTION compare_basis_and_coef 24386 (basis : LIST [1:?] OF b_spline_basis; 24387 coef : maths_function ) : BOOLEAN; 24388 LOCAL 24389 shape : LIST OF positive_integer; 24390 END_LOCAL; 24391 IF NOT EXISTS(basis) OR NOT EXISTS(coef) THEN 24392 RETURN (FALSE); 24393 END_IF; 24394 shape := shape_of_array(coef); 24395 IF NOT EXISTS(shape) THEN 24396 RETURN (FALSE); 24397 END_IF; 24398 IF SIZEOF(shape) < SIZEOF(basis) THEN 24399 RETURN (FALSE); 24400 END_IF; 24401 REPEAT i := 1 TO SIZEOF(basis); 24402 IF (basis[i].num_basis = shape[i]) <> TRUE THEN 24403 RETURN (FALSE); 24404 END_IF; 24405 END_REPEAT; 24406 RETURN (TRUE); 24407END_FUNCTION; 24408 24409-- IN AP242 24410FUNCTION compatible_complex_number_regions 24411 (sp1 : maths_space; 24412 sp2 : maths_space ) : BOOLEAN; 24413 LOCAL 24414 typenames : SET OF STRING := stripped_typeof(sp1); 24415 crgn1 : cartesian_complex_number_region; 24416 crgn2 : cartesian_complex_number_region; 24417 prgn1 : polar_complex_number_region; 24418 prgn2 : polar_complex_number_region; 24419 prgn1c2 : polar_complex_number_region; 24420 prgn2c1 : polar_complex_number_region; 24421 sp1_is_crgn : BOOLEAN; 24422 sp2_is_crgn : BOOLEAN; 24423 END_LOCAL; 24424 IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN 24425 sp1_is_crgn := TRUE; 24426 crgn1 := sp1; 24427 ELSE 24428 IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN 24429 sp1_is_crgn := FALSE; 24430 prgn1 := sp1; 24431 ELSE 24432 RETURN (TRUE); 24433 END_IF; 24434 END_IF; 24435 typenames := stripped_typeof(sp2); 24436 IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN 24437 sp2_is_crgn := TRUE; 24438 crgn2 := sp2; 24439 ELSE 24440 IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN 24441 sp2_is_crgn := FALSE; 24442 prgn2 := sp2; 24443 ELSE 24444 RETURN (TRUE); 24445 END_IF; 24446 END_IF; 24447 IF sp1_is_crgn AND sp2_is_crgn THEN 24448 RETURN (compatible_intervals(crgn1.real_constraint, crgn2.real_constraint) AND compatible_intervals(crgn1.imag_constraint, crgn2.imag_constraint)); 24449 END_IF; 24450 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 24451 IF NOT compatible_intervals(prgn1.distance_constraint, prgn2.distance_constraint) THEN 24452 RETURN (FALSE); 24453 END_IF; 24454 IF compatible_intervals(prgn1.direction_constraint, prgn2.direction_constraint) THEN 24455 RETURN (TRUE); 24456 END_IF; 24457 IF (prgn1.direction_constraint.max > 3.14159) AND (prgn2.direction_constraint.max < 3.14159) THEN 24458 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))); 24459 END_IF; 24460 IF (prgn2.direction_constraint.max > 3.14159) AND (prgn1.direction_constraint.max < 3.14159) THEN 24461 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))); 24462 END_IF; 24463 RETURN (FALSE); 24464 END_IF; 24465 IF sp1_is_crgn AND NOT sp2_is_crgn THEN 24466 crgn2 := enclose_pregion_in_cregion(prgn2); 24467 prgn1 := enclose_cregion_in_pregion(crgn1, prgn2.centre); 24468 RETURN (compatible_complex_number_regions(crgn1, crgn2) AND compatible_complex_number_regions(prgn1, prgn2)); 24469 END_IF; 24470 IF NOT sp1_is_crgn AND sp2_is_crgn THEN 24471 crgn1 := enclose_pregion_in_cregion(prgn1); 24472 prgn2 := enclose_cregion_in_pregion(crgn2, prgn1.centre); 24473 RETURN (compatible_complex_number_regions(crgn1, crgn2) AND compatible_complex_number_regions(prgn1, prgn2)); 24474 END_IF; 24475 prgn1c2 := enclose_pregion_in_pregion(prgn1, prgn2.centre); 24476 prgn2c1 := enclose_pregion_in_pregion(prgn2, prgn1.centre); 24477 RETURN (compatible_complex_number_regions(prgn1, prgn2c1) AND compatible_complex_number_regions(prgn1c2, prgn2)); 24478END_FUNCTION; 24479 24480-- IN AP242 24481FUNCTION compatible_es_values 24482 (esval1 : elementary_space_enumerators; 24483 esval2 : elementary_space_enumerators ) : BOOLEAN; 24484 LOCAL 24485 esval1_is_numeric : LOGICAL; 24486 esval2_is_numeric : LOGICAL; 24487 END_LOCAL; 24488 IF ((esval1 = esval2) OR (esval1 = es_generics)) OR (esval2 = es_generics) THEN 24489 RETURN (TRUE); 24490 END_IF; 24491 esval1_is_numeric := (esval1 >= es_numbers) AND (esval1 <= es_integers); 24492 esval2_is_numeric := (esval2 >= es_numbers) AND (esval2 <= es_integers); 24493 IF esval1_is_numeric AND (esval2 = es_numbers) OR esval2_is_numeric AND (esval1 = es_numbers) THEN 24494 RETURN (TRUE); 24495 END_IF; 24496 IF esval1_is_numeric XOR esval2_is_numeric THEN 24497 RETURN (FALSE); 24498 END_IF; 24499 IF (esval1 = es_logicals) AND (esval2 = es_booleans) OR (esval1 = es_booleans) AND (esval2 = es_logicals) THEN 24500 RETURN (TRUE); 24501 END_IF; 24502 RETURN (FALSE); 24503END_FUNCTION; 24504 24505-- IN AP242 24506FUNCTION compatible_intervals 24507 (sp1 : maths_space; 24508 sp2 : maths_space ) : BOOLEAN; 24509 LOCAL 24510 amin : REAL; 24511 amax : REAL; 24512 END_LOCAL; 24513 IF min_exists(sp1) AND max_exists(sp2) THEN 24514 amin := real_min(sp1); 24515 amax := real_max(sp2); 24516 IF amin > amax THEN 24517 RETURN (FALSE); 24518 END_IF; 24519 IF amin = amax THEN 24520 RETURN (min_included(sp1) AND max_included(sp2)); 24521 END_IF; 24522 END_IF; 24523 IF min_exists(sp2) AND max_exists(sp1) THEN 24524 amin := real_min(sp2); 24525 amax := real_max(sp1); 24526 IF amin > amax THEN 24527 RETURN (FALSE); 24528 END_IF; 24529 IF amin = amax THEN 24530 RETURN (min_included(sp2) AND max_included(sp1)); 24531 END_IF; 24532 END_IF; 24533 RETURN (TRUE); 24534END_FUNCTION; 24535 24536-- IN AP242 24537FUNCTION compatible_spaces 24538 (sp1 : maths_space; 24539 sp2 : maths_space ) : BOOLEAN; 24540 LOCAL 24541 types1 : SET OF STRING := stripped_typeof(sp1); 24542 types2 : SET OF STRING := stripped_typeof(sp2); 24543 lgcl : LOGICAL := UNKNOWN; 24544 m : INTEGER; 24545 n : INTEGER; 24546 s1 : maths_space; 24547 s2 : maths_space; 24548 END_LOCAL; 24549 IF 'FINITE_SPACE' IN types1 THEN 24550 REPEAT i := 1 TO SIZEOF(sp1\finite_space.members); 24551 lgcl := member_of(sp1\finite_space.members[i], sp2); 24552 IF lgcl <> FALSE THEN 24553 RETURN (TRUE); 24554 END_IF; 24555 END_REPEAT; 24556 RETURN (FALSE); 24557 END_IF; 24558 IF 'FINITE_SPACE' IN types2 THEN 24559 REPEAT i := 1 TO SIZEOF(sp2\finite_space.members); 24560 lgcl := member_of(sp2\finite_space.members[i], sp1); 24561 IF lgcl <> FALSE THEN 24562 RETURN (TRUE); 24563 END_IF; 24564 END_REPEAT; 24565 RETURN (FALSE); 24566 END_IF; 24567 IF 'ELEMENTARY_SPACE' IN types1 THEN 24568 IF sp1\elementary_space.space_id = es_generics THEN 24569 RETURN (TRUE); 24570 END_IF; 24571 IF 'ELEMENTARY_SPACE' IN types2 THEN 24572 RETURN (compatible_es_values(sp1\elementary_space.space_id, sp2\elementary_space.space_id)); 24573 END_IF; 24574 IF (('FINITE_INTEGER_INTERVAL' IN types2) OR ('INTEGER_INTERVAL_FROM_MIN' IN types2)) OR ('INTEGER_INTERVAL_TO_MAX' IN types2) THEN 24575 RETURN (compatible_es_values(sp1\elementary_space.space_id, es_integers)); 24576 END_IF; 24577 IF (('FINITE_REAL_INTERVAL' IN types2) OR ('REAL_INTERVAL_FROM_MIN' IN types2)) OR ('REAL_INTERVAL_TO_MAX' IN types2) THEN 24578 RETURN (compatible_es_values(sp1\elementary_space.space_id, es_reals)); 24579 END_IF; 24580 IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types2) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types2) THEN 24581 RETURN (compatible_es_values(sp1\elementary_space.space_id, es_complex_numbers)); 24582 END_IF; 24583 IF 'TUPLE_SPACE' IN types2 THEN 24584 RETURN (FALSE); 24585 END_IF; 24586 IF 'FUNCTION_SPACE' IN types2 THEN 24587 RETURN (bool(sp1\elementary_space.space_id = es_maths_functions)); 24588 END_IF; 24589 RETURN (TRUE); 24590 END_IF; 24591 IF 'ELEMENTARY_SPACE' IN types2 THEN 24592 IF sp2\elementary_space.space_id = es_generics THEN 24593 RETURN (TRUE); 24594 END_IF; 24595 IF (('FINITE_INTEGER_INTERVAL' IN types1) OR ('INTEGER_INTERVAL_FROM_MIN' IN types1)) OR ('INTEGER_INTERVAL_TO_MAX' IN types1) THEN 24596 RETURN (compatible_es_values(sp2\elementary_space.space_id, es_integers)); 24597 END_IF; 24598 IF (('FINITE_REAL_INTERVAL' IN types1) OR ('REAL_INTERVAL_FROM_MIN' IN types1)) OR ('REAL_INTERVAL_TO_MAX' IN types1) THEN 24599 RETURN (compatible_es_values(sp2\elementary_space.space_id, es_reals)); 24600 END_IF; 24601 IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types1) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types1) THEN 24602 RETURN (compatible_es_values(sp2\elementary_space.space_id, es_complex_numbers)); 24603 END_IF; 24604 IF 'TUPLE_SPACE' IN types1 THEN 24605 RETURN (FALSE); 24606 END_IF; 24607 IF 'FUNCTION_SPACE' IN types1 THEN 24608 RETURN (bool(sp2\elementary_space.space_id = es_maths_functions)); 24609 END_IF; 24610 RETURN (TRUE); 24611 END_IF; 24612 IF subspace_of_es(sp1, es_integers) THEN 24613 IF subspace_of_es(sp2, es_integers) THEN 24614 RETURN (compatible_intervals(sp1, sp2)); 24615 END_IF; 24616 RETURN (FALSE); 24617 END_IF; 24618 IF subspace_of_es(sp2, es_integers) THEN 24619 RETURN (FALSE); 24620 END_IF; 24621 IF subspace_of_es(sp1, es_reals) THEN 24622 IF subspace_of_es(sp2, es_reals) THEN 24623 RETURN (compatible_intervals(sp1, sp2)); 24624 END_IF; 24625 RETURN (FALSE); 24626 END_IF; 24627 IF subspace_of_es(sp2, es_reals) THEN 24628 RETURN (FALSE); 24629 END_IF; 24630 IF subspace_of_es(sp1, es_complex_numbers) THEN 24631 IF subspace_of_es(sp2, es_complex_numbers) THEN 24632 RETURN (compatible_complex_number_regions(sp1, sp2)); 24633 END_IF; 24634 RETURN (FALSE); 24635 END_IF; 24636 IF subspace_of_es(sp2, es_complex_numbers) THEN 24637 RETURN (FALSE); 24638 END_IF; 24639 IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN 24640 IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN 24641 IF sp1\uniform_product_space.exponent <> sp2\uniform_product_space.exponent THEN 24642 RETURN (FALSE); 24643 END_IF; 24644 RETURN (compatible_spaces(sp1\uniform_product_space.base, sp2\uniform_product_space.base)); 24645 END_IF; 24646 IF 'LISTED_PRODUCT_SPACE' IN types2 THEN 24647 n := SIZEOF(sp2\listed_product_space.factors); 24648 IF sp1\uniform_product_space.exponent <> n THEN 24649 RETURN (FALSE); 24650 END_IF; 24651 REPEAT i := 1 TO n; 24652 IF NOT compatible_spaces(sp1\uniform_product_space.base, sp2\listed_product_space.factors[i]) THEN 24653 RETURN (FALSE); 24654 END_IF; 24655 END_REPEAT; 24656 RETURN (TRUE); 24657 END_IF; 24658 IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN 24659 m := sp1\uniform_product_space.exponent; 24660 n := space_dimension(sp2\extended_tuple_space.base); 24661 IF m < n THEN 24662 RETURN (FALSE); 24663 END_IF; 24664 IF m = n THEN 24665 RETURN (compatible_spaces(sp1, sp2\extended_tuple_space.base)); 24666 END_IF; 24667 RETURN (compatible_spaces(sp1, assoc_product_space(sp2\extended_tuple_space.base, make_uniform_product_space(sp2\extended_tuple_space.extender, m - n)))); 24668 END_IF; 24669 IF 'FUNCTION_SPACE' IN types2 THEN 24670 RETURN (FALSE); 24671 END_IF; 24672 RETURN (TRUE); 24673 END_IF; 24674 IF 'LISTED_PRODUCT_SPACE' IN types1 THEN 24675 n := SIZEOF(sp1\listed_product_space.factors); 24676 IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN 24677 IF n <> sp2\uniform_product_space.exponent THEN 24678 RETURN (FALSE); 24679 END_IF; 24680 REPEAT i := 1 TO n; 24681 IF NOT compatible_spaces(sp2\uniform_product_space.base, sp1\listed_product_space.factors[i]) THEN 24682 RETURN (FALSE); 24683 END_IF; 24684 END_REPEAT; 24685 RETURN (TRUE); 24686 END_IF; 24687 IF 'LISTED_PRODUCT_SPACE' IN types2 THEN 24688 IF n <> SIZEOF(sp2\listed_product_space.factors) THEN 24689 RETURN (FALSE); 24690 END_IF; 24691 REPEAT i := 1 TO n; 24692 IF NOT compatible_spaces(sp1\listed_product_space.factors[i], sp2\listed_product_space.factors[i]) THEN 24693 RETURN (FALSE); 24694 END_IF; 24695 END_REPEAT; 24696 RETURN (TRUE); 24697 END_IF; 24698 IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN 24699 m := space_dimension(sp2\extended_tuple_space.base); 24700 IF n < m THEN 24701 RETURN (FALSE); 24702 END_IF; 24703 IF n = m THEN 24704 RETURN (compatible_spaces(sp1, sp2\extended_tuple_space.base)); 24705 END_IF; 24706 RETURN (compatible_spaces(sp1, assoc_product_space(sp2\extended_tuple_space.base, make_uniform_product_space(sp2\extended_tuple_space.extender, n - m)))); 24707 END_IF; 24708 IF schema_prefix + 'FUNCTION_SPACE' IN types2 THEN 24709 RETURN (FALSE); 24710 END_IF; 24711 RETURN (TRUE); 24712 END_IF; 24713 IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN 24714 IF ('UNIFORM_PRODUCT_SPACE' IN types2) OR ('LISTED_PRODUCT_SPACE' IN types2) THEN 24715 RETURN (compatible_spaces(sp2, sp1)); 24716 END_IF; 24717 IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN 24718 IF NOT compatible_spaces(sp1\extended_tuple_space.extender, sp2\extended_tuple_space.extender) THEN 24719 RETURN (FALSE); 24720 END_IF; 24721 n := space_dimension(sp1\extended_tuple_space.base); 24722 m := space_dimension(sp2\extended_tuple_space.base); 24723 IF n < m THEN 24724 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)); 24725 END_IF; 24726 IF n = m THEN 24727 RETURN (compatible_spaces(sp1\extended_tuple_space.base, sp2\extended_tuple_space.base)); 24728 END_IF; 24729 IF n > m THEN 24730 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)))); 24731 END_IF; 24732 END_IF; 24733 IF 'FUNCTION_SPACE' IN types2 THEN 24734 RETURN (FALSE); 24735 END_IF; 24736 RETURN (TRUE); 24737 END_IF; 24738 IF 'FUNCTION_SPACE' IN types1 THEN 24739 IF 'FUNCTION_SPACE' IN types2 THEN 24740 s1 := sp1\function_space.domain_argument; 24741 s2 := sp2\function_space.domain_argument; 24742 CASE sp1\function_space.domain_constraint OF 24743 sc_equal : 24744 BEGIN 24745 CASE sp2\function_space.domain_constraint OF 24746 sc_equal : 24747 lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1); 24748 sc_subspace : 24749 lgcl := subspace_of(s1, s2); 24750 sc_member : 24751 lgcl := member_of(s1, s2); 24752 END_CASE; 24753 END; 24754 sc_subspace : 24755 BEGIN 24756 CASE sp2\function_space.domain_constraint OF 24757 sc_equal : 24758 lgcl := subspace_of(s2, s1); 24759 sc_subspace : 24760 lgcl := compatible_spaces(s1, s2); 24761 sc_member : 24762 lgcl := UNKNOWN; 24763 END_CASE; 24764 END; 24765 sc_member : 24766 BEGIN 24767 CASE sp2\function_space.domain_constraint OF 24768 sc_equal : 24769 lgcl := member_of(s2, s1); 24770 sc_subspace : 24771 lgcl := UNKNOWN; 24772 sc_member : 24773 lgcl := compatible_spaces(s1, s2); 24774 END_CASE; 24775 END; 24776 END_CASE; 24777 IF lgcl = FALSE THEN 24778 RETURN (FALSE); 24779 END_IF; 24780 s1 := sp1\function_space.range_argument; 24781 s2 := sp2\function_space.range_argument; 24782 CASE sp1\function_space.range_constraint OF 24783 sc_equal : 24784 BEGIN 24785 CASE sp2\function_space.range_constraint OF 24786 sc_equal : 24787 lgcl := subspace_of(s1, s2) AND subspace_of(s2, s1); 24788 sc_subspace : 24789 lgcl := subspace_of(s1, s2); 24790 sc_member : 24791 lgcl := member_of(s1, s2); 24792 END_CASE; 24793 END; 24794 sc_subspace : 24795 BEGIN 24796 CASE sp2\function_space.range_constraint OF 24797 sc_equal : 24798 lgcl := subspace_of(s2, s1); 24799 sc_subspace : 24800 lgcl := compatible_spaces(s1, s2); 24801 sc_member : 24802 lgcl := UNKNOWN; 24803 END_CASE; 24804 END; 24805 sc_member : 24806 BEGIN 24807 CASE sp2\function_space.range_constraint OF 24808 sc_equal : 24809 lgcl := member_of(s2, s1); 24810 sc_subspace : 24811 lgcl := UNKNOWN; 24812 sc_member : 24813 lgcl := compatible_spaces(s1, s2); 24814 END_CASE; 24815 END; 24816 END_CASE; 24817 IF lgcl = FALSE THEN 24818 RETURN (FALSE); 24819 END_IF; 24820 RETURN (TRUE); 24821 END_IF; 24822 RETURN (TRUE); 24823 END_IF; 24824 RETURN (TRUE); 24825END_FUNCTION; 24826 24827-- IN AP242 24828FUNCTION composable_sequence 24829 (operands : LIST [2:?] OF maths_function ) : BOOLEAN; 24830 REPEAT i := 1 TO SIZEOF(operands) - 1; 24831 IF NOT compatible_spaces(operands[i].range, operands[(i + 1)].domain) THEN 24832 RETURN (FALSE); 24833 END_IF; 24834 END_REPEAT; 24835 RETURN (TRUE); 24836END_FUNCTION; 24837 24838-- IN AP203e2/AP242 24839FUNCTION compute_total_depth 24840 (swsrh : solid_with_stepped_round_hole ) : positive_length_measure; 24841 LOCAL 24842 i : positive_integer; 24843 n : positive_integer := swsrh.segments; 24844 td : positive_length_measure := swsrh.segment_depths[1]; 24845 END_LOCAL; 24846 IF n = 1 THEN 24847 RETURN (td); 24848 ELSE 24849 REPEAT i := 2 TO n; 24850 td := td + swsrh.segment_depths[i]; 24851 END_REPEAT; 24852 END_IF; 24853 RETURN (td); 24854END_FUNCTION; 24855 24856FUNCTION conditional_reverse 24857 (p : BOOLEAN; 24858 an_item : reversible_topology ) : reversible_topology; 24859 IF p THEN 24860 RETURN (an_item); 24861 ELSE 24862 RETURN (topology_reversed(an_item)); 24863 END_IF; 24864END_FUNCTION; 24865 24866FUNCTION constraints_composite_curve_on_surface 24867 (c : composite_curve_on_surface ) : BOOLEAN; 24868 LOCAL 24869 n_segments : INTEGER := SIZEOF(c.segments); 24870 END_LOCAL; 24871 REPEAT k := 1 TO n_segments; 24872 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 24873 RETURN (FALSE); 24874 END_IF; 24875 END_REPEAT; 24876 RETURN (TRUE); 24877END_FUNCTION; 24878 24879FUNCTION constraints_geometry_shell_based_surface_model 24880 (m : shell_based_surface_model ) : BOOLEAN; 24881 LOCAL 24882 result : BOOLEAN := TRUE; 24883 END_LOCAL; 24884 REPEAT j := 1 TO SIZEOF(m.sbsm_boundary); 24885 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 24886 result := FALSE; 24887 RETURN (result); 24888 END_IF; 24889 END_REPEAT; 24890 RETURN (result); 24891END_FUNCTION; 24892 24893-- IN AP203e2/AP242 24894FUNCTION constraints_geometry_shell_based_wireframe_model 24895 (m : shell_based_wireframe_model ) : BOOLEAN; 24896 LOCAL 24897 result : BOOLEAN := TRUE; 24898 END_LOCAL; 24899 REPEAT j := 1 TO SIZEOF(m.sbwm_boundary); 24900 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 24901 result := FALSE; 24902 RETURN (result); 24903 END_IF; 24904 END_REPEAT; 24905 RETURN (result); 24906END_FUNCTION; 24907 24908-- DIFF IN AP214 24909FUNCTION constraints_param_b_spline 24910 (degree : INTEGER; 24911 up_knots : INTEGER; 24912 up_cp : INTEGER; 24913 knot_mult : LIST [0:?] OF INTEGER; 24914 knots : LIST [0:?] OF parameter_value ) : BOOLEAN; 24915 LOCAL 24916 result : BOOLEAN := TRUE; 24917 k : INTEGER; 24918 sum : INTEGER; 24919 END_LOCAL; 24920 sum := knot_mult[1]; 24921 REPEAT i := 2 TO up_knots; 24922 sum := sum + knot_mult[i]; 24923 END_REPEAT; 24924 IF (((degree < 1) OR (up_knots < 2)) OR (up_cp < degree)) OR (sum <> degree + up_cp + 2) THEN 24925 result := FALSE; 24926 RETURN (result); 24927 END_IF; 24928 k := knot_mult[1]; 24929 IF (k < 1) OR (k > degree + 1) THEN 24930 result := FALSE; 24931 RETURN (result); 24932 END_IF; 24933 REPEAT i := 2 TO up_knots; 24934 IF (knot_mult[i] < 1) OR (knots[i] <= knots[(i - 1)]) THEN 24935 result := FALSE; 24936 RETURN (result); 24937 END_IF; 24938 k := knot_mult[i]; 24939 IF (i < up_knots) AND (k > degree) THEN 24940 result := FALSE; 24941 RETURN (result); 24942 END_IF; 24943 IF (i = up_knots) AND (k > degree + 1) THEN 24944 result := FALSE; 24945 RETURN (result); 24946 END_IF; 24947 END_REPEAT; 24948 RETURN (result); 24949END_FUNCTION; 24950 24951FUNCTION constraints_rectangular_composite_surface 24952 (s : rectangular_composite_surface ) : BOOLEAN; 24953 REPEAT i := 1 TO s.n_u; 24954 REPEAT j := 1 TO s.n_v; 24955 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 24956 RETURN (FALSE); 24957 END_IF; 24958 END_REPEAT; 24959 END_REPEAT; 24960 REPEAT i := 1 TO s.n_u - 1; 24961 REPEAT j := 1 TO s.n_v; 24962 IF s.segments[i][j].u_transition = discontinuous THEN 24963 RETURN (FALSE); 24964 END_IF; 24965 END_REPEAT; 24966 END_REPEAT; 24967 REPEAT i := 1 TO s.n_u; 24968 REPEAT j := 1 TO s.n_v - 1; 24969 IF s.segments[i][j].v_transition = discontinuous THEN 24970 RETURN (FALSE); 24971 END_IF; 24972 END_REPEAT; 24973 END_REPEAT; 24974 RETURN (TRUE); 24975END_FUNCTION; 24976 24977FUNCTION control_characters_free 24978 (s : STRING ) : BOOLEAN; 24979 LOCAL 24980 ch : STRING; 24981 END_LOCAL; 24982 REPEAT i := 1 TO LENGTH(s); 24983 ch := s[i]; 24984 IF ((ch = '\x9') OR (ch = '\xA')) OR (ch = '\xD') THEN 24985 RETURN (FALSE); 24986 END_IF; 24987 END_REPEAT; 24988 RETURN (TRUE); 24989END_FUNCTION; 24990 24991-- IN AP214 24992FUNCTION convert_plane_angle_for_pair_from_radian 24993 (pair : kinematic_pair; 24994 angle_expr : REAL ) : plane_angle_measure; 24995 LOCAL 24996 link_rep : kinematic_link_representation (*:= representation_of_link(pair.joint.first_link)*); 24997 link_cntxt : representation_context; 24998 pa_units : SET OF unit := []; 24999 pau : unit; 25000 conv_factor : REAL := 1.0; 25001 result : plane_angle_measure; 25002 END_LOCAL; 25003 link_cntxt := link_rep\representation.context_of_items; 25004 IF NOT ('STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(link_cntxt)) THEN 25005 RETURN (?); 25006 END_IF; 25007 pa_units := QUERY (unit <* link_cntxt\global_unit_assigned_context.units| 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(unit)); 25008 IF SIZEOF(pa_units) <> 1 THEN 25009 RETURN (?); 25010 END_IF; 25011 pau := pa_units[1]; 25012 IF NOT ('STEP_MERGED_CAD_SCHEMA.SI_UNIT' IN TYPEOF(pau)) AND NOT ('STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) THEN 25013 RETURN (?); 25014 END_IF; 25015 REPEAT WHILE 'STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau); 25016 conv_factor := conv_factor * pau\conversion_based_unit.conversion_factor.value_component; 25017 pau := pau\conversion_based_unit.conversion_factor.unit_component; 25018 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 25019 RETURN (?); 25020 END_IF; 25021 END_REPEAT; 25022 IF pau\si_unit.name <> si_unit_name.radian THEN 25023 RETURN (?); 25024 END_IF; 25025 CASE pau\si_unit.prefix OF 25026 si_prefix.exa : 25027 conv_factor := 1.0E+018 * conv_factor; 25028 si_prefix.peta : 25029 conv_factor := 1.0E+015 * conv_factor; 25030 si_prefix.tera : 25031 conv_factor := 1.0E+012 * conv_factor; 25032 si_prefix.giga : 25033 conv_factor := 1.0E+009 * conv_factor; 25034 si_prefix.mega : 25035 conv_factor := 1.0E+006 * conv_factor; 25036 si_prefix.kilo : 25037 conv_factor := 1000.00 * conv_factor; 25038 si_prefix.hecto : 25039 conv_factor := 100.000 * conv_factor; 25040 si_prefix.deca : 25041 conv_factor := 10.0 * conv_factor; 25042 si_prefix.deci : 25043 conv_factor := 0.100000 * conv_factor; 25044 si_prefix.centi : 25045 conv_factor := 0.0100000 * conv_factor; 25046 si_prefix.milli : 25047 conv_factor := 0.00100000 * conv_factor; 25048 si_prefix.micro : 25049 conv_factor := 1.0E-006 * conv_factor; 25050 si_prefix.nano : 25051 conv_factor := 1.0E-009 * conv_factor; 25052 si_prefix.pico : 25053 conv_factor := 1.0E-012 * conv_factor; 25054 si_prefix.femto : 25055 conv_factor := 1.0E-015 * conv_factor; 25056 si_prefix.atto : 25057 conv_factor := 1.0E-018 * conv_factor; 25058 END_CASE; 25059 result := angle_expr / conv_factor; 25060 RETURN (result); 25061END_FUNCTION; 25062 25063-- DIFF IN AP214 25064-- IN AP214/AP242 25065FUNCTION convert_spatial_to_ypr_rotation 25066 (pair : kinematic_pair; 25067 rotation : spatial_rotation ) : ypr_rotation; 25068 LOCAL 25069 axis : direction; 25070 angle : plane_angle_measure; 25071 conv_angle : plane_angle_measure; 25072 ya : plane_angle_measure; 25073 pa : plane_angle_measure; 25074 ra : plane_angle_measure; 25075 ucf : REAL; 25076 dx : REAL; 25077 dy : REAL; 25078 dz : REAL; 25079 s_a : REAL; 25080 c_a : REAL; 25081 rotmat : ARRAY [1:3] OF ARRAY [1:3] OF REAL; 25082 cm1 : REAL; 25083 s_y : REAL; 25084 c_y : REAL; 25085 s_r : REAL; 25086 c_r : REAL; 25087 END_LOCAL; 25088 IF 'STEP_MERGED_CAD_SCHEMA.YPR_ROTATION' IN TYPEOF(rotation) THEN 25089 RETURN (rotation); 25090 END_IF; 25091 axis := normalise(rotation\rotation_about_direction.direction_of_axis); 25092 angle := rotation\rotation_about_direction.rotation_angle; 25093 IF angle = 0.0 THEN 25094 RETURN ([ 0.0, 0.0, 0.0 ]); 25095 END_IF; 25096 dx := axis.direction_ratios[1]; 25097 dy := axis.direction_ratios[2]; 25098 dz := axis.direction_ratios[3]; 25099 conv_angle := plane_angle_for_pair_in_radian(pair, angle); 25100 IF NOT ('STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(conv_angle)) THEN 25101 RETURN (?); 25102 END_IF; 25103 ucf := angle / conv_angle; 25104 s_a := sin(conv_angle); 25105 c_a := cos(conv_angle); 25106 IF (dy = 0.0) AND (dx * dz = 0.0) THEN 25107 REPEAT WHILE conv_angle <= -3.14159; 25108 conv_angle := conv_angle + 2.0 * 3.14159; 25109 END_REPEAT; 25110 REPEAT WHILE conv_angle > 3.14159; 25111 conv_angle := conv_angle - 2.0 * 3.14159; 25112 END_REPEAT; 25113 ya := ucf * conv_angle; 25114 IF conv_angle <> 3.14159 THEN 25115 ra := -ya; 25116 ELSE 25117 ra := ya; 25118 END_IF; 25119 IF dx <> 0.0 THEN 25120 IF dx > 0.0 THEN 25121 RETURN ([ 0.0, 0.0, ya ]); 25122 ELSE 25123 RETURN ([ 0.0, 0.0, ra ]); 25124 END_IF; 25125 ELSE 25126 IF dz > 0.0 THEN 25127 RETURN ([ ya, 0.0, 0.0 ]); 25128 ELSE 25129 RETURN ([ ra, 0.0, 0.0 ]); 25130 END_IF; 25131 END_IF; 25132 END_IF; 25133 IF ((dy <> 0.0) AND (dx = 0.0)) AND (dz = 0.0) THEN 25134 IF c_a >= 0.0 THEN 25135 ya := 0.0; 25136 ra := 0.0; 25137 ELSE 25138 ya := ucf * 3.14159; 25139 ra := ya; 25140 END_IF; 25141 pa := ucf * atan(s_a, ABS(c_a)); 25142 IF dy < 0.0 THEN 25143 pa := -pa; 25144 END_IF; 25145 RETURN ([ ya, pa, ra ]); 25146 END_IF; 25147 cm1 := 1.0 - c_a; 25148 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 ] ]; 25149 IF ABS(rotmat[1][3]) = 1.0 THEN 25150 BEGIN 25151 IF rotmat[1][3] = 1.0 THEN 25152 pa := 0.500000 * 3.14159; 25153 ELSE 25154 pa := -0.500000 * 3.14159; 25155 END_IF; 25156 ra := 0.0; 25157 ya := atan(rotmat[2][1], rotmat[2][2]); 25158 IF rotmat[2][2] < 0.0 THEN 25159 IF ya <= 0.0 THEN 25160 ya := ya + 3.14159; 25161 ELSE 25162 ya := ya - 3.14159; 25163 END_IF; 25164 END_IF; 25165 END; 25166 ELSE 25167 BEGIN 25168 ya := atan(-rotmat[1][2], rotmat[1][1]); 25169 IF rotmat[1][1] < 0.0 THEN 25170 IF ya <= 0.0 THEN 25171 ya := ya + 3.14159; 25172 ELSE 25173 ya := ya - 3.14159; 25174 END_IF; 25175 END_IF; 25176 ra := atan(-rotmat[2][3], rotmat[3][3]); 25177 IF rotmat[3][3] < 0.0 THEN 25178 IF ra <= 0.0 THEN 25179 ra := ra + 3.14159; 25180 ELSE 25181 ra := ra - 3.14159; 25182 END_IF; 25183 END_IF; 25184 s_y := sin(ya); 25185 c_y := cos(ya); 25186 s_r := sin(ra); 25187 c_r := cos(ra); 25188 IF ((ABS(s_y) > ABS(c_y)) AND (ABS(s_y) > ABS(s_r))) AND (ABS(s_y) > ABS(c_r)) THEN 25189 cm1 := -rotmat[1][2] / s_y; 25190 ELSE 25191 IF (ABS(c_y) > ABS(s_r)) AND (ABS(c_y) > ABS(c_r)) THEN 25192 cm1 := rotmat[1][1] / c_y; 25193 ELSE 25194 IF ABS(s_r) > ABS(c_r) THEN 25195 cm1 := -rotmat[2][3] / s_r; 25196 ELSE 25197 cm1 := rotmat[3][3] / c_r; 25198 END_IF; 25199 END_IF; 25200 END_IF; 25201 pa := atan(rotmat[1][3], cm1); 25202 END; 25203 END_IF; 25204 ya := ya * ucf; 25205 pa := pa * ucf; 25206 ra := ra * ucf; 25207 RETURN ([ ya, pa, ra ]); 25208END_FUNCTION; 25209 25210-- IN AP242 25211FUNCTION convert_to_literal 25212 (val : maths_atom ) : generic_literal; 25213 LOCAL 25214 types : SET OF STRING := TYPEOF(val); 25215 END_LOCAL; 25216 IF 'INTEGER' IN types THEN 25217 RETURN (make_int_literal(val)); 25218 END_IF; 25219 IF 'REAL' IN types THEN 25220 RETURN (make_real_literal(val)); 25221 END_IF; 25222 IF 'BOOLEAN' IN types THEN 25223 RETURN (make_boolean_literal(val)); 25224 END_IF; 25225 IF 'STRING' IN types THEN 25226 RETURN (make_string_literal(val)); 25227 END_IF; 25228 IF 'LOGICAL' IN types THEN 25229 RETURN (make_logical_literal(val)); 25230 END_IF; 25231 IF 'BINARY' IN types THEN 25232 RETURN (make_binary_literal(val)); 25233 END_IF; 25234 IF schema_prefix + 'MATHS_ENUM_ATOM' IN types THEN 25235 RETURN (make_maths_enum_literal(val)); 25236 END_IF; 25237 RETURN (?); 25238END_FUNCTION; 25239 25240-- IN AP242 25241FUNCTION convert_to_maths_function 25242 (func : maths_function_select ) : maths_function; 25243 LOCAL 25244 efenum : elementary_function_enumerators; 25245 mthfun : maths_function; 25246 END_LOCAL; 25247 IF schema_prefix + 'MATHS_FUNCTION' IN TYPEOF(func) THEN 25248 mthfun := func; 25249 ELSE 25250 efenum := func; 25251 mthfun := make_elementary_function(efenum); 25252 END_IF; 25253 RETURN (mthfun); 25254END_FUNCTION; 25255 25256-- IN AP242 25257FUNCTION convert_to_maths_value 25258 (val : GENERIC : G ) : maths_value; 25259 LOCAL 25260 types : SET OF STRING := TYPEOF(val); 25261 ival : maths_integer; 25262 rval : maths_real; 25263 nval : maths_number; 25264 tfval : maths_boolean; 25265 lval : maths_logical; 25266 sval : maths_string; 25267 bval : maths_binary; 25268 tval : maths_tuple := the_empty_maths_tuple; 25269 mval : maths_value; 25270 END_LOCAL; 25271 IF schema_prefix + 'MATHS_VALUE' IN types THEN 25272 RETURN (val); 25273 END_IF; 25274 IF 'INTEGER' IN types THEN 25275 ival := val; 25276 RETURN (ival); 25277 END_IF; 25278 IF 'REAL' IN types THEN 25279 rval := val; 25280 RETURN (rval); 25281 END_IF; 25282 IF 'NUMBER' IN types THEN 25283 nval := val; 25284 RETURN (nval); 25285 END_IF; 25286 IF 'BOOLEAN' IN types THEN 25287 tfval := val; 25288 RETURN (tfval); 25289 END_IF; 25290 IF 'LOGICAL' IN types THEN 25291 lval := val; 25292 RETURN (lval); 25293 END_IF; 25294 IF 'STRING' IN types THEN 25295 sval := val; 25296 RETURN (sval); 25297 END_IF; 25298 IF 'BINARY' IN types THEN 25299 bval := val; 25300 RETURN (bval); 25301 END_IF; 25302 IF 'LIST' IN types THEN 25303 REPEAT i := 1 TO SIZEOF(val); 25304 mval := convert_to_maths_value(val[i]); 25305 IF NOT EXISTS(mval) THEN 25306 RETURN (?); 25307 END_IF; 25308 INSERT( tval, mval, i - 1 ); 25309 END_REPEAT; 25310 RETURN (tval); 25311 END_IF; 25312 RETURN (?); 25313END_FUNCTION; 25314 25315-- IN AP242 25316FUNCTION convert_to_operand 25317 (val : maths_value ) : generic_expression; 25318 LOCAL 25319 types : SET OF STRING := stripped_typeof(val); 25320 END_LOCAL; 25321 IF 'GENERIC_EXPRESSION' IN types THEN 25322 RETURN (val); 25323 END_IF; 25324 IF 'MATHS_ATOM' IN types THEN 25325 RETURN (convert_to_literal(val)); 25326 END_IF; 25327 IF 'ATOM_BASED_VALUE' IN types THEN 25328 RETURN (make_atom_based_literal(val)); 25329 END_IF; 25330 IF 'MATHS_TUPLE' IN types THEN 25331 RETURN (make_maths_tuple_literal(val)); 25332 END_IF; 25333 RETURN (?); 25334END_FUNCTION; 25335 25336-- IN AP242 25337FUNCTION convert_to_operands 25338 (values : AGGREGATE OF maths_value ) : LIST [0:?] OF generic_expression; 25339 LOCAL 25340 operands : LIST OF generic_expression := []; 25341 loc : INTEGER := 0; 25342 END_LOCAL; 25343 IF NOT EXISTS(values) THEN 25344 RETURN (?); 25345 END_IF; 25346 REPEAT i := LOINDEX(values) TO HIINDEX(values); 25347 INSERT( operands, convert_to_operand(values[i]), loc ); 25348 loc := loc + 1; 25349 END_REPEAT; 25350 RETURN (operands); 25351END_FUNCTION; 25352 25353-- IN AP242 25354FUNCTION convert_to_operands_prcmfn 25355 (srcdom : maths_space_or_function; 25356 prepfun : LIST [0:?] OF maths_function; 25357 finfun : maths_function_select ) : LIST [2:?] OF generic_expression; 25358 LOCAL 25359 operands : LIST OF generic_expression := []; 25360 END_LOCAL; 25361 INSERT( operands, srcdom, 0 ); 25362 REPEAT i := 1 TO SIZEOF(prepfun); 25363 INSERT( operands, prepfun[i], i ); 25364 END_REPEAT; 25365 INSERT( operands, convert_to_maths_function(finfun), SIZEOF(prepfun) + 1 ); 25366 RETURN (operands); 25367END_FUNCTION; 25368 25369-- IN AP214 25370FUNCTION coordinated_pair_link_representation 25371 (link : kinematic_link; 25372 pair_placement : rigid_placement ) : BOOLEAN; 25373 LOCAL 25374 link_rep : kinematic_link_representation; 25375 END_LOCAL; 25376 link_rep := representation_of_link(link); 25377 IF link_rep = ? THEN 25378 RETURN (FALSE); 25379 ELSE 25380 IF NOT (pair_placement IN link_rep\representation.items) THEN 25381 RETURN (FALSE); 25382 ELSE 25383 RETURN (TRUE); 25384 END_IF; 25385 END_IF; 25386END_FUNCTION; 25387 25388-- DIFF IN AP214 25389FUNCTION cross_product 25390 (arg1 : direction; 25391 arg2 : direction ) : vector; 25392 LOCAL 25393 mag : REAL; 25394 res : direction; 25395 v1 : LIST [3:3] OF REAL; 25396 v2 : LIST [3:3] OF REAL; 25397 result : vector; 25398 END_LOCAL; 25399 IF (NOT EXISTS(arg1) OR (arg1.dim = 2)) OR (NOT EXISTS(arg2) OR (arg2.dim = 2)) THEN 25400 RETURN (?); 25401 ELSE 25402 BEGIN 25403 v1 := normalise(arg1).direction_ratios; 25404 v2 := normalise(arg2).direction_ratios; 25405 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]) ]); 25406 mag := 0.0; 25407 REPEAT i := 1 TO 3; 25408 mag := mag + res.direction_ratios[i] * res.direction_ratios[i]; 25409 END_REPEAT; 25410 IF mag > 0.0 THEN 25411 result := dummy_gri || vector(res, SQRT(mag)); 25412 ELSE 25413 result := dummy_gri || vector(arg1, 0.0); 25414 END_IF; 25415 RETURN (result); 25416 END; 25417 END_IF; 25418END_FUNCTION; 25419 25420FUNCTION curve_weights_positive 25421 (b : rational_b_spline_curve ) : BOOLEAN; 25422 LOCAL 25423 result : BOOLEAN := TRUE; 25424 END_LOCAL; 25425 REPEAT i := 0 TO b.upper_index_on_control_points; 25426 IF b.weights[i] <= 0.0 THEN 25427 result := FALSE; 25428 RETURN (result); 25429 END_IF; 25430 END_REPEAT; 25431 RETURN (result); 25432END_FUNCTION; 25433 25434-- DIFF IN AP214 25435FUNCTION default_tolerance_table_cell_wr2 25436 (agg : compound_item_definition ) : BOOLEAN; 25437 BEGIN 25438 IF SIZEOF(agg) <= 5 THEN 25439 RETURN (TRUE); 25440 ELSE 25441 RETURN (FALSE); 25442 END_IF; 25443 END; 25444END_FUNCTION; 25445 25446-- DIFF IN AP214 25447FUNCTION default_tolerance_table_cell_wr3 25448 (agg : compound_item_definition ) : BOOLEAN; 25449 BEGIN 25450 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 25451 RETURN (TRUE); 25452 ELSE 25453 RETURN (FALSE); 25454 END_IF; 25455 END; 25456END_FUNCTION; 25457 25458-- DIFF IN AP214 25459FUNCTION default_tolerance_table_cell_wr4 25460 (agg : compound_item_definition ) : BOOLEAN; 25461 BEGIN 25462 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 25463 RETURN (TRUE); 25464 ELSE 25465 RETURN (FALSE); 25466 END_IF; 25467 END; 25468END_FUNCTION; 25469 25470-- DIFF IN AP214 25471FUNCTION default_tolerance_table_cell_wr5 25472 (agg : compound_item_definition ) : BOOLEAN; 25473 BEGIN 25474 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 25475 RETURN (TRUE); 25476 ELSE 25477 RETURN (FALSE); 25478 END_IF; 25479 END; 25480END_FUNCTION; 25481 25482-- IN AP242 25483FUNCTION definite_integral_check 25484 (domain : tuple_space; 25485 vrblint : input_selector; 25486 lowerinf : BOOLEAN; 25487 upperinf : BOOLEAN ) : BOOLEAN; 25488 LOCAL 25489 domn : tuple_space := domain; 25490 fspc : maths_space; 25491 dim : nonnegative_integer; 25492 k : positive_integer; 25493 END_LOCAL; 25494 IF (space_dimension(domain) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(domain))) THEN 25495 domn := factor1(domain); 25496 END_IF; 25497 dim := space_dimension(domn); 25498 k := vrblint; 25499 IF k > dim THEN 25500 RETURN (FALSE); 25501 END_IF; 25502 fspc := factor_space(domn, k); 25503 IF NOT (schema_prefix + 'REAL_INTERVAL' IN TYPEOF(fspc)) THEN 25504 RETURN (FALSE); 25505 END_IF; 25506 IF lowerinf AND min_exists(fspc) THEN 25507 RETURN (FALSE); 25508 END_IF; 25509 IF upperinf AND max_exists(fspc) THEN 25510 RETURN (FALSE); 25511 END_IF; 25512 RETURN (TRUE); 25513END_FUNCTION; 25514 25515-- IN AP242 25516FUNCTION definite_integral_expr_check 25517 (operands : LIST [2:?] OF generic_expression; 25518 lowerinf : BOOLEAN; 25519 upperinf : BOOLEAN ) : BOOLEAN; 25520 LOCAL 25521 nops : INTEGER := 2; 25522 vspc : maths_space; 25523 dim : nonnegative_integer; 25524 k : positive_integer; 25525 bspc : maths_space; 25526 END_LOCAL; 25527 IF NOT lowerinf THEN 25528 nops := nops + 1; 25529 END_IF; 25530 IF NOT upperinf THEN 25531 nops := nops + 1; 25532 END_IF; 25533 IF SIZEOF(operands) <> nops THEN 25534 RETURN (FALSE); 25535 END_IF; 25536 IF NOT ('GENERIC_VARIABLE' IN stripped_typeof(operands[2])) THEN 25537 RETURN (FALSE); 25538 END_IF; 25539 IF NOT has_values_space(operands[2]) THEN 25540 RETURN (FALSE); 25541 END_IF; 25542 vspc := values_space_of(operands[2]); 25543 IF NOT ('REAL_INTERVAL' IN stripped_typeof(vspc)) THEN 25544 RETURN (FALSE); 25545 END_IF; 25546 IF lowerinf THEN 25547 IF min_exists(vspc) THEN 25548 RETURN (FALSE); 25549 END_IF; 25550 k := 3; 25551 ELSE 25552 IF NOT has_values_space(operands[3]) THEN 25553 RETURN (FALSE); 25554 END_IF; 25555 bspc := values_space_of(operands[3]); 25556 IF NOT compatible_spaces(bspc, vspc) THEN 25557 RETURN (FALSE); 25558 END_IF; 25559 k := 4; 25560 END_IF; 25561 IF upperinf THEN 25562 IF max_exists(vspc) THEN 25563 RETURN (FALSE); 25564 END_IF; 25565 ELSE 25566 IF NOT has_values_space(operands[k]) THEN 25567 RETURN (FALSE); 25568 END_IF; 25569 bspc := values_space_of(operands[k]); 25570 IF NOT compatible_spaces(bspc, vspc) THEN 25571 RETURN (FALSE); 25572 END_IF; 25573 END_IF; 25574 RETURN (TRUE); 25575END_FUNCTION; 25576 25577-- IN AP203e2/AP242 25578FUNCTION dependently_instantiated 25579 (set_of_input_instances : SET [0:?] OF GENERIC : igen; 25580 set_of_input_types : SET [0:?] OF STRING; 25581 previous_in_chain : LIST [0:?] OF GENERIC : cgen ) : BOOLEAN; 25582 LOCAL 25583 number_of_input_instances : INTEGER; 25584 number_of_referring_instances : INTEGER; 25585 bag_of_referring_instances : BAG OF GENERIC : igen := []; 25586 dependently_instantiated_flag : BOOLEAN; 25587 previous_in_chain_plus : LIST OF GENERIC : cgen := []; 25588 result : BOOLEAN := FALSE; 25589 set_of_types : SET OF STRING := []; 25590 END_LOCAL; 25591 IF EXISTS(set_of_input_instances) THEN 25592 number_of_input_instances := SIZEOF(set_of_input_instances); 25593 set_of_input_types := set_of_input_types + 'GENERIC'; 25594 REPEAT i := 1 TO number_of_input_instances; 25595 bag_of_referring_instances := USEDIN(set_of_input_instances[i], ''); 25596 IF EXISTS(bag_of_referring_instances) THEN 25597 number_of_referring_instances := SIZEOF(bag_of_referring_instances); 25598 dependently_instantiated_flag := FALSE; 25599 REPEAT j := 1 TO number_of_referring_instances; 25600 set_of_types := TYPEOF(bag_of_referring_instances[j]); 25601 IF set_of_types <= set_of_input_types THEN 25602 IF NOT (bag_of_referring_instances[j] IN previous_in_chain) THEN 25603 previous_in_chain_plus := previous_in_chain + set_of_input_instances[i]; 25604 IF dependently_instantiated([ bag_of_referring_instances[j] ], set_of_input_types, previous_in_chain_plus) THEN 25605 dependently_instantiated_flag := FALSE; 25606 ESCAPE; 25607 ELSE 25608 SKIP; 25609 END_IF; 25610 END_IF; 25611 ELSE 25612 dependently_instantiated_flag := FALSE; 25613 ESCAPE; 25614 END_IF; 25615 END_REPEAT; 25616 IF NOT dependently_instantiated_flag THEN 25617 RETURN (FALSE); 25618 END_IF; 25619 ELSE 25620 RETURN (FALSE); 25621 END_IF; 25622 END_REPEAT; 25623 ELSE 25624 RETURN (FALSE); 25625 END_IF; 25626 RETURN (FALSE); 25627END_FUNCTION; 25628 25629-- IN AP203e2/AP242 25630FUNCTION derive_angle 25631 (placement_1 : axis2_placement_3d; 25632 placement_2 : axis2_placement_3d ) : plane_angle_measure; 25633 LOCAL 25634 v1 : direction; 25635 v2 : direction; 25636 mag_v1 : REAL; 25637 mag_v2 : REAL; 25638 theta : plane_angle_measure; 25639 END_LOCAL; 25640 v1 := placement_1.p[1]; 25641 v2 := placement_2.p[1]; 25642 mag_v1 := SQRT(v1.direction_ratios[1] * v1.direction_ratios[1] + v1.direction_ratios[2] * v1.direction_ratios[2]); 25643 mag_v2 := SQRT(v2.direction_ratios[1] * v2.direction_ratios[1] + v2.direction_ratios[2] * v2.direction_ratios[2]); 25644 IF (mag_v1 = 0.0) OR (mag_v2 = 0.0) THEN 25645 theta := 0.0; 25646 RETURN (theta); 25647 END_IF; 25648 theta := ACOS((v1.direction_ratios[1] * v2.direction_ratios[1] + v1.direction_ratios[2] * v2.direction_ratios[2]) / mag_v1 * mag_v2); 25649 RETURN (theta); 25650END_FUNCTION; 25651 25652-- IN AP242 25653FUNCTION derive_definite_integral_domain 25654 (igrl : definite_integral_function ) : tuple_space; 25655 FUNCTION process_product_space 25656 (spc : product_space; 25657 idx : INTEGER; 25658 prefix : INTEGER; 25659 vdomn : maths_space ) : product_space; 25660 LOCAL 25661 uspc : uniform_product_space; 25662 expnt : INTEGER; 25663 factors : LIST OF maths_space; 25664 END_LOCAL; 25665 IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN TYPEOF(spc) THEN 25666 uspc := spc; 25667 expnt := uspc.exponent + prefix; 25668 IF idx <= uspc.exponent THEN 25669 expnt := expnt - 1; 25670 END_IF; 25671 IF expnt = 0 THEN 25672 RETURN (make_listed_product_space([])); 25673 ELSE 25674 RETURN (make_uniform_product_space(uspc.base, expnt)); 25675 END_IF; 25676 ELSE 25677 factors := spc\listed_product_space.factors; 25678 IF idx <= SIZEOF(factors) THEN 25679 REMOVE( factors, idx ); 25680 END_IF; 25681 IF prefix > 0 THEN 25682 INSERT( factors, vdomn, 0 ); 25683 IF prefix > 1 THEN 25684 INSERT( factors, vdomn, 0 ); 25685 END_IF; 25686 END_IF; 25687 RETURN (make_listed_product_space(factors)); 25688 END_IF; 25689 END_FUNCTION; 25690 LOCAL 25691 idomn : tuple_space := igrl.integrand.domain; 25692 types : SET OF STRING := TYPEOF(idomn); 25693 idx : INTEGER := igrl.variable_of_integration; 25694 tupled : BOOLEAN := bool((space_dimension(idomn) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN types)); 25695 prefix : INTEGER := 0; 25696 espc : extended_tuple_space; 25697 vdomn : maths_space; 25698 END_LOCAL; 25699 IF tupled THEN 25700 idomn := factor1(idomn); 25701 types := TYPEOF(idomn); 25702 END_IF; 25703 IF igrl.lower_limit_neg_infinity THEN 25704 prefix := prefix + 1; 25705 END_IF; 25706 IF igrl.upper_limit_pos_infinity THEN 25707 prefix := prefix + 1; 25708 END_IF; 25709 vdomn := factor_space(idomn, idx); 25710 IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN types THEN 25711 espc := idomn; 25712 idomn := make_extended_tuple_space(process_product_space(espc.base, idx, prefix, vdomn), espc.extender); 25713 ELSE 25714 idomn := process_product_space(idomn, idx, prefix, vdomn); 25715 END_IF; 25716 IF tupled THEN 25717 RETURN (one_tuples_of(idomn)); 25718 ELSE 25719 RETURN (idomn); 25720 END_IF; 25721END_FUNCTION; 25722 25723FUNCTION derive_dimensional_exponents 25724 (x : unit ) : dimensional_exponents; 25725 LOCAL 25726 result : dimensional_exponents := dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 25727 END_LOCAL; 25728 IF 'STEP_MERGED_CAD_SCHEMA.DERIVED_UNIT' IN TYPEOF(x) THEN 25729 REPEAT i := LOINDEX(x\derived_unit.elements) TO HIINDEX(x\derived_unit.elements); 25730 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; 25731 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; 25732 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; 25733 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; 25734 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; 25735 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; 25736 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; 25737 END_REPEAT; 25738 ELSE 25739 result := x\named_unit.dimensions; 25740 END_IF; 25741 RETURN (result); 25742END_FUNCTION; 25743 25744-- IN AP242 25745FUNCTION derive_elementary_function_domain 25746 (ef_val : elementary_function_enumerators ) : tuple_space; 25747 IF NOT EXISTS(ef_val) THEN 25748 RETURN (?); 25749 END_IF; 25750 CASE ef_val OF 25751 ef_and : 25752 RETURN (make_extended_tuple_space(the_zero_tuple_space, the_logicals)); 25753 ef_or : 25754 RETURN (make_extended_tuple_space(the_zero_tuple_space, the_logicals)); 25755 ef_not : 25756 RETURN (make_uniform_product_space(the_logicals, 1)); 25757 ef_xor : 25758 RETURN (make_uniform_product_space(the_logicals, 2)); 25759 ef_negate_i : 25760 RETURN (make_uniform_product_space(the_integers, 1)); 25761 ef_add_i : 25762 RETURN (the_integer_tuples); 25763 ef_subtract_i : 25764 RETURN (make_uniform_product_space(the_integers, 2)); 25765 ef_multiply_i : 25766 RETURN (the_integer_tuples); 25767 ef_divide_i : 25768 RETURN (make_uniform_product_space(the_integers, 2)); 25769 ef_mod_i : 25770 RETURN (make_uniform_product_space(the_integers, 2)); 25771 ef_exponentiate_i : 25772 RETURN (make_uniform_product_space(the_integers, 2)); 25773 ef_eq_i : 25774 RETURN (make_uniform_product_space(the_integers, 2)); 25775 ef_ne_i : 25776 RETURN (make_uniform_product_space(the_integers, 2)); 25777 ef_gt_i : 25778 RETURN (make_uniform_product_space(the_integers, 2)); 25779 ef_lt_i : 25780 RETURN (make_uniform_product_space(the_integers, 2)); 25781 ef_ge_i : 25782 RETURN (make_uniform_product_space(the_integers, 2)); 25783 ef_le_i : 25784 RETURN (make_uniform_product_space(the_integers, 2)); 25785 ef_abs_i : 25786 RETURN (make_uniform_product_space(the_integers, 1)); 25787 ef_if_i : 25788 RETURN (make_listed_product_space([ the_logicals, the_integers, the_integers ])); 25789 ef_negate_r : 25790 RETURN (make_uniform_product_space(the_reals, 1)); 25791 ef_reciprocal_r : 25792 RETURN (make_uniform_product_space(the_reals, 1)); 25793 ef_add_r : 25794 RETURN (the_real_tuples); 25795 ef_subtract_r : 25796 RETURN (make_uniform_product_space(the_reals, 2)); 25797 ef_multiply_r : 25798 RETURN (the_real_tuples); 25799 ef_divide_r : 25800 RETURN (make_uniform_product_space(the_reals, 2)); 25801 ef_mod_r : 25802 RETURN (make_uniform_product_space(the_reals, 2)); 25803 ef_exponentiate_r : 25804 RETURN (make_listed_product_space([ the_nonnegative_reals, the_reals ])); 25805 ef_exponentiate_ri : 25806 RETURN (make_listed_product_space([ the_reals, the_integers ])); 25807 ef_eq_r : 25808 RETURN (make_uniform_product_space(the_reals, 2)); 25809 ef_ne_r : 25810 RETURN (make_uniform_product_space(the_reals, 2)); 25811 ef_gt_r : 25812 RETURN (make_uniform_product_space(the_reals, 2)); 25813 ef_lt_r : 25814 RETURN (make_uniform_product_space(the_reals, 2)); 25815 ef_ge_r : 25816 RETURN (make_uniform_product_space(the_reals, 2)); 25817 ef_le_r : 25818 RETURN (make_uniform_product_space(the_reals, 2)); 25819 ef_abs_r : 25820 RETURN (make_uniform_product_space(the_reals, 1)); 25821 ef_acos_r : 25822 RETURN (make_uniform_product_space(the_neg1_one_interval, 1)); 25823 ef_asin_r : 25824 RETURN (make_uniform_product_space(the_neg1_one_interval, 1)); 25825 ef_atan2_r : 25826 RETURN (make_uniform_product_space(the_reals, 2)); 25827 ef_cos_r : 25828 RETURN (make_uniform_product_space(the_reals, 1)); 25829 ef_exp_r : 25830 RETURN (make_uniform_product_space(the_reals, 1)); 25831 ef_ln_r : 25832 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 25833 ef_log2_r : 25834 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 25835 ef_log10_r : 25836 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 25837 ef_sin_r : 25838 RETURN (make_uniform_product_space(the_reals, 1)); 25839 ef_sqrt_r : 25840 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 25841 ef_tan_r : 25842 RETURN (make_uniform_product_space(the_reals, 1)); 25843 ef_if_r : 25844 RETURN (make_listed_product_space([ the_logicals, the_reals, the_reals ])); 25845 ef_negate_c : 25846 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25847 ef_reciprocal_c : 25848 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25849 ef_add_c : 25850 RETURN (the_complex_tuples); 25851 ef_subtract_c : 25852 RETURN (make_uniform_product_space(the_complex_numbers, 2)); 25853 ef_multiply_c : 25854 RETURN (the_complex_tuples); 25855 ef_divide_c : 25856 RETURN (make_uniform_product_space(the_complex_numbers, 2)); 25857 ef_exponentiate_c : 25858 RETURN (make_uniform_product_space(the_complex_numbers, 2)); 25859 ef_exponentiate_ci : 25860 RETURN (make_listed_product_space([ the_complex_numbers, the_integers ])); 25861 ef_eq_c : 25862 RETURN (make_uniform_product_space(the_complex_numbers, 2)); 25863 ef_ne_c : 25864 RETURN (make_uniform_product_space(the_complex_numbers, 2)); 25865 ef_conjugate_c : 25866 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25867 ef_abs_c : 25868 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25869 ef_arg_c : 25870 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25871 ef_cos_c : 25872 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25873 ef_exp_c : 25874 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25875 ef_ln_c : 25876 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25877 ef_sin_c : 25878 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25879 ef_sqrt_c : 25880 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25881 ef_tan_c : 25882 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 25883 ef_if_c : 25884 RETURN (make_listed_product_space([ the_logicals, the_complex_numbers, the_complex_numbers ])); 25885 ef_subscript_s : 25886 RETURN (make_listed_product_space([ the_strings, the_integers ])); 25887 ef_eq_s : 25888 RETURN (make_uniform_product_space(the_strings, 2)); 25889 ef_ne_s : 25890 RETURN (make_uniform_product_space(the_strings, 2)); 25891 ef_gt_s : 25892 RETURN (make_uniform_product_space(the_strings, 2)); 25893 ef_lt_s : 25894 RETURN (make_uniform_product_space(the_strings, 2)); 25895 ef_ge_s : 25896 RETURN (make_uniform_product_space(the_strings, 2)); 25897 ef_le_s : 25898 RETURN (make_uniform_product_space(the_strings, 2)); 25899 ef_subsequence_s : 25900 RETURN (make_listed_product_space([ the_strings, the_integers, the_integers ])); 25901 ef_concat_s : 25902 RETURN (make_extended_tuple_space(the_zero_tuple_space, the_strings)); 25903 ef_size_s : 25904 RETURN (make_uniform_product_space(the_strings, 1)); 25905 ef_format : 25906 RETURN (make_listed_product_space([ the_numbers, the_strings ])); 25907 ef_value : 25908 RETURN (make_uniform_product_space(the_strings, 1)); 25909 ef_like : 25910 RETURN (make_uniform_product_space(the_strings, 2)); 25911 ef_if_s : 25912 RETURN (make_listed_product_space([ the_logicals, the_strings, the_strings ])); 25913 ef_subscript_b : 25914 RETURN (make_listed_product_space([ the_binarys, the_integers ])); 25915 ef_eq_b : 25916 RETURN (make_uniform_product_space(the_binarys, 2)); 25917 ef_ne_b : 25918 RETURN (make_uniform_product_space(the_binarys, 2)); 25919 ef_gt_b : 25920 RETURN (make_uniform_product_space(the_binarys, 2)); 25921 ef_lt_b : 25922 RETURN (make_uniform_product_space(the_binarys, 2)); 25923 ef_ge_b : 25924 RETURN (make_uniform_product_space(the_binarys, 2)); 25925 ef_le_b : 25926 RETURN (make_uniform_product_space(the_binarys, 2)); 25927 ef_subsequence_b : 25928 RETURN (make_listed_product_space([ the_binarys, the_integers, the_integers ])); 25929 ef_concat_b : 25930 RETURN (make_extended_tuple_space(the_zero_tuple_space, the_binarys)); 25931 ef_size_b : 25932 RETURN (make_uniform_product_space(the_binarys, 1)); 25933 ef_if_b : 25934 RETURN (make_listed_product_space([ the_logicals, the_binarys, the_binarys ])); 25935 ef_subscript_t : 25936 RETURN (make_listed_product_space([ the_tuples, the_integers ])); 25937 ef_eq_t : 25938 RETURN (make_uniform_product_space(the_tuples, 2)); 25939 ef_ne_t : 25940 RETURN (make_uniform_product_space(the_tuples, 2)); 25941 ef_concat_t : 25942 RETURN (make_extended_tuple_space(the_zero_tuple_space, the_tuples)); 25943 ef_size_t : 25944 RETURN (make_uniform_product_space(the_tuples, 1)); 25945 ef_entuple : 25946 RETURN (the_tuples); 25947 ef_detuple : 25948 RETURN (make_uniform_product_space(the_generics, 1)); 25949 ef_insert : 25950 RETURN (make_listed_product_space([ the_tuples, the_generics, the_integers ])); 25951 ef_remove : 25952 RETURN (make_listed_product_space([ the_tuples, the_integers ])); 25953 ef_if_t : 25954 RETURN (make_listed_product_space([ the_logicals, the_tuples, the_tuples ])); 25955 ef_sum_it : 25956 RETURN (make_uniform_product_space(the_integer_tuples, 1)); 25957 ef_product_it : 25958 RETURN (make_uniform_product_space(the_integer_tuples, 1)); 25959 ef_add_it : 25960 RETURN (make_extended_tuple_space(the_integer_tuples, the_integer_tuples)); 25961 ef_subtract_it : 25962 RETURN (make_uniform_product_space(the_integer_tuples, 2)); 25963 ef_scalar_mult_it : 25964 RETURN (make_listed_product_space([ the_integers, the_integer_tuples ])); 25965 ef_dot_prod_it : 25966 RETURN (make_uniform_product_space(the_integer_tuples, 2)); 25967 ef_sum_rt : 25968 RETURN (make_uniform_product_space(the_real_tuples, 1)); 25969 ef_product_rt : 25970 RETURN (make_uniform_product_space(the_real_tuples, 1)); 25971 ef_add_rt : 25972 RETURN (make_extended_tuple_space(the_real_tuples, the_real_tuples)); 25973 ef_subtract_rt : 25974 RETURN (make_uniform_product_space(the_real_tuples, 2)); 25975 ef_scalar_mult_rt : 25976 RETURN (make_listed_product_space([ the_reals, the_real_tuples ])); 25977 ef_dot_prod_rt : 25978 RETURN (make_uniform_product_space(the_real_tuples, 2)); 25979 ef_norm_rt : 25980 RETURN (make_uniform_product_space(the_real_tuples, 1)); 25981 ef_sum_ct : 25982 RETURN (make_uniform_product_space(the_complex_tuples, 1)); 25983 ef_product_ct : 25984 RETURN (make_uniform_product_space(the_complex_tuples, 1)); 25985 ef_add_ct : 25986 RETURN (make_extended_tuple_space(the_complex_tuples, the_complex_tuples)); 25987 ef_subtract_ct : 25988 RETURN (make_uniform_product_space(the_complex_tuples, 2)); 25989 ef_scalar_mult_ct : 25990 RETURN (make_listed_product_space([ the_complex_numbers, the_complex_tuples ])); 25991 ef_dot_prod_ct : 25992 RETURN (make_uniform_product_space(the_complex_tuples, 2)); 25993 ef_norm_ct : 25994 RETURN (make_uniform_product_space(the_complex_tuples, 1)); 25995 ef_if : 25996 RETURN (make_listed_product_space([ the_logicals, the_generics, the_generics ])); 25997 ef_ensemble : 25998 RETURN (the_tuples); 25999 ef_member_of : 26000 RETURN (make_listed_product_space([ the_generics, the_maths_spaces ])); 26001 OTHERWISE : 26002 RETURN (?); 26003 END_CASE; 26004END_FUNCTION; 26005 26006-- IN AP242 26007FUNCTION derive_elementary_function_range 26008 (ef_val : elementary_function_enumerators ) : tuple_space; 26009 IF NOT EXISTS(ef_val) THEN 26010 RETURN (?); 26011 END_IF; 26012 CASE ef_val OF 26013 ef_and : 26014 RETURN (make_uniform_product_space(the_logicals, 1)); 26015 ef_or : 26016 RETURN (make_uniform_product_space(the_logicals, 1)); 26017 ef_not : 26018 RETURN (make_uniform_product_space(the_logicals, 1)); 26019 ef_xor : 26020 RETURN (make_uniform_product_space(the_logicals, 2)); 26021 ef_negate_i : 26022 RETURN (make_uniform_product_space(the_integers, 1)); 26023 ef_add_i : 26024 RETURN (make_uniform_product_space(the_integers, 1)); 26025 ef_subtract_i : 26026 RETURN (make_uniform_product_space(the_integers, 1)); 26027 ef_multiply_i : 26028 RETURN (make_uniform_product_space(the_integers, 1)); 26029 ef_divide_i : 26030 RETURN (make_uniform_product_space(the_integers, 1)); 26031 ef_mod_i : 26032 RETURN (make_uniform_product_space(the_integers, 1)); 26033 ef_exponentiate_i : 26034 RETURN (make_uniform_product_space(the_integers, 1)); 26035 ef_eq_i : 26036 RETURN (make_uniform_product_space(the_logicals, 1)); 26037 ef_ne_i : 26038 RETURN (make_uniform_product_space(the_logicals, 1)); 26039 ef_gt_i : 26040 RETURN (make_uniform_product_space(the_logicals, 1)); 26041 ef_lt_i : 26042 RETURN (make_uniform_product_space(the_logicals, 1)); 26043 ef_ge_i : 26044 RETURN (make_uniform_product_space(the_logicals, 1)); 26045 ef_le_i : 26046 RETURN (make_uniform_product_space(the_logicals, 1)); 26047 ef_abs_i : 26048 RETURN (make_uniform_product_space(the_integers, 1)); 26049 ef_if_i : 26050 RETURN (make_uniform_product_space(the_integers, 1)); 26051 ef_negate_r : 26052 RETURN (make_uniform_product_space(the_reals, 1)); 26053 ef_reciprocal_r : 26054 RETURN (make_uniform_product_space(the_reals, 1)); 26055 ef_add_r : 26056 RETURN (make_uniform_product_space(the_reals, 1)); 26057 ef_subtract_r : 26058 RETURN (make_uniform_product_space(the_reals, 1)); 26059 ef_multiply_r : 26060 RETURN (make_uniform_product_space(the_reals, 1)); 26061 ef_divide_r : 26062 RETURN (make_uniform_product_space(the_reals, 1)); 26063 ef_mod_r : 26064 RETURN (make_uniform_product_space(the_reals, 1)); 26065 ef_exponentiate_r : 26066 RETURN (make_uniform_product_space(the_reals, 1)); 26067 ef_exponentiate_ri : 26068 RETURN (make_uniform_product_space(the_reals, 1)); 26069 ef_eq_r : 26070 RETURN (make_uniform_product_space(the_logicals, 1)); 26071 ef_ne_r : 26072 RETURN (make_uniform_product_space(the_logicals, 1)); 26073 ef_gt_r : 26074 RETURN (make_uniform_product_space(the_logicals, 1)); 26075 ef_lt_r : 26076 RETURN (make_uniform_product_space(the_logicals, 1)); 26077 ef_ge_r : 26078 RETURN (make_uniform_product_space(the_logicals, 1)); 26079 ef_le_r : 26080 RETURN (make_uniform_product_space(the_logicals, 1)); 26081 ef_abs_r : 26082 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 26083 ef_acos_r : 26084 RETURN (make_uniform_product_space(the_zero_pi_interval, 1)); 26085 ef_asin_r : 26086 RETURN (make_uniform_product_space(the_neghalfpi_halfpi_interval, 1)); 26087 ef_atan2_r : 26088 RETURN (make_uniform_product_space(the_negpi_pi_interval, 1)); 26089 ef_cos_r : 26090 RETURN (make_uniform_product_space(the_neg1_one_interval, 1)); 26091 ef_exp_r : 26092 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 26093 ef_ln_r : 26094 RETURN (make_uniform_product_space(the_reals, 1)); 26095 ef_log2_r : 26096 RETURN (make_uniform_product_space(the_reals, 1)); 26097 ef_log10_r : 26098 RETURN (make_uniform_product_space(the_reals, 1)); 26099 ef_sin_r : 26100 RETURN (make_uniform_product_space(the_neg1_one_interval, 1)); 26101 ef_sqrt_r : 26102 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 26103 ef_tan_r : 26104 RETURN (make_uniform_product_space(the_reals, 1)); 26105 ef_if_r : 26106 RETURN (make_uniform_product_space(the_reals, 1)); 26107 ef_negate_c : 26108 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26109 ef_reciprocal_c : 26110 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26111 ef_add_c : 26112 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26113 ef_subtract_c : 26114 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26115 ef_multiply_c : 26116 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26117 ef_divide_c : 26118 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26119 ef_exponentiate_c : 26120 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26121 ef_exponentiate_ci : 26122 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26123 ef_eq_c : 26124 RETURN (make_uniform_product_space(the_logicals, 1)); 26125 ef_ne_c : 26126 RETURN (make_uniform_product_space(the_logicals, 1)); 26127 ef_conjugate_c : 26128 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26129 ef_abs_c : 26130 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 26131 ef_arg_c : 26132 RETURN (make_uniform_product_space(the_negpi_pi_interval, 1)); 26133 ef_cos_c : 26134 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26135 ef_exp_c : 26136 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26137 ef_ln_c : 26138 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26139 ef_sin_c : 26140 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26141 ef_sqrt_c : 26142 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26143 ef_tan_c : 26144 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26145 ef_if_c : 26146 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26147 ef_subscript_s : 26148 RETURN (make_uniform_product_space(the_strings, 1)); 26149 ef_eq_s : 26150 RETURN (make_uniform_product_space(the_logicals, 1)); 26151 ef_ne_s : 26152 RETURN (make_uniform_product_space(the_logicals, 1)); 26153 ef_gt_s : 26154 RETURN (make_uniform_product_space(the_logicals, 1)); 26155 ef_lt_s : 26156 RETURN (make_uniform_product_space(the_logicals, 1)); 26157 ef_ge_s : 26158 RETURN (make_uniform_product_space(the_logicals, 1)); 26159 ef_le_s : 26160 RETURN (make_uniform_product_space(the_logicals, 1)); 26161 ef_subsequence_s : 26162 RETURN (make_uniform_product_space(the_strings, 1)); 26163 ef_concat_s : 26164 RETURN (make_uniform_product_space(the_strings, 1)); 26165 ef_size_s : 26166 RETURN (make_uniform_product_space(the_integers, 1)); 26167 ef_format : 26168 RETURN (make_uniform_product_space(the_strings, 1)); 26169 ef_value : 26170 RETURN (make_uniform_product_space(the_reals, 1)); 26171 ef_like : 26172 RETURN (make_uniform_product_space(the_booleans, 1)); 26173 ef_if_s : 26174 RETURN (make_uniform_product_space(the_strings, 1)); 26175 ef_subscript_b : 26176 RETURN (make_uniform_product_space(the_binarys, 1)); 26177 ef_eq_b : 26178 RETURN (make_uniform_product_space(the_logicals, 1)); 26179 ef_ne_b : 26180 RETURN (make_uniform_product_space(the_logicals, 1)); 26181 ef_gt_b : 26182 RETURN (make_uniform_product_space(the_logicals, 1)); 26183 ef_lt_b : 26184 RETURN (make_uniform_product_space(the_logicals, 1)); 26185 ef_ge_b : 26186 RETURN (make_uniform_product_space(the_logicals, 1)); 26187 ef_le_b : 26188 RETURN (make_uniform_product_space(the_logicals, 1)); 26189 ef_subsequence_b : 26190 RETURN (make_uniform_product_space(the_binarys, 1)); 26191 ef_concat_b : 26192 RETURN (make_uniform_product_space(the_binarys, 1)); 26193 ef_size_b : 26194 RETURN (make_uniform_product_space(the_integers, 1)); 26195 ef_if_b : 26196 RETURN (make_uniform_product_space(the_binarys, 1)); 26197 ef_subscript_t : 26198 RETURN (make_uniform_product_space(the_generics, 1)); 26199 ef_eq_t : 26200 RETURN (make_uniform_product_space(the_logicals, 1)); 26201 ef_ne_t : 26202 RETURN (make_uniform_product_space(the_logicals, 1)); 26203 ef_concat_t : 26204 RETURN (make_uniform_product_space(the_tuples, 1)); 26205 ef_size_t : 26206 RETURN (make_uniform_product_space(the_integers, 1)); 26207 ef_entuple : 26208 RETURN (make_uniform_product_space(the_tuples, 1)); 26209 ef_detuple : 26210 RETURN (the_tuples); 26211 ef_insert : 26212 RETURN (make_uniform_product_space(the_tuples, 1)); 26213 ef_remove : 26214 RETURN (make_uniform_product_space(the_tuples, 1)); 26215 ef_if_t : 26216 RETURN (make_uniform_product_space(the_tuples, 1)); 26217 ef_sum_it : 26218 RETURN (make_uniform_product_space(the_integers, 1)); 26219 ef_product_it : 26220 RETURN (make_uniform_product_space(the_integers, 1)); 26221 ef_add_it : 26222 RETURN (make_uniform_product_space(the_integer_tuples, 1)); 26223 ef_subtract_it : 26224 RETURN (make_uniform_product_space(the_integer_tuples, 1)); 26225 ef_scalar_mult_it : 26226 RETURN (make_uniform_product_space(the_integer_tuples, 1)); 26227 ef_dot_prod_it : 26228 RETURN (make_uniform_product_space(the_integers, 1)); 26229 ef_sum_rt : 26230 RETURN (make_uniform_product_space(the_reals, 1)); 26231 ef_product_rt : 26232 RETURN (make_uniform_product_space(the_reals, 1)); 26233 ef_add_rt : 26234 RETURN (make_uniform_product_space(the_real_tuples, 1)); 26235 ef_subtract_rt : 26236 RETURN (make_uniform_product_space(the_real_tuples, 1)); 26237 ef_scalar_mult_rt : 26238 RETURN (make_uniform_product_space(the_real_tuples, 1)); 26239 ef_dot_prod_rt : 26240 RETURN (make_uniform_product_space(the_reals, 1)); 26241 ef_norm_rt : 26242 RETURN (make_uniform_product_space(the_reals, 1)); 26243 ef_sum_ct : 26244 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26245 ef_product_ct : 26246 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26247 ef_add_ct : 26248 RETURN (make_uniform_product_space(the_complex_tuples, 1)); 26249 ef_subtract_ct : 26250 RETURN (make_uniform_product_space(the_complex_tuples, 1)); 26251 ef_scalar_mult_ct : 26252 RETURN (make_uniform_product_space(the_complex_tuples, 1)); 26253 ef_dot_prod_ct : 26254 RETURN (make_uniform_product_space(the_complex_numbers, 1)); 26255 ef_norm_ct : 26256 RETURN (make_uniform_product_space(the_nonnegative_reals, 1)); 26257 ef_if : 26258 RETURN (make_uniform_product_space(the_generics, 1)); 26259 ef_ensemble : 26260 RETURN (make_uniform_product_space(the_maths_spaces, 1)); 26261 ef_member_of : 26262 RETURN (make_uniform_product_space(the_logicals, 1)); 26263 OTHERWISE : 26264 RETURN (?); 26265 END_CASE; 26266END_FUNCTION; 26267 26268-- IN AP242 26269FUNCTION derive_finite_function_domain 26270 (pairs : SET [1:?] OF LIST [2:2] OF maths_value ) : tuple_space; 26271 LOCAL 26272 result : SET OF maths_value := []; 26273 END_LOCAL; 26274 result := result + list_selected_components(pairs, 1); 26275 RETURN (one_tuples_of(make_finite_space(result))); 26276END_FUNCTION; 26277 26278-- IN AP242 26279FUNCTION derive_finite_function_range 26280 (pairs : SET [1:?] OF LIST [2:2] OF maths_value ) : tuple_space; 26281 LOCAL 26282 result : SET OF maths_value := []; 26283 END_LOCAL; 26284 result := result + list_selected_components(pairs, 2); 26285 RETURN (one_tuples_of(make_finite_space(result))); 26286END_FUNCTION; 26287 26288-- IN AP242 26289FUNCTION derive_function_domain 26290 (func : maths_function ) : tuple_space; 26291 LOCAL 26292 typenames : SET OF STRING := stripped_typeof(func); 26293 tspace : tuple_space := make_listed_product_space([]); 26294 shape : LIST OF positive_integer; 26295 sidxs : LIST OF INTEGER := [ 0 ]; 26296 itvl : finite_integer_interval; 26297 factors : LIST OF finite_integer_interval := []; 26298 is_uniform : BOOLEAN := TRUE; 26299 END_LOCAL; 26300 IF 'FINITE_FUNCTION' IN typenames THEN 26301 RETURN (derive_finite_function_domain(func\finite_function.pairs)); 26302 END_IF; 26303 IF 'CONSTANT_FUNCTION' IN typenames THEN 26304 RETURN (domain_from(func\constant_function.source_of_domain)); 26305 END_IF; 26306 IF 'SELECTOR_FUNCTION' IN typenames THEN 26307 RETURN (domain_from(func\selector_function.source_of_domain)); 26308 END_IF; 26309 IF 'ELEMENTARY_FUNCTION' IN typenames THEN 26310 RETURN (derive_elementary_function_domain(func\elementary_function.func_id)); 26311 END_IF; 26312 IF 'RESTRICTION_FUNCTION' IN typenames THEN 26313 RETURN (one_tuples_of(func\restriction_function.operand)); 26314 END_IF; 26315 IF 'REPACKAGING_FUNCTION' IN typenames THEN 26316 IF func\repackaging_function.input_repack = ro_nochange THEN 26317 RETURN (func\repackaging_function.operand.domain); 26318 END_IF; 26319 IF func\repackaging_function.input_repack = ro_wrap_as_tuple THEN 26320 RETURN (factor1(func\repackaging_function.operand.domain)); 26321 END_IF; 26322 IF func\repackaging_function.input_repack = ro_unwrap_tuple THEN 26323 RETURN (one_tuples_of(func\repackaging_function.operand.domain)); 26324 END_IF; 26325 RETURN (?); 26326 END_IF; 26327 IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN 26328 shape := shape_of_array(func\unary_generic_expression.operand); 26329 sidxs := func\reindexed_array_function.starting_indices; 26330 REPEAT i := 1 TO SIZEOF(shape); 26331 itvl := make_finite_integer_interval(sidxs[i], sidxs[i] + shape[i] - 1); 26332 INSERT( factors, itvl, i - 1 ); 26333 IF shape[i] <> shape[1] THEN 26334 is_uniform := FALSE; 26335 END_IF; 26336 END_REPEAT; 26337 IF is_uniform THEN 26338 RETURN (make_uniform_product_space(factors[1], SIZEOF(shape))); 26339 END_IF; 26340 RETURN (make_listed_product_space(factors)); 26341 END_IF; 26342 IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN 26343 RETURN (func\series_composed_function.operands[1].domain); 26344 END_IF; 26345 IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN 26346 RETURN (domain_from(func\parallel_composed_function.source_of_domain)); 26347 END_IF; 26348 IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN 26349 shape := func\explicit_table_function.shape; 26350 sidxs[1] := func\explicit_table_function.index_base; 26351 REPEAT i := 1 TO SIZEOF(shape); 26352 itvl := make_finite_integer_interval(sidxs[1], sidxs[1] + shape[i] - 1); 26353 INSERT( factors, itvl, i - 1 ); 26354 IF shape[i] <> shape[1] THEN 26355 is_uniform := FALSE; 26356 END_IF; 26357 END_REPEAT; 26358 IF is_uniform THEN 26359 RETURN (make_uniform_product_space(factors[1], SIZEOF(shape))); 26360 END_IF; 26361 RETURN (make_listed_product_space(factors)); 26362 END_IF; 26363 IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN 26364 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]))); 26365 END_IF; 26366 IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN 26367 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))); 26368 END_IF; 26369 IF 'B_SPLINE_BASIS' IN typenames THEN 26370 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))); 26371 END_IF; 26372 IF 'B_SPLINE_FUNCTION' IN typenames THEN 26373 REPEAT i := 1 TO SIZEOF(func\b_spline_function.basis); 26374 tspace := assoc_product_space(tspace, func\b_spline_function.basis[i].domain); 26375 END_REPEAT; 26376 RETURN (one_tuples_of(tspace)); 26377 END_IF; 26378 IF 'RATIONALIZE_FUNCTION' IN typenames THEN 26379 RETURN (func\rationalize_function.fun.domain); 26380 END_IF; 26381 IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN 26382 RETURN (func\partial_derivative_function.derivand.domain); 26383 END_IF; 26384 IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN 26385 RETURN (derive_definite_integral_domain(func)); 26386 END_IF; 26387 IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN 26388 REPEAT i := 1 TO SIZEOF(func\abstracted_expression_function.variables); 26389 tspace := assoc_product_space(tspace, one_tuples_of(values_space_of(func\abstracted_expression_function.variables[i]))); 26390 END_REPEAT; 26391 RETURN (tspace); 26392 END_IF; 26393 IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN 26394 RETURN (values_space_of(func\expression_denoted_function.expr)\function_space.domain_argument); 26395 END_IF; 26396 IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN 26397 RETURN (one_tuples_of(make_listed_product_space([]))); 26398 END_IF; 26399 IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN 26400 RETURN (func\imported_curve_function.parametric_domain); 26401 END_IF; 26402 IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN 26403 RETURN (func\imported_surface_function.parametric_domain); 26404 END_IF; 26405 IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN 26406 RETURN (func\imported_volume_function.parametric_domain); 26407 END_IF; 26408 IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN 26409 RETURN (func\application_defined_function.explicit_domain); 26410 END_IF; 26411 RETURN (?); 26412END_FUNCTION; 26413 26414-- IN AP242 26415FUNCTION derive_function_range 26416 (func : maths_function ) : tuple_space; 26417 LOCAL 26418 typenames : SET OF STRING := stripped_typeof(func); 26419 tspace : tuple_space := make_listed_product_space([]); 26420 m : nonnegative_integer := 0; 26421 n : nonnegative_integer := 0; 26422 temp : INTEGER := 0; 26423 END_LOCAL; 26424 IF 'FINITE_FUNCTION' IN typenames THEN 26425 RETURN (derive_finite_function_range(func\finite_function.pairs)); 26426 END_IF; 26427 IF 'CONSTANT_FUNCTION' IN typenames THEN 26428 RETURN (one_tuples_of(make_finite_space([ func\constant_function.sole_output ]))); 26429 END_IF; 26430 IF 'SELECTOR_FUNCTION' IN typenames THEN 26431 tspace := func.domain; 26432 IF (space_dimension(tspace) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(tspace)) THEN 26433 tspace := factor1(tspace); 26434 END_IF; 26435 RETURN (one_tuples_of(factor_space(tspace, func\selector_function.selector))); 26436 END_IF; 26437 IF 'ELEMENTARY_FUNCTION' IN typenames THEN 26438 RETURN (derive_elementary_function_range(func\elementary_function.func_id)); 26439 END_IF; 26440 IF 'RESTRICTION_FUNCTION' IN typenames THEN 26441 RETURN (one_tuples_of(func\restriction_function.operand)); 26442 END_IF; 26443 IF 'REPACKAGING_FUNCTION' IN typenames THEN 26444 tspace := func\repackaging_function.operand.range; 26445 IF func\repackaging_function.output_repack = ro_wrap_as_tuple THEN 26446 tspace := one_tuples_of(tspace); 26447 END_IF; 26448 IF func\repackaging_function.output_repack = ro_unwrap_tuple THEN 26449 tspace := factor1(tspace); 26450 END_IF; 26451 IF func\repackaging_function.selected_output > 0 THEN 26452 tspace := one_tuples_of(factor_space(tspace, func\repackaging_function.selected_output)); 26453 END_IF; 26454 RETURN (tspace); 26455 END_IF; 26456 IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN 26457 RETURN (func\unary_generic_expression.operand\maths_function.range); 26458 END_IF; 26459 IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN 26460 RETURN (func\series_composed_function.operands[SIZEOF(func\series_composed_function.operands)].range); 26461 END_IF; 26462 IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN 26463 RETURN (func\parallel_composed_function.final_function.range); 26464 END_IF; 26465 IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN 26466 IF 'LISTED_REAL_DATA' IN typenames THEN 26467 RETURN (one_tuples_of(the_reals)); 26468 END_IF; 26469 IF 'LISTED_INTEGER_DATA' IN typenames THEN 26470 RETURN (one_tuples_of(the_integers)); 26471 END_IF; 26472 IF 'LISTED_LOGICAL_DATA' IN typenames THEN 26473 RETURN (one_tuples_of(the_logicals)); 26474 END_IF; 26475 IF 'LISTED_STRING_DATA' IN typenames THEN 26476 RETURN (one_tuples_of(the_strings)); 26477 END_IF; 26478 IF 'LISTED_COMPLEX_NUMBER_DATA' IN typenames THEN 26479 RETURN (one_tuples_of(the_complex_numbers)); 26480 END_IF; 26481 IF 'LISTED_DATA' IN typenames THEN 26482 RETURN (one_tuples_of(func\listed_data.value_range)); 26483 END_IF; 26484 IF 'EXTERNALLY_LISTED_DATA' IN typenames THEN 26485 RETURN (one_tuples_of(func\externally_listed_data.value_range)); 26486 END_IF; 26487 IF 'LINEARIZED_TABLE_FUNCTION' IN typenames THEN 26488 RETURN (func\linearized_table_function.source.range); 26489 END_IF; 26490 IF 'BASIC_SPARSE_MATRIX' IN typenames THEN 26491 RETURN (func\basic_sparse_matrix.val.range); 26492 END_IF; 26493 RETURN (?); 26494 END_IF; 26495 IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN 26496 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)]))); 26497 END_IF; 26498 IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN 26499 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)]))); 26500 END_IF; 26501 IF 'B_SPLINE_BASIS' IN typenames THEN 26502 RETURN (one_tuples_of(make_uniform_product_space(the_reals, func\b_spline_basis.num_basis))); 26503 END_IF; 26504 IF 'B_SPLINE_FUNCTION' IN typenames THEN 26505 tspace := factor1(func\b_spline_function.coef.domain); 26506 m := SIZEOF(func\b_spline_function.basis); 26507 n := space_dimension(tspace); 26508 IF m = n THEN 26509 RETURN (one_tuples_of(the_reals)); 26510 END_IF; 26511 IF m = n - 1 THEN 26512 RETURN (one_tuples_of(make_uniform_product_space(the_reals, factor_space(tspace, n)\finite_integer_interval.size))); 26513 END_IF; 26514 tspace := extract_factors(tspace, m + 1, n); 26515 RETURN (one_tuples_of(make_function_space(sc_equal, tspace, sc_subspace, number_superspace_of(func\b_spline_function.coef.range)))); 26516 END_IF; 26517 IF 'RATIONALIZE_FUNCTION' IN typenames THEN 26518 tspace := factor1(func\rationalize_function.fun.range); 26519 n := space_dimension(tspace); 26520 RETURN (one_tuples_of(make_uniform_product_space(number_superspace_of(factor1(tspace)), n - 1))); 26521 END_IF; 26522 IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN 26523 RETURN (drop_numeric_constraints(func\partial_derivative_function.derivand.range)); 26524 END_IF; 26525 IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN 26526 RETURN (drop_numeric_constraints(func\definite_integral_function.integrand.range)); 26527 END_IF; 26528 IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN 26529 RETURN (one_tuples_of(values_space_of(func\abstracted_expression_function.expr))); 26530 END_IF; 26531 IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN 26532 RETURN (values_space_of(func\expression_denoted_function.expr)\function_space.range_argument); 26533 END_IF; 26534 IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN 26535 temp := dimension_of(func\imported_point_function.geometry); 26536 RETURN (one_tuples_of(make_uniform_product_space(the_reals, temp))); 26537 END_IF; 26538 IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN 26539 temp := dimension_of(func\imported_curve_function.geometry); 26540 RETURN (one_tuples_of(make_uniform_product_space(the_reals, temp))); 26541 END_IF; 26542 IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN 26543 temp := dimension_of(func\imported_surface_function.geometry); 26544 RETURN (one_tuples_of(make_uniform_product_space(the_reals, temp))); 26545 END_IF; 26546 IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN 26547 temp := dimension_of(func\imported_volume_function.geometry); 26548 RETURN (one_tuples_of(make_uniform_product_space(the_reals, temp))); 26549 END_IF; 26550 IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN 26551 RETURN (func\application_defined_function.explicit_range); 26552 END_IF; 26553 RETURN (?); 26554END_FUNCTION; 26555 26556-- DIFF IN AP214 26557-- DIFF IN AP203e2 26558FUNCTION dimension_of 26559 (item : geometric_representation_item ) : dimension_count; 26560 LOCAL 26561 x : SET OF representation; 26562 y : representation_context; 26563 dim : dimension_count; 26564 END_LOCAL; 26565 IF 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(item) THEN 26566 dim := SIZEOF(item\cartesian_point.coordinates); 26567 RETURN (dim); 26568 END_IF; 26569 IF 'STEP_MERGED_CAD_SCHEMA.DIRECTION' IN TYPEOF(item) THEN 26570 dim := SIZEOF(item\direction.direction_ratios); 26571 RETURN (dim); 26572 END_IF; 26573 IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(item) THEN 26574 dim := SIZEOF(item\vector.orientation\direction.direction_ratios); 26575 RETURN (dim); 26576 END_IF; 26577 x := using_representations(item); 26578 IF SIZEOF(x) > 0 THEN 26579 y := x[1].context_of_items; 26580 dim := y\geometric_representation_context.coordinate_space_dimension; 26581 RETURN (dim); 26582 ELSE 26583 RETURN (?); 26584 END_IF; 26585END_FUNCTION; 26586 26587-- DIFF IN AP214 26588-- DIFF IN AP203e2 26589FUNCTION dimensions_for_si_unit 26590 (n : si_unit_name ) : dimensional_exponents; 26591 CASE n OF 26592 metre : 26593 RETURN (dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); 26594 gram : 26595 RETURN (dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0)); 26596 second : 26597 RETURN (dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0)); 26598 ampere : 26599 RETURN (dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0)); 26600 kelvin : 26601 RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)); 26602 mole : 26603 RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)); 26604 candela : 26605 RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); 26606 radian : 26607 RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); 26608 steradian : 26609 RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); 26610 hertz : 26611 RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0)); 26612 newton : 26613 RETURN (dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); 26614 pascal : 26615 RETURN (dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); 26616 joule : 26617 RETURN (dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); 26618 watt : 26619 RETURN (dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0)); 26620 coulomb : 26621 RETURN (dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0)); 26622 volt : 26623 RETURN (dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0)); 26624 farad : 26625 RETURN (dimensional_exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0)); 26626 ohm : 26627 RETURN (dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0)); 26628 siemens : 26629 RETURN (dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0)); 26630 weber : 26631 RETURN (dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0)); 26632 tesla : 26633 RETURN (dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0)); 26634 henry : 26635 RETURN (dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0)); 26636 degree_Celsius : 26637 RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)); 26638 lumen : 26639 RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); 26640 lux : 26641 RETURN (dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); 26642 becquerel : 26643 RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0)); 26644 gray : 26645 RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)); 26646 sievert : 26647 RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)); 26648 OTHERWISE : 26649 RETURN (?); 26650 END_CASE; 26651END_FUNCTION; 26652 26653-- IN AP242 26654FUNCTION domain_from 26655 (ref : maths_space_or_function ) : tuple_space; 26656 LOCAL 26657 typenames : SET OF STRING := stripped_typeof(ref); 26658 func : maths_function; 26659 END_LOCAL; 26660 IF NOT EXISTS(ref) THEN 26661 RETURN (?); 26662 END_IF; 26663 IF 'TUPLE_SPACE' IN typenames THEN 26664 RETURN (ref); 26665 END_IF; 26666 IF 'MATHS_SPACE' IN typenames THEN 26667 RETURN (one_tuples_of(ref)); 26668 END_IF; 26669 func := ref; 26670 IF 'CONSTANT_FUNCTION' IN typenames THEN 26671 RETURN (domain_from(func\constant_function.source_of_domain)); 26672 END_IF; 26673 IF 'SELECTOR_FUNCTION' IN typenames THEN 26674 RETURN (domain_from(func\selector_function.source_of_domain)); 26675 END_IF; 26676 IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN 26677 RETURN (domain_from(func\parallel_composed_function.source_of_domain)); 26678 END_IF; 26679 RETURN (func.domain); 26680END_FUNCTION; 26681 26682-- DIFF IN AP214 26683FUNCTION dot_product 26684 (arg1 : direction; 26685 arg2 : direction ) : REAL; 26686 LOCAL 26687 scalar : REAL; 26688 vec1 : direction; 26689 vec2 : direction; 26690 ndim : INTEGER; 26691 END_LOCAL; 26692 IF NOT EXISTS(arg1) OR NOT EXISTS(arg2) THEN 26693 scalar := ?; 26694 ELSE 26695 IF arg1.dim <> arg2.dim THEN 26696 scalar := ?; 26697 ELSE 26698 BEGIN 26699 vec1 := normalise(arg1); 26700 vec2 := normalise(arg2); 26701 ndim := arg1.dim; 26702 scalar := 0.0; 26703 REPEAT i := 1 TO ndim; 26704 scalar := scalar + vec1.direction_ratios[i] * vec2.direction_ratios[i]; 26705 END_REPEAT; 26706 END; 26707 END_IF; 26708 END_IF; 26709 RETURN (scalar); 26710END_FUNCTION; 26711 26712-- IN AP242 26713FUNCTION drop_numeric_constraints 26714 (spc : maths_space ) : maths_space; 26715 LOCAL 26716 typenames : SET OF STRING := stripped_typeof(spc); 26717 tspc : listed_product_space; 26718 factors : LIST OF maths_space := []; 26719 xspc : extended_tuple_space; 26720 END_LOCAL; 26721 IF 'UNIFORM_PRODUCT_SPACE' IN typenames THEN 26722 RETURN (make_uniform_product_space(drop_numeric_constraints(spc\uniform_product_space.base), spc\uniform_product_space.exponent)); 26723 END_IF; 26724 IF 'LISTED_PRODUCT_SPACE' IN typenames THEN 26725 tspc := spc; 26726 REPEAT i := 1 TO SIZEOF(tspc.factors); 26727 INSERT( factors, drop_numeric_constraints(tspc.factors[i]), i - 1 ); 26728 END_REPEAT; 26729 RETURN (make_listed_product_space(factors)); 26730 END_IF; 26731 IF 'EXTENDED_TUPLE_SPACE' IN typenames THEN 26732 xspc := spc; 26733 RETURN (make_extended_tuple_space(drop_numeric_constraints(xspc.base), drop_numeric_constraints(xspc.extender))); 26734 END_IF; 26735 IF subspace_of_es(spc, es_numbers) THEN 26736 RETURN (number_superspace_of(spc)); 26737 END_IF; 26738 RETURN (spc); 26739END_FUNCTION; 26740 26741FUNCTION edge_reversed 26742 (an_edge : edge ) : oriented_edge; 26743 LOCAL 26744 the_reverse : oriented_edge; 26745 END_LOCAL; 26746 IF 'STEP_MERGED_CAD_SCHEMA.ORIENTED_EDGE' IN TYPEOF(an_edge) THEN 26747 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); 26748 ELSE 26749 the_reverse := dummy_tri || edge(an_edge.edge_end, an_edge.edge_start) || oriented_edge(an_edge, FALSE); 26750 END_IF; 26751 RETURN (the_reverse); 26752END_FUNCTION; 26753 26754-- IN AP242 26755FUNCTION enclose_cregion_in_pregion 26756 (crgn : cartesian_complex_number_region; 26757 centre : complex_number_literal ) : polar_complex_number_region; 26758 FUNCTION angle 26759 (a : REAL ) : REAL; 26760 REPEAT WHILE a > 3.14159; 26761 a := a - 2.0 * 3.14159; 26762 END_REPEAT; 26763 REPEAT WHILE a <= -3.14159; 26764 a := a + 2.0 * 3.14159; 26765 END_REPEAT; 26766 RETURN (a); 26767 END_FUNCTION; 26768 FUNCTION strictly_in 26769 (z : REAL; 26770 zitv : real_interval ) : LOGICAL; 26771 RETURN ((NOT min_exists(zitv) OR (z > real_min(zitv))) AND (NOT max_exists(zitv) OR (z < real_max(zitv)))); 26772 END_FUNCTION; 26773 PROCEDURE angle_minmax 26774 (ab : REAL; 26775 a : REAL; 26776 a_in : BOOLEAN; 26777 VAR amin : REAL; 26778 VAR amax : REAL; 26779 VAR amin_in : BOOLEAN; 26780 VAR amax_in : BOOLEAN ); 26781 a := angle(a - ab); 26782 IF amin = a THEN 26783 amin_in := amin_in OR a_in; 26784 END_IF; 26785 IF amin > a THEN 26786 amin := a; 26787 amin_in := a_in; 26788 END_IF; 26789 IF amax = a THEN 26790 amax_in := amax_in OR a_in; 26791 END_IF; 26792 IF amax < a THEN 26793 amax := a; 26794 amax_in := a_in; 26795 END_IF; 26796 END_PROCEDURE; 26797 PROCEDURE range_max 26798 (r : REAL; 26799 incl : BOOLEAN; 26800 VAR rmax : REAL; 26801 VAR rmax_in : BOOLEAN ); 26802 IF rmax = r THEN 26803 rmax_in := rmax_in OR incl; 26804 END_IF; 26805 IF rmax < r THEN 26806 rmax := r; 26807 rmax_in := incl; 26808 END_IF; 26809 END_PROCEDURE; 26810 PROCEDURE range_min 26811 (r : REAL; 26812 incl : BOOLEAN; 26813 VAR rmin : REAL; 26814 VAR rmin_in : BOOLEAN ); 26815 IF rmin = r THEN 26816 rmin_in := rmin_in OR incl; 26817 END_IF; 26818 IF (rmin < 0.0) OR (rmin > r) THEN 26819 rmin := r; 26820 rmin_in := incl; 26821 END_IF; 26822 END_PROCEDURE; 26823 LOCAL 26824 xitv : real_interval; 26825 yitv : real_interval; 26826 is_xmin : BOOLEAN; 26827 is_xmax : BOOLEAN; 26828 is_ymin : BOOLEAN; 26829 is_ymax : BOOLEAN; 26830 xmin : REAL := 0.0; 26831 xmax : REAL := 0.0; 26832 ymin : REAL := 0.0; 26833 ymax : REAL := 0.0; 26834 xc : REAL := 0.0; 26835 yc : REAL := 0.0; 26836 xmin_in : BOOLEAN := FALSE; 26837 xmax_in : BOOLEAN := FALSE; 26838 ymin_in : BOOLEAN := FALSE; 26839 ymax_in : BOOLEAN := FALSE; 26840 rmin : REAL := -1.0; 26841 rmax : REAL := -1.0; 26842 amin : REAL := 4.0; 26843 amax : REAL := -4.0; 26844 rmax_exists : BOOLEAN := TRUE; 26845 outside : BOOLEAN := TRUE; 26846 rmin_in : BOOLEAN := FALSE; 26847 rmax_in : BOOLEAN := FALSE; 26848 amin_in : BOOLEAN := FALSE; 26849 amax_in : BOOLEAN := FALSE; 26850 ab : REAL := 0.0; 26851 a : REAL := 0.0; 26852 r : REAL := 0.0; 26853 incl : BOOLEAN; 26854 ritv : real_interval; 26855 aitv : finite_real_interval; 26856 minclo : open_closed := open; 26857 maxclo : open_closed := open; 26858 END_LOCAL; 26859 IF NOT EXISTS(crgn) OR NOT EXISTS(centre) THEN 26860 RETURN (?); 26861 END_IF; 26862 xitv := crgn.real_constraint; 26863 yitv := crgn.imag_constraint; 26864 xc := centre.real_part; 26865 yc := centre.imag_part; 26866 is_xmin := min_exists(xitv); 26867 is_xmax := max_exists(xitv); 26868 is_ymin := min_exists(yitv); 26869 is_ymax := max_exists(yitv); 26870 IF is_xmin THEN 26871 xmin := real_min(xitv); 26872 xmin_in := min_included(xitv); 26873 END_IF; 26874 IF is_xmax THEN 26875 xmax := real_max(xitv); 26876 xmax_in := max_included(xitv); 26877 END_IF; 26878 IF is_ymin THEN 26879 ymin := real_min(yitv); 26880 ymin_in := min_included(yitv); 26881 END_IF; 26882 IF is_ymax THEN 26883 ymax := real_max(yitv); 26884 ymax_in := max_included(yitv); 26885 END_IF; 26886 rmax_exists := ((is_xmin AND is_xmax) AND is_ymin) AND is_ymax; 26887 IF is_xmin AND (xc <= xmin) THEN 26888 ab := 0.0; 26889 ELSE 26890 IF is_ymin AND (yc <= ymin) THEN 26891 ab := 0.500000 * 3.14159; 26892 ELSE 26893 IF is_ymax AND (yc >= ymax) THEN 26894 ab := -0.500000 * 3.14159; 26895 ELSE 26896 IF is_xmax AND (xc >= xmax) THEN 26897 ab := 3.14159; 26898 ELSE 26899 outside := FALSE; 26900 END_IF; 26901 END_IF; 26902 END_IF; 26903 END_IF; 26904 IF NOT outside AND NOT rmax_exists THEN 26905 RETURN (?); 26906 END_IF; 26907 IF (is_xmin AND (xc <= xmin)) AND strictly_in(yc, yitv) THEN 26908 rmin := xmin - xc; 26909 rmin_in := xmin_in; 26910 ELSE 26911 IF (is_ymin AND (yc <= ymin)) AND strictly_in(xc, xitv) THEN 26912 rmin := ymin - yc; 26913 rmin_in := ymin_in; 26914 ELSE 26915 IF (is_ymax AND (yc >= ymax)) AND strictly_in(xc, xitv) THEN 26916 rmin := yc - ymax; 26917 rmin_in := ymax_in; 26918 ELSE 26919 IF (is_xmax AND (xc >= xmax)) AND strictly_in(yc, yitv) THEN 26920 rmin := xc - xmax; 26921 rmin_in := xmax_in; 26922 END_IF; 26923 END_IF; 26924 END_IF; 26925 END_IF; 26926 IF is_xmin THEN 26927 IF is_ymin THEN 26928 r := SQRT((xmin - xc) ** 2 + (ymin - yc) ** 2); 26929 incl := xmin_in AND ymin_in; 26930 IF rmax_exists THEN 26931 range_max( r, incl, rmax, rmax_in ); 26932 END_IF; 26933 IF outside THEN 26934 IF r > 0.0 THEN 26935 range_min( r, incl, rmin, rmin_in ); 26936 a := angle(atan2(ymin - yc, xmin - xc) - ab); 26937 IF xc = xmin THEN 26938 incl := xmin_in; 26939 END_IF; 26940 IF yc = ymin THEN 26941 incl := ymin_in; 26942 END_IF; 26943 angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); 26944 ELSE 26945 rmin := 0.0; 26946 rmin_in := xmin_in AND ymin_in; 26947 amin := angle(0.0 - ab); 26948 amin_in := ymin_in; 26949 amax := angle(0.500000 * 3.14159 - ab); 26950 amax_in := xmin_in; 26951 END_IF; 26952 END_IF; 26953 ELSE 26954 IF xc <= xmin THEN 26955 angle_minmax( ab, -0.500000 * 3.14159, (xc = xmin) AND xmin_in, amin, amax, amin_in, amax_in ); 26956 END_IF; 26957 END_IF; 26958 IF NOT is_ymax AND (xc <= xmin) THEN 26959 angle_minmax( ab, 0.500000 * 3.14159, (xc = xmin) AND xmin_in, amin, amax, amin_in, amax_in ); 26960 END_IF; 26961 END_IF; 26962 IF is_ymin THEN 26963 IF is_xmax THEN 26964 r := SQRT((xmax - xc) ** 2 + (ymin - yc) ** 2); 26965 incl := xmax_in AND ymin_in; 26966 IF rmax_exists THEN 26967 range_max( r, incl, rmax, rmax_in ); 26968 END_IF; 26969 IF outside THEN 26970 IF r > 0.0 THEN 26971 range_min( r, incl, rmin, rmin_in ); 26972 a := angle(atan2(ymin - yc, xmax - xc) - ab); 26973 IF xc = xmax THEN 26974 incl := xmax_in; 26975 END_IF; 26976 IF yc = ymin THEN 26977 incl := ymin_in; 26978 END_IF; 26979 angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); 26980 ELSE 26981 rmin := 0.0; 26982 rmin_in := xmax_in AND ymin_in; 26983 amin := angle(0.500000 * 3.14159 - ab); 26984 amin_in := ymin_in; 26985 amax := angle(3.14159 - ab); 26986 amax_in := xmax_in; 26987 END_IF; 26988 END_IF; 26989 ELSE 26990 IF yc <= ymin THEN 26991 angle_minmax( ab, 0.0, (yc = ymin) AND ymin_in, amin, amax, amin_in, amax_in ); 26992 END_IF; 26993 END_IF; 26994 IF NOT is_xmin AND (yc <= ymin) THEN 26995 angle_minmax( ab, 3.14159, (yc = ymin) AND ymin_in, amin, amax, amin_in, amax_in ); 26996 END_IF; 26997 END_IF; 26998 IF is_xmax THEN 26999 IF is_ymax THEN 27000 r := SQRT((xmax - xc) ** 2 + (ymax - yc) ** 2); 27001 incl := xmax_in AND ymax_in; 27002 IF rmax_exists THEN 27003 range_max( r, incl, rmax, rmax_in ); 27004 END_IF; 27005 IF outside THEN 27006 IF r > 0.0 THEN 27007 range_min( r, incl, rmin, rmin_in ); 27008 a := angle(atan2(ymax - yc, xmax - xc) - ab); 27009 IF xc = xmax THEN 27010 incl := xmax_in; 27011 END_IF; 27012 IF yc = ymax THEN 27013 incl := ymax_in; 27014 END_IF; 27015 angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); 27016 ELSE 27017 rmin := 0.0; 27018 rmin_in := xmax_in AND ymax_in; 27019 amin := angle(-3.14159 - ab); 27020 amin_in := ymax_in; 27021 amax := angle(-0.500000 * 3.14159 - ab); 27022 amax_in := xmax_in; 27023 END_IF; 27024 END_IF; 27025 ELSE 27026 IF xc >= xmax THEN 27027 angle_minmax( ab, 0.500000 * 3.14159, (xc = xmax) AND xmax_in, amin, amax, amin_in, amax_in ); 27028 END_IF; 27029 END_IF; 27030 IF NOT is_ymin AND (xc >= xmax) THEN 27031 angle_minmax( ab, -0.500000 * 3.14159, (xc = xmax) AND xmax_in, amin, amax, amin_in, amax_in ); 27032 END_IF; 27033 END_IF; 27034 IF is_ymax THEN 27035 IF is_xmin THEN 27036 r := SQRT((xmin - xc) ** 2 + (ymax - yc) ** 2); 27037 incl := xmin_in AND ymax_in; 27038 IF rmax_exists THEN 27039 range_max( r, incl, rmax, rmax_in ); 27040 END_IF; 27041 IF outside THEN 27042 IF r > 0.0 THEN 27043 range_min( r, incl, rmin, rmin_in ); 27044 a := angle(atan2(ymax - yc, xmin - xc) - ab); 27045 IF xc = xmin THEN 27046 incl := xmin_in; 27047 END_IF; 27048 IF yc = ymax THEN 27049 incl := ymax_in; 27050 END_IF; 27051 angle_minmax( ab, a, incl, amin, amax, amin_in, amax_in ); 27052 ELSE 27053 rmin := 0.0; 27054 rmin_in := xmin_in AND ymax_in; 27055 amin := angle(0.500000 * 3.14159 - ab); 27056 amin_in := ymax_in; 27057 amax := angle(3.14159 - ab); 27058 amax_in := xmin_in; 27059 END_IF; 27060 END_IF; 27061 ELSE 27062 IF yc >= ymax THEN 27063 angle_minmax( ab, 3.14159, (yc = ymax) AND ymax_in, amin, amax, amin_in, amax_in ); 27064 END_IF; 27065 END_IF; 27066 IF NOT is_xmax AND (yc >= ymax) THEN 27067 angle_minmax( ab, 0.0, (yc = ymax) AND ymax_in, amin, amax, amin_in, amax_in ); 27068 END_IF; 27069 END_IF; 27070 IF outside THEN 27071 amin := angle(amin + ab); 27072 IF amin = 3.14159 THEN 27073 amin := -3.14159; 27074 END_IF; 27075 amax := angle(amax + ab); 27076 IF amax <= amin THEN 27077 amax := amax + 2.0 * 3.14159; 27078 END_IF; 27079 ELSE 27080 amin := -3.14159; 27081 amin_in := FALSE; 27082 amax := 3.14159; 27083 amax_in := FALSE; 27084 END_IF; 27085 IF amin_in THEN 27086 minclo := closed; 27087 END_IF; 27088 IF amax_in THEN 27089 maxclo := closed; 27090 END_IF; 27091 aitv := make_finite_real_interval(amin, minclo, amax, maxclo); 27092 minclo := open; 27093 IF rmin_in THEN 27094 minclo := closed; 27095 END_IF; 27096 IF rmax_exists THEN 27097 maxclo := open; 27098 IF rmax_in THEN 27099 maxclo := closed; 27100 END_IF; 27101 ritv := make_finite_real_interval(rmin, minclo, rmax, maxclo); 27102 ELSE 27103 ritv := make_real_interval_from_min(rmin, minclo); 27104 END_IF; 27105 RETURN (make_polar_complex_number_region(centre, ritv, aitv)); 27106END_FUNCTION; 27107 27108-- IN AP242 27109FUNCTION enclose_pregion_in_cregion 27110 (prgn : polar_complex_number_region ) : cartesian_complex_number_region; 27111 PROCEDURE nearest_good_direction 27112 (acart : REAL; 27113 aitv : finite_real_interval; 27114 VAR a : REAL; 27115 VAR a_in : BOOLEAN ); 27116 a := acart; 27117 a_in := TRUE; 27118 IF a < aitv.min THEN 27119 IF a + 2.0 * 3.14159 < aitv.max THEN 27120 RETURN; 27121 END_IF; 27122 IF a + 2.0 * 3.14159 = aitv.max THEN 27123 a_in := max_included(aitv); 27124 RETURN; 27125 END_IF; 27126 ELSE 27127 IF a = aitv.min THEN 27128 a_in := min_included(aitv); 27129 RETURN; 27130 ELSE 27131 IF a < aitv.max THEN 27132 RETURN; 27133 ELSE 27134 IF a = aitv.max THEN 27135 a_in := max_included(aitv); 27136 RETURN; 27137 END_IF; 27138 END_IF; 27139 END_IF; 27140 END_IF; 27141 IF cos(acart - aitv.max) >= cos(acart - aitv.min) THEN 27142 a := aitv.max; 27143 a_in := max_included(aitv); 27144 ELSE 27145 a := aitv.min; 27146 a_in := min_included(aitv); 27147 END_IF; 27148 END_PROCEDURE; 27149 LOCAL 27150 xc : REAL := 0.0; 27151 yc : REAL := 0.0; 27152 xmin : REAL := 0.0; 27153 xmax : REAL := 0.0; 27154 ymin : REAL := 0.0; 27155 ymax : REAL := 0.0; 27156 ritv : real_interval; 27157 xitv : real_interval; 27158 yitv : real_interval; 27159 aitv : finite_real_interval; 27160 xmin_exists : BOOLEAN; 27161 xmax_exists : BOOLEAN; 27162 ymin_exists : BOOLEAN; 27163 ymax_exists : BOOLEAN; 27164 xmin_in : BOOLEAN := FALSE; 27165 xmax_in : BOOLEAN := FALSE; 27166 ymin_in : BOOLEAN := FALSE; 27167 ymax_in : BOOLEAN := FALSE; 27168 a : REAL := 0.0; 27169 r : REAL := 0.0; 27170 a_in : BOOLEAN := FALSE; 27171 min_clo : open_closed := open; 27172 max_clo : open_closed := open; 27173 END_LOCAL; 27174 IF NOT EXISTS(prgn) THEN 27175 RETURN (?); 27176 END_IF; 27177 xc := prgn.centre.real_part; 27178 yc := prgn.centre.imag_part; 27179 ritv := prgn.distance_constraint; 27180 aitv := prgn.direction_constraint; 27181 nearest_good_direction( 3.14159, aitv, a, a_in ); 27182 IF cos(a) >= 0.0 THEN 27183 xmin_exists := TRUE; 27184 xmin := xc + real_min(ritv) * cos(a); 27185 xmin_in := a_in AND (min_included(ritv) OR (cos(a) = 0.0)); 27186 ELSE 27187 IF max_exists(ritv) THEN 27188 xmin_exists := TRUE; 27189 xmin := xc + real_max(ritv) * cos(a); 27190 xmin_in := a_in AND max_included(ritv); 27191 ELSE 27192 xmin_exists := FALSE; 27193 END_IF; 27194 END_IF; 27195 nearest_good_direction( 0.0, aitv, a, a_in ); 27196 IF cos(a) <= 0.0 THEN 27197 xmax_exists := TRUE; 27198 xmax := xc + real_min(ritv) * cos(a); 27199 xmax_in := a_in AND (min_included(ritv) OR (cos(a) = 0.0)); 27200 ELSE 27201 IF max_exists(ritv) THEN 27202 xmax_exists := TRUE; 27203 xmax := xc + real_max(ritv) * cos(a); 27204 xmax_in := a_in AND max_included(ritv); 27205 ELSE 27206 xmax_exists := FALSE; 27207 END_IF; 27208 END_IF; 27209 nearest_good_direction( -0.500000 * 3.14159, aitv, a, a_in ); 27210 IF sin(a) >= 0.0 THEN 27211 ymin_exists := TRUE; 27212 ymin := yc + real_min(ritv) * sin(a); 27213 ymin_in := a_in AND (min_included(ritv) OR (sin(a) = 0.0)); 27214 ELSE 27215 IF max_exists(ritv) THEN 27216 ymin_exists := TRUE; 27217 ymin := yc + real_max(ritv) * sin(a); 27218 ymin_in := a_in AND max_included(ritv); 27219 ELSE 27220 ymin_exists := FALSE; 27221 END_IF; 27222 END_IF; 27223 nearest_good_direction( 0.500000 * 3.14159, aitv, a, a_in ); 27224 IF sin(a) <= 0.0 THEN 27225 ymax_exists := TRUE; 27226 ymax := yc + real_min(ritv) * sin(a); 27227 ymax_in := a_in AND (min_included(ritv) OR (sin(a) = 0.0)); 27228 ELSE 27229 IF max_exists(ritv) THEN 27230 ymax_exists := TRUE; 27231 ymax := yc + real_max(ritv) * sin(a); 27232 ymax_in := a_in AND max_included(ritv); 27233 ELSE 27234 ymax_exists := FALSE; 27235 END_IF; 27236 END_IF; 27237 IF NOT (((xmin_exists OR xmax_exists) OR ymin_exists) OR ymax_exists) THEN 27238 RETURN (?); 27239 END_IF; 27240 IF xmin_exists THEN 27241 IF xmin_in THEN 27242 min_clo := closed; 27243 ELSE 27244 min_clo := open; 27245 END_IF; 27246 IF xmax_exists THEN 27247 IF xmax_in THEN 27248 max_clo := closed; 27249 ELSE 27250 max_clo := open; 27251 END_IF; 27252 xitv := make_finite_real_interval(xmin, min_clo, xmax, max_clo); 27253 ELSE 27254 xitv := make_real_interval_from_min(xmin, min_clo); 27255 END_IF; 27256 ELSE 27257 IF xmax_exists THEN 27258 IF xmax_in THEN 27259 max_clo := closed; 27260 ELSE 27261 max_clo := open; 27262 END_IF; 27263 xitv := make_real_interval_to_max(xmax, max_clo); 27264 ELSE 27265 xitv := the_reals; 27266 END_IF; 27267 END_IF; 27268 IF ymin_exists THEN 27269 IF ymin_in THEN 27270 min_clo := closed; 27271 ELSE 27272 min_clo := open; 27273 END_IF; 27274 IF ymax_exists THEN 27275 IF ymax_in THEN 27276 max_clo := closed; 27277 ELSE 27278 max_clo := open; 27279 END_IF; 27280 yitv := make_finite_real_interval(ymin, min_clo, ymax, max_clo); 27281 ELSE 27282 yitv := make_real_interval_from_min(ymin, min_clo); 27283 END_IF; 27284 ELSE 27285 IF ymax_exists THEN 27286 IF ymax_in THEN 27287 max_clo := closed; 27288 ELSE 27289 max_clo := open; 27290 END_IF; 27291 yitv := make_real_interval_to_max(ymax, max_clo); 27292 ELSE 27293 yitv := the_reals; 27294 END_IF; 27295 END_IF; 27296 RETURN (make_cartesian_complex_number_region(xitv, yitv)); 27297END_FUNCTION; 27298 27299-- IN AP242 27300FUNCTION enclose_pregion_in_pregion 27301 (prgn : polar_complex_number_region; 27302 centre : complex_number_literal ) : polar_complex_number_region; 27303 FUNCTION angle 27304 (a : REAL ) : REAL; 27305 REPEAT WHILE a > 3.14159; 27306 a := a - 2.0 * 3.14159; 27307 END_REPEAT; 27308 REPEAT WHILE a <= -3.14159; 27309 a := a + 2.0 * 3.14159; 27310 END_REPEAT; 27311 RETURN (a); 27312 END_FUNCTION; 27313 PROCEDURE angle_range 27314 (VAR amin : REAL; 27315 VAR amax : REAL ); 27316 amin := angle(amin); 27317 IF amin = 3.14159 THEN 27318 amin := -3.14159; 27319 END_IF; 27320 amax := angle(amax); 27321 IF amax <= amin THEN 27322 amax := amax + 2.0 * 3.14159; 27323 END_IF; 27324 END_PROCEDURE; 27325 FUNCTION strictly_in 27326 (a : REAL; 27327 aitv : finite_real_interval ) : LOGICAL; 27328 a := angle(a); 27329 RETURN ((aitv.min < a) AND (a < aitv.max) OR (aitv.min < a + 2.0 * 3.14159) AND (a + 2.0 * 3.14159 < aitv.max)); 27330 END_FUNCTION; 27331 PROCEDURE find_aminmax 27332 (ab : REAL; 27333 a0 : REAL; 27334 a1 : REAL; 27335 a2 : REAL; 27336 a3 : REAL; 27337 in0 : BOOLEAN; 27338 in1 : BOOLEAN; 27339 in2 : BOOLEAN; 27340 in3 : BOOLEAN; 27341 VAR amin : REAL; 27342 VAR amax : REAL; 27343 VAR amin_in : BOOLEAN; 27344 VAR amax_in : BOOLEAN ); 27345 LOCAL 27346 a : REAL; 27347 END_LOCAL; 27348 amin := angle(a0 - ab); 27349 amin_in := in0; 27350 amax := amin; 27351 amax_in := in0; 27352 a := angle(a1 - ab); 27353 IF a = amin THEN 27354 amin_in := amin_in OR in1; 27355 END_IF; 27356 IF a < amin THEN 27357 amin := a; 27358 amin_in := in1; 27359 END_IF; 27360 IF a = amax THEN 27361 amax_in := amax_in OR in1; 27362 END_IF; 27363 IF a > amax THEN 27364 amax := a; 27365 amax_in := in1; 27366 END_IF; 27367 a := angle(a2 - ab); 27368 IF a = amin THEN 27369 amin_in := amin_in OR in2; 27370 END_IF; 27371 IF a < amin THEN 27372 amin := a; 27373 amin_in := in2; 27374 END_IF; 27375 IF a = amax THEN 27376 amax_in := amax_in OR in2; 27377 END_IF; 27378 IF a > amax THEN 27379 amax := a; 27380 amax_in := in2; 27381 END_IF; 27382 a := angle(a3 - ab); 27383 IF a = amin THEN 27384 amin_in := amin_in OR in3; 27385 END_IF; 27386 IF a < amin THEN 27387 amin := a; 27388 amin_in := in3; 27389 END_IF; 27390 IF a = amax THEN 27391 amax_in := amax_in OR in3; 27392 END_IF; 27393 IF a > amax THEN 27394 amax := a; 27395 amax_in := in3; 27396 END_IF; 27397 amin := amin + ab; 27398 amax := amax + ab; 27399 angle_range( amin, amax ); 27400 END_PROCEDURE; 27401 LOCAL 27402 ritp : real_interval; 27403 ritv : real_interval; 27404 aitp : finite_real_interval; 27405 aitv : finite_real_interval; 27406 xp : REAL := 0.0; 27407 yp : REAL := 0.0; 27408 xc : REAL := 0.0; 27409 yc : REAL := 0.0; 27410 rmax : REAL := 0.0; 27411 rmin : REAL := 0.0; 27412 amin : REAL := 0.0; 27413 amax : REAL := 0.0; 27414 rc : REAL := 0.0; 27415 acp : REAL := 0.0; 27416 apc : REAL := 0.0; 27417 rmax_in : BOOLEAN := FALSE; 27418 rmin_in : BOOLEAN := FALSE; 27419 amin_in : BOOLEAN := FALSE; 27420 amax_in : BOOLEAN := FALSE; 27421 rmxp : REAL := 0.0; 27422 rmnp : REAL := 0.0; 27423 x : REAL := 0.0; 27424 y : REAL := 0.0; 27425 r : REAL := 0.0; 27426 a : REAL := 0.0; 27427 ab : REAL := 0.0; 27428 r0 : REAL := 0.0; 27429 a0 : REAL := 0.0; 27430 r1 : REAL := 0.0; 27431 a1 : REAL := 0.0; 27432 r2 : REAL := 0.0; 27433 a2 : REAL := 0.0; 27434 r3 : REAL := 0.0; 27435 a3 : REAL := 0.0; 27436 in0 : BOOLEAN := FALSE; 27437 in1 : BOOLEAN := FALSE; 27438 in2 : BOOLEAN := FALSE; 27439 in3 : BOOLEAN := FALSE; 27440 inn : BOOLEAN := FALSE; 27441 minclo : open_closed := open; 27442 maxclo : open_closed := open; 27443 END_LOCAL; 27444 IF NOT EXISTS(prgn) OR NOT EXISTS(centre) THEN 27445 RETURN (?); 27446 END_IF; 27447 xp := prgn.centre.real_part; 27448 yp := prgn.centre.imag_part; 27449 ritp := prgn.distance_constraint; 27450 aitp := prgn.direction_constraint; 27451 xc := centre.real_part; 27452 yc := centre.imag_part; 27453 IF (xc = xp) AND (yc = yp) THEN 27454 RETURN (prgn); 27455 END_IF; 27456 rc := SQRT((xp - xc) ** 2 + (yp - yc) ** 2); 27457 acp := atan2(yp - yc, xp - xc); 27458 apc := atan2(yc - yp, xc - xp); 27459 rmnp := real_min(ritp); 27460 IF max_exists(ritp) THEN 27461 rmxp := real_max(ritp); 27462 IF aitp.max - aitp.min = 2.0 * 3.14159 THEN 27463 inn := NOT max_included(aitp); 27464 a := angle(aitp.min); 27465 rmax := rc + rmxp; 27466 rmax_in := max_included(ritp); 27467 IF inn AND (acp = a) THEN 27468 rmax_in := FALSE; 27469 END_IF; 27470 IF rc > rmxp THEN 27471 a0 := ASIN(rmxp / rc); 27472 amin := angle(acp - a0); 27473 amin_in := max_included(ritp); 27474 IF amin = 3.14159 THEN 27475 amin := -3.14159; 27476 END_IF; 27477 amax := angle(acp + a0); 27478 amax_in := amin_in; 27479 IF amax < amin THEN 27480 amax := amax + 2.0 * 3.14159; 27481 END_IF; 27482 rmin := rc - rmxp; 27483 rmin_in := amin_in; 27484 IF inn THEN 27485 IF apc = a THEN 27486 rmin_in := FALSE; 27487 END_IF; 27488 IF angle(amin + 0.500000 * 3.14159) = a THEN 27489 amin_in := FALSE; 27490 END_IF; 27491 IF angle(amax - 0.500000 * 3.14159) = a THEN 27492 amax_in := FALSE; 27493 END_IF; 27494 END_IF; 27495 ELSE 27496 IF rc = rmxp THEN 27497 amin := angle(acp - 0.500000 * 3.14159); 27498 amin_in := FALSE; 27499 IF amin = 3.14159 THEN 27500 amin := -3.14159; 27501 END_IF; 27502 amax := angle(acp + 0.500000 * 3.14159); 27503 amax_in := FALSE; 27504 IF amax < amin THEN 27505 amax := amax + 2.0 * 3.14159; 27506 END_IF; 27507 rmin := 0.0; 27508 rmin_in := max_included(ritp); 27509 IF inn AND (apc = a) THEN 27510 rmin_in := FALSE; 27511 END_IF; 27512 ELSE 27513 IF rc > rmnp THEN 27514 IF inn AND (apc = a) THEN 27515 rmin := 0.0; 27516 rmin_in := FALSE; 27517 amin := aitp.min; 27518 amin_in := FALSE; 27519 amax := aitp.max; 27520 amax_in := FALSE; 27521 ELSE 27522 rmin := 0.0; 27523 rmin_in := TRUE; 27524 amin := -3.14159; 27525 amin_in := FALSE; 27526 amax := 3.14159; 27527 amax_in := TRUE; 27528 END_IF; 27529 ELSE 27530 rmin := rmnp - rc; 27531 rmin_in := min_included(ritp); 27532 amin := -3.14159; 27533 amin_in := FALSE; 27534 amax := 3.14159; 27535 amax_in := TRUE; 27536 IF inn THEN 27537 IF apc = a THEN 27538 rmin_in := FALSE; 27539 amin := aitp.min; 27540 amin_in := FALSE; 27541 amax := aitp.max; 27542 amax_in := FALSE; 27543 ELSE 27544 IF acp = a THEN 27545 amin := aitp.min; 27546 amin_in := FALSE; 27547 amax := aitp.max; 27548 amax_in := FALSE; 27549 END_IF; 27550 END_IF; 27551 END_IF; 27552 END_IF; 27553 END_IF; 27554 END_IF; 27555 ELSE 27556 x := xp + rmxp * cos(aitp.min) - xc; 27557 y := yp + rmxp * sin(aitp.min) - yc; 27558 r0 := SQRT(x ** 2 + y ** 2); 27559 in0 := max_included(ritp) AND min_included(aitp); 27560 IF r0 <> 0.0 THEN 27561 a0 := atan2(y, x); 27562 END_IF; 27563 x := xp + rmxp * cos(aitp.max) - xc; 27564 y := yp + rmxp * sin(aitp.max) - yc; 27565 r1 := SQRT(x ** 2 + y ** 2); 27566 in1 := max_included(ritp) AND max_included(aitp); 27567 IF r1 <> 0.0 THEN 27568 a1 := atan2(y, x); 27569 END_IF; 27570 x := xp + rmnp * cos(aitp.max) - xc; 27571 y := yp + rmnp * sin(aitp.max) - yc; 27572 r2 := SQRT(x ** 2 + y ** 2); 27573 in2 := min_included(ritp) AND max_included(aitp); 27574 IF r2 <> 0.0 THEN 27575 a2 := atan2(y, x); 27576 ELSE 27577 a2 := a1; 27578 in2 := in1; 27579 END_IF; 27580 IF r1 = 0.0 THEN 27581 a1 := a2; 27582 in1 := in2; 27583 END_IF; 27584 x := xp + rmnp * cos(aitp.min) - xc; 27585 y := yp + rmnp * sin(aitp.min) - yc; 27586 r3 := SQRT(x ** 2 + y ** 2); 27587 in3 := min_included(ritp) AND min_included(aitp); 27588 IF r3 <> 0.0 THEN 27589 a3 := atan2(y, x); 27590 ELSE 27591 a3 := a0; 27592 in3 := in0; 27593 END_IF; 27594 IF r0 = 0.0 THEN 27595 a0 := a3; 27596 in0 := in3; 27597 END_IF; 27598 IF rmnp = 0.0 THEN 27599 in2 := min_included(ritp); 27600 in3 := in2; 27601 END_IF; 27602 IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN 27603 in0 := min_included(aitp); 27604 in3 := in0; 27605 ELSE 27606 IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN 27607 in1 := max_included(aitp); 27608 in2 := in1; 27609 END_IF; 27610 END_IF; 27611 IF strictly_in(acp, aitp) THEN 27612 rmax := rc + rmxp; 27613 rmax_in := max_included(ritp); 27614 ELSE 27615 rmax := r0; 27616 rmax_in := in0; 27617 IF rmax = r1 THEN 27618 rmax_in := rmax_in OR in1; 27619 END_IF; 27620 IF rmax < r1 THEN 27621 rmax := r1; 27622 rmax_in := in1; 27623 END_IF; 27624 IF rmax = r2 THEN 27625 rmax_in := rmax_in OR in2; 27626 END_IF; 27627 IF rmax < r2 THEN 27628 rmax := r2; 27629 rmax_in := in2; 27630 END_IF; 27631 IF rmax = r3 THEN 27632 rmax_in := rmax_in OR in3; 27633 END_IF; 27634 IF rmax < r3 THEN 27635 rmax := r3; 27636 rmax_in := in3; 27637 END_IF; 27638 END_IF; 27639 IF strictly_in(apc, aitp) THEN 27640 IF rc >= rmxp THEN 27641 rmin := rc - rmxp; 27642 rmin_in := max_included(ritp); 27643 ELSE 27644 IF rc <= rmnp THEN 27645 rmin := rmnp - rc; 27646 rmin_in := min_included(ritp); 27647 ELSE 27648 rmin := 0.0; 27649 rmin_in := TRUE; 27650 END_IF; 27651 END_IF; 27652 ELSE 27653 rmin := r0; 27654 rmin_in := in0; 27655 a := apc - aitp.min; 27656 r := rc * cos(a); 27657 IF (rmnp < r) AND (r < rmxp) THEN 27658 rmin := rc * sin(ABS(a)); 27659 rmin_in := min_included(aitp); 27660 END_IF; 27661 a := apc - aitp.max; 27662 r := rc * cos(a); 27663 IF (rmnp < r) AND (r < rmxp) THEN 27664 r := rc * sin(ABS(a)); 27665 inn := max_included(aitp); 27666 IF r = rmin THEN 27667 rmin_in := rmin_in OR inn; 27668 END_IF; 27669 IF r < rmin THEN 27670 rmin := r; 27671 rmin_in := inn; 27672 END_IF; 27673 END_IF; 27674 IF r1 = rmin THEN 27675 rmin_in := rmin_in OR in1; 27676 END_IF; 27677 IF r1 < rmin THEN 27678 rmin := r1; 27679 rmin_in := in1; 27680 END_IF; 27681 IF r2 = rmin THEN 27682 rmin_in := rmin_in OR in2; 27683 END_IF; 27684 IF r2 < rmin THEN 27685 rmin := r2; 27686 rmin_in := in2; 27687 END_IF; 27688 IF r3 = rmin THEN 27689 rmin_in := rmin_in OR in3; 27690 END_IF; 27691 IF r3 < rmin THEN 27692 rmin := r3; 27693 rmin_in := in3; 27694 END_IF; 27695 END_IF; 27696 IF rc >= rmxp THEN 27697 ab := acp; 27698 find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); 27699 a := ACOS(rmxp / rc); 27700 IF strictly_in(apc - a, aitp) THEN 27701 amin := ab - ASIN(rmxp / rc); 27702 amin_in := max_included(ritp); 27703 END_IF; 27704 IF strictly_in(apc + a, aitp) THEN 27705 amax := ab + ASIN(rmxp / rc); 27706 amax_in := max_included(ritp); 27707 END_IF; 27708 angle_range( amin, amax ); 27709 ELSE 27710 IF rc > rmnp THEN 27711 ab := angle(0.500000 * (aitp.min + aitp.max)); 27712 find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); 27713 ELSE 27714 ab := angle(0.500000 * (aitp.min + aitp.max)); 27715 a0 := angle(a0 - ab); 27716 a1 := angle(a1 - ab); 27717 a2 := angle(a2 - ab); 27718 a3 := angle(a3 - ab); 27719 IF a3 > a2 THEN 27720 a2 := a2 + 2.0 * 3.14159; 27721 END_IF; 27722 IF a0 > a1 THEN 27723 a0 := a0 + 2.0 * 3.14159; 27724 END_IF; 27725 IF a3 < a0 THEN 27726 amin := a3; 27727 amin_in := in3; 27728 ELSE 27729 amin := a0; 27730 amin_in := in0; 27731 END_IF; 27732 IF a2 > a1 THEN 27733 amax := a2; 27734 amax_in := in2; 27735 ELSE 27736 amax := a1; 27737 amax_in := in1; 27738 END_IF; 27739 IF (amax - amin > 2.0 * 3.14159) OR (amax - amin = 2.0 * 3.14159) AND (amin_in OR amax_in) THEN 27740 amin := -3.14159; 27741 amin_in := FALSE; 27742 amax := 3.14159; 27743 amax_in := TRUE; 27744 ELSE 27745 amin := amin + ab; 27746 amax := amax + ab; 27747 angle_range( amin, amax ); 27748 END_IF; 27749 END_IF; 27750 END_IF; 27751 END_IF; 27752 IF rmin_in THEN 27753 minclo := closed; 27754 END_IF; 27755 IF rmax_in THEN 27756 maxclo := closed; 27757 END_IF; 27758 ritv := make_finite_real_interval(rmin, minclo, rmax, maxclo); 27759 ELSE 27760 IF (rc > rmnp) AND strictly_in(apc, aitp) THEN 27761 RETURN (?); 27762 END_IF; 27763 IF aitp.max - aitp.min = 2.0 * 3.14159 THEN 27764 a := angle(aitp.min); 27765 IF rc > rmnp THEN 27766 IF max_included(aitp) THEN 27767 RETURN (?); 27768 END_IF; 27769 rmin := 0.0; 27770 rmin_in := FALSE; 27771 amin := aitp.min; 27772 amin_in := FALSE; 27773 amax := aitp.max; 27774 amax_in := FALSE; 27775 ELSE 27776 rmin := rmnp - rc; 27777 rmin_in := min_included(ritp); 27778 amin := -3.14159; 27779 amin_in := FALSE; 27780 amax := 3.14159; 27781 amax_in := TRUE; 27782 IF NOT max_included(aitp) THEN 27783 IF apc = a THEN 27784 rmin_in := FALSE; 27785 amin := aitp.min; 27786 amin_in := FALSE; 27787 amax := aitp.max; 27788 amax_in := FALSE; 27789 ELSE 27790 IF acp = a THEN 27791 amin := aitp.min; 27792 amin_in := FALSE; 27793 amax := aitp.max; 27794 amax_in := FALSE; 27795 END_IF; 27796 END_IF; 27797 END_IF; 27798 END_IF; 27799 ELSE 27800 a0 := angle(aitp.min); 27801 in0 := FALSE; 27802 a1 := angle(aitp.max); 27803 in1 := FALSE; 27804 x := xp + rmnp * cos(aitp.max) - xc; 27805 y := yp + rmnp * sin(aitp.max) - yc; 27806 r2 := SQRT(x ** 2 + y ** 2); 27807 in2 := min_included(ritp) AND max_included(aitp); 27808 IF r2 <> 0.0 THEN 27809 a2 := atan2(y, x); 27810 ELSE 27811 a2 := a1; 27812 in2 := in1; 27813 END_IF; 27814 x := xp + rmnp * cos(aitp.min) - xc; 27815 y := yp + rmnp * sin(aitp.min) - yc; 27816 r3 := SQRT(x ** 2 + y ** 2); 27817 in3 := min_included(ritp) AND min_included(aitp); 27818 IF r3 <> 0.0 THEN 27819 a3 := atan2(y, x); 27820 ELSE 27821 a3 := a0; 27822 in3 := in0; 27823 END_IF; 27824 IF rmnp = 0.0 THEN 27825 in2 := min_included(ritp); 27826 in3 := in2; 27827 END_IF; 27828 IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN 27829 in0 := min_included(aitp); 27830 in3 := in0; 27831 ELSE 27832 IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN 27833 in1 := max_included(aitp); 27834 in2 := in1; 27835 END_IF; 27836 END_IF; 27837 IF strictly_in(apc, aitp) THEN 27838 rmin := rmnp - rc; 27839 rmin_in := min_included(ritp); 27840 ELSE 27841 rmin := r2; 27842 rmin_in := in2; 27843 a := apc - aitp.min; 27844 r := rc * cos(a); 27845 IF rmnp < r THEN 27846 rmin := rc * sin(ABS(a)); 27847 rmin_in := min_included(aitp); 27848 END_IF; 27849 a := apc - aitp.max; 27850 r := rc * cos(a); 27851 IF rmnp < r THEN 27852 r := rc * sin(ABS(a)); 27853 inn := max_included(aitp); 27854 IF r = rmin THEN 27855 rmin_in := rmin_in OR inn; 27856 END_IF; 27857 IF r < rmin THEN 27858 rmin := r; 27859 rmin_in := inn; 27860 END_IF; 27861 END_IF; 27862 IF r3 = rmin THEN 27863 rmin_in := rmin_in OR in3; 27864 END_IF; 27865 IF r3 < rmin THEN 27866 rmin := r3; 27867 rmin_in := in3; 27868 END_IF; 27869 END_IF; 27870 ab := angle(0.500000 * (aitp.min + aitp.max)); 27871 IF rc > rmnp THEN 27872 find_aminmax( ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in ); 27873 ELSE 27874 a0 := angle(a0 - ab); 27875 a1 := angle(a1 - ab); 27876 a2 := angle(a2 - ab); 27877 a3 := angle(a3 - ab); 27878 IF a3 > a2 THEN 27879 a2 := a2 + 2.0 * 3.14159; 27880 END_IF; 27881 IF a0 > a1 THEN 27882 a0 := a0 + 2.0 * 3.14159; 27883 END_IF; 27884 IF a3 < a0 THEN 27885 amin := a3; 27886 amin_in := in3; 27887 ELSE 27888 amin := a0; 27889 amin_in := in0; 27890 END_IF; 27891 IF a2 > a1 THEN 27892 amax := a2; 27893 amax_in := in2; 27894 ELSE 27895 amax := a1; 27896 amax_in := in1; 27897 END_IF; 27898 IF (amax - amin > 2.0 * 3.14159) OR (amax - amin = 2.0 * 3.14159) AND (amin_in OR amax_in) THEN 27899 amin := -3.14159; 27900 amin_in := FALSE; 27901 amax := 3.14159; 27902 amax_in := TRUE; 27903 IF (rmin = 0.0) AND rmin_in THEN 27904 RETURN (?); 27905 END_IF; 27906 ELSE 27907 amin := amin + ab; 27908 amax := amax + ab; 27909 angle_range( amin, amax ); 27910 END_IF; 27911 END_IF; 27912 END_IF; 27913 IF rmin_in THEN 27914 minclo := closed; 27915 END_IF; 27916 ritv := make_real_interval_from_min(rmin, minclo); 27917 END_IF; 27918 minclo := open; 27919 maxclo := open; 27920 IF amin_in THEN 27921 minclo := closed; 27922 END_IF; 27923 IF amax_in THEN 27924 maxclo := closed; 27925 END_IF; 27926 aitv := make_finite_real_interval(amin, minclo, amax, maxclo); 27927 RETURN (make_polar_complex_number_region(centre, ritv, aitv)); 27928END_FUNCTION; 27929 27930-- IN AP242 27931FUNCTION equal_cregion_pregion 27932 (crgn : cartesian_complex_number_region; 27933 prgn : polar_complex_number_region ) : LOGICAL; 27934 LOCAL 27935 arng : REAL; 27936 amin : REAL; 27937 xc : REAL; 27938 yc : REAL; 27939 aitv : real_interval; 27940 xitv : real_interval; 27941 yitv : real_interval; 27942 c_in : BOOLEAN; 27943 END_LOCAL; 27944 IF NOT EXISTS(crgn) OR NOT EXISTS(prgn) THEN 27945 RETURN (FALSE); 27946 END_IF; 27947 IF max_exists(prgn.distance_constraint) THEN 27948 RETURN (FALSE); 27949 END_IF; 27950 IF real_min(prgn.distance_constraint) <> 0.0 THEN 27951 RETURN (FALSE); 27952 END_IF; 27953 c_in := min_included(prgn.distance_constraint); 27954 aitv := prgn.direction_constraint; 27955 amin := aitv.min; 27956 arng := aitv.max - amin; 27957 xc := prgn.centre.real_part; 27958 yc := prgn.centre.imag_part; 27959 xitv := crgn.real_constraint; 27960 yitv := crgn.imag_constraint; 27961 IF arng = 0.500000 * 3.14159 THEN 27962 IF amin = 0.0 THEN 27963 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))); 27964 END_IF; 27965 IF amin = 0.500000 * 3.14159 THEN 27966 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))); 27967 END_IF; 27968 IF amin = -3.14159 THEN 27969 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))); 27970 END_IF; 27971 IF amin = -0.500000 * 3.14159 THEN 27972 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))); 27973 END_IF; 27974 END_IF; 27975 IF arng = 3.14159 THEN 27976 IF amin = 0.0 THEN 27977 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))); 27978 END_IF; 27979 IF amin = 0.500000 * 3.14159 THEN 27980 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))); 27981 END_IF; 27982 IF amin = -3.14159 THEN 27983 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))); 27984 END_IF; 27985 IF amin = -0.500000 * 3.14159 THEN 27986 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))); 27987 END_IF; 27988 END_IF; 27989 RETURN (FALSE); 27990END_FUNCTION; 27991 27992-- IN AP242 27993FUNCTION equal_maths_functions 27994 (fun1 : maths_function; 27995 fun2 : maths_function ) : LOGICAL; 27996 LOCAL 27997 cum : LOGICAL; 27998 END_LOCAL; 27999 IF fun1 = fun2 THEN 28000 RETURN (TRUE); 28001 END_IF; 28002 cum := equal_maths_spaces(fun1.domain, fun2.domain); 28003 IF cum = FALSE THEN 28004 RETURN (FALSE); 28005 END_IF; 28006 cum := cum AND equal_maths_spaces(fun1.range, fun2.range); 28007 IF cum = FALSE THEN 28008 RETURN (FALSE); 28009 END_IF; 28010 RETURN (UNKNOWN); 28011END_FUNCTION; 28012 28013-- IN AP242 28014FUNCTION equal_maths_spaces 28015 (spc1 : maths_space; 28016 spc2 : maths_space ) : LOGICAL; 28017 LOCAL 28018 spc1types : SET OF STRING := stripped_typeof(spc1); 28019 spc2types : SET OF STRING := stripped_typeof(spc2); 28020 set1 : SET OF maths_value; 28021 set2 : SET OF maths_value; 28022 cum : LOGICAL := TRUE; 28023 base : maths_space; 28024 expnt : INTEGER; 28025 factors : LIST OF maths_space; 28026 factors2 : LIST OF maths_space; 28027 fs1 : function_space; 28028 fs2 : function_space; 28029 cum2 : LOGICAL; 28030 END_LOCAL; 28031 IF spc1 = spc2 THEN 28032 RETURN (TRUE); 28033 END_IF; 28034 IF 'FINITE_SPACE' IN spc1types THEN 28035 set1 := spc1\finite_space.members; 28036 IF 'FINITE_SPACE' IN spc2types THEN 28037 set2 := spc2\finite_space.members; 28038 REPEAT i := 1 TO SIZEOF(set1); 28039 cum := cum AND member_of(set1[i], spc2); 28040 IF cum = FALSE THEN 28041 RETURN (FALSE); 28042 END_IF; 28043 END_REPEAT; 28044 IF cum = TRUE THEN 28045 REPEAT i := 1 TO SIZEOF(set2); 28046 cum := cum AND member_of(set2[i], spc1); 28047 IF cum = FALSE THEN 28048 RETURN (FALSE); 28049 END_IF; 28050 END_REPEAT; 28051 END_IF; 28052 RETURN (cum); 28053 END_IF; 28054 IF 'FINITE_INTEGER_INTERVAL' IN spc2types THEN 28055 set2 := []; 28056 REPEAT i := spc2\finite_integer_interval.min TO spc2\finite_integer_interval.max; 28057 set2 := set2 + [ i ]; 28058 END_REPEAT; 28059 RETURN (equal_maths_spaces(spc1, make_finite_space(set2))); 28060 END_IF; 28061 END_IF; 28062 IF ('FINITE_INTEGER_INTERVAL' IN spc1types) AND ('FINITE_SPACE' IN spc2types) THEN 28063 set1 := []; 28064 REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max; 28065 set1 := set1 + [ i ]; 28066 END_REPEAT; 28067 RETURN (equal_maths_spaces(make_finite_space(set1), spc2)); 28068 END_IF; 28069 IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc1types) AND ('POLAR_COMPLEX_NUMBER_REGION' IN spc2types) THEN 28070 RETURN (equal_cregion_pregion(spc1, spc2)); 28071 END_IF; 28072 IF ('POLAR_COMPLEX_NUMBER_REGION' IN spc1types) AND ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types) THEN 28073 RETURN (equal_cregion_pregion(spc2, spc1)); 28074 END_IF; 28075 IF 'UNIFORM_PRODUCT_SPACE' IN spc1types THEN 28076 base := spc1\uniform_product_space.base; 28077 expnt := spc1\uniform_product_space.exponent; 28078 IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN 28079 IF expnt <> spc2\uniform_product_space.exponent THEN 28080 RETURN (FALSE); 28081 END_IF; 28082 RETURN (equal_maths_spaces(base, spc2\uniform_product_space.base)); 28083 END_IF; 28084 IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN 28085 factors := spc2\listed_product_space.factors; 28086 IF expnt <> SIZEOF(factors) THEN 28087 RETURN (FALSE); 28088 END_IF; 28089 REPEAT i := 1 TO SIZEOF(factors); 28090 cum := cum AND equal_maths_spaces(base, factors[i]); 28091 IF cum = FALSE THEN 28092 RETURN (FALSE); 28093 END_IF; 28094 END_REPEAT; 28095 RETURN (cum); 28096 END_IF; 28097 END_IF; 28098 IF 'LISTED_PRODUCT_SPACE' IN spc1types THEN 28099 factors := spc1\listed_product_space.factors; 28100 IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN 28101 IF spc2\uniform_product_space.exponent <> SIZEOF(factors) THEN 28102 RETURN (FALSE); 28103 END_IF; 28104 base := spc2\uniform_product_space.base; 28105 REPEAT i := 1 TO SIZEOF(factors); 28106 cum := cum AND equal_maths_spaces(base, factors[i]); 28107 IF cum = FALSE THEN 28108 RETURN (FALSE); 28109 END_IF; 28110 END_REPEAT; 28111 RETURN (cum); 28112 END_IF; 28113 IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN 28114 factors2 := spc2\listed_product_space.factors; 28115 IF SIZEOF(factors) <> SIZEOF(factors2) THEN 28116 RETURN (FALSE); 28117 END_IF; 28118 REPEAT i := 1 TO SIZEOF(factors); 28119 cum := cum AND equal_maths_spaces(factors[i], factors2[i]); 28120 IF cum = FALSE THEN 28121 RETURN (FALSE); 28122 END_IF; 28123 END_REPEAT; 28124 RETURN (cum); 28125 END_IF; 28126 END_IF; 28127 IF ('EXTENDED_TUPLE_SPACE' IN spc1types) AND ('EXTENDED_TUPLE_SPACE' IN spc2types) THEN 28128 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)); 28129 END_IF; 28130 IF ('FUNCTION_SPACE' IN spc1types) AND ('FUNCTION_SPACE' IN spc2types) THEN 28131 fs1 := spc1; 28132 fs2 := spc2; 28133 IF fs1.domain_constraint <> fs2.domain_constraint THEN 28134 IF (fs1.domain_constraint = sc_equal) OR (fs2.domain_constraint = sc_equal) THEN 28135 RETURN (FALSE); 28136 END_IF; 28137 IF fs1.domain_constraint <> sc_subspace THEN 28138 fs1 := spc2; 28139 fs2 := spc1; 28140 END_IF; 28141 IF (fs1.domain_constraint <> sc_subspace) OR (fs2.domain_constraint <> sc_member) THEN 28142 RETURN (UNKNOWN); 28143 END_IF; 28144 IF any_space_satisfies(fs1.domain_constraint, fs1.domain_argument) <> any_space_satisfies(fs2.domain_constraint, fs2.domain_argument) THEN 28145 RETURN (FALSE); 28146 END_IF; 28147 IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.domain_argument)) THEN 28148 RETURN (FALSE); 28149 END_IF; 28150 IF SIZEOF([ 'FINITE_SPACE', 'FINITE_INTEGER_INTERVAL' ] * stripped_typeof(fs1.domain_argument)) = 0 THEN 28151 RETURN (FALSE); 28152 END_IF; 28153 RETURN (UNKNOWN); 28154 END_IF; 28155 cum := equal_maths_spaces(fs1.domain_argument, fs2.domain_argument); 28156 IF cum = FALSE THEN 28157 RETURN (FALSE); 28158 END_IF; 28159 IF fs1.range_constraint <> fs2.range_constraint THEN 28160 IF (fs1.range_constraint = sc_equal) OR (fs2.range_constraint = sc_equal) THEN 28161 RETURN (FALSE); 28162 END_IF; 28163 IF fs1.range_constraint <> sc_subspace THEN 28164 fs1 := spc2; 28165 fs2 := spc1; 28166 END_IF; 28167 IF (fs1.range_constraint <> sc_subspace) OR (fs2.range_constraint <> sc_member) THEN 28168 RETURN (UNKNOWN); 28169 END_IF; 28170 IF any_space_satisfies(fs1.range_constraint, fs1.range_argument) <> any_space_satisfies(fs2.range_constraint, fs2.range_argument) THEN 28171 RETURN (FALSE); 28172 END_IF; 28173 IF NOT ('FINITE_SPACE' IN stripped_typeof(fs2.range_argument)) THEN 28174 RETURN (FALSE); 28175 END_IF; 28176 IF SIZEOF([ 'FINITE_SPACE', 'FINITE_INTEGER_INTERVAL' ] * stripped_typeof(fs1.range_argument)) = 0 THEN 28177 RETURN (FALSE); 28178 END_IF; 28179 RETURN (UNKNOWN); 28180 END_IF; 28181 cum := cum AND equal_maths_spaces(fs1.range_argument, fs2.range_argument); 28182 RETURN (cum); 28183 END_IF; 28184 RETURN (FALSE); 28185END_FUNCTION; 28186 28187-- IN AP242 28188FUNCTION equal_maths_values 28189 (val1 : maths_value; 28190 val2 : maths_value ) : LOGICAL; 28191 FUNCTION mem_of_vs 28192 (val1 : maths_value; 28193 val2 : maths_value ) : LOGICAL; 28194 IF NOT has_values_space(val2) THEN 28195 RETURN (UNKNOWN); 28196 END_IF; 28197 IF NOT member_of(val1, values_space_of(val2)) THEN 28198 RETURN (FALSE); 28199 END_IF; 28200 RETURN (UNKNOWN); 28201 END_FUNCTION; 28202 LOCAL 28203 types1 : SET OF STRING; 28204 types2 : SET OF STRING; 28205 list1 : LIST OF maths_value; 28206 list2 : LIST OF maths_value; 28207 cum : LOGICAL := TRUE; 28208 END_LOCAL; 28209 IF NOT EXISTS(val1) OR NOT EXISTS(val2) THEN 28210 RETURN (FALSE); 28211 END_IF; 28212 IF val1 = val2 THEN 28213 RETURN (TRUE); 28214 END_IF; 28215 types1 := stripped_typeof(val1); 28216 types2 := stripped_typeof(val2); 28217 IF ('MATHS_ATOM' IN types1) OR ('COMPLEX_NUMBER_LITERAL' IN types1) THEN 28218 IF 'MATHS_ATOM' IN types2 THEN 28219 RETURN (FALSE); 28220 END_IF; 28221 IF 'COMPLEX_NUMBER_LITERAL' IN types2 THEN 28222 RETURN (FALSE); 28223 END_IF; 28224 IF 'LIST' IN types2 THEN 28225 RETURN (FALSE); 28226 END_IF; 28227 IF 'MATHS_SPACE' IN types2 THEN 28228 RETURN (FALSE); 28229 END_IF; 28230 IF 'MATHS_FUNCTION' IN types2 THEN 28231 RETURN (FALSE); 28232 END_IF; 28233 IF 'GENERIC_EXPRESSION' IN types2 THEN 28234 RETURN (mem_of_vs(val1, val2)); 28235 END_IF; 28236 RETURN (UNKNOWN); 28237 END_IF; 28238 IF ('MATHS_ATOM' IN types2) OR ('COMPLEX_NUMBER_LITERAL' IN types2) THEN 28239 RETURN (equal_maths_values(val2, val1)); 28240 END_IF; 28241 IF 'LIST' IN types1 THEN 28242 IF 'LIST' IN types2 THEN 28243 list1 := val1; 28244 list2 := val2; 28245 IF SIZEOF(list1) <> SIZEOF(list2) THEN 28246 RETURN (FALSE); 28247 END_IF; 28248 REPEAT i := 1 TO SIZEOF(list1); 28249 cum := cum AND equal_maths_values(list1[i], list2[i]); 28250 IF cum = FALSE THEN 28251 RETURN (FALSE); 28252 END_IF; 28253 END_REPEAT; 28254 RETURN (cum); 28255 END_IF; 28256 IF 'MATHS_SPACE' IN types2 THEN 28257 RETURN (FALSE); 28258 END_IF; 28259 IF 'MATHS_FUNCTION' IN types2 THEN 28260 RETURN (FALSE); 28261 END_IF; 28262 IF 'GENERIC_EXPRESSION' IN types2 THEN 28263 RETURN (mem_of_vs(val1, val2)); 28264 END_IF; 28265 RETURN (UNKNOWN); 28266 END_IF; 28267 IF 'LIST' IN types2 THEN 28268 RETURN (equal_maths_values(val2, val1)); 28269 END_IF; 28270 IF 'MATHS_SPACE' IN types1 THEN 28271 IF 'MATHS_SPACE' IN types2 THEN 28272 RETURN (equal_maths_spaces(val1, val2)); 28273 END_IF; 28274 IF 'MATHS_FUNCTION' IN types2 THEN 28275 RETURN (FALSE); 28276 END_IF; 28277 IF 'GENERIC_EXPRESSION' IN types2 THEN 28278 RETURN (mem_of_vs(val1, val2)); 28279 END_IF; 28280 RETURN (UNKNOWN); 28281 END_IF; 28282 IF 'MATHS_SPACE' IN types2 THEN 28283 RETURN (equal_maths_values(val2, val1)); 28284 END_IF; 28285 IF 'MATHS_FUNCTION' IN types1 THEN 28286 IF 'MATHS_FUNCTION' IN types2 THEN 28287 RETURN (equal_maths_functions(val1, val2)); 28288 END_IF; 28289 IF 'GENERIC_EXPRESSION' IN types2 THEN 28290 RETURN (mem_of_vs(val1, val2)); 28291 END_IF; 28292 RETURN (UNKNOWN); 28293 END_IF; 28294 IF 'MATHS_FUNCTION' IN types2 THEN 28295 RETURN (equal_maths_values(val2, val1)); 28296 END_IF; 28297 IF ('GENERIC_EXPRESSION' IN types1) AND ('GENERIC_EXPRESSION' IN types2) THEN 28298 IF NOT has_values_space(val1) OR NOT has_values_space(val2) THEN 28299 RETURN (UNKNOWN); 28300 END_IF; 28301 IF NOT compatible_spaces(values_space_of(val1), values_space_of(val2)) THEN 28302 RETURN (FALSE); 28303 END_IF; 28304 END_IF; 28305 RETURN (UNKNOWN); 28306END_FUNCTION; 28307 28308-- IN AP242 28309FUNCTION es_subspace_of_es 28310 (es1 : elementary_space_enumerators; 28311 es2 : elementary_space_enumerators ) : BOOLEAN; 28312 IF NOT EXISTS(es1) OR NOT EXISTS(es2) THEN 28313 RETURN (FALSE); 28314 END_IF; 28315 IF es1 = es2 THEN 28316 RETURN (TRUE); 28317 END_IF; 28318 IF es2 = es_generics THEN 28319 RETURN (TRUE); 28320 END_IF; 28321 IF (es1 = es_booleans) AND (es2 = es_logicals) THEN 28322 RETURN (TRUE); 28323 END_IF; 28324 IF (es2 = es_numbers) AND (((es1 = es_complex_numbers) OR (es1 = es_reals)) OR (es1 = es_integers)) THEN 28325 RETURN (TRUE); 28326 END_IF; 28327 RETURN (FALSE); 28328END_FUNCTION; 28329 28330-- IN AP242 28331FUNCTION expression_is_constant 28332 (expr : generic_expression ) : BOOLEAN; 28333 RETURN (bool(SIZEOF(free_variables_of(expr)) = 0)); 28334END_FUNCTION; 28335 28336-- DIFF IN AP203e2 28337-- IN AP203e2/AP242 28338FUNCTION external_version_assignment_is_valid 28339 (aia : applied_external_identification_assignment ) : BOOLEAN; 28340 LOCAL 28341 item : external_identification_item; 28342 role : identification_role; 28343 END_LOCAL; 28344 role := aia.role; 28345 IF role.name = 'version' THEN 28346 REPEAT i := LOINDEX(aia\applied_external_identification_assignment.items) TO HIINDEX(aia\applied_external_identification_assignment.items); 28347 item := aia\applied_external_identification_assignment.items[i]; 28348 IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.EXTERNALLY_DEFINED_GENERAL_PROPERTY' ] * TYPEOF(item)) = 0 THEN 28349 RETURN (FALSE); 28350 END_IF; 28351 END_REPEAT; 28352 RETURN (TRUE); 28353 ELSE 28354 RETURN (TRUE); 28355 END_IF; 28356END_FUNCTION; 28357 28358-- IN AP242 28359FUNCTION extract_factors 28360 (tspace : tuple_space; 28361 m : INTEGER; 28362 n : INTEGER ) : tuple_space; 28363 LOCAL 28364 tsp : tuple_space := the_zero_tuple_space; 28365 END_LOCAL; 28366 REPEAT i := m TO n; 28367 tsp := assoc_product_space(tsp, factor_space(tspace, i)); 28368 END_REPEAT; 28369 RETURN (tsp); 28370END_FUNCTION; 28371 28372FUNCTION face_bound_reversed 28373 (a_face_bound : face_bound ) : face_bound; 28374 LOCAL 28375 the_reverse : face_bound; 28376 END_LOCAL; 28377 IF 'STEP_MERGED_CAD_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(a_face_bound) THEN 28378 the_reverse := dummy_tri || face_bound(a_face_bound\face_bound.bound, NOT a_face_bound\face_bound.orientation) || face_outer_bound(); 28379 ELSE 28380 the_reverse := dummy_tri || face_bound(a_face_bound.bound, NOT a_face_bound.orientation); 28381 END_IF; 28382 RETURN (the_reverse); 28383END_FUNCTION; 28384 28385FUNCTION face_reversed 28386 (a_face : face ) : oriented_face; 28387 LOCAL 28388 the_reverse : oriented_face; 28389 END_LOCAL; 28390 IF 'STEP_MERGED_CAD_SCHEMA.ORIENTED_FACE' IN TYPEOF(a_face) THEN 28391 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); 28392 ELSE 28393 the_reverse := dummy_tri || face(set_of_topology_reversed(a_face.bounds)) || oriented_face(a_face, FALSE); 28394 END_IF; 28395 RETURN (the_reverse); 28396END_FUNCTION; 28397 28398-- IN AP242 28399FUNCTION factor1 28400 (tspace : tuple_space ) : maths_space; 28401 LOCAL 28402 typenames : SET OF STRING := TYPEOF(tspace); 28403 END_LOCAL; 28404 IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN typenames THEN 28405 RETURN (tspace\uniform_product_space.base); 28406 END_IF; 28407 IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN typenames THEN 28408 RETURN (tspace\listed_product_space.factors[1]); 28409 END_IF; 28410 IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN typenames THEN 28411 RETURN (factor1(tspace\extended_tuple_space.base)); 28412 END_IF; 28413 RETURN (?); 28414END_FUNCTION; 28415 28416-- IN AP242 28417FUNCTION factor_space 28418 (tspace : tuple_space; 28419 idx : positive_integer ) : maths_space; 28420 LOCAL 28421 typenames : SET OF STRING := TYPEOF(tspace); 28422 END_LOCAL; 28423 IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN typenames THEN 28424 IF idx <= tspace\uniform_product_space.exponent THEN 28425 RETURN (tspace\uniform_product_space.base); 28426 END_IF; 28427 RETURN (?); 28428 END_IF; 28429 IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN typenames THEN 28430 IF idx <= SIZEOF(tspace\listed_product_space.factors) THEN 28431 RETURN (tspace\listed_product_space.factors[idx]); 28432 END_IF; 28433 RETURN (?); 28434 END_IF; 28435 IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN typenames THEN 28436 IF idx <= space_dimension(tspace\extended_tuple_space.base) THEN 28437 RETURN (factor_space(tspace\extended_tuple_space.base, idx)); 28438 END_IF; 28439 RETURN (tspace\extended_tuple_space.extender); 28440 END_IF; 28441 RETURN (?); 28442END_FUNCTION; 28443 28444-- IN AP242 28445FUNCTION find_assembly_root 28446 (constituent : SET [0:?] OF product_definition ) : SET [0:?] OF product_definition; 28447 LOCAL 28448 local_relation : SET OF assembly_component_usage := []; 28449 local_relation2 : BAG OF assembly_component_usage := []; 28450 local_parent : SET OF product_definition := []; 28451 root : SET OF product_definition; 28452 i : INTEGER := 0; 28453 j : INTEGER := 0; 28454 END_LOCAL; 28455 IF (SIZEOF(constituent) = 1) AND assembly_root(constituent[1]) THEN 28456 RETURN ([ constituent[1] ]); 28457 ELSE 28458 IF SIZEOF(constituent) = 0 THEN 28459 RETURN ([]); 28460 ELSE 28461 REPEAT j := 1 TO HIINDEX(constituent); 28462 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))); 28463 END_REPEAT; 28464 local_relation := bag_to_set(local_relation2); 28465 IF SIZEOF(local_relation) = 0 THEN 28466 IF SIZEOF(constituent) = 1 THEN 28467 RETURN ([ constituent[1] ]); 28468 ELSE 28469 RETURN ([]); 28470 END_IF; 28471 ELSE 28472 REPEAT i := 1 TO HIINDEX(local_relation); 28473 REPEAT j := 1 TO HIINDEX(constituent); 28474 IF local_relation[i].relating_product_definition <> constituent[j] THEN 28475 local_parent := local_parent + local_relation[i].relating_product_definition; 28476 END_IF; 28477 END_REPEAT; 28478 END_REPEAT; 28479 IF (SIZEOF(local_parent) = 1) AND assembly_root(local_parent[1]) THEN 28480 RETURN ([ local_parent[1] ]); 28481 ELSE 28482 IF SIZEOF(local_parent) = 0 THEN 28483 RETURN ([]); 28484 ELSE 28485 root := find_assembly_root(local_parent); 28486 IF SIZEOF(root) = 1 THEN 28487 RETURN (root); 28488 ELSE 28489 IF SIZEOF(root) = 0 THEN 28490 RETURN ([]); 28491 END_IF; 28492 END_IF; 28493 END_IF; 28494 END_IF; 28495 END_IF; 28496 END_IF; 28497 END_IF; 28498 RETURN ([]); 28499END_FUNCTION; 28500 28501-- IN AP242 28502FUNCTION find_representative_shape_representation_of_product_definition 28503 (item : product_definition ) : shape_representation; 28504 LOCAL 28505 local_s_r : SET OF shape_representation := []; 28506 END_LOCAL; 28507 local_s_r := QUERY (z <* find_shape_representation_of_product_definition(item)| 'STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z)); 28508 IF SIZEOF(local_s_r) = 1 THEN 28509 RETURN (local_s_r[1]); 28510 ELSE 28511 RETURN (?); 28512 END_IF; 28513END_FUNCTION; 28514 28515-- IN AP242 28516FUNCTION find_representative_shape_representation_of_shape_aspect 28517 (item : shape_aspect ) : shape_representation; 28518 LOCAL 28519 local_s_r : SET OF shape_representation := []; 28520 END_LOCAL; 28521 local_s_r := QUERY (z <* find_shape_representation_of_shape_aspect(item)| 'STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z)); 28522 IF SIZEOF(local_s_r) = 1 THEN 28523 RETURN (local_s_r[1]); 28524 ELSE 28525 RETURN (?); 28526 END_IF; 28527END_FUNCTION; 28528 28529-- IN AP242 28530FUNCTION find_shape_representation_of_product_definition 28531 (item : product_definition ) : SET [0:?] OF shape_representation; 28532 LOCAL 28533 local_p_d_s : SET OF product_definition_shape := []; 28534 local_p_d_s2 : BAG OF product_definition_shape := []; 28535 local_s_d_r : SET OF shape_definition_representation := []; 28536 local_s_d_r2 : BAG OF shape_definition_representation := []; 28537 local_s_r : SET OF shape_representation := []; 28538 i : INTEGER; 28539 END_LOCAL; 28540 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))); 28541 local_p_d_s := bag_to_set(local_p_d_s2); 28542 REPEAT i := 1 TO HIINDEX(local_p_d_s); 28543 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))); 28544 END_REPEAT; 28545 local_s_d_r := bag_to_set(local_s_d_r2); 28546 REPEAT i := 1 TO HIINDEX(local_s_d_r); 28547 IF 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(local_s_d_r[i].used_representation) THEN 28548 local_s_r := local_s_r + local_s_d_r[i].used_representation; 28549 END_IF; 28550 END_REPEAT; 28551 RETURN (local_s_r); 28552END_FUNCTION; 28553 28554-- IN AP242 28555FUNCTION find_shape_representation_of_shape_aspect 28556 (item : shape_aspect ) : SET [0:?] OF shape_representation; 28557 LOCAL 28558 local_p_d : SET OF property_definition := []; 28559 local_s_d_r : SET OF shape_definition_representation := []; 28560 local_s_d_r2 : BAG OF shape_definition_representation := []; 28561 local_s_r : SET OF shape_representation := []; 28562 i : INTEGER; 28563 END_LOCAL; 28564 local_p_d := bag_to_set(USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); 28565 REPEAT i := 1 TO HIINDEX(local_p_d); 28566 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))); 28567 END_REPEAT; 28568 local_s_d_r := bag_to_set(local_s_d_r2); 28569 REPEAT i := 1 TO HIINDEX(local_s_d_r); 28570 IF 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(local_s_d_r[i].used_representation) THEN 28571 local_s_r := local_s_r + local_s_d_r[i].used_representation; 28572 END_IF; 28573 END_REPEAT; 28574 RETURN (local_s_r); 28575END_FUNCTION; 28576 28577FUNCTION first_proj_axis 28578 (z_axis : direction; 28579 arg : direction ) : direction; 28580 LOCAL 28581 x_axis : direction; 28582 v : direction; 28583 z : direction; 28584 x_vec : vector; 28585 END_LOCAL; 28586 IF NOT EXISTS(z_axis) THEN 28587 RETURN (?); 28588 ELSE 28589 z := normalise(z_axis); 28590 IF NOT EXISTS(arg) THEN 28591 IF (z.direction_ratios <> [ 1.0, 0.0, 0.0 ]) AND (z.direction_ratios <> [ -1.0, 0.0, 0.0 ]) THEN 28592 v := dummy_gri || direction([ 1.0, 0.0, 0.0 ]); 28593 ELSE 28594 v := dummy_gri || direction([ 0.0, 1.0, 0.0 ]); 28595 END_IF; 28596 ELSE 28597 IF arg.dim <> 3 THEN 28598 RETURN (?); 28599 END_IF; 28600 IF cross_product(arg, z).magnitude = 0.0 THEN 28601 RETURN (?); 28602 ELSE 28603 v := normalise(arg); 28604 END_IF; 28605 END_IF; 28606 x_vec := scalar_times_vector(dot_product(v, z), z); 28607 x_axis := vector_difference(v, x_vec).orientation; 28608 x_axis := normalise(x_axis); 28609 END_IF; 28610 RETURN (x_axis); 28611END_FUNCTION; 28612 28613-- IN AP214 28614FUNCTION frame_associated_to_background 28615 (frame : rigid_placement; 28616 background : kinematic_frame_background ) : BOOLEAN; 28617 LOCAL 28618 rep_bag : BAG OF kinematic_frame_background_representation; 28619 trf_bag : BAG OF kinematic_frame_based_transformation; 28620 trm_bag : BAG OF kinematic_frame_based_transformation; 28621 ass_bag : BAG OF kinematic_frame_background_representation_association; 28622 rep : kinematic_frame_background_representation; 28623 ass : kinematic_frame_background_representation_association; 28624 END_LOCAL; 28625 rep_bag := QUERY (bg <* USEDIN(background, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS')| 'STEP_MERGED_CAD_SCHEMA.' + 'KINEMATIC_FRAME_BACKGROUND_REPRESENTATION' IN TYPEOF(bg)); 28626 IF SIZEOF(rep_bag) = 0 THEN 28627 RETURN (FALSE); 28628 END_IF; 28629 trf_bag := USEDIN(frame, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_FRAME_BASED_TRANSFORMATION.TRANSFORMATOR'); 28630 IF SIZEOF(trf_bag) = 0 THEN 28631 RETURN (FALSE); 28632 END_IF; 28633 REPEAT i := 1 TO HIINDEX(rep_bag); 28634 rep := rep_bag[i]; 28635 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)); 28636 IF SIZEOF(ass_bag) > 0 THEN 28637 REPEAT j := 1 TO HIINDEX(ass_bag); 28638 ass := ass_bag[j]; 28639 trm_bag := QUERY (trm <* trf_bag| trm :=: ass\representation_relationship_with_transformation.transformation_operator); 28640 IF SIZEOF(trm_bag) > 0 THEN 28641 RETURN (TRUE); 28642 END_IF; 28643 END_REPEAT; 28644 END_IF; 28645 END_REPEAT; 28646 RETURN (FALSE); 28647END_FUNCTION; 28648 28649-- IN AP242 28650FUNCTION free_variables_of 28651 (expr : generic_expression ) : SET [0:?] OF generic_variable; 28652 LOCAL 28653 typenames : SET OF STRING := stripped_typeof(expr); 28654 result : SET OF generic_variable := []; 28655 exprs : LIST OF generic_expression := []; 28656 END_LOCAL; 28657 IF 'GENERIC_LITERAL' IN typenames THEN 28658 RETURN (result); 28659 END_IF; 28660 IF 'GENERIC_VARIABLE' IN typenames THEN 28661 result := result + expr; 28662 RETURN (result); 28663 END_IF; 28664 IF 'QUANTIFIER_EXPRESSION' IN typenames THEN 28665 exprs := QUERY (ge <* expr\multiple_arity_generic_expression.operands| NOT (ge IN expr\quantifier_expression.variables)); 28666 REPEAT i := 1 TO SIZEOF(exprs); 28667 result := result + free_variables_of(exprs[i]); 28668 END_REPEAT; 28669 REPEAT i := 1 TO SIZEOF(expr\quantifier_expression.variables); 28670 result := result - expr\quantifier_expression.variables[i]; 28671 END_REPEAT; 28672 RETURN (result); 28673 END_IF; 28674 IF 'UNARY_GENERIC_EXPRESSION' IN typenames THEN 28675 RETURN (free_variables_of(expr\unary_generic_expression.operand)); 28676 END_IF; 28677 IF 'BINARY_GENERIC_EXPRESSION' IN typenames THEN 28678 result := free_variables_of(expr\binary_generic_expression.operands[1]); 28679 RETURN (result + free_variables_of(expr\binary_generic_expression.operands[2])); 28680 END_IF; 28681 IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames THEN 28682 REPEAT i := 1 TO SIZEOF(expr\multiple_arity_generic_expression.operands); 28683 result := result + free_variables_of(expr\multiple_arity_generic_expression.operands[i]); 28684 END_REPEAT; 28685 RETURN (result); 28686 END_IF; 28687 RETURN (result); 28688END_FUNCTION; 28689 28690-- IN AP242 28691FUNCTION function_applicability 28692 (func : maths_function_select; 28693 arguments : LIST [1:?] OF maths_value ) : BOOLEAN; 28694 LOCAL 28695 domain : tuple_space := convert_to_maths_function(func).domain; 28696 domain_types : SET OF STRING := TYPEOF(domain); 28697 narg : positive_integer := SIZEOF(arguments); 28698 arg : generic_expression; 28699 END_LOCAL; 28700 IF schema_prefix + 'PRODUCT_SPACE' IN domain_types THEN 28701 IF space_dimension(domain) <> narg THEN 28702 RETURN (FALSE); 28703 END_IF; 28704 ELSE 28705 IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN domain_types THEN 28706 IF space_dimension(domain) > narg THEN 28707 RETURN (FALSE); 28708 END_IF; 28709 ELSE 28710 RETURN (FALSE); 28711 END_IF; 28712 END_IF; 28713 REPEAT i := 1 TO narg; 28714 arg := convert_to_operand(arguments[i]); 28715 IF NOT has_values_space(arg) THEN 28716 RETURN (FALSE); 28717 END_IF; 28718 IF NOT compatible_spaces(factor_space(domain, i), values_space_of(arg)) THEN 28719 RETURN (FALSE); 28720 END_IF; 28721 END_REPEAT; 28722 RETURN (TRUE); 28723END_FUNCTION; 28724 28725-- IN AP242 28726FUNCTION function_is_1d_array 28727 (func : maths_function ) : BOOLEAN; 28728 LOCAL 28729 temp : maths_space; 28730 END_LOCAL; 28731 IF NOT EXISTS(func) THEN 28732 RETURN (FALSE); 28733 END_IF; 28734 IF space_dimension(func.domain) <> 1 THEN 28735 RETURN (FALSE); 28736 END_IF; 28737 temp := factor1(func.domain); 28738 IF schema_prefix + 'PRODUCT_SPACE' IN TYPEOF(temp) THEN 28739 IF space_dimension(temp) <> 1 THEN 28740 RETURN (FALSE); 28741 END_IF; 28742 temp := factor1(temp); 28743 END_IF; 28744 IF schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp) THEN 28745 RETURN (TRUE); 28746 END_IF; 28747 RETURN (FALSE); 28748END_FUNCTION; 28749 28750-- IN AP242 28751FUNCTION function_is_1d_table 28752 (func : maths_function ) : BOOLEAN; 28753 LOCAL 28754 temp : maths_space; 28755 itvl : finite_integer_interval; 28756 END_LOCAL; 28757 IF NOT EXISTS(func) THEN 28758 RETURN (FALSE); 28759 END_IF; 28760 IF space_dimension(func.domain) <> 1 THEN 28761 RETURN (FALSE); 28762 END_IF; 28763 temp := factor1(func.domain); 28764 IF schema_prefix + 'PRODUCT_SPACE' IN TYPEOF(temp) THEN 28765 IF space_dimension(temp) <> 1 THEN 28766 RETURN (FALSE); 28767 END_IF; 28768 temp := factor1(temp); 28769 END_IF; 28770 IF schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp) THEN 28771 itvl := temp; 28772 RETURN (bool((itvl.min = 0) OR (itvl.min = 1))); 28773 END_IF; 28774 RETURN (FALSE); 28775END_FUNCTION; 28776 28777-- IN AP242 28778FUNCTION function_is_2d_table 28779 (func : maths_function ) : BOOLEAN; 28780 LOCAL 28781 temp : maths_space; 28782 pspace : product_space; 28783 itvl1 : finite_integer_interval; 28784 itvl2 : finite_integer_interval; 28785 END_LOCAL; 28786 IF NOT EXISTS(func) THEN 28787 RETURN (FALSE); 28788 END_IF; 28789 IF space_dimension(func.domain) <> 1 THEN 28790 RETURN (FALSE); 28791 END_IF; 28792 temp := factor1(func.domain); 28793 IF NOT ('PRODUCT_SPACE' IN stripped_typeof(temp)) THEN 28794 RETURN (FALSE); 28795 END_IF; 28796 pspace := temp; 28797 IF space_dimension(pspace) <> 2 THEN 28798 RETURN (FALSE); 28799 END_IF; 28800 temp := factor1(pspace); 28801 IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) THEN 28802 RETURN (FALSE); 28803 END_IF; 28804 itvl1 := temp; 28805 temp := factor_space(pspace, 2); 28806 IF NOT ('FINITE_INTEGER_INTERVAL' IN stripped_typeof(temp)) THEN 28807 RETURN (FALSE); 28808 END_IF; 28809 itvl2 := temp; 28810 RETURN (bool((itvl1.min = itvl2.min) AND ((itvl1.min = 0) OR (itvl1.min = 1)))); 28811END_FUNCTION; 28812 28813-- IN AP242 28814FUNCTION function_is_array 28815 (func : maths_function ) : BOOLEAN; 28816 LOCAL 28817 tspace : tuple_space; 28818 temp : maths_space; 28819 END_LOCAL; 28820 IF NOT EXISTS(func) THEN 28821 RETURN (FALSE); 28822 END_IF; 28823 tspace := func.domain; 28824 IF (space_dimension(tspace) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(tspace))) THEN 28825 tspace := factor1(tspace); 28826 END_IF; 28827 IF NOT (schema_prefix + 'PRODUCT_SPACE' IN TYPEOF(tspace)) THEN 28828 RETURN (FALSE); 28829 END_IF; 28830 REPEAT i := 1 TO space_dimension(tspace); 28831 temp := factor_space(tspace, i); 28832 IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN 28833 RETURN (FALSE); 28834 END_IF; 28835 END_REPEAT; 28836 RETURN (TRUE); 28837END_FUNCTION; 28838 28839-- IN AP242 28840FUNCTION function_is_table 28841 (func : maths_function ) : BOOLEAN; 28842 LOCAL 28843 tspace : tuple_space; 28844 temp : maths_space; 28845 base : INTEGER; 28846 END_LOCAL; 28847 IF NOT EXISTS(func) THEN 28848 RETURN (FALSE); 28849 END_IF; 28850 tspace := func.domain; 28851 IF (space_dimension(tspace) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(tspace))) THEN 28852 tspace := factor1(tspace); 28853 END_IF; 28854 IF NOT (schema_prefix + 'PRODUCT_SPACE' IN TYPEOF(tspace)) THEN 28855 RETURN (FALSE); 28856 END_IF; 28857 temp := factor1(tspace); 28858 IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN 28859 RETURN (FALSE); 28860 END_IF; 28861 base := temp\finite_integer_interval.min; 28862 IF (base <> 0) AND (base <> 1) THEN 28863 RETURN (FALSE); 28864 END_IF; 28865 REPEAT i := 2 TO space_dimension(tspace); 28866 temp := factor_space(tspace, i); 28867 IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN 28868 RETURN (FALSE); 28869 END_IF; 28870 IF temp\finite_integer_interval.min <> base THEN 28871 RETURN (FALSE); 28872 END_IF; 28873 END_REPEAT; 28874 RETURN (TRUE); 28875END_FUNCTION; 28876 28877FUNCTION gbsf_check_curve 28878 (cv : representation_item ) : BOOLEAN; 28879 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 28880 RETURN (FALSE); 28881 END_IF; 28882 IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CIRCLE', 'STEP_MERGED_CAD_SCHEMA.ELLIPSE', 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' ] * TYPEOF(cv)) = 1 THEN 28883 RETURN (TRUE); 28884 ELSE 28885 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 28886 RETURN (TRUE); 28887 ELSE 28888 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 28889 RETURN (SIZEOF(QUERY (seg <* cv\composite_curve.segments| NOT gbsf_check_curve(seg.parent_curve))) = 0); 28890 ELSE 28891 IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN 28892 RETURN (gbsf_check_curve(cv\curve_replica.parent_curve)); 28893 ELSE 28894 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 28895 RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve)); 28896 ELSE 28897 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv) THEN 28898 RETURN (gbsf_check_curve(cv\pcurve.reference_to_curve\representation.items[1]) AND gbsf_check_surface(cv\pcurve.basis_surface)); 28899 ELSE 28900 IF 'STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN 28901 IF SIZEOF(cv\polyline.points) >= 3 THEN 28902 RETURN (TRUE); 28903 END_IF; 28904 ELSE 28905 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv) THEN 28906 IF gbsf_check_curve(cv\surface_curve.curve_3d) THEN 28907 REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry); 28908 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN 28909 IF NOT gbsf_check_surface(cv\surface_curve.associated_geometry[i]) THEN 28910 RETURN (FALSE); 28911 END_IF; 28912 ELSE 28913 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN 28914 IF NOT gbsf_check_curve(cv\surface_curve.associated_geometry[i]) THEN 28915 RETURN (FALSE); 28916 END_IF; 28917 END_IF; 28918 END_IF; 28919 END_REPEAT; 28920 RETURN (TRUE); 28921 END_IF; 28922 END_IF; 28923 END_IF; 28924 END_IF; 28925 END_IF; 28926 END_IF; 28927 END_IF; 28928 END_IF; 28929 END_IF; 28930 RETURN (FALSE); 28931END_FUNCTION; 28932 28933FUNCTION gbsf_check_point 28934 (pnt : point ) : BOOLEAN; 28935 IF 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN 28936 RETURN (TRUE); 28937 ELSE 28938 IF 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE' IN TYPEOF(pnt) THEN 28939 RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve)); 28940 ELSE 28941 IF 'STEP_MERGED_CAD_SCHEMA.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN 28942 RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface)); 28943 ELSE 28944 IF 'STEP_MERGED_CAD_SCHEMA.DEGENERATE_PCURVE' IN TYPEOF(pnt) THEN 28945 RETURN (gbsf_check_curve(pnt\degenerate_pcurve.reference_to_curve\representation.items[1]) AND gbsf_check_surface(pnt\degenerate_pcurve.basis_surface)); 28946 END_IF; 28947 END_IF; 28948 END_IF; 28949 END_IF; 28950 RETURN (FALSE); 28951END_FUNCTION; 28952 28953FUNCTION gbsf_check_surface 28954 (sf : surface ) : BOOLEAN; 28955 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 28956 RETURN (TRUE); 28957 ELSE 28958 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 28959 RETURN (TRUE); 28960 ELSE 28961 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 28962 RETURN (gbsf_check_surface(sf\offset_surface.basis_surface)); 28963 ELSE 28964 IF 'STEP_MERGED_CAD_SCHEMA.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF(sf) THEN 28965 REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface.segments); 28966 REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface.segments[i]); 28967 IF NOT gbsf_check_surface(sf\rectangular_composite_surface.segments[i][j].parent_surface) THEN 28968 RETURN (FALSE); 28969 END_IF; 28970 END_REPEAT; 28971 END_REPEAT; 28972 RETURN (TRUE); 28973 ELSE 28974 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_REPLICA' IN TYPEOF(sf) THEN 28975 RETURN (gbsf_check_surface(sf\surface_replica.parent_surface)); 28976 ELSE 28977 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_OF_REVOLUTION' IN TYPEOF(sf) THEN 28978 RETURN (gbsf_check_curve(sf\swept_surface.swept_curve)); 28979 END_IF; 28980 END_IF; 28981 END_IF; 28982 END_IF; 28983 END_IF; 28984 END_IF; 28985 RETURN (FALSE); 28986END_FUNCTION; 28987 28988-- IN AP242 28989FUNCTION get_associated_mandatory_document_ids 28990 (pdc : product_definition_context ) : SET [0:?] OF STRING; 28991 LOCAL 28992 result : SET OF STRING := []; 28993 adrs_raw : SET OF applied_document_reference := bag_to_set(USEDIN(pdc, 'STEP_MERGED_CAD_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')); 28994 adrs_filtered : SET OF applied_document_reference := []; 28995 ras : SET OF role_association; 28996 dpas : SET OF document_product_association; 28997 END_LOCAL; 28998 REPEAT i := 1 TO HIINDEX(adrs_raw); 28999 IF adrs_raw[i]\document_reference.role\object_role.name = 'mandatory' THEN 29000 adrs_filtered := adrs_filtered + adrs_raw[i]; 29001 END_IF; 29002 END_REPEAT; 29003 REPEAT i := 1 TO HIINDEX(adrs_filtered); 29004 dpas := bag_to_set(USEDIN(adrs_filtered[i]\document_reference.assigned_document, 'STEP_MERGED_CAD_SCHEMA.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT')); 29005 REPEAT j := 1 TO HIINDEX(dpas); 29006 IF 'STEP_MERGED_CAD_SCHEMA.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF(dpas[j]) THEN 29007 IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(dpas[j]\document_product_association.related_product) THEN 29008 result := result + dpas[j]\document_product_association.related_product\product_definition_formation.of_product\product.id; 29009 END_IF; 29010 IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT' IN TYPEOF(dpas[j].related_product) THEN 29011 result := result + dpas[j]\document_product_association.related_product\product.id; 29012 END_IF; 29013 END_IF; 29014 END_REPEAT; 29015 END_REPEAT; 29016 RETURN (result); 29017END_FUNCTION; 29018 29019FUNCTION get_basis_surface 29020 (c : curve_on_surface ) : SET [0:2] OF surface; 29021 LOCAL 29022 surfs : SET [0:2] OF surface; 29023 n : INTEGER; 29024 END_LOCAL; 29025 surfs := []; 29026 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(c) THEN 29027 surfs := [ c\pcurve.basis_surface ]; 29028 ELSE 29029 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(c) THEN 29030 n := SIZEOF(c\surface_curve.associated_geometry); 29031 REPEAT i := 1 TO n; 29032 surfs := surfs + associated_surface(c\surface_curve.associated_geometry[i]); 29033 END_REPEAT; 29034 END_IF; 29035 END_IF; 29036 IF 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c) THEN 29037 n := SIZEOF(c\composite_curve.segments); 29038 surfs := get_basis_surface(c\composite_curve.segments[1].parent_curve); 29039 IF n > 1 THEN 29040 REPEAT i := 2 TO n; 29041 surfs := surfs * get_basis_surface(c\composite_curve.segments[i].parent_curve); 29042 END_REPEAT; 29043 END_IF; 29044 END_IF; 29045 RETURN (surfs); 29046END_FUNCTION; 29047 29048-- DIFF IN AP214 29049FUNCTION get_description_value 29050 (obj : description_attribute_select ) : text; 29051 LOCAL 29052 description_bag : BAG OF description_attribute := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM'); 29053 END_LOCAL; 29054 IF SIZEOF(description_bag) = 1 THEN 29055 RETURN (description_bag[1].attribute_value); 29056 ELSE 29057 RETURN (?); 29058 END_IF; 29059END_FUNCTION; 29060 29061-- IN AP214 29062FUNCTION get_diameter_for_round_hole 29063 (rh : round_hole ) : REAL; 29064 LOCAL 29065 sa_set : SET OF shape_aspect; 29066 sar_set : SET OF shape_aspect_relationship; 29067 pdr_set : SET OF property_definition_representation; 29068 ri_set : SET OF representation_item; 29069 END_LOCAL; 29070 sa_set := get_shape_aspects(rh); 29071 REPEAT i := 1 TO HIINDEX(sa_set); 29072 IF sa_set[i].description = 'diameter occurrence' THEN 29073 sar_set := bag_to_set(USEDIN(sa_set[i], 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')); 29074 REPEAT j := 1 TO HIINDEX(sar_set); 29075 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 29076 pdr_set := get_shape_aspect_property_definition_representations(sar_set[j].relating_shape_aspect); 29077 REPEAT k := 1 TO HIINDEX(pdr_set); 29078 IF 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr_set[k].used_representation) THEN 29079 ri_set := pdr_set[k].used_representation.items; 29080 REPEAT l := 1 TO HIINDEX(ri_set); 29081 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 29082 RETURN (ri_set[l]\measure_with_unit.value_component); 29083 END_IF; 29084 END_REPEAT; 29085 END_IF; 29086 END_REPEAT; 29087 END_IF; 29088 END_REPEAT; 29089 END_IF; 29090 END_REPEAT; 29091 RETURN (?); 29092END_FUNCTION; 29093 29094-- IN AP242 29095FUNCTION get_directed_link 29096 (nodes : LIST [0:?] OF representation; 29097 undirected_link : LIST [0:?] OF chained_representation_link ) : LIST [0:?] OF representation_relationship; 29098 LOCAL 29099 directed_link : LIST OF representation_relationship := []; 29100 END_LOCAL; 29101 IF (SIZEOF(nodes) <> SIZEOF(undirected_link) + 1) OR (VALUE_UNIQUE(nodes) = FALSE) THEN 29102 RETURN (?); 29103 END_IF; 29104 REPEAT i := 1 TO SIZEOF(undirected_link); 29105 CASE TRUE OF 29106 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_CONTEXT' IN TYPEOF(undirected_link[i]) : 29107 BEGIN 29108 IF (nodes[i]\representation.context_of_items :=: undirected_link[i]) AND (nodes[(i + 1)]\representation.context_of_items :=: undirected_link[i]) THEN 29109 INSERT( directed_link, representation_relationship('', '', nodes[(i + 1)], nodes[i]), i - 1 ); 29110 ELSE 29111 RETURN (?); 29112 END_IF; 29113 END; 29114 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_RELATIONSHIP' IN TYPEOF(undirected_link[i]) : 29115 BEGIN 29116 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 29117 INSERT( directed_link, representation_relationship('', '', nodes[(i + 1)], nodes[i]), i - 1 ); 29118 ELSE 29119 RETURN (?); 29120 END_IF; 29121 END; 29122 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM' IN TYPEOF(undirected_link[i]) : 29123 BEGIN 29124 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 29125 INSERT( directed_link, representation_relationship('', '', nodes[(i + 1)], nodes[i]), i - 1 ); 29126 ELSE 29127 RETURN (?); 29128 END_IF; 29129 END; 29130 OTHERWISE : 29131 RETURN (?); 29132 END_CASE; 29133 END_REPEAT; 29134 IF VALUE_UNIQUE(directed_link) = FALSE THEN 29135 RETURN (?); 29136 END_IF; 29137 RETURN (directed_link); 29138END_FUNCTION; 29139 29140-- DIFF IN AP214 29141FUNCTION get_id_value 29142 (obj : id_attribute_select ) : identifier; 29143 LOCAL 29144 id_bag : BAG OF id_attribute := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM'); 29145 END_LOCAL; 29146 IF SIZEOF(id_bag) = 1 THEN 29147 RETURN (id_bag[1].attribute_value); 29148 ELSE 29149 RETURN (?); 29150 END_IF; 29151END_FUNCTION; 29152 29153-- IN AP242 29154FUNCTION get_kinematic_joints_from_kinematic_loops 29155 (kls : SET [0:?] OF kinematic_loop ) : SET [0:?] OF kinematic_joint; 29156 LOCAL 29157 result : SET OF oriented_joint := []; 29158 END_LOCAL; 29159 IF SIZEOF(kls) > 0 THEN 29160 REPEAT i := 1 TO HIINDEX(kls); 29161 result := result + kls[i].edge_list; 29162 END_REPEAT; 29163 END_IF; 29164 RETURN (get_kinematic_joints_from_oriented_joints(result)); 29165END_FUNCTION; 29166 29167-- IN AP242 29168FUNCTION get_kinematic_joints_from_oriented_joints 29169 (ors : SET [0:?] OF oriented_joint ) : SET [0:?] OF kinematic_joint; 29170 LOCAL 29171 result : SET OF kinematic_joint := []; 29172 END_LOCAL; 29173 IF SIZEOF(ors) > 0 THEN 29174 REPEAT i := 1 TO HIINDEX(ors); 29175 result := result + ors[i].edge_element; 29176 END_REPEAT; 29177 END_IF; 29178 RETURN (result); 29179END_FUNCTION; 29180 29181-- IN AP214 29182FUNCTION get_multi_language 29183 (x : multi_language_attribute_assignment ) : label; 29184-- LOCAL 29185-- alas : BAG OF attribute_language_assignment := USEDIN(x, 'STEP_MERGED_CAD_SCHEMA.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS'); 29186-- END_LOCAL; 29187-- IF SIZEOF(alas) > 0 THEN 29188-- RETURN (alas[1].language); 29189-- END_IF; 29190 RETURN (?); 29191END_FUNCTION; 29192 29193-- DIFF IN AP214 29194FUNCTION get_name_value 29195 (obj : name_attribute_select ) : label; 29196 LOCAL 29197 name_bag : BAG OF name_attribute := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'NAME_ATTRIBUTE.' + 'NAMED_ITEM'); 29198 END_LOCAL; 29199 IF SIZEOF(name_bag) = 1 THEN 29200 RETURN (name_bag[1].attribute_value); 29201 ELSE 29202 RETURN (?); 29203 END_IF; 29204END_FUNCTION; 29205 29206-- IN AP242 29207FUNCTION get_plane_of_implicit_geometry 29208 (ps : positioned_sketch ) : plane; 29209 LOCAL 29210 sb : sketch_basis_select := ps.sketch_basis; 29211 result : plane := ?; 29212 END_LOCAL; 29213 IF 'STEP_MERGED_CAD_SCHEMA.FACE_SURFACE' IN TYPEOF(sb) THEN 29214 result := sb\face_surface.face_geometry; 29215 ELSE 29216 IF 'STEP_MERGED_CAD_SCHEMA.CURVE_BOUNDED_SURFACE' IN TYPEOF(sb) THEN 29217 result := sb\curve_bounded_surface.basis_surface; 29218 ELSE 29219 IF 'STEP_MERGED_CAD_SCHEMA.PLANAR_CURVE_SELECT' IN TYPEOF(sb) THEN 29220 BEGIN 29221 IF 'STEP_MERGED_CAD_SCHEMA.CONIC' IN TYPEOF(sb) THEN 29222 result := dummy_gri || surface() || elementary_surface(sb\conic.position) || plane(); 29223 END_IF; 29224 IF 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' IN TYPEOF(sb) THEN 29225 BEGIN 29226 result := get_plane_of_implicit_geometry(dummy_gri || positioned_sketch(sb\trimmed_curve.basis_curve, [])); 29227 END; 29228 END_IF; 29229 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(sb) THEN 29230 result := sb\pcurve.basis_surface; 29231 END_IF; 29232 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(sb) THEN 29233 BEGIN 29234 IF (SIZEOF(sb\surface_curve.basis_surface) = 1) AND ('STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1])) THEN 29235 result := sb\surface_curve.basis_surface[1]; 29236 ELSE 29237 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 29238 result := ?; 29239 ELSE 29240 IF 'STEP_MERGED_CAD_SCHEMA.PLANE' IN TYPEOF(sb\surface_curve.basis_surface[1]) THEN 29241 result := sb\surface_curve.basis_surface[1]; 29242 ELSE 29243 result := sb\surface_curve.basis_surface[2]; 29244 END_IF; 29245 END_IF; 29246 END_IF; 29247 END; 29248 END_IF; 29249 END; 29250 END_IF; 29251 END_IF; 29252 END_IF; 29253 RETURN (result); 29254END_FUNCTION; 29255 29256-- DIFF IN AP214 29257-- IN AP214/AP242 29258FUNCTION get_property_definition_representations 29259 (c_def_instance : characterized_definition ) : SET [0:?] OF property_definition_representation; 29260 LOCAL 29261 pd_set : SET OF property_definition := []; 29262 pdr_set : SET OF property_definition_representation := []; 29263 END_LOCAL; 29264 pd_set := bag_to_set(USEDIN(c_def_instance, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); 29265 IF SIZEOF(pd_set) < 1 THEN 29266 RETURN (pdr_set); 29267 END_IF; 29268 REPEAT i := 1 TO HIINDEX(pd_set); 29269 pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')); 29270 END_REPEAT; 29271 RETURN (pdr_set); 29272END_FUNCTION; 29273 29274-- IN AP242 29275FUNCTION get_relative_direction_2points 29276 (cp1 : cartesian_point; 29277 cp2 : cartesian_point ) : direction; 29278 LOCAL 29279 d1 : REAL; 29280 d2 : REAL; 29281 d3 : REAL; 29282 magnitude : REAL; 29283 result : direction := ?; 29284 END_LOCAL; 29285 IF (cp1.dim <> 3) OR (cp2.dim <> 3) THEN 29286 RETURN (result); 29287 ELSE 29288 BEGIN 29289 d1 := cp2.coordinates[1] - cp1.coordinates[1]; 29290 d2 := cp2.coordinates[2] - cp1.coordinates[2]; 29291 d3 := cp2.coordinates[3] - cp1.coordinates[3]; 29292 magnitude := SQRT(d1 * d1 + d2 * d2 + d3 * d3); 29293 IF magnitude = 0 THEN 29294 RETURN (result); 29295 END_IF; 29296 result := dummy_gri || direction([ d1, d2, d3 ]); 29297 END; 29298 END_IF; 29299 RETURN (result); 29300END_FUNCTION; 29301 29302-- DIFF IN AP214 29303FUNCTION get_role 29304 (obj : role_select ) : object_role; 29305 LOCAL 29306 role_bag : BAG OF role_association := USEDIN(obj, 'STEP_MERGED_CAD_SCHEMA.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE'); 29307 END_LOCAL; 29308 IF SIZEOF(role_bag) = 1 THEN 29309 RETURN (role_bag[1].role); 29310 ELSE 29311 RETURN (?); 29312 END_IF; 29313END_FUNCTION; 29314 29315-- IN AP214 29316FUNCTION get_round_holes_for_composite_hole 29317 (sar_instance_set : SET OF shape_aspect_relationship ) : SET OF round_hole; 29318 LOCAL 29319 rh_set : SET OF round_hole := []; 29320 pdr_set : SET OF property_definition_representation; 29321 pdr_set1 : SET OF property_definition_representation; 29322 ri_set : SET OF representation_item; 29323 END_LOCAL; 29324 REPEAT i := 1 TO HIINDEX(sar_instance_set); 29325 IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.INSTANCED_FEATURE', 'STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' ] * TYPEOF(sar_instance_set[i].related_shape_aspect)) >= 2 THEN 29326 rh_set := rh_set + sar_instance_set[i].related_shape_aspect\round_hole; 29327 END_IF; 29328 IF 'STEP_MERGED_CAD_SCHEMA.PLACED_FEATURE' IN TYPEOF(sar_instance_set[i]) THEN 29329 pdr_set := get_shape_aspect_property_definition_representations(sar_instance_set[i].related_shape_aspect); 29330 REPEAT j := 1 TO HIINDEX(pdr_set); 29331 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 29332 ri_set := pdr_set[j].used_representation.items; 29333 REPEAT k := 1 TO HIINDEX(ri_set); 29334 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 29335 pdr_set1 := bag_to_set(USEDIN(ri_set[k]\mapped_item.mapping_source.mapped_representation, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')); 29336 REPEAT l := 1 TO HIINDEX(pdr_set1); 29337 IF 'STEP_MERGED_CAD_SCHEMA.ROUND_HOLE' IN TYPEOF(pdr_set1[l].definition.definition) THEN 29338 rh_set := rh_set + pdr_set1[l].definition.definition; 29339 END_IF; 29340 END_REPEAT; 29341 END_IF; 29342 END_REPEAT; 29343 END_IF; 29344 END_REPEAT; 29345 END_IF; 29346 END_REPEAT; 29347 RETURN (rh_set); 29348END_FUNCTION; 29349 29350-- DIFF IN AP214 29351FUNCTION get_shape_aspect_property_definition_representations 29352 (s_a_instance : shape_aspect ) : SET [0:?] OF property_definition_representation; 29353 LOCAL 29354 pd_set : SET OF property_definition := []; 29355 pdr_set : SET OF property_definition_representation := []; 29356 END_LOCAL; 29357 pd_set := bag_to_set(USEDIN(s_a_instance, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); 29358 IF SIZEOF(pd_set) < 1 THEN 29359 RETURN (pdr_set); 29360 END_IF; 29361 REPEAT i := 1 TO HIINDEX(pd_set); 29362 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))); 29363 END_REPEAT; 29364 RETURN (pdr_set); 29365END_FUNCTION; 29366 29367-- DIFF IN AP214 29368-- IN AP214/AP242 29369FUNCTION get_shape_aspects 29370 (c_def_instance : characterized_definition ) : SET [0:?] OF shape_aspect; 29371 LOCAL 29372 pd_set : SET OF product_definition_shape := []; 29373 pdr_set : SET OF shape_aspect := []; 29374 END_LOCAL; 29375 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))); 29376 IF SIZEOF(pd_set) < 1 THEN 29377 RETURN (pdr_set); 29378 END_IF; 29379 REPEAT i := 1 TO HIINDEX(pd_set); 29380 pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT.OF_SHAPE')); 29381 END_REPEAT; 29382 RETURN (pdr_set); 29383END_FUNCTION; 29384 29385-- IN AP242 29386FUNCTION has_values_space 29387 (expr : generic_expression ) : BOOLEAN; 29388 LOCAL 29389 typenames : SET OF STRING := stripped_typeof(expr); 29390 END_LOCAL; 29391 IF 'EXPRESSION' IN typenames THEN 29392 RETURN (bool((('NUMERIC_EXPRESSION' IN typenames) OR ('STRING_EXPRESSION' IN typenames)) OR ('BOOLEAN_EXPRESSION' IN typenames))); 29393 END_IF; 29394 IF 'MATHS_FUNCTION' IN typenames THEN 29395 RETURN (TRUE); 29396 END_IF; 29397 IF 'FUNCTION_APPLICATION' IN typenames THEN 29398 RETURN (TRUE); 29399 END_IF; 29400 IF 'MATHS_SPACE' IN typenames THEN 29401 RETURN (TRUE); 29402 END_IF; 29403 IF 'MATHS_VARIABLE' IN typenames THEN 29404 RETURN (TRUE); 29405 END_IF; 29406 IF 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN 29407 RETURN (has_values_space(expr\unary_generic_expression.operand)); 29408 END_IF; 29409 IF 'COMPLEX_NUMBER_LITERAL' IN typenames THEN 29410 RETURN (TRUE); 29411 END_IF; 29412 IF 'LOGICAL_LITERAL' IN typenames THEN 29413 RETURN (TRUE); 29414 END_IF; 29415 IF 'BINARY_LITERAL' IN typenames THEN 29416 RETURN (TRUE); 29417 END_IF; 29418 IF 'MATHS_ENUM_LITERAL' IN typenames THEN 29419 RETURN (TRUE); 29420 END_IF; 29421 IF 'REAL_TUPLE_LITERAL' IN typenames THEN 29422 RETURN (TRUE); 29423 END_IF; 29424 IF 'INTEGER_TUPLE_LITERAL' IN typenames THEN 29425 RETURN (TRUE); 29426 END_IF; 29427 IF 'ATOM_BASED_LITERAL' IN typenames THEN 29428 RETURN (TRUE); 29429 END_IF; 29430 IF 'MATHS_TUPLE_LITERAL' IN typenames THEN 29431 RETURN (TRUE); 29432 END_IF; 29433 IF 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN 29434 RETURN (TRUE); 29435 END_IF; 29436 IF 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN 29437 RETURN (TRUE); 29438 END_IF; 29439 RETURN (FALSE); 29440END_FUNCTION; 29441 29442-- IN AP242 29443FUNCTION inspected_product_definition 29444 (dqir : data_quality_inspection_result_representation ) : BAG [0:?] OF product_definition; 29445 LOCAL 29446 dqdr : BAG OF data_quality_definition_representation_relationship := []; 29447 pdqdr : BAG OF product_data_and_data_quality_relationship := []; 29448 pd : BAG OF product_definition := []; 29449 END_LOCAL; 29450 dqdr := USEDIN(dqir, 'STEP_MERGED_CAD_SCHEMA.' + 'DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.' + 'USED_REPRESENTATION'); 29451 REPEAT i := 1 TO SIZEOF(dqdr); 29452 pdqdr := USEDIN(dqdr[i].definition, 'STEP_MERGED_CAD_SCHEMA.' + 'PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.' + 'DATA_QUALITY'); 29453 REPEAT j := 1 TO SIZEOF(pdqdr); 29454 pd := pd + pdqdr[j].product_data; 29455 END_REPEAT; 29456 END_REPEAT; 29457 RETURN (pd); 29458END_FUNCTION; 29459 29460-- IN AP242 29461FUNCTION invalidate_vrep_item 29462 (item : representation_item ) : BOOLEAN; 29463 LOCAL 29464 reps : SET [1:?] OF representation := using_representations(item); 29465 ri : SET [1:?] OF variational_representation_item; 29466 iar : instance_attribute_reference; 29467 i : INTEGER; 29468 n : INTEGER := HIINDEX(reps); 29469 END_LOCAL; 29470 IF 'STEP_MERGED_CAD_SCHEMA.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item) THEN 29471 IF 'STEP_MERGED_CAD_SCHEMA.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF(item\generic_variable.interpretation\environment.semantics) THEN 29472 BEGIN 29473 iar := item\generic_variable.interpretation\environment.semantics; 29474 IF reps <> using_representations(iar\instance_attribute_reference.owning_instance) THEN 29475 RETURN (TRUE); 29476 END_IF; 29477 END; 29478 ELSE 29479 RETURN (TRUE); 29480 END_IF; 29481 END_IF; 29482 IF 'STEP_MERGED_CAD_SCHEMA.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item) THEN 29483 BEGIN 29484 REPEAT i := 1 TO n; 29485 ri := QUERY (q <* reps[i]\representation.items| 'STEP_MERGED_CAD_SCHEMA.FREE_FORM_CONSTRAINT' IN TYPEOF(q)); 29486 IF SIZEOF(QUERY (r <* ri| (item IN r\free_form_constraint.reference_elements + r\free_form_constraint.constrained_elements))) = 0 THEN 29487 RETURN (TRUE); 29488 END_IF; 29489 END_REPEAT; 29490 END; 29491 END_IF; 29492 IF 'STEP_MERGED_CAD_SCHEMA.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF(item) THEN 29493 REPEAT i := 1 TO SIZEOF(item\fixed_instance_attribute_set.fixed_attributes); 29494 IF reps <> using_representations(item\fixed_instance_attribute_set.fixed_attributes[i]\instance_attribute_reference.owning_instance) THEN 29495 RETURN (TRUE); 29496 END_IF; 29497 END_REPEAT; 29498 END_IF; 29499 IF 'STEP_MERGED_CAD_SCHEMA.EXPLICIT_CONSTRAINT' IN TYPEOF(item) THEN 29500 IF SIZEOF(QUERY (q <* item\explicit_constraint.reference_elements + item\explicit_constraint.constrained_elements| (reps <> using_representations(q)))) > 0 THEN 29501 RETURN (TRUE); 29502 END_IF; 29503 END_IF; 29504 IF 'STEP_MERGED_CAD_SCHEMA.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item) THEN 29505 BEGIN 29506 REPEAT i := 1 TO n; 29507 ri := QUERY (q <* reps[i]\representation.items| 'STEP_MERGED_CAD_SCHEMA.EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF(q)); 29508 IF SIZEOF(QUERY (r <* ri| (item IN r\explicit_geometric_constraint.reference_elements))) = 0 THEN 29509 RETURN (TRUE); 29510 END_IF; 29511 END_REPEAT; 29512 END; 29513 END_IF; 29514 RETURN (FALSE); 29515END_FUNCTION; 29516 29517FUNCTION is_acyclic 29518 (arg : generic_expression ) : BOOLEAN; 29519 RETURN (acyclic(arg, [])); 29520END_FUNCTION; 29521 29522-- DIFF IN AP214 29523-- DIFF IN AP203e2 29524FUNCTION is_int_expr 29525 (arg : numeric_expression ) : BOOLEAN; 29526 IF 'STEP_MERGED_CAD_SCHEMA.INT_LITERAL' IN TYPEOF(arg) THEN 29527 RETURN (TRUE); 29528 END_IF; 29529 IF 'STEP_MERGED_CAD_SCHEMA.REAL_LITERAL' IN TYPEOF(arg) THEN 29530 RETURN (FALSE); 29531 END_IF; 29532 IF 'STEP_MERGED_CAD_SCHEMA.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN 29533 RETURN (TRUE); 29534 END_IF; 29535 IF 'STEP_MERGED_CAD_SCHEMA.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN 29536 RETURN (FALSE); 29537 END_IF; 29538 IF 'STEP_MERGED_CAD_SCHEMA.ABS_FUNCTION' IN TYPEOF(arg) THEN 29539 RETURN (is_int_expr(arg\unary_numeric_expression.operand)); 29540 END_IF; 29541 IF 'STEP_MERGED_CAD_SCHEMA.MINUS_FUNCTION' IN TYPEOF(arg) THEN 29542 RETURN (is_int_expr(arg\unary_numeric_expression.operand)); 29543 END_IF; 29544 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 29545 RETURN (FALSE); 29546 END_IF; 29547 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 29548 REPEAT i := 1 TO SIZEOF(arg\multiple_arity_numeric_expression.operands); 29549 IF NOT is_int_expr(arg\multiple_arity_numeric_expression.operands[i]) THEN 29550 RETURN (FALSE); 29551 END_IF; 29552 END_REPEAT; 29553 RETURN (TRUE); 29554 END_IF; 29555 IF ('STEP_MERGED_CAD_SCHEMA.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.POWER_EXPRESSION' IN TYPEOF(arg)) THEN 29556 RETURN (is_int_expr(arg\binary_numeric_expression.operands[1]) AND is_int_expr(arg\binary_numeric_expression.operands[2])); 29557 END_IF; 29558 IF ('STEP_MERGED_CAD_SCHEMA.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.MOD_EXPRESSION' IN TYPEOF(arg)) THEN 29559 RETURN (TRUE); 29560 END_IF; 29561 IF 'STEP_MERGED_CAD_SCHEMA.SLASH_EXPRESSION' IN TYPEOF(arg) THEN 29562 RETURN (FALSE); 29563 END_IF; 29564 IF 'STEP_MERGED_CAD_SCHEMA.LENGTH_FUNCTION' IN TYPEOF(arg) THEN 29565 RETURN (TRUE); 29566 END_IF; 29567 IF 'STEP_MERGED_CAD_SCHEMA.VALUE_FUNCTION' IN TYPEOF(arg) THEN 29568 IF 'STEP_MERGED_CAD_SCHEMA.INT_VALUE_FUNCTION' IN TYPEOF(arg) THEN 29569 RETURN (TRUE); 29570 ELSE 29571 RETURN (FALSE); 29572 END_IF; 29573 END_IF; 29574 IF 'STEP_MERGED_CAD_SCHEMA.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg) THEN 29575 RETURN (TRUE); 29576 END_IF; 29577 IF 'STEP_MERGED_CAD_SCHEMA.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) THEN 29578 RETURN (FALSE); 29579 END_IF; 29580 IF 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg) THEN 29581 RETURN (FALSE); 29582 END_IF; 29583 IF 'STEP_MERGED_CAD_SCHEMA.STRING_DEFINED_FUNCTION' IN TYPEOF(arg) THEN 29584 RETURN (FALSE); 29585 END_IF; 29586 RETURN (FALSE); 29587END_FUNCTION; 29588 29589-- DIFF IN AP214 29590-- DIFF IN AP203e2 29591FUNCTION is_SQL_mappable 29592 (arg : expression ) : BOOLEAN; 29593 IF 'STEP_MERGED_CAD_SCHEMA.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF(arg) THEN 29594 RETURN (TRUE); 29595 END_IF; 29596 IF 'STEP_MERGED_CAD_SCHEMA.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF(arg) THEN 29597 RETURN (TRUE); 29598 END_IF; 29599 IF 'STEP_MERGED_CAD_SCHEMA.MINUS_FUNCTION' IN TYPEOF(arg) THEN 29600 RETURN (is_SQL_mappable(arg\unary_numeric_expression.operand)); 29601 END_IF; 29602 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 29603 RETURN (FALSE); 29604 END_IF; 29605 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 29606 REPEAT i := 1 TO SIZEOF(arg\multiple_arity_numeric_expression.operands); 29607 IF NOT is_SQL_mappable(arg\multiple_arity_numeric_expression.operands[i]) THEN 29608 RETURN (FALSE); 29609 END_IF; 29610 END_REPEAT; 29611 RETURN (TRUE); 29612 END_IF; 29613 IF ('STEP_MERGED_CAD_SCHEMA.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.SLASH_EXPRESSION' IN TYPEOF(arg)) THEN 29614 RETURN (is_SQL_mappable(arg\binary_numeric_expression.operands[1]) AND is_SQL_mappable(arg\binary_numeric_expression.operands[2])); 29615 END_IF; 29616 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 29617 RETURN (FALSE); 29618 END_IF; 29619 IF 'STEP_MERGED_CAD_SCHEMA.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF(arg) THEN 29620 RETURN (TRUE); 29621 END_IF; 29622 IF 'STEP_MERGED_CAD_SCHEMA.NOT_EXPRESSION' IN TYPEOF(arg) THEN 29623 RETURN (is_SQL_mappable(arg\unary_generic_expression.operand)); 29624 END_IF; 29625 IF ('STEP_MERGED_CAD_SCHEMA.ODD_FUNCTION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.XOR_EXPRESSION' IN TYPEOF(arg)) THEN 29626 RETURN (FALSE); 29627 END_IF; 29628 IF ('STEP_MERGED_CAD_SCHEMA.AND_EXPRESSION' IN TYPEOF(arg)) OR ('STEP_MERGED_CAD_SCHEMA.OR_EXPRESSION' IN TYPEOF(arg)) THEN 29629 REPEAT i := 1 TO SIZEOF(arg\multiple_arity_boolean_expression.operands); 29630 IF NOT is_SQL_mappable(arg\multiple_arity_boolean_expression.operands[i]) THEN 29631 RETURN (FALSE); 29632 END_IF; 29633 END_REPEAT; 29634 RETURN (TRUE); 29635 END_IF; 29636 IF 'STEP_MERGED_CAD_SCHEMA.EQUALS_EXPRESSION' IN TYPEOF(arg) THEN 29637 RETURN (is_SQL_mappable(arg\binary_generic_expression.operands[1]) AND is_SQL_mappable(arg\binary_generic_expression.operands[2])); 29638 END_IF; 29639 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 29640 RETURN (is_SQL_mappable(arg\comparison_expression.operands[1]) AND is_SQL_mappable(arg\comparison_expression.operands[2])); 29641 END_IF; 29642 IF 'STEP_MERGED_CAD_SCHEMA.INTERVAL_EXPRESSION' IN TYPEOF(arg) THEN 29643 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)); 29644 END_IF; 29645 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 29646 RETURN (FALSE); 29647 END_IF; 29648 IF 'STEP_MERGED_CAD_SCHEMA.SIMPLE_STRING_EXPRESSION' IN TYPEOF(arg) THEN 29649 RETURN (TRUE); 29650 END_IF; 29651 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 29652 RETURN (FALSE); 29653 END_IF; 29654 RETURN (FALSE); 29655END_FUNCTION; 29656 29657-- IN AP214 29658FUNCTION item_correlation 29659 (items : SET OF GENERIC; 29660 c_items : SET OF STRING ) : LOGICAL; 29661 LOCAL 29662 c_types : SET OF STRING := []; 29663 c_hit : INTEGER := 0; 29664 END_LOCAL; 29665 REPEAT i := 1 TO HIINDEX(c_items); 29666 c_types := c_types + [ 'STEP_MERGED_CAD_SCHEMA.' + c_items[i] ]; 29667 END_REPEAT; 29668 REPEAT i := 1 TO HIINDEX(items); 29669 IF SIZEOF(c_types * TYPEOF(items[i])) = 1 THEN 29670 c_hit := c_hit + 1; 29671 END_IF; 29672 END_REPEAT; 29673 IF SIZEOF(items) = c_hit THEN 29674 RETURN (TRUE); 29675 ELSE 29676 RETURN (FALSE); 29677 END_IF; 29678END_FUNCTION; 29679 29680FUNCTION item_in_context 29681 (item : representation_item; 29682 cntxt : representation_context ) : BOOLEAN; 29683 LOCAL 29684 y : BAG OF representation_item; 29685 END_LOCAL; 29686 IF SIZEOF(USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS') * cntxt.representations_in_context) > 0 THEN 29687 RETURN (TRUE); 29688 ELSE 29689 y := QUERY (z <* USEDIN(item, '')| 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z)); 29690 IF SIZEOF(y) > 0 THEN 29691 REPEAT i := 1 TO HIINDEX(y); 29692 IF item_in_context(y[i], cntxt) THEN 29693 RETURN (TRUE); 29694 END_IF; 29695 END_REPEAT; 29696 END_IF; 29697 END_IF; 29698 RETURN (FALSE); 29699END_FUNCTION; 29700 29701FUNCTION leap_year 29702 (year : year_number ) : BOOLEAN; 29703 IF (year MOD 4 = 0) AND (year MOD 100 <> 0) OR (year MOD 400 = 0) THEN 29704 RETURN (TRUE); 29705 ELSE 29706 RETURN (FALSE); 29707 END_IF; 29708END_FUNCTION; 29709 29710-- DIFF IN AP214 29711FUNCTION list_face_loops 29712 (f : face ) : LIST [0:?] OF loop; 29713 LOCAL 29714 loops : LIST [0:?] OF loop := []; 29715 END_LOCAL; 29716 REPEAT i := 1 TO SIZEOF(f.bounds); 29717 loops := loops + f.bounds[i].bound; 29718 END_REPEAT; 29719 RETURN (loops); 29720END_FUNCTION; 29721 29722FUNCTION list_of_topology_reversed 29723 (a_list : list_of_reversible_topology_item ) : list_of_reversible_topology_item; 29724 LOCAL 29725 the_reverse : list_of_reversible_topology_item; 29726 END_LOCAL; 29727 the_reverse := []; 29728 REPEAT i := 1 TO SIZEOF(a_list); 29729 the_reverse := topology_reversed(a_list[i]) + the_reverse; 29730 END_REPEAT; 29731 RETURN (the_reverse); 29732END_FUNCTION; 29733 29734-- IN AP242 29735FUNCTION list_selected_components 29736 (aggr : AGGREGATE OF LIST [0:?] OF maths_value; 29737 k : positive_integer ) : LIST [0:?] OF maths_value; 29738 LOCAL 29739 result : LIST OF maths_value := []; 29740 j : INTEGER := 0; 29741 END_LOCAL; 29742 REPEAT i := LOINDEX(aggr) TO HIINDEX(aggr); 29743 IF k <= SIZEOF(aggr[i]) THEN 29744 INSERT( result, aggr[i][k], j ); 29745 j := j + 1; 29746 END_IF; 29747 END_REPEAT; 29748 RETURN (result); 29749END_FUNCTION; 29750 29751-- DIFF IN AP214 29752FUNCTION list_to_array 29753 (lis : LIST [0:?] OF GENERIC : T; 29754 low : INTEGER; 29755 u : INTEGER ) : ARRAY [low:u] OF GENERIC : T; 29756 LOCAL 29757 n : INTEGER; 29758 res : ARRAY [low:u] OF GENERIC : T; 29759 END_LOCAL; 29760 n := SIZEOF(lis); 29761 IF n <> u - low + 1 THEN 29762 RETURN (?); 29763 ELSE 29764 res := [ lis[1] ]; 29765 REPEAT i := 2 TO n; 29766 res[(low + i - 1)] := lis[i]; 29767 END_REPEAT; 29768 RETURN (res); 29769 END_IF; 29770END_FUNCTION; 29771 29772-- DIFF IN AP214 29773FUNCTION list_to_set 29774 (l : LIST [0:?] OF GENERIC : T ) : SET [0:?] OF GENERIC : T; 29775 LOCAL 29776 s : SET OF GENERIC : T := []; 29777 END_LOCAL; 29778 REPEAT i := 1 TO SIZEOF(l); 29779 s := s + l[i]; 29780 END_REPEAT; 29781 RETURN (s); 29782END_FUNCTION; 29783 29784-- CASE DIFF IN AP214 29785FUNCTION make_array_of_array 29786 (lis : LIST [1:?] OF LIST [1:?] OF GENERIC : T; 29787 low1 : INTEGER; 29788 u1 : INTEGER; 29789 low2 : INTEGER; 29790 u2 : INTEGER ) : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC : T; 29791 LOCAL 29792 res : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC : T; 29793 END_LOCAL; 29794 IF u1 - low1 + 1 <> SIZEOF(lis) THEN 29795 RETURN (?); 29796 END_IF; 29797 IF u2 - low2 + 1 <> SIZEOF(lis[1]) THEN 29798 RETURN (?); 29799 END_IF; 29800 res := [ list_to_array(lis[1], low2, u2) ]; 29801 REPEAT i := 2 TO HIINDEX(lis); 29802 IF u2 - low2 + 1 <> SIZEOF(lis[i]) THEN 29803 RETURN (?); 29804 END_IF; 29805 res[(low1 + i - 1)] := list_to_array(lis[i], low2, u2); 29806 END_REPEAT; 29807 RETURN (res); 29808END_FUNCTION; 29809 29810-- IN AP242 29811FUNCTION make_atom_based_literal 29812 (lit_value : atom_based_value ) : atom_based_literal; 29813 RETURN (atom_based_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); 29814END_FUNCTION; 29815 29816-- IN AP242 29817FUNCTION make_binary_literal 29818 (lit_value : BINARY ) : binary_literal; 29819 RETURN (binary_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); 29820END_FUNCTION; 29821 29822-- IN AP242 29823FUNCTION make_boolean_literal 29824 (lit_value : BOOLEAN ) : boolean_literal; 29825 RETURN (boolean_literal(lit_value) || simple_boolean_expression() || boolean_expression() || expression() || generic_expression() || simple_generic_expression() || generic_literal()); 29826END_FUNCTION; 29827 29828-- IN AP242 29829FUNCTION make_cartesian_complex_number_region 29830 (real_constraint : real_interval; 29831 imag_constraint : real_interval ) : cartesian_complex_number_region; 29832 RETURN (cartesian_complex_number_region(real_constraint, imag_constraint) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29833END_FUNCTION; 29834 29835-- IN AP242 29836FUNCTION make_complex_number_literal 29837 (rpart : REAL; 29838 ipart : REAL ) : complex_number_literal; 29839 RETURN (complex_number_literal(rpart, ipart) || generic_literal() || simple_generic_expression() || generic_expression()); 29840END_FUNCTION; 29841 29842-- IN AP242 29843FUNCTION make_elementary_function 29844 (func_id : elementary_function_enumerators ) : elementary_function; 29845 RETURN (elementary_function(func_id) || maths_function() || generic_expression() || generic_literal() || simple_generic_expression()); 29846END_FUNCTION; 29847 29848-- IN AP242 29849FUNCTION make_elementary_space 29850 (space_id : elementary_space_enumerators ) : elementary_space; 29851 RETURN (elementary_space(space_id) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29852END_FUNCTION; 29853 29854-- IN AP242 29855FUNCTION make_extended_tuple_space 29856 (base : product_space; 29857 extender : maths_space ) : extended_tuple_space; 29858 RETURN (extended_tuple_space(base, extender) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29859END_FUNCTION; 29860 29861-- IN AP242 29862FUNCTION make_finite_integer_interval 29863 (min : INTEGER; 29864 max : INTEGER ) : finite_integer_interval; 29865 RETURN (finite_integer_interval(min, max) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29866END_FUNCTION; 29867 29868-- IN AP242 29869FUNCTION make_finite_real_interval 29870 (min : REAL; 29871 minclo : open_closed; 29872 max : REAL; 29873 maxclo : open_closed ) : finite_real_interval; 29874 RETURN (finite_real_interval(min, minclo, max, maxclo) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29875END_FUNCTION; 29876 29877-- IN AP242 29878FUNCTION make_finite_space 29879 (members : SET [0:?] OF maths_value ) : finite_space; 29880 RETURN (finite_space(members) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29881END_FUNCTION; 29882 29883-- IN AP242 29884FUNCTION make_function_application 29885 (afunction : maths_function_select; 29886 arguments : LIST [1:?] OF maths_value ) : function_application; 29887 RETURN (function_application(afunction, arguments) || multiple_arity_generic_expression((convert_to_maths_function(afunction) + convert_to_operands(arguments))) || generic_expression()); 29888END_FUNCTION; 29889 29890-- IN AP242 29891FUNCTION make_function_space 29892 (domain_constraint : space_constraint_type; 29893 domain_argument : maths_space; 29894 range_constraint : space_constraint_type; 29895 range_argument : maths_space ) : function_space; 29896 RETURN (function_space(domain_constraint, domain_argument, range_constraint, range_argument) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29897END_FUNCTION; 29898 29899-- IN AP242 29900FUNCTION make_int_literal 29901 (lit_value : INTEGER ) : int_literal; 29902 RETURN (int_literal() || literal_number(lit_value) || simple_numeric_expression() || numeric_expression() || expression() || generic_expression() || simple_generic_expression() || generic_literal()); 29903END_FUNCTION; 29904 29905-- IN AP242 29906FUNCTION make_listed_product_space 29907 (factors : LIST [0:?] OF maths_space ) : listed_product_space; 29908 RETURN (listed_product_space(factors) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29909END_FUNCTION; 29910 29911-- IN AP242 29912FUNCTION make_logical_literal 29913 (lit_value : LOGICAL ) : logical_literal; 29914 RETURN (logical_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); 29915END_FUNCTION; 29916 29917-- IN AP242 29918FUNCTION make_maths_enum_literal 29919 (lit_value : maths_enum_atom ) : maths_enum_literal; 29920 RETURN (maths_enum_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); 29921END_FUNCTION; 29922 29923-- IN AP242 29924FUNCTION make_maths_tuple_literal 29925 (lit_value : LIST [0:?] OF maths_value ) : maths_tuple_literal; 29926 RETURN (maths_tuple_literal(lit_value) || generic_literal() || simple_generic_expression() || generic_expression()); 29927END_FUNCTION; 29928 29929-- IN AP242 29930FUNCTION make_numeric_set 29931 (start : maths_number; 29932 delta : maths_number; 29933 incs : positive_integer ) : SET [2:?] OF maths_number; 29934 LOCAL 29935 i : INTEGER; 29936 numeric_set : SET [2:?] OF maths_number := [ start, start + delta ]; 29937 END_LOCAL; 29938 IF incs > 1 THEN 29939 REPEAT i := 2 TO incs; 29940 numeric_set := numeric_set + start + i * delta; 29941 END_REPEAT; 29942 END_IF; 29943 RETURN (numeric_set); 29944END_FUNCTION; 29945 29946-- IN AP242 29947FUNCTION make_parallel_composed_function 29948 (srcdom : maths_space_or_function; 29949 prepfuncs : LIST [2:?] OF maths_function; 29950 finfunc : maths_function_select ) : parallel_composed_function; 29951 RETURN (parallel_composed_function(srcdom, prepfuncs, finfunc) || maths_function() || generic_expression() || multiple_arity_generic_expression(convert_to_operands_prcmfn(srcdom, prepfuncs, finfunc))); 29952END_FUNCTION; 29953 29954-- IN AP242 29955FUNCTION make_polar_complex_number_region 29956 (centre : complex_number_literal; 29957 dis_constraint : real_interval; 29958 dir_constraint : finite_real_interval ) : polar_complex_number_region; 29959 RETURN (polar_complex_number_region(centre, dis_constraint, dir_constraint) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29960END_FUNCTION; 29961 29962-- IN AP242 29963FUNCTION make_real_interval_from_min 29964 (min : REAL; 29965 minclo : open_closed ) : real_interval_from_min; 29966 RETURN (real_interval_from_min(min, minclo) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29967END_FUNCTION; 29968 29969-- IN AP242 29970FUNCTION make_real_interval_to_max 29971 (max : REAL; 29972 maxclo : open_closed ) : real_interval_to_max; 29973 RETURN (real_interval_to_max(max, maxclo) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29974END_FUNCTION; 29975 29976-- IN AP242 29977FUNCTION make_real_literal 29978 (lit_value : REAL ) : real_literal; 29979 RETURN (real_literal() || literal_number(lit_value) || simple_numeric_expression() || numeric_expression() || expression() || generic_expression() || simple_generic_expression() || generic_literal()); 29980END_FUNCTION; 29981 29982-- IN AP242 29983FUNCTION make_string_literal 29984 (lit_value : STRING ) : string_literal; 29985 RETURN (string_literal(lit_value) || simple_string_expression() || string_expression() || expression() || generic_expression() || simple_generic_expression() || generic_literal()); 29986END_FUNCTION; 29987 29988-- IN AP242 29989FUNCTION make_uniform_product_space 29990 (base : maths_space; 29991 exponent : positive_integer ) : uniform_product_space; 29992 RETURN (uniform_product_space(base, exponent) || maths_space() || generic_expression() || generic_literal() || simple_generic_expression()); 29993END_FUNCTION; 29994 29995-- IN AP242 29996FUNCTION max_exists 29997 (spc : maths_space ) : BOOLEAN; 29998 LOCAL 29999 types : SET OF STRING := TYPEOF(spc); 30000 END_LOCAL; 30001 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))); 30002END_FUNCTION; 30003 30004-- IN AP242 30005FUNCTION max_included 30006 (spc : maths_space ) : BOOLEAN; 30007 LOCAL 30008 types : SET OF STRING := TYPEOF(spc); 30009 END_LOCAL; 30010 IF (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types) OR (schema_prefix + 'INTEGER_INTERVAL_TO_MAX' IN types) THEN 30011 RETURN (TRUE); 30012 END_IF; 30013 IF schema_prefix + 'FINITE_REAL_INTERVAL' IN types THEN 30014 RETURN (bool(spc\finite_real_interval.max_closure = closed)); 30015 END_IF; 30016 IF schema_prefix + 'REAL_INTERVAL_TO_MAX' IN types THEN 30017 RETURN (bool(spc\real_interval_to_max.max_closure = closed)); 30018 END_IF; 30019 RETURN (FALSE); 30020END_FUNCTION; 30021 30022-- IN AP242 30023FUNCTION member_of 30024 (val : GENERIC : G; 30025 spc : maths_space ) : LOGICAL; 30026 FUNCTION fedex 30027 (val : AGGREGATE OF GENERIC : x; 30028 i : INTEGER ) : GENERIC : x; 30029 RETURN (val[i]); 30030 END_FUNCTION; 30031 LOCAL 30032 v : maths_value := simplify_maths_value(convert_to_maths_value(val)); 30033 vtypes : SET OF STRING := stripped_typeof(v); 30034 s : maths_space := simplify_maths_space(spc); 30035 stypes : SET OF STRING := stripped_typeof(s); 30036 tmp_int : INTEGER; 30037 tmp_real : REAL; 30038 tmp_cmplx : complex_number_literal; 30039 lgcl : LOGICAL; 30040 cum : LOGICAL; 30041 vspc : maths_space; 30042 sspc : maths_space; 30043 smem : SET OF maths_value; 30044 factors : LIST OF maths_space; 30045 END_LOCAL; 30046 IF NOT EXISTS(s) THEN 30047 RETURN (FALSE); 30048 END_IF; 30049 IF NOT EXISTS(v) THEN 30050 RETURN (s = the_generics); 30051 END_IF; 30052 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 30053 IF has_values_space(v) THEN 30054 vspc := values_space_of(v); 30055 IF subspace_of(vspc, s) THEN 30056 RETURN (TRUE); 30057 END_IF; 30058 IF NOT compatible_spaces(vspc, s) THEN 30059 RETURN (FALSE); 30060 END_IF; 30061 RETURN (UNKNOWN); 30062 END_IF; 30063 RETURN (UNKNOWN); 30064 END_IF; 30065 IF 'ELEMENTARY_SPACE' IN stypes THEN 30066 CASE s\elementary_space.space_id OF 30067 es_numbers : 30068 RETURN (('NUMBER' IN vtypes) OR ('COMPLEX_NUMBER_LITERAL' IN vtypes)); 30069 es_complex_numbers : 30070 RETURN ('COMPLEX_NUMBER_LITERAL' IN vtypes); 30071 es_reals : 30072 RETURN (('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes)); 30073 es_integers : 30074 RETURN ('INTEGER' IN vtypes); 30075 es_logicals : 30076 RETURN ('LOGICAL' IN vtypes); 30077 es_booleans : 30078 RETURN ('BOOLEAN' IN vtypes); 30079 es_strings : 30080 RETURN ('STRING' IN vtypes); 30081 es_binarys : 30082 RETURN ('BINARY' IN vtypes); 30083 es_maths_spaces : 30084 RETURN ('MATHS_SPACE' IN vtypes); 30085 es_maths_functions : 30086 RETURN ('MATHS_FUNCTION' IN vtypes); 30087 es_generics : 30088 RETURN (TRUE); 30089 END_CASE; 30090 END_IF; 30091 IF 'FINITE_INTEGER_INTERVAL' IN stypes THEN 30092 IF 'INTEGER' IN vtypes THEN 30093 tmp_int := v; 30094 RETURN ((s\finite_integer_interval.min <= tmp_int) AND (tmp_int <= s\finite_integer_interval.max)); 30095 END_IF; 30096 RETURN (FALSE); 30097 END_IF; 30098 IF 'INTEGER_INTERVAL_FROM_MIN' IN stypes THEN 30099 IF 'INTEGER' IN vtypes THEN 30100 tmp_int := v; 30101 RETURN (s\integer_interval_from_min.min <= tmp_int); 30102 END_IF; 30103 RETURN (FALSE); 30104 END_IF; 30105 IF 'INTEGER_INTERVAL_TO_MAX' IN stypes THEN 30106 IF 'INTEGER' IN vtypes THEN 30107 tmp_int := v; 30108 RETURN (tmp_int <= s\integer_interval_to_max.max); 30109 END_IF; 30110 RETURN (FALSE); 30111 END_IF; 30112 IF 'FINITE_REAL_INTERVAL' IN stypes THEN 30113 IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN 30114 tmp_real := v; 30115 IF s\finite_real_interval.min_closure = closed THEN 30116 IF s\finite_real_interval.max_closure = closed THEN 30117 RETURN ((s\finite_real_interval.min <= tmp_real) AND (tmp_real <= s\finite_real_interval.max)); 30118 ELSE 30119 RETURN ((s\finite_real_interval.min <= tmp_real) AND (tmp_real < s\finite_real_interval.max)); 30120 END_IF; 30121 ELSE 30122 IF s\finite_real_interval.max_closure = closed THEN 30123 RETURN ((s\finite_real_interval.min < tmp_real) AND (tmp_real <= s\finite_real_interval.max)); 30124 ELSE 30125 RETURN ((s\finite_real_interval.min < tmp_real) AND (tmp_real < s\finite_real_interval.max)); 30126 END_IF; 30127 END_IF; 30128 END_IF; 30129 RETURN (FALSE); 30130 END_IF; 30131 IF 'REAL_INTERVAL_FROM_MIN' IN stypes THEN 30132 IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN 30133 tmp_real := v; 30134 IF s\real_interval_from_min.min_closure = closed THEN 30135 RETURN (s\real_interval_from_min.min <= tmp_real); 30136 ELSE 30137 RETURN (s\real_interval_from_min.min < tmp_real); 30138 END_IF; 30139 END_IF; 30140 RETURN (FALSE); 30141 END_IF; 30142 IF 'REAL_INTERVAL_TO_MAX' IN stypes THEN 30143 IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN 30144 tmp_real := v; 30145 IF s\real_interval_to_max.max_closure = closed THEN 30146 RETURN (tmp_real <= s\real_interval_to_max.max); 30147 ELSE 30148 RETURN (tmp_real < s\real_interval_to_max.max); 30149 END_IF; 30150 END_IF; 30151 RETURN (FALSE); 30152 END_IF; 30153 IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes THEN 30154 IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN 30155 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)); 30156 END_IF; 30157 RETURN (FALSE); 30158 END_IF; 30159 IF 'POLAR_COMPLEX_NUMBER_REGION' IN stypes THEN 30160 IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN 30161 tmp_cmplx := v; 30162 tmp_cmplx.real_part := tmp_cmplx.real_part - s\polar_complex_number_region.centre.real_part; 30163 tmp_cmplx.imag_part := tmp_cmplx.imag_part - s\polar_complex_number_region.centre.imag_part; 30164 tmp_real := SQRT(tmp_cmplx.real_part ** 2 + tmp_cmplx.imag_part ** 2); 30165 IF NOT member_of(tmp_real, s\polar_complex_number_region.distance_constraint) THEN 30166 RETURN (FALSE); 30167 END_IF; 30168 IF tmp_real = 0.0 THEN 30169 RETURN (TRUE); 30170 END_IF; 30171 tmp_real := atan2(tmp_cmplx.imag_part, tmp_cmplx.real_part); 30172 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)); 30173 END_IF; 30174 RETURN (FALSE); 30175 END_IF; 30176 IF 'FINITE_SPACE' IN stypes THEN 30177 smem := s\finite_space.members; 30178 cum := FALSE; 30179 REPEAT i := 1 TO SIZEOF(smem); 30180 cum := cum OR equal_maths_values(v, smem[i]); 30181 IF cum = TRUE THEN 30182 RETURN (TRUE); 30183 END_IF; 30184 END_REPEAT; 30185 RETURN (cum); 30186 END_IF; 30187 IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN 30188 IF 'LIST' IN vtypes THEN 30189 IF SIZEOF(v) = s\uniform_product_space.exponent THEN 30190 sspc := s\uniform_product_space.base; 30191 cum := TRUE; 30192 REPEAT i := 1 TO SIZEOF(v); 30193 cum := cum AND member_of(v[i], sspc); 30194 IF cum = FALSE THEN 30195 RETURN (FALSE); 30196 END_IF; 30197 END_REPEAT; 30198 RETURN (cum); 30199 END_IF; 30200 END_IF; 30201 RETURN (FALSE); 30202 END_IF; 30203 IF 'LISTED_PRODUCT_SPACE' IN stypes THEN 30204 IF 'LIST' IN vtypes THEN 30205 factors := s\listed_product_space.factors; 30206 IF SIZEOF(v) = SIZEOF(factors) THEN 30207 cum := TRUE; 30208 REPEAT i := 1 TO SIZEOF(v); 30209 cum := cum AND member_of(v[i], factors[i]); 30210 IF cum = FALSE THEN 30211 RETURN (FALSE); 30212 END_IF; 30213 END_REPEAT; 30214 RETURN (cum); 30215 END_IF; 30216 END_IF; 30217 RETURN (FALSE); 30218 END_IF; 30219 IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN 30220 IF 'LIST' IN vtypes THEN 30221 sspc := s\extended_tuple_space.base; 30222 tmp_int := space_dimension(sspc); 30223 IF SIZEOF(v) >= tmp_int THEN 30224 cum := TRUE; 30225 REPEAT i := 1 TO tmp_int; 30226 cum := cum AND member_of(v[i], factor_space(sspc, i)); 30227 IF cum = FALSE THEN 30228 RETURN (FALSE); 30229 END_IF; 30230 END_REPEAT; 30231 sspc := s\extended_tuple_space.extender; 30232 REPEAT i := tmp_int + 1 TO SIZEOF(v); 30233 cum := cum AND member_of(v[i], sspc); 30234 IF cum = FALSE THEN 30235 RETURN (FALSE); 30236 END_IF; 30237 END_REPEAT; 30238 RETURN (cum); 30239 END_IF; 30240 END_IF; 30241 RETURN (FALSE); 30242 END_IF; 30243 IF 'FUNCTION_SPACE' IN stypes THEN 30244 IF 'MATHS_FUNCTION' IN vtypes THEN 30245 vspc := v\maths_function.domain; 30246 sspc := s\function_space.domain_argument; 30247 CASE s\function_space.domain_constraint OF 30248 sc_equal : 30249 cum := equal_maths_spaces(vspc, sspc); 30250 sc_subspace : 30251 cum := subspace_of(vspc, sspc); 30252 sc_member : 30253 cum := member_of(vspc, sspc); 30254 END_CASE; 30255 IF cum = FALSE THEN 30256 RETURN (FALSE); 30257 END_IF; 30258 vspc := v\maths_function.range; 30259 sspc := s\function_space.range_argument; 30260 CASE s\function_space.range_constraint OF 30261 sc_equal : 30262 cum := cum AND equal_maths_spaces(vspc, sspc); 30263 sc_subspace : 30264 cum := cum AND subspace_of(vspc, sspc); 30265 sc_member : 30266 cum := cum AND member_of(vspc, sspc); 30267 END_CASE; 30268 RETURN (cum); 30269 END_IF; 30270 RETURN (FALSE); 30271 END_IF; 30272 RETURN (UNKNOWN); 30273END_FUNCTION; 30274 30275-- IN AP242 30276FUNCTION min_exists 30277 (spc : maths_space ) : BOOLEAN; 30278 LOCAL 30279 types : SET OF STRING := TYPEOF(spc); 30280 END_LOCAL; 30281 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))); 30282END_FUNCTION; 30283 30284-- IN AP242 30285FUNCTION min_included 30286 (spc : maths_space ) : BOOLEAN; 30287 LOCAL 30288 types : SET OF STRING := TYPEOF(spc); 30289 END_LOCAL; 30290 IF (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types) OR (schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' IN types) THEN 30291 RETURN (TRUE); 30292 END_IF; 30293 IF schema_prefix + 'FINITE_REAL_INTERVAL' IN types THEN 30294 RETURN (bool(spc\finite_real_interval.min_closure = closed)); 30295 END_IF; 30296 IF schema_prefix + 'REAL_INTERVAL_FROM_MIN' IN types THEN 30297 RETURN (bool(spc\real_interval_from_min.min_closure = closed)); 30298 END_IF; 30299 RETURN (FALSE); 30300END_FUNCTION; 30301 30302-- DIFF IN AP214 30303FUNCTION mixed_loop_type_set 30304 (l : SET [0:?] OF loop ) : LOGICAL; 30305 LOCAL 30306 poly_loop_type : LOGICAL; 30307 END_LOCAL; 30308 IF SIZEOF(l) <= 1 THEN 30309 RETURN (FALSE); 30310 END_IF; 30311 poly_loop_type := 'STEP_MERGED_CAD_SCHEMA.POLY_LOOP' IN TYPEOF(l[1]); 30312 REPEAT i := 2 TO SIZEOF(l); 30313 IF ('STEP_MERGED_CAD_SCHEMA.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type THEN 30314 RETURN (TRUE); 30315 END_IF; 30316 END_REPEAT; 30317 RETURN (FALSE); 30318END_FUNCTION; 30319 30320FUNCTION msb_shells 30321 (brep : manifold_solid_brep ) : SET [1:?] OF closed_shell; 30322 LOCAL 30323 return_set : SET [1:?] OF closed_shell := [ brep.outer ]; 30324 END_LOCAL; 30325 IF SIZEOF(QUERY (msbtype <* TYPEOF(brep)| msbtype LIKE '*BREP_WITH_VOIDS')) >= 1 THEN 30326 return_set := return_set + brep\brep_with_voids.voids; 30327 END_IF; 30328 RETURN (return_set); 30329END_FUNCTION; 30330 30331FUNCTION msf_curve_check 30332 (cv : representation_item ) : BOOLEAN; 30333 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 30334 RETURN (FALSE); 30335 END_IF; 30336 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 30337 RETURN (TRUE); 30338 ELSE 30339 IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.LINE' ] * TYPEOF(cv)) = 1 THEN 30340 RETURN (TRUE); 30341 ELSE 30342 IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN 30343 RETURN (msf_curve_check(cv\curve_replica.parent_curve)); 30344 ELSE 30345 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 30346 RETURN (msf_curve_check(cv\offset_curve_3d.basis_curve)); 30347 ELSE 30348 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv) THEN 30349 RETURN (msf_curve_check(cv\pcurve.reference_to_curve\representation.items[1]) AND msf_surface_check(cv\pcurve.basis_surface)); 30350 ELSE 30351 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv) THEN 30352 IF msf_curve_check(cv\surface_curve.curve_3d) THEN 30353 REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry); 30354 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN 30355 IF NOT msf_surface_check(cv\surface_curve.associated_geometry[i]) THEN 30356 RETURN (FALSE); 30357 END_IF; 30358 ELSE 30359 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN 30360 IF NOT msf_curve_check(cv\surface_curve.associated_geometry[i]) THEN 30361 RETURN (FALSE); 30362 END_IF; 30363 END_IF; 30364 END_IF; 30365 END_REPEAT; 30366 RETURN (TRUE); 30367 END_IF; 30368 ELSE 30369 IF 'STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN 30370 IF SIZEOF(cv\polyline.points) >= 3 THEN 30371 RETURN (TRUE); 30372 END_IF; 30373 END_IF; 30374 END_IF; 30375 END_IF; 30376 END_IF; 30377 END_IF; 30378 END_IF; 30379 END_IF; 30380 RETURN (FALSE); 30381END_FUNCTION; 30382 30383FUNCTION msf_surface_check 30384 (surf : surface ) : BOOLEAN; 30385 IF 'STEP_MERGED_CAD_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN 30386 RETURN (TRUE); 30387 ELSE 30388 IF 'STEP_MERGED_CAD_SCHEMA.SWEPT_SURFACE' IN TYPEOF(surf) THEN 30389 RETURN (msf_curve_check(surf\swept_surface.swept_curve)); 30390 ELSE 30391 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 30392 RETURN (msf_surface_check(surf\offset_surface.basis_surface)); 30393 ELSE 30394 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_REPLICA' IN TYPEOF(surf) THEN 30395 RETURN (msf_surface_check(surf\surface_replica.parent_surface)); 30396 ELSE 30397 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 30398 RETURN (TRUE); 30399 END_IF; 30400 END_IF; 30401 END_IF; 30402 END_IF; 30403 END_IF; 30404 RETURN (FALSE); 30405END_FUNCTION; 30406 30407FUNCTION nmsf_curve_check 30408 (cv : representation_item ) : BOOLEAN; 30409 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 30410 RETURN (FALSE); 30411 ELSE 30412 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 30413 RETURN (TRUE); 30414 ELSE 30415 IF SIZEOF([ 'STEP_MERGED_CAD_SCHEMA.CONIC', 'STEP_MERGED_CAD_SCHEMA.LINE' ] * TYPEOF(cv)) = 1 THEN 30416 RETURN (TRUE); 30417 ELSE 30418 IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv) THEN 30419 RETURN (nmsf_curve_check(cv\curve_replica.parent_curve)); 30420 ELSE 30421 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 30422 RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve)); 30423 ELSE 30424 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv) THEN 30425 RETURN (nmsf_curve_check(cv\pcurve.reference_to_curve\representation.items[1]) AND nmsf_surface_check(cv\pcurve.basis_surface)); 30426 ELSE 30427 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_CURVE' IN TYPEOF(cv) THEN 30428 IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN 30429 REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry); 30430 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN 30431 IF NOT nmsf_surface_check(cv\surface_curve.associated_geometry[i]) THEN 30432 RETURN (FALSE); 30433 END_IF; 30434 ELSE 30435 IF 'STEP_MERGED_CAD_SCHEMA.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN 30436 IF NOT nmsf_curve_check(cv\surface_curve.associated_geometry[i]) THEN 30437 RETURN (FALSE); 30438 END_IF; 30439 END_IF; 30440 END_IF; 30441 END_REPEAT; 30442 RETURN (TRUE); 30443 END_IF; 30444 ELSE 30445 IF 'STEP_MERGED_CAD_SCHEMA.POLYLINE' IN TYPEOF(cv) THEN 30446 IF SIZEOF(cv\polyline.points) >= 3 THEN 30447 RETURN (TRUE); 30448 END_IF; 30449 END_IF; 30450 END_IF; 30451 END_IF; 30452 END_IF; 30453 END_IF; 30454 END_IF; 30455 END_IF; 30456 END_IF; 30457 RETURN (FALSE); 30458END_FUNCTION; 30459 30460FUNCTION nmsf_surface_check 30461 (surf : surface ) : BOOLEAN; 30462 IF 'STEP_MERGED_CAD_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN 30463 RETURN (TRUE); 30464 ELSE 30465 IF 'STEP_MERGED_CAD_SCHEMA.SWEPT_SURFACE' IN TYPEOF(surf) THEN 30466 RETURN (nmsf_curve_check(surf\swept_surface.swept_curve)); 30467 ELSE 30468 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 30469 RETURN (nmsf_surface_check(surf\offset_surface.basis_surface)); 30470 ELSE 30471 IF 'STEP_MERGED_CAD_SCHEMA.SURFACE_REPLICA' IN TYPEOF(surf) THEN 30472 RETURN (nmsf_surface_check(surf\surface_replica.parent_surface)); 30473 ELSE 30474 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 30475 RETURN (TRUE); 30476 END_IF; 30477 END_IF; 30478 END_IF; 30479 END_IF; 30480 END_IF; 30481 RETURN (FALSE); 30482END_FUNCTION; 30483 30484-- IN AP242 30485FUNCTION no_cyclic_domain_reference 30486 (ref : maths_space_or_function; 30487 used : SET [0:?] OF maths_function ) : BOOLEAN; 30488 LOCAL 30489 typenames : SET OF STRING := TYPEOF(ref); 30490 func : maths_function; 30491 END_LOCAL; 30492 IF NOT EXISTS(ref) OR NOT EXISTS(used) THEN 30493 RETURN (FALSE); 30494 END_IF; 30495 IF schema_prefix + 'MATHS_SPACE' IN typenames THEN 30496 RETURN (TRUE); 30497 END_IF; 30498 func := ref; 30499 IF func IN used THEN 30500 RETURN (FALSE); 30501 END_IF; 30502 IF schema_prefix + 'CONSTANT_FUNCTION' IN typenames THEN 30503 RETURN (no_cyclic_domain_reference(func\constant_function.source_of_domain, used + [ func ])); 30504 END_IF; 30505 IF schema_prefix + 'SELECTOR_FUNCTION' IN typenames THEN 30506 RETURN (no_cyclic_domain_reference(func\selector_function.source_of_domain, used + [ func ])); 30507 END_IF; 30508 IF schema_prefix + 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN 30509 RETURN (no_cyclic_domain_reference(func\parallel_composed_function.source_of_domain, used + [ func ])); 30510 END_IF; 30511 RETURN (TRUE); 30512END_FUNCTION; 30513 30514-- IN AP242 30515FUNCTION no_cyclic_space_reference 30516 (spc : maths_space; 30517 refs : SET [0:?] OF maths_space ) : BOOLEAN; 30518 LOCAL 30519 types : SET OF STRING; 30520 refs_plus : SET OF maths_space; 30521 END_LOCAL; 30522 IF spc IN refs THEN 30523 RETURN (FALSE); 30524 END_IF; 30525 types := TYPEOF(spc); 30526 refs_plus := refs + spc; 30527 IF schema_prefix + 'FINITE_SPACE' IN types THEN 30528 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)); 30529 END_IF; 30530 IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN types THEN 30531 RETURN (no_cyclic_space_reference(spc\uniform_product_space.base, refs_plus)); 30532 END_IF; 30533 IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN types THEN 30534 RETURN (bool(SIZEOF(QUERY (fac <* spc\listed_product_space.factors| NOT no_cyclic_space_reference(fac, refs_plus))) = 0)); 30535 END_IF; 30536 IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN types THEN 30537 RETURN (no_cyclic_space_reference(spc\extended_tuple_space.base, refs_plus) AND no_cyclic_space_reference(spc\extended_tuple_space.extender, refs_plus)); 30538 END_IF; 30539 RETURN (TRUE); 30540END_FUNCTION; 30541 30542-- IN AP242 30543FUNCTION nondecreasing 30544 (lr : LIST [0:?] OF REAL ) : BOOLEAN; 30545 IF NOT EXISTS(lr) THEN 30546 RETURN (FALSE); 30547 END_IF; 30548 REPEAT j := 2 TO SIZEOF(lr); 30549 IF lr[j] < lr[(j - 1)] THEN 30550 RETURN (FALSE); 30551 END_IF; 30552 END_REPEAT; 30553 RETURN (TRUE); 30554END_FUNCTION; 30555 30556-- DIFF IN AP214 30557-- DIFF IN AP203e2 30558FUNCTION normalise 30559 (arg : vector_or_direction ) : vector_or_direction; 30560 LOCAL 30561 ndim : INTEGER; 30562 v : direction := dummy_gri || direction([ 1.0, 0.0, 0.0 ]); 30563 result : vector_or_direction; 30564 vec : vector := dummy_gri || vector(v, 1.0); 30565 mag : REAL; 30566 END_LOCAL; 30567 IF NOT EXISTS(arg) THEN 30568 result := ?; 30569 ELSE 30570 ndim := arg.dim; 30571 IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(arg) THEN 30572 BEGIN 30573 v := dummy_gri || direction(arg\vector.orientation.direction_ratios); 30574 IF arg\vector.magnitude = 0.0 THEN 30575 RETURN (?); 30576 ELSE 30577 vec := dummy_gri || vector(v, 1.0); 30578 END_IF; 30579 END; 30580 ELSE 30581 v := dummy_gri || direction(arg.direction_ratios); 30582 END_IF; 30583 mag := 0.0; 30584 REPEAT i := 1 TO ndim; 30585 mag := mag + v.direction_ratios[i] * v.direction_ratios[i]; 30586 END_REPEAT; 30587 IF mag > 0.0 THEN 30588 mag := SQRT(mag); 30589 REPEAT i := 1 TO ndim; 30590 v.direction_ratios[i] := v.direction_ratios[i] / mag; 30591 END_REPEAT; 30592 IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(arg) THEN 30593 vec.orientation := v; 30594 result := vec; 30595 ELSE 30596 result := v; 30597 END_IF; 30598 ELSE 30599 RETURN (?); 30600 END_IF; 30601 END_IF; 30602 RETURN (result); 30603END_FUNCTION; 30604 30605-- IN AP242 30606FUNCTION number_superspace_of 30607 (spc : maths_space ) : elementary_space; 30608 IF subspace_of_es(spc, es_integers) THEN 30609 RETURN (the_integers); 30610 END_IF; 30611 IF subspace_of_es(spc, es_reals) THEN 30612 RETURN (the_reals); 30613 END_IF; 30614 IF subspace_of_es(spc, es_complex_numbers) THEN 30615 RETURN (the_complex_numbers); 30616 END_IF; 30617 IF subspace_of_es(spc, es_numbers) THEN 30618 RETURN (the_numbers); 30619 END_IF; 30620 RETURN (?); 30621END_FUNCTION; 30622 30623-- IN AP242 30624FUNCTION number_tuple_subspace_check 30625 (spc : maths_space ) : LOGICAL; 30626 LOCAL 30627 types : SET OF STRING := stripped_typeof(spc); 30628 factors : LIST OF maths_space; 30629 cum : LOGICAL := TRUE; 30630 END_LOCAL; 30631 IF 'UNIFORM_PRODUCT_SPACE' IN types THEN 30632 RETURN (subspace_of_es(spc\uniform_product_space.base, es_numbers)); 30633 END_IF; 30634 IF 'LISTED_PRODUCT_SPACE' IN types THEN 30635 factors := spc\listed_product_space.factors; 30636 REPEAT i := 1 TO SIZEOF(factors); 30637 cum := cum AND subspace_of_es(factors[i], es_numbers); 30638 END_REPEAT; 30639 RETURN (cum); 30640 END_IF; 30641 IF 'EXTENDED_TUPLE_SPACE' IN types THEN 30642 cum := subspace_of_es(spc\extended_tuple_space.extender, es_numbers); 30643 cum := cum AND number_tuple_subspace_check(spc\extended_tuple_space.base); 30644 RETURN (cum); 30645 END_IF; 30646 RETURN (FALSE); 30647END_FUNCTION; 30648 30649-- IN AP242 30650FUNCTION one_tuples_of 30651 (spc : maths_space ) : tuple_space; 30652 RETURN (make_uniform_product_space(spc, 1)); 30653END_FUNCTION; 30654 30655-- IN AP242 30656FUNCTION open_path_based_inner_boundary 30657 (input : SET [0:?] OF primitive_2d ) : BOOLEAN; 30658 LOCAL 30659 pass : BOOLEAN := TRUE; 30660 END_LOCAL; 30661 REPEAT i := 1 TO SIZEOF(input); 30662 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 30663 pass := FALSE; 30664 END_IF; 30665 END_REPEAT; 30666 RETURN (pass); 30667END_FUNCTION; 30668 30669FUNCTION open_shell_reversed 30670 (a_shell : open_shell ) : oriented_open_shell; 30671 LOCAL 30672 the_reverse : oriented_open_shell; 30673 END_LOCAL; 30674 IF 'STEP_MERGED_CAD_SCHEMA.ORIENTED_OPEN_SHELL' IN TYPEOF(a_shell) THEN 30675 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); 30676 ELSE 30677 the_reverse := dummy_tri || connected_face_set(a_shell\connected_face_set.cfs_faces) || open_shell() || oriented_open_shell(a_shell, FALSE); 30678 END_IF; 30679 RETURN (the_reverse); 30680END_FUNCTION; 30681 30682FUNCTION orthogonal_complement 30683 (vec : direction ) : direction; 30684 LOCAL 30685 result : direction; 30686 END_LOCAL; 30687 IF (vec.dim <> 2) OR NOT EXISTS(vec) THEN 30688 RETURN (?); 30689 ELSE 30690 result := dummy_gri || direction([ -vec.direction_ratios[2], vec.direction_ratios[1] ]); 30691 RETURN (result); 30692 END_IF; 30693END_FUNCTION; 30694 30695-- IN AP242 30696FUNCTION parallel_composed_function_composability_check 30697 (funcs : LIST [0:?] OF maths_function; 30698 final : maths_function_select ) : BOOLEAN; 30699 LOCAL 30700 tplsp : tuple_space := the_zero_tuple_space; 30701 finfun : maths_function := convert_to_maths_function(final); 30702 END_LOCAL; 30703 REPEAT i := 1 TO SIZEOF(funcs); 30704 tplsp := assoc_product_space(tplsp, funcs[i].range); 30705 END_REPEAT; 30706 RETURN (compatible_spaces(tplsp, finfun.domain)); 30707END_FUNCTION; 30708 30709-- IN AP242 30710FUNCTION parallel_composed_function_domain_check 30711 (comdom : tuple_space; 30712 funcs : LIST [0:?] OF maths_function ) : BOOLEAN; 30713 REPEAT i := 1 TO SIZEOF(funcs); 30714 IF NOT compatible_spaces(comdom, funcs[i].domain) THEN 30715 RETURN (FALSE); 30716 END_IF; 30717 END_REPEAT; 30718 RETURN (TRUE); 30719END_FUNCTION; 30720 30721-- IN AP242 30722FUNCTION partial_derivative_check 30723 (domain : tuple_space; 30724 d_vars : LIST [1:?] OF input_selector ) : BOOLEAN; 30725 LOCAL 30726 domn : tuple_space := domain; 30727 fspc : maths_space; 30728 dim : INTEGER; 30729 k : INTEGER; 30730 END_LOCAL; 30731 IF (space_dimension(domain) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(domain))) THEN 30732 domn := factor1(domain); 30733 END_IF; 30734 dim := space_dimension(domn); 30735 REPEAT i := 1 TO SIZEOF(d_vars); 30736 k := d_vars[i]; 30737 IF k > dim THEN 30738 RETURN (FALSE); 30739 END_IF; 30740 fspc := factor_space(domn, k); 30741 IF NOT subspace_of_es(fspc, es_reals) AND NOT subspace_of_es(fspc, es_complex_numbers) THEN 30742 RETURN (FALSE); 30743 END_IF; 30744 END_REPEAT; 30745 RETURN (TRUE); 30746END_FUNCTION; 30747 30748FUNCTION path_head_to_tail 30749 (a_path : path ) : LOGICAL; 30750 LOCAL 30751 n : INTEGER; 30752 p : LOGICAL := TRUE; 30753 END_LOCAL; 30754 n := SIZEOF(a_path.edge_list); 30755 REPEAT i := 2 TO n; 30756 p := p AND (a_path.edge_list[(i - 1)].edge_end :=: a_path.edge_list[i].edge_start); 30757 END_REPEAT; 30758 RETURN (p); 30759END_FUNCTION; 30760 30761FUNCTION path_reversed 30762 (a_path : path ) : oriented_path; 30763 LOCAL 30764 the_reverse : oriented_path; 30765 END_LOCAL; 30766 IF 'STEP_MERGED_CAD_SCHEMA.ORIENTED_PATH' IN TYPEOF(a_path) THEN 30767 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); 30768 ELSE 30769 the_reverse := dummy_tri || path(list_of_topology_reversed(a_path.edge_list)) || oriented_path(a_path, FALSE); 30770 END_IF; 30771 RETURN (the_reverse); 30772END_FUNCTION; 30773 30774-- DIFF IN AP214 30775-- IN AP214/AP242 30776FUNCTION plane_angle_for_pair_in_radian 30777 (pair : kinematic_pair; 30778 angle : plane_angle_measure ) : plane_angle_measure; 30779 LOCAL 30780 converted_angle : plane_angle_measure := angle; 30781 link_rep : kinematic_link_representation := representation_of_link(pair.joint.edge_start); 30782 link_cntxt : representation_context; 30783 pa_units : SET OF unit := []; 30784 pau : unit; 30785 END_LOCAL; 30786 link_cntxt := link_rep\representation.context_of_items; 30787 IF NOT ('STEP_MERGED_CAD_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(link_cntxt)) THEN 30788 RETURN (?); 30789 END_IF; 30790 pa_units := QUERY (unit <* link_cntxt\global_unit_assigned_context.units| 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(unit)); 30791 IF SIZEOF(pa_units) <> 1 THEN 30792 RETURN (?); 30793 END_IF; 30794 pau := pa_units[1]; 30795 IF NOT ('STEP_MERGED_CAD_SCHEMA.SI_UNIT' IN TYPEOF(pau)) AND NOT ('STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau)) THEN 30796 RETURN (?); 30797 END_IF; 30798 REPEAT WHILE 'STEP_MERGED_CAD_SCHEMA.CONVERSION_BASED_UNIT' IN TYPEOF(pau); 30799 converted_angle := converted_angle * pau\conversion_based_unit.conversion_factor.value_component; 30800 pau := pau\conversion_based_unit.conversion_factor.unit_component; 30801 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 30802 RETURN (?); 30803 END_IF; 30804 END_REPEAT; 30805 IF pau\si_unit.name <> si_unit_name.radian THEN 30806 RETURN (?); 30807 END_IF; 30808 CASE pau\si_unit.prefix OF 30809 si_prefix.exa : 30810 RETURN (1.0E+018 * converted_angle); 30811 si_prefix.peta : 30812 RETURN (1.0E+015 * converted_angle); 30813 si_prefix.tera : 30814 RETURN (1.0E+012 * converted_angle); 30815 si_prefix.giga : 30816 RETURN (1.0E+009 * converted_angle); 30817 si_prefix.mega : 30818 RETURN (1.0E+006 * converted_angle); 30819 si_prefix.kilo : 30820 RETURN (1000.00 * converted_angle); 30821 si_prefix.hecto : 30822 RETURN (100.000 * converted_angle); 30823 si_prefix.deca : 30824 RETURN (10.0 * converted_angle); 30825 si_prefix.deci : 30826 RETURN (0.100000 * converted_angle); 30827 si_prefix.centi : 30828 RETURN (0.0100000 * converted_angle); 30829 si_prefix.milli : 30830 RETURN (0.00100000 * converted_angle); 30831 si_prefix.micro : 30832 RETURN (1.0E-006 * converted_angle); 30833 si_prefix.nano : 30834 RETURN (1.0E-009 * converted_angle); 30835 si_prefix.pico : 30836 RETURN (1.0E-012 * converted_angle); 30837 si_prefix.femto : 30838 RETURN (1.0E-015 * converted_angle); 30839 si_prefix.atto : 30840 RETURN (1.0E-018 * converted_angle); 30841 OTHERWISE : 30842 RETURN (converted_angle); 30843 END_CASE; 30844END_FUNCTION; 30845 30846-- IN AP242 30847FUNCTION real_max 30848 (spc : maths_space ) : REAL; 30849 LOCAL 30850 types : SET OF STRING := TYPEOF(spc); 30851 END_LOCAL; 30852 IF schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types THEN 30853 RETURN (spc\finite_integer_interval.max); 30854 END_IF; 30855 IF schema_prefix + 'INTEGER_INTERVAL_TO_MAX' IN types THEN 30856 RETURN (spc\integer_interval_to_max.max); 30857 END_IF; 30858 IF schema_prefix + 'FINITE_REAL_INTERVAL' IN types THEN 30859 RETURN (spc\finite_real_interval.max); 30860 END_IF; 30861 IF schema_prefix + 'REAL_INTERVAL_TO_MAX' IN types THEN 30862 RETURN (spc\real_interval_to_max.max); 30863 END_IF; 30864 RETURN (?); 30865END_FUNCTION; 30866 30867-- IN AP242 30868FUNCTION real_min 30869 (spc : maths_space ) : REAL; 30870 LOCAL 30871 types : SET OF STRING := TYPEOF(spc); 30872 END_LOCAL; 30873 IF schema_prefix + 'FINITE_INTEGER_INTERVAL' IN types THEN 30874 RETURN (spc\finite_integer_interval.min); 30875 END_IF; 30876 IF schema_prefix + 'INTEGER_INTERVAL_FROM_MIN' IN types THEN 30877 RETURN (spc\integer_interval_from_min.min); 30878 END_IF; 30879 IF schema_prefix + 'FINITE_REAL_INTERVAL' IN types THEN 30880 RETURN (spc\finite_real_interval.min); 30881 END_IF; 30882 IF schema_prefix + 'REAL_INTERVAL_FROM_MIN' IN types THEN 30883 RETURN (spc\real_interval_from_min.min); 30884 END_IF; 30885 RETURN (?); 30886END_FUNCTION; 30887 30888-- IN AP242 30889FUNCTION relating_shape_representations_of_extreme_values 30890 (item : location_of_extreme_value_select ) : SET [0:?] OF shape_representation; 30891 LOCAL 30892 results : SET OF shape_representation := []; 30893 exti : SET OF extreme_instance := []; 30894 ii_ei : SET OF instance_report_item_with_extreme_instances := []; 30895 sdiir : SET OF shape_data_quality_inspection_instance_report := []; 30896 sdqr : SET OF shape_data_quality_inspection_result_representation := []; 30897 sdisr : SET OF shape_data_quality_inspected_shape_and_result_relationship := []; 30898 END_LOCAL; 30899 exti := exti + bag_to_set(USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.' + 'EXTREME_INSTANCE.' + 'LOCATIONS_OF_EXTREME_VALUE')); 30900 REPEAT i := 1 TO HIINDEX(exti); 30901 ii_ei := ii_ei + bag_to_set(USEDIN(exti[i], 'STEP_MERGED_CAD_SCHEMA.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.' + 'EXTREME_INSTANCES')); 30902 END_REPEAT; 30903 REPEAT i := 1 TO HIINDEX(ii_ei); 30904 sdiir := sdiir + bag_to_set(USEDIN(ii_ei[i], 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES')); 30905 END_REPEAT; 30906 REPEAT i := 1 TO HIINDEX(sdiir); 30907 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))); 30908 END_REPEAT; 30909 REPEAT i := 1 TO HIINDEX(sdqr); 30910 sdisr := sdisr + bag_to_set(USEDIN(sdqr[i], 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2')); 30911 END_REPEAT; 30912 REPEAT i := 1 TO HIINDEX(sdisr); 30913 results := results + sdisr[i].rep_1; 30914 END_REPEAT; 30915 RETURN (results); 30916END_FUNCTION; 30917 30918-- IN AP242 30919FUNCTION remove_first 30920 (alist : LIST [0:?] OF GENERIC : GEN ) : LIST [0:?] OF GENERIC : GEN; 30921 LOCAL 30922 blist : LIST OF GENERIC : GEN := alist; 30923 END_LOCAL; 30924 IF SIZEOF(blist) > 0 THEN 30925 REMOVE( blist, 1 ); 30926 END_IF; 30927 RETURN (blist); 30928END_FUNCTION; 30929 30930-- IN AP242 30931FUNCTION repackage 30932 (tspace : tuple_space; 30933 repckg : repackage_options ) : tuple_space; 30934 CASE repckg OF 30935 ro_nochange : 30936 RETURN (tspace); 30937 ro_wrap_as_tuple : 30938 RETURN (one_tuples_of(tspace)); 30939 ro_unwrap_tuple : 30940 RETURN (factor1(tspace)); 30941 OTHERWISE : 30942 RETURN (?); 30943 END_CASE; 30944END_FUNCTION; 30945 30946-- DIFF IN AP214 30947-- IN AP214/AP242 30948FUNCTION representation_of_link 30949 (link : kinematic_link ) : kinematic_link_representation; 30950 RETURN (?); 30951END_FUNCTION; 30952 30953-- IN AP214 30954FUNCTION representations_mapped_into 30955 (rep : representation ) : SET OF representation; 30956 LOCAL 30957 results : SET OF representation := []; 30958 rm : SET OF representation_map; 30959 mi : SET OF mapped_item := []; 30960 END_LOCAL; 30961 rm := bag_to_set(USEDIN(rep, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); 30962 REPEAT i := 1 TO HIINDEX(rm); 30963 mi := mi + rm[i].map_usage; 30964 END_REPEAT; 30965 REPEAT j := 1 TO HIINDEX(mi); 30966 results := results + USEDIN(mi[j], 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'); 30967 END_REPEAT; 30968 RETURN (results); 30969END_FUNCTION; 30970 30971-- DIFF IN AP214 30972-- DIFF IN AP203e2 30973FUNCTION scalar_times_vector 30974 (scalar : REAL; 30975 vec : vector_or_direction ) : vector; 30976 LOCAL 30977 v : direction; 30978 mag : REAL; 30979 result : vector; 30980 END_LOCAL; 30981 IF NOT EXISTS(scalar) OR NOT EXISTS(vec) THEN 30982 RETURN (?); 30983 ELSE 30984 IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(vec) THEN 30985 v := dummy_gri || direction(vec\vector.orientation.direction_ratios); 30986 mag := scalar * vec\vector.magnitude; 30987 ELSE 30988 v := dummy_gri || direction(vec.direction_ratios); 30989 mag := scalar; 30990 END_IF; 30991 IF mag < 0.0 THEN 30992 REPEAT i := 1 TO SIZEOF(v.direction_ratios); 30993 v.direction_ratios[i] := -v.direction_ratios[i]; 30994 END_REPEAT; 30995 mag := -mag; 30996 END_IF; 30997 result := dummy_gri || vector(normalise(v), mag); 30998 END_IF; 30999 RETURN (result); 31000END_FUNCTION; 31001 31002FUNCTION second_proj_axis 31003 (z_axis : direction; 31004 x_axis : direction; 31005 arg : direction ) : direction; 31006 LOCAL 31007 y_axis : vector; 31008 v : direction; 31009 temp : vector; 31010 END_LOCAL; 31011 IF NOT EXISTS(arg) THEN 31012 v := dummy_gri || direction([ 0.0, 1.0, 0.0 ]); 31013 ELSE 31014 v := arg; 31015 END_IF; 31016 temp := scalar_times_vector(dot_product(v, z_axis), z_axis); 31017 y_axis := vector_difference(v, temp); 31018 temp := scalar_times_vector(dot_product(v, x_axis), x_axis); 31019 y_axis := vector_difference(y_axis, temp); 31020 y_axis := normalise(y_axis); 31021 RETURN (y_axis.orientation); 31022END_FUNCTION; 31023 31024FUNCTION set_of_topology_reversed 31025 (a_set : set_of_reversible_topology_item ) : set_of_reversible_topology_item; 31026 LOCAL 31027 the_reverse : set_of_reversible_topology_item; 31028 END_LOCAL; 31029 the_reverse := []; 31030 REPEAT i := 1 TO SIZEOF(a_set); 31031 the_reverse := the_reverse + topology_reversed(a_set[i]); 31032 END_REPEAT; 31033 RETURN (the_reverse); 31034END_FUNCTION; 31035 31036-- IN AP242 31037FUNCTION shape_of_array 31038 (func : maths_function ) : LIST [0:?] OF positive_integer; 31039 LOCAL 31040 tspace : tuple_space; 31041 temp : maths_space; 31042 result : LIST OF positive_integer := []; 31043 END_LOCAL; 31044 IF schema_prefix + 'EXPLICIT_TABLE_FUNCTION' IN TYPEOF(func) THEN 31045 RETURN (func\explicit_table_function.shape); 31046 END_IF; 31047 tspace := func.domain; 31048 IF (space_dimension(tspace) = 1) AND (schema_prefix + 'TUPLE_SPACE' IN TYPEOF(factor1(tspace))) THEN 31049 tspace := factor1(tspace); 31050 END_IF; 31051 REPEAT i := 1 TO space_dimension(tspace); 31052 temp := factor_space(tspace, i); 31053 IF NOT (schema_prefix + 'FINITE_INTEGER_INTERVAL' IN TYPEOF(temp)) THEN 31054 RETURN (?); 31055 END_IF; 31056 INSERT( result, temp\finite_integer_interval.size, i - 1 ); 31057 END_REPEAT; 31058 RETURN (result); 31059END_FUNCTION; 31060 31061FUNCTION shell_reversed 31062 (a_shell : shell ) : shell; 31063 IF 'STEP_MERGED_CAD_SCHEMA.OPEN_SHELL' IN TYPEOF(a_shell) THEN 31064 RETURN (open_shell_reversed(a_shell)); 31065 ELSE 31066 IF 'STEP_MERGED_CAD_SCHEMA.CLOSED_SHELL' IN TYPEOF(a_shell) THEN 31067 RETURN (closed_shell_reversed(a_shell)); 31068 ELSE 31069 RETURN (?); 31070 END_IF; 31071 END_IF; 31072END_FUNCTION; 31073 31074-- IN AP242 31075FUNCTION simplify_function_application 31076 (expr : function_application ) : maths_value; 31077 FUNCTION ctmv 31078 (x : GENERIC : G ) : maths_value; 31079 RETURN (convert_to_maths_value(x)); 31080 END_FUNCTION; 31081 PROCEDURE parts 31082 (c : complex_number_literal; 31083 VAR x : REAL; 31084 VAR y : REAL ); 31085 x := c.real_part; 31086 y := c.imag_part; 31087 END_PROCEDURE; 31088 FUNCTION makec 31089 (x : REAL; 31090 y : REAL ) : complex_number_literal; 31091 RETURN (make_complex_number_literal(x, y)); 31092 END_FUNCTION; 31093 FUNCTION good_t 31094 (v : maths_value; 31095 tn : STRING ) : BOOLEAN; 31096 LOCAL 31097 tpl : LIST OF maths_value; 31098 END_LOCAL; 31099 IF 'LIST' IN TYPEOF(v) THEN 31100 tpl := v; 31101 REPEAT i := 1 TO SIZEOF(tpl); 31102 IF NOT (tn IN TYPEOF(tpl[i])) THEN 31103 RETURN (FALSE); 31104 END_IF; 31105 END_REPEAT; 31106 RETURN (TRUE); 31107 END_IF; 31108 RETURN (FALSE); 31109 END_FUNCTION; 31110 CONSTANT 31111 cnlit : STRING := schema_prefix + 'COMPLEX_NUMBER_LITERAL'; 31112 END_CONSTANT; 31113 LOCAL 31114 types : SET OF STRING := stripped_typeof(expr.func); 31115 ef_val : elementary_function_enumerators; 31116 is_elementary : BOOLEAN := FALSE; 31117 v : maths_value; 31118 v1 : maths_value; 31119 v2 : maths_value; 31120 v3 : maths_value; 31121 vlist : LIST OF maths_value := []; 31122 gexpr : generic_expression; 31123 pairs : SET [1:?] OF LIST [2:2] OF maths_value; 31124 boo : BOOLEAN; 31125 lgc : LOGICAL; 31126 cum : LOGICAL; 31127 j : INTEGER; 31128 k : INTEGER; 31129 n : INTEGER; 31130 p : REAL; 31131 q : REAL; 31132 r : REAL; 31133 s : REAL; 31134 T : REAL; 31135 u : REAL; 31136 str : STRING; 31137 st2 : STRING; 31138 bin : BINARY; 31139 bi2 : BINARY; 31140 tpl : LIST OF maths_value; 31141 tp2 : LIST OF maths_value; 31142 mem : SET OF maths_value := []; 31143 END_LOCAL; 31144 REPEAT i := 1 TO SIZEOF(expr.arguments); 31145 v := simplify_maths_value(expr.arguments[i]); 31146 INSERT( vlist, v, i - 1 ); 31147 END_REPEAT; 31148 IF SIZEOF(vlist) >= 1 THEN 31149 v1 := vlist[1]; 31150 END_IF; 31151 IF SIZEOF(vlist) >= 2 THEN 31152 v2 := vlist[2]; 31153 END_IF; 31154 IF SIZEOF(vlist) >= 3 THEN 31155 v3 := vlist[3]; 31156 END_IF; 31157 IF 'ELEMENTARY_FUNCTION_ENUMERATORS' IN types THEN 31158 ef_val := expr.func; 31159 is_elementary := TRUE; 31160 END_IF; 31161 IF 'ELEMENTARY_FUNCTION' IN types THEN 31162 ef_val := expr.func\elementary_function.func_id; 31163 is_elementary := TRUE; 31164 END_IF; 31165 IF is_elementary THEN 31166 CASE ef_val OF 31167 ef_and : 31168 BEGIN 31169 cum := TRUE; 31170 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31171 IF 'LOGICAL' IN TYPEOF(vlist[i]) THEN 31172 lgc := vlist[i]; 31173 cum := cum AND lgc; 31174 IF lgc = FALSE THEN 31175 RETURN (ctmv(FALSE)); 31176 END_IF; 31177 REMOVE( vlist, i ); 31178 END_IF; 31179 END_REPEAT; 31180 IF SIZEOF(vlist) = 0 THEN 31181 RETURN (ctmv(cum)); 31182 END_IF; 31183 IF cum <> TRUE THEN 31184 INSERT( vlist, ctmv(cum), 0 ); 31185 END_IF; 31186 IF SIZEOF(vlist) = 1 THEN 31187 RETURN (vlist[1]); 31188 END_IF; 31189 END; 31190 ef_or : 31191 BEGIN 31192 cum := FALSE; 31193 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31194 IF 'LOGICAL' IN TYPEOF(vlist[i]) THEN 31195 lgc := vlist[i]; 31196 cum := cum OR lgc; 31197 IF lgc = TRUE THEN 31198 RETURN (ctmv(TRUE)); 31199 END_IF; 31200 REMOVE( vlist, i ); 31201 END_IF; 31202 END_REPEAT; 31203 IF SIZEOF(vlist) = 0 THEN 31204 RETURN (ctmv(cum)); 31205 END_IF; 31206 IF cum <> FALSE THEN 31207 INSERT( vlist, ctmv(cum), 0 ); 31208 END_IF; 31209 IF SIZEOF(vlist) = 1 THEN 31210 RETURN (vlist[1]); 31211 END_IF; 31212 END; 31213 ef_not : 31214 IF 'LOGICAL' IN TYPEOF(v1) THEN 31215 lgc := v1; 31216 RETURN (ctmv(NOT lgc)); 31217 END_IF; 31218 ef_xor : 31219 BEGIN 31220 IF 'LOGICAL' IN TYPEOF(v1) THEN 31221 lgc := v1; 31222 IF 'LOGICAL' IN TYPEOF(v2) THEN 31223 cum := v2; 31224 RETURN (ctmv(lgc XOR cum)); 31225 ELSE 31226 IF lgc = FALSE THEN 31227 RETURN (ctmv(v2)); 31228 ELSE 31229 IF lgc = UNKNOWN THEN 31230 RETURN (ctmv(UNKNOWN)); 31231 ELSE 31232 RETURN (make_function_application(ef_not, [ v2 ])); 31233 END_IF; 31234 END_IF; 31235 END_IF; 31236 ELSE 31237 IF 'LOGICAL' IN TYPEOF(v2) THEN 31238 lgc := v2; 31239 IF lgc = FALSE THEN 31240 RETURN (ctmv(v1)); 31241 ELSE 31242 IF lgc = UNKNOWN THEN 31243 RETURN (ctmv(UNKNOWN)); 31244 ELSE 31245 RETURN (make_function_application(ef_not, [ v1 ])); 31246 END_IF; 31247 END_IF; 31248 END_IF; 31249 END_IF; 31250 END; 31251 ef_negate_i : 31252 IF 'INTEGER' IN TYPEOF(v1) THEN 31253 j := v1; 31254 RETURN (ctmv(-j)); 31255 END_IF; 31256 ef_add_i : 31257 BEGIN 31258 j := 0; 31259 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31260 IF 'INTEGER' IN TYPEOF(vlist[i]) THEN 31261 k := vlist[i]; 31262 j := j + k; 31263 REMOVE( vlist, i ); 31264 END_IF; 31265 END_REPEAT; 31266 IF SIZEOF(vlist) = 0 THEN 31267 RETURN (ctmv(j)); 31268 END_IF; 31269 IF j <> 0 THEN 31270 INSERT( vlist, ctmv(j), 0 ); 31271 END_IF; 31272 IF SIZEOF(vlist) = 1 THEN 31273 RETURN (vlist[1]); 31274 END_IF; 31275 END; 31276 ef_subtract_i : 31277 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31278 j := v1; 31279 k := v2; 31280 RETURN (ctmv(j - k)); 31281 END_IF; 31282 ef_multiply_i : 31283 BEGIN 31284 j := 1; 31285 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31286 IF 'INTEGER' IN TYPEOF(vlist[i]) THEN 31287 k := vlist[i]; 31288 j := j * k; 31289 REMOVE( vlist, i ); 31290 END_IF; 31291 END_REPEAT; 31292 IF SIZEOF(vlist) = 0 THEN 31293 RETURN (ctmv(j)); 31294 END_IF; 31295 IF j <> 1 THEN 31296 INSERT( vlist, ctmv(j), 0 ); 31297 END_IF; 31298 IF SIZEOF(vlist) = 1 THEN 31299 RETURN (vlist[1]); 31300 END_IF; 31301 END; 31302 ef_divide_i : 31303 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31304 j := v1; 31305 k := v2; 31306 RETURN (ctmv(j DIV k)); 31307 END_IF; 31308 ef_mod_i : 31309 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31310 j := v1; 31311 k := v2; 31312 RETURN (ctmv(j MOD k)); 31313 END_IF; 31314 ef_exponentiate_i : 31315 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31316 j := v1; 31317 k := v2; 31318 n := 1; 31319 REPEAT i := 1 TO ABS(k); 31320 n := n * j; 31321 END_REPEAT; 31322 IF k < 0 THEN 31323 n := 1 DIV n; 31324 END_IF; 31325 RETURN (ctmv(n)); 31326 END_IF; 31327 ef_eq_i : 31328 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31329 j := v1; 31330 k := v2; 31331 RETURN (ctmv(j = k)); 31332 END_IF; 31333 ef_ne_i : 31334 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31335 j := v1; 31336 k := v2; 31337 RETURN (ctmv(j <> k)); 31338 END_IF; 31339 ef_gt_i : 31340 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31341 j := v1; 31342 k := v2; 31343 RETURN (ctmv(j > k)); 31344 END_IF; 31345 ef_lt_i : 31346 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31347 j := v1; 31348 k := v2; 31349 RETURN (ctmv(j < k)); 31350 END_IF; 31351 ef_ge_i : 31352 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31353 j := v1; 31354 k := v2; 31355 RETURN (ctmv(j >= k)); 31356 END_IF; 31357 ef_le_i : 31358 IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31359 j := v1; 31360 k := v2; 31361 RETURN (ctmv(j <= k)); 31362 END_IF; 31363 ef_abs_i : 31364 IF 'INTEGER' IN TYPEOF(v1) THEN 31365 j := v1; 31366 RETURN (ctmv(ABS(j))); 31367 END_IF; 31368 ef_max_i : 31369 BEGIN 31370 boo := FALSE; 31371 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31372 IF 'INTEGER' IN TYPEOF(vlist[i]) THEN 31373 IF boo THEN 31374 k := vlist[i]; 31375 IF k > j THEN 31376 j := k; 31377 END_IF; 31378 ELSE 31379 j := vlist[i]; 31380 boo := TRUE; 31381 END_IF; 31382 REMOVE( vlist, i ); 31383 END_IF; 31384 END_REPEAT; 31385 IF SIZEOF(vlist) = 0 THEN 31386 RETURN (ctmv(j)); 31387 END_IF; 31388 IF boo THEN 31389 INSERT( vlist, ctmv(j), 0 ); 31390 END_IF; 31391 IF SIZEOF(vlist) = 1 THEN 31392 RETURN (vlist[1]); 31393 END_IF; 31394 END; 31395 ef_min_i : 31396 BEGIN 31397 boo := FALSE; 31398 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31399 IF 'INTEGER' IN TYPEOF(vlist[i]) THEN 31400 IF boo THEN 31401 k := vlist[i]; 31402 IF k < j THEN 31403 j := k; 31404 END_IF; 31405 ELSE 31406 j := vlist[i]; 31407 boo := TRUE; 31408 END_IF; 31409 REMOVE( vlist, i ); 31410 END_IF; 31411 END_REPEAT; 31412 IF SIZEOF(vlist) = 0 THEN 31413 RETURN (ctmv(j)); 31414 END_IF; 31415 IF boo THEN 31416 INSERT( vlist, ctmv(j), 0 ); 31417 END_IF; 31418 IF SIZEOF(vlist) = 1 THEN 31419 RETURN (vlist[1]); 31420 END_IF; 31421 END; 31422 ef_negate_r : 31423 IF 'REAL' IN TYPEOF(v1) THEN 31424 r := v1; 31425 RETURN (ctmv(-r)); 31426 END_IF; 31427 ef_reciprocal_r : 31428 IF 'REAL' IN TYPEOF(v1) THEN 31429 r := v1; 31430 RETURN (ctmv(1.0 / r)); 31431 END_IF; 31432 ef_add_r : 31433 BEGIN 31434 r := 0.0; 31435 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31436 IF 'REAL' IN TYPEOF(vlist[i]) THEN 31437 s := vlist[i]; 31438 r := r + s; 31439 REMOVE( vlist, i ); 31440 END_IF; 31441 END_REPEAT; 31442 IF SIZEOF(vlist) = 0 THEN 31443 RETURN (ctmv(r)); 31444 END_IF; 31445 IF r <> 0.0 THEN 31446 INSERT( vlist, ctmv(r), 0 ); 31447 END_IF; 31448 IF SIZEOF(vlist) = 1 THEN 31449 RETURN (vlist[1]); 31450 END_IF; 31451 END; 31452 ef_subtract_r : 31453 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31454 r := v1; 31455 s := v2; 31456 RETURN (ctmv(r - s)); 31457 END_IF; 31458 ef_multiply_r : 31459 BEGIN 31460 r := 1.0; 31461 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31462 IF 'REAL' IN TYPEOF(vlist[i]) THEN 31463 s := vlist[i]; 31464 r := r * s; 31465 REMOVE( vlist, i ); 31466 END_IF; 31467 END_REPEAT; 31468 IF SIZEOF(vlist) = 0 THEN 31469 RETURN (ctmv(r)); 31470 END_IF; 31471 IF r <> 1.0 THEN 31472 INSERT( vlist, ctmv(r), 0 ); 31473 END_IF; 31474 IF SIZEOF(vlist) = 1 THEN 31475 RETURN (vlist[1]); 31476 END_IF; 31477 END; 31478 ef_divide_r : 31479 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31480 r := v1; 31481 s := v2; 31482 RETURN (ctmv(r / s)); 31483 END_IF; 31484 ef_mod_r : 31485 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31486 r := v1; 31487 s := v2; 31488 T := r / s; 31489 j := T DIV 1; 31490 IF (T < 0.0) AND (j <> T) THEN 31491 j := j - 1; 31492 END_IF; 31493 RETURN (ctmv(r - j * s)); 31494 END_IF; 31495 ef_exponentiate_r : 31496 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31497 r := v1; 31498 s := v2; 31499 RETURN (ctmv(r ** s)); 31500 END_IF; 31501 ef_exponentiate_ri : 31502 IF ('REAL' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31503 r := v1; 31504 k := v2; 31505 T := 1.0; 31506 REPEAT i := 1 TO ABS(k); 31507 T := T * r; 31508 END_REPEAT; 31509 IF k < 0 THEN 31510 T := 1.0 / T; 31511 END_IF; 31512 RETURN (ctmv(T)); 31513 END_IF; 31514 ef_eq_r : 31515 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31516 r := v1; 31517 s := v2; 31518 RETURN (ctmv(r = s)); 31519 END_IF; 31520 ef_ne_r : 31521 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31522 r := v1; 31523 s := v2; 31524 RETURN (ctmv(r <> s)); 31525 END_IF; 31526 ef_gt_r : 31527 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31528 r := v1; 31529 s := v2; 31530 RETURN (ctmv(r > s)); 31531 END_IF; 31532 ef_lt_r : 31533 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31534 r := v1; 31535 s := v2; 31536 RETURN (ctmv(r < s)); 31537 END_IF; 31538 ef_ge_r : 31539 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31540 r := v1; 31541 s := v2; 31542 RETURN (ctmv(r >= s)); 31543 END_IF; 31544 ef_le_r : 31545 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31546 r := v1; 31547 s := v2; 31548 RETURN (ctmv(r <= s)); 31549 END_IF; 31550 ef_abs_r : 31551 IF 'REAL' IN TYPEOF(v1) THEN 31552 r := v1; 31553 RETURN (ctmv(ABS(r))); 31554 END_IF; 31555 ef_max_r : 31556 BEGIN 31557 boo := FALSE; 31558 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31559 IF 'REAL' IN TYPEOF(vlist[i]) THEN 31560 IF boo THEN 31561 s := vlist[i]; 31562 IF s > r THEN 31563 r := s; 31564 END_IF; 31565 ELSE 31566 r := vlist[i]; 31567 boo := TRUE; 31568 END_IF; 31569 REMOVE( vlist, i ); 31570 END_IF; 31571 END_REPEAT; 31572 IF SIZEOF(vlist) = 0 THEN 31573 RETURN (ctmv(r)); 31574 END_IF; 31575 IF boo THEN 31576 INSERT( vlist, ctmv(r), 0 ); 31577 END_IF; 31578 IF SIZEOF(vlist) = 1 THEN 31579 RETURN (vlist[1]); 31580 END_IF; 31581 END; 31582 ef_min_r : 31583 BEGIN 31584 boo := FALSE; 31585 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31586 IF 'REAL' IN TYPEOF(vlist[i]) THEN 31587 IF boo THEN 31588 s := vlist[i]; 31589 IF s < r THEN 31590 r := s; 31591 END_IF; 31592 ELSE 31593 r := vlist[i]; 31594 boo := TRUE; 31595 END_IF; 31596 REMOVE( vlist, i ); 31597 END_IF; 31598 END_REPEAT; 31599 IF SIZEOF(vlist) = 0 THEN 31600 RETURN (ctmv(r)); 31601 END_IF; 31602 IF boo THEN 31603 INSERT( vlist, ctmv(r), 0 ); 31604 END_IF; 31605 IF SIZEOF(vlist) = 1 THEN 31606 RETURN (vlist[1]); 31607 END_IF; 31608 END; 31609 ef_acos_r : 31610 IF 'REAL' IN TYPEOF(v1) THEN 31611 r := v1; 31612 RETURN (ctmv(ACOS(r))); 31613 END_IF; 31614 ef_asin_r : 31615 IF 'REAL' IN TYPEOF(v1) THEN 31616 r := v1; 31617 RETURN (ctmv(ASIN(r))); 31618 END_IF; 31619 ef_atan2_r : 31620 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31621 r := v1; 31622 s := v2; 31623 RETURN (ctmv(atan2(r, s))); 31624 END_IF; 31625 ef_cos_r : 31626 IF 'REAL' IN TYPEOF(v1) THEN 31627 r := v1; 31628 RETURN (ctmv(cos(r))); 31629 END_IF; 31630 ef_exp_r : 31631 IF 'REAL' IN TYPEOF(v1) THEN 31632 r := v1; 31633 RETURN (ctmv(EXP(r))); 31634 END_IF; 31635 ef_ln_r : 31636 IF 'REAL' IN TYPEOF(v1) THEN 31637 r := v1; 31638 RETURN (ctmv(LOG(r))); 31639 END_IF; 31640 ef_log2_r : 31641 IF 'REAL' IN TYPEOF(v1) THEN 31642 r := v1; 31643 RETURN (ctmv(LOG2(r))); 31644 END_IF; 31645 ef_log10_r : 31646 IF 'REAL' IN TYPEOF(v1) THEN 31647 r := v1; 31648 RETURN (ctmv(LOG10(r))); 31649 END_IF; 31650 ef_sin_r : 31651 IF 'REAL' IN TYPEOF(v1) THEN 31652 r := v1; 31653 RETURN (ctmv(sin(r))); 31654 END_IF; 31655 ef_sqrt_r : 31656 IF 'REAL' IN TYPEOF(v1) THEN 31657 r := v1; 31658 RETURN (ctmv(SQRT(r))); 31659 END_IF; 31660 ef_tan_r : 31661 IF 'REAL' IN TYPEOF(v1) THEN 31662 r := v1; 31663 RETURN (ctmv(TAN(r))); 31664 END_IF; 31665 ef_form_c : 31666 IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN 31667 r := v1; 31668 s := v2; 31669 RETURN (makec(r, s)); 31670 END_IF; 31671 ef_rpart_c : 31672 IF cnlit IN TYPEOF(v1) THEN 31673 RETURN (ctmv(v1\complex_number_literal.real_part)); 31674 END_IF; 31675 ef_ipart_c : 31676 IF cnlit IN TYPEOF(v1) THEN 31677 RETURN (ctmv(v1\complex_number_literal.imag_part)); 31678 END_IF; 31679 ef_negate_c : 31680 IF cnlit IN TYPEOF(v1) THEN 31681 parts( v1, p, q ); 31682 RETURN (makec(-p, -q)); 31683 END_IF; 31684 ef_reciprocal_c : 31685 IF cnlit IN TYPEOF(v1) THEN 31686 parts( v1, p, q ); 31687 T := p * p + q * q; 31688 RETURN (makec(p / T, -q / T)); 31689 END_IF; 31690 ef_add_c : 31691 BEGIN 31692 p := 0.0; 31693 q := 0.0; 31694 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31695 IF cnlit IN TYPEOF(vlist[i]) THEN 31696 parts( vlist[i], r, s ); 31697 p := p + r; 31698 q := q + s; 31699 REMOVE( vlist, i ); 31700 END_IF; 31701 END_REPEAT; 31702 IF SIZEOF(vlist) = 0 THEN 31703 RETURN (makec(p, q)); 31704 END_IF; 31705 IF p * p + q * q <> 0.0 THEN 31706 INSERT( vlist, makec(p, q), 0 ); 31707 END_IF; 31708 IF SIZEOF(vlist) = 1 THEN 31709 RETURN (vlist[1]); 31710 END_IF; 31711 END; 31712 ef_subtract_c : 31713 IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN 31714 parts( v1, p, q ); 31715 parts( v2, r, s ); 31716 RETURN (makec(p - r, q - s)); 31717 END_IF; 31718 ef_multiply_c : 31719 BEGIN 31720 p := 1.0; 31721 q := 0.0; 31722 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31723 IF cnlit IN TYPEOF(vlist[i]) THEN 31724 parts( vlist[i], r, s ); 31725 p := p * r - q * s; 31726 q := p * s + q * r; 31727 REMOVE( vlist, i ); 31728 END_IF; 31729 END_REPEAT; 31730 IF SIZEOF(vlist) = 0 THEN 31731 RETURN (makec(p, q)); 31732 END_IF; 31733 IF (p <> 1.0) OR (q <> 0.0) THEN 31734 INSERT( vlist, makec(p, q), 0 ); 31735 END_IF; 31736 IF SIZEOF(vlist) = 1 THEN 31737 RETURN (vlist[1]); 31738 END_IF; 31739 END; 31740 ef_divide_c : 31741 IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN 31742 parts( v1, p, q ); 31743 parts( v2, r, s ); 31744 T := r * r + s * s; 31745 RETURN (makec((p * r + q * s) / T, (q * r - p * s) / T)); 31746 END_IF; 31747 ef_exponentiate_c : 31748 IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN 31749 parts( v1, p, q ); 31750 parts( v2, r, s ); 31751 T := 0.500000 * LOG((p * p + q * q)); 31752 u := atan2(q, p); 31753 p := r * T - s * u; 31754 q := r * u + s * T; 31755 r := EXP(p); 31756 RETURN (makec(r * cos(q), r * sin(q))); 31757 END_IF; 31758 ef_exponentiate_ci : 31759 IF (cnlit IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31760 parts( v1, p, q ); 31761 k := v2; 31762 r := 1.0; 31763 s := 0.0; 31764 REPEAT i := 1 TO ABS(k); 31765 r := p * r - q * s; 31766 s := p * s + q * r; 31767 END_REPEAT; 31768 IF k < 0 THEN 31769 T := r * r + s * s; 31770 r := r / T; 31771 s := -s / T; 31772 END_IF; 31773 RETURN (makec(r, s)); 31774 END_IF; 31775 ef_eq_c : 31776 IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN 31777 parts( v1, p, q ); 31778 parts( v2, r, s ); 31779 RETURN (ctmv((p = r) AND (q = s))); 31780 END_IF; 31781 ef_ne_c : 31782 IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN 31783 parts( v1, p, q ); 31784 parts( v2, r, s ); 31785 RETURN (ctmv((p <> r) OR (q <> s))); 31786 END_IF; 31787 ef_conjugate_c : 31788 IF cnlit IN TYPEOF(v1) THEN 31789 parts( v1, p, q ); 31790 RETURN (makec(p, -q)); 31791 END_IF; 31792 ef_abs_c : 31793 IF cnlit IN TYPEOF(v1) THEN 31794 parts( v1, p, q ); 31795 RETURN (ctmv(SQRT(p * p + q * q))); 31796 END_IF; 31797 ef_arg_c : 31798 IF cnlit IN TYPEOF(v1) THEN 31799 parts( v1, p, q ); 31800 RETURN (ctmv(atan2(q, p))); 31801 END_IF; 31802 ef_cos_c : 31803 IF cnlit IN TYPEOF(v1) THEN 31804 parts( v1, p, q ); 31805 T := 0.500000 * EXP(-q); 31806 u := 0.500000 * EXP(q); 31807 RETURN (makec((T + u) * cos(p), (T - u) * sin(p))); 31808 END_IF; 31809 ef_exp_c : 31810 IF cnlit IN TYPEOF(v1) THEN 31811 parts( v1, p, q ); 31812 RETURN (makec(EXP(p) * cos(q), EXP(p) * sin(q))); 31813 END_IF; 31814 ef_ln_c : 31815 IF cnlit IN TYPEOF(v1) THEN 31816 parts( v1, p, q ); 31817 RETURN (makec(0.500000 * LOG((p * p + q * q)), atan2(q, p))); 31818 END_IF; 31819 ef_sin_c : 31820 IF cnlit IN TYPEOF(v1) THEN 31821 parts( v1, p, q ); 31822 T := 0.500000 * EXP(-q); 31823 u := 0.500000 * EXP(q); 31824 RETURN (makec((T + u) * sin(p), (u - T) * cos(p))); 31825 END_IF; 31826 ef_sqrt_c : 31827 IF cnlit IN TYPEOF(v1) THEN 31828 parts( v1, p, q ); 31829 T := SQRT(SQRT(p * p + q * q)); 31830 u := 0.500000 * atan2(q, p); 31831 RETURN (makec(T * cos(u), T * sin(u))); 31832 END_IF; 31833 ef_tan_c : 31834 IF cnlit IN TYPEOF(v1) THEN 31835 parts( v1, p, q ); 31836 T := EXP(2.0 * q) + EXP(-2.0 * q) + 2.0 * cos(2.0 * p); 31837 RETURN (makec(2.0 * sin(2.0 * p) / T, (EXP(-2.0 * q) - EXP(2.0 * q)) / T)); 31838 END_IF; 31839 ef_subscript_s : 31840 IF ('STRING' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31841 str := v1; 31842 k := v2; 31843 RETURN (ctmv(str[k])); 31844 END_IF; 31845 ef_eq_s : 31846 IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN 31847 str := v1; 31848 st2 := v2; 31849 RETURN (ctmv(str = st2)); 31850 END_IF; 31851 ef_ne_s : 31852 IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN 31853 str := v1; 31854 st2 := v2; 31855 RETURN (ctmv(str <> st2)); 31856 END_IF; 31857 ef_gt_s : 31858 IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN 31859 str := v1; 31860 st2 := v2; 31861 RETURN (ctmv(str > st2)); 31862 END_IF; 31863 ef_lt_s : 31864 IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN 31865 str := v1; 31866 st2 := v2; 31867 RETURN (ctmv(str < st2)); 31868 END_IF; 31869 ef_ge_s : 31870 IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN 31871 str := v1; 31872 st2 := v2; 31873 RETURN (ctmv(str >= st2)); 31874 END_IF; 31875 ef_le_s : 31876 IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN 31877 str := v1; 31878 st2 := v2; 31879 RETURN (ctmv(str <= st2)); 31880 END_IF; 31881 ef_subsequence_s : 31882 IF (('STRING' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2))) AND ('INTEGER' IN TYPEOF(v3)) THEN 31883 str := v1; 31884 j := v2; 31885 k := v3; 31886 RETURN (ctmv(str[ j : k ])); 31887 END_IF; 31888 ef_concat_s : 31889 BEGIN 31890 str := ''; 31891 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31892 IF 'STRING' IN TYPEOF(vlist[i]) THEN 31893 st2 := vlist[i]; 31894 str := str + st2; 31895 REMOVE( vlist, i ); 31896 ELSE 31897 IF str <> '' THEN 31898 INSERT( vlist, ctmv(str), i ); 31899 str := ''; 31900 END_IF; 31901 END_IF; 31902 END_REPEAT; 31903 IF SIZEOF(vlist) = 0 THEN 31904 RETURN (ctmv(str)); 31905 END_IF; 31906 IF str <> '' THEN 31907 INSERT( vlist, ctmv(str), 0 ); 31908 END_IF; 31909 IF SIZEOF(vlist) = 1 THEN 31910 RETURN (vlist[1]); 31911 END_IF; 31912 END; 31913 ef_size_s : 31914 IF 'STRING' IN TYPEOF(v1) THEN 31915 str := v1; 31916 RETURN (ctmv(LENGTH(str))); 31917 END_IF; 31918 ef_format : 31919 IF ('NUMBER' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN 31920 RETURN (ctmv(FORMAT(v1, v2))); 31921 END_IF; 31922 ef_value : 31923 IF 'STRING' IN TYPEOF(v1) THEN 31924 str := v1; 31925 RETURN (ctmv(VALUE(str))); 31926 END_IF; 31927 ef_like : 31928 IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN 31929 RETURN (ctmv(v1 LIKE v2)); 31930 END_IF; 31931 ef_subscript_b : 31932 IF ('BINARY' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 31933 bin := v1; 31934 k := v2; 31935 RETURN (ctmv(bin[k])); 31936 END_IF; 31937 ef_eq_b : 31938 IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN 31939 bin := v1; 31940 bi2 := v2; 31941 RETURN (ctmv(bin = bi2)); 31942 END_IF; 31943 ef_ne_b : 31944 IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN 31945 bin := v1; 31946 bi2 := v2; 31947 RETURN (ctmv(bin <> bi2)); 31948 END_IF; 31949 ef_gt_b : 31950 IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN 31951 bin := v1; 31952 bi2 := v2; 31953 RETURN (ctmv(bin > bi2)); 31954 END_IF; 31955 ef_lt_b : 31956 IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN 31957 bin := v1; 31958 bi2 := v2; 31959 RETURN (ctmv(bin < bi2)); 31960 END_IF; 31961 ef_ge_b : 31962 IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN 31963 bin := v1; 31964 bi2 := v2; 31965 RETURN (ctmv(bin >= bi2)); 31966 END_IF; 31967 ef_le_b : 31968 IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN 31969 bin := v1; 31970 bi2 := v2; 31971 RETURN (ctmv(bin <= bi2)); 31972 END_IF; 31973 ef_subsequence_b : 31974 IF (('BINARY' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2))) AND ('INTEGER' IN TYPEOF(v3)) THEN 31975 bin := v1; 31976 j := v2; 31977 k := v3; 31978 RETURN (ctmv(bin[ j : k ])); 31979 END_IF; 31980 ef_concat_b : 31981 BEGIN 31982 boo := FALSE; 31983 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 31984 IF 'BINARY' IN TYPEOF(vlist[i]) THEN 31985 IF boo THEN 31986 bi2 := vlist[i]; 31987 bin := bin + bi2; 31988 ELSE 31989 bin := vlist[i]; 31990 boo := TRUE; 31991 END_IF; 31992 REMOVE( vlist, i ); 31993 ELSE 31994 IF boo THEN 31995 INSERT( vlist, ctmv(bin), i ); 31996 boo := FALSE; 31997 END_IF; 31998 END_IF; 31999 END_REPEAT; 32000 IF SIZEOF(vlist) = 0 THEN 32001 RETURN (ctmv(bin)); 32002 END_IF; 32003 IF boo THEN 32004 INSERT( vlist, ctmv(bin), 0 ); 32005 END_IF; 32006 IF SIZEOF(vlist) = 1 THEN 32007 RETURN (vlist[1]); 32008 END_IF; 32009 END; 32010 ef_size_b : 32011 IF 'BINARY' IN TYPEOF(v1) THEN 32012 bin := v1; 32013 RETURN (ctmv(BLENGTH(bin))); 32014 END_IF; 32015 ef_subscript_t : 32016 IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 32017 tpl := v1; 32018 k := v2; 32019 RETURN (ctmv(tpl[k])); 32020 END_IF; 32021 ef_eq_t : 32022 IF ('LIST' IN TYPEOF(v1)) AND ('LIST' IN TYPEOF(v2)) THEN 32023 lgc := equal_maths_values(v1, v2); 32024 IF lgc <> UNKNOWN THEN 32025 RETURN (ctmv(lgc)); 32026 END_IF; 32027 END_IF; 32028 ef_ne_t : 32029 IF ('LIST' IN TYPEOF(v1)) AND ('LIST' IN TYPEOF(v2)) THEN 32030 lgc := equal_maths_values(v1, v2); 32031 IF lgc <> UNKNOWN THEN 32032 RETURN (ctmv(NOT lgc)); 32033 END_IF; 32034 END_IF; 32035 ef_concat_t : 32036 BEGIN 32037 tpl := []; 32038 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32039 IF 'STRING' IN TYPEOF(vlist[i]) THEN 32040 tp2 := vlist[i]; 32041 tpl := tpl + tp2; 32042 REMOVE( vlist, i ); 32043 ELSE 32044 IF SIZEOF(tpl) <> 0 THEN 32045 INSERT( vlist, ctmv(tpl), i ); 32046 tpl := []; 32047 END_IF; 32048 END_IF; 32049 END_REPEAT; 32050 IF SIZEOF(vlist) = 0 THEN 32051 RETURN (ctmv(tpl)); 32052 END_IF; 32053 IF SIZEOF(tpl) <> 0 THEN 32054 INSERT( vlist, ctmv(tpl), 0 ); 32055 END_IF; 32056 IF SIZEOF(vlist) = 1 THEN 32057 RETURN (vlist[1]); 32058 END_IF; 32059 END; 32060 ef_size_t : 32061 IF 'LIST' IN TYPEOF(v1) THEN 32062 tpl := v1; 32063 RETURN (ctmv(SIZEOF(tpl))); 32064 END_IF; 32065 ef_entuple : 32066 RETURN (ctmv(vlist)); 32067 ef_detuple : 32068 IF 'LIST' IN TYPEOF(v1) THEN 32069 tpl := v1; 32070 RETURN (ctmv(tpl[1])); 32071 END_IF; 32072 ef_insert : 32073 IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v3)) THEN 32074 tpl := v1; 32075 k := v3; 32076 INSERT( tpl, v2, k ); 32077 RETURN (ctmv(tpl)); 32078 END_IF; 32079 ef_remove : 32080 IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN 32081 tpl := v1; 32082 k := v2; 32083 REMOVE( tpl, k ); 32084 RETURN (ctmv(tpl)); 32085 END_IF; 32086 ef_sum_it : 32087 IF good_t(v1, 'INTEGER') THEN 32088 tpl := v1; 32089 j := 0; 32090 REPEAT i := 1 TO SIZEOF(tpl); 32091 j := j + tpl[i]; 32092 END_REPEAT; 32093 RETURN (ctmv(j)); 32094 END_IF; 32095 ef_product_it : 32096 IF good_t(v1, 'INTEGER') THEN 32097 tpl := v1; 32098 j := 1; 32099 REPEAT i := 1 TO SIZEOF(tpl); 32100 j := j * tpl[i]; 32101 END_REPEAT; 32102 RETURN (ctmv(j)); 32103 END_IF; 32104 ef_add_it : 32105 BEGIN 32106 boo := FALSE; 32107 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32108 IF good_t(vlist[i], 'INTEGER') THEN 32109 IF NOT boo THEN 32110 tpl := vlist[i]; 32111 boo := TRUE; 32112 ELSE 32113 tp2 := vlist[i]; 32114 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32115 RETURN (?); 32116 END_IF; 32117 REPEAT l := 1 TO SIZEOF(tpl); 32118 tpl[j] := tpl[j] + tp2[j]; 32119 END_REPEAT; 32120 END_IF; 32121 REMOVE( vlist, i ); 32122 END_IF; 32123 END_REPEAT; 32124 IF SIZEOF(vlist) = 0 THEN 32125 RETURN (ctmv(tpl)); 32126 END_IF; 32127 IF boo THEN 32128 INSERT( vlist, ctmv(tpl), 0 ); 32129 END_IF; 32130 IF SIZEOF(vlist) = 1 THEN 32131 RETURN (vlist[1]); 32132 END_IF; 32133 END; 32134 ef_subtract_it : 32135 IF good_t(v1, 'INTEGER') AND good_t(v2, 'INTEGER') THEN 32136 tpl := v1; 32137 tp2 := v2; 32138 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32139 RETURN (?); 32140 END_IF; 32141 REPEAT i := 1 TO SIZEOF(tpl); 32142 tpl[i] := tpl[i] - tp2[i]; 32143 END_REPEAT; 32144 RETURN (ctmv(tpl)); 32145 END_IF; 32146 ef_scalar_mult_it : 32147 IF ('INTEGER' IN TYPEOF(v1)) AND good_t(v2, 'INTEGER') THEN 32148 j := v1; 32149 tpl := v2; 32150 REPEAT i := 1 TO SIZEOF(tpl); 32151 tpl[i] := j * tpl[i]; 32152 END_REPEAT; 32153 RETURN (ctmv(tpl)); 32154 END_IF; 32155 ef_dot_prod_it : 32156 IF good_t(v1, 'INTEGER') AND good_t(v2, 'INTEGER') THEN 32157 tpl := v1; 32158 tp2 := v2; 32159 j := 0; 32160 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32161 RETURN (?); 32162 END_IF; 32163 REPEAT i := 1 TO SIZEOF(tpl); 32164 j := j + tpl[i] * tp2[i]; 32165 END_REPEAT; 32166 RETURN (ctmv(j)); 32167 END_IF; 32168 ef_sum_rt : 32169 IF good_t(v1, 'REAL') THEN 32170 tpl := v1; 32171 r := 0.0; 32172 REPEAT i := 1 TO SIZEOF(tpl); 32173 r := r + tpl[i]; 32174 END_REPEAT; 32175 RETURN (ctmv(r)); 32176 END_IF; 32177 ef_product_rt : 32178 IF good_t(v1, 'REAL') THEN 32179 tpl := v1; 32180 r := 1.0; 32181 REPEAT i := 1 TO SIZEOF(tpl); 32182 r := r * tpl[i]; 32183 END_REPEAT; 32184 RETURN (ctmv(r)); 32185 END_IF; 32186 ef_add_rt : 32187 BEGIN 32188 boo := FALSE; 32189 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32190 IF good_t(vlist[i], 'REAL') THEN 32191 IF NOT boo THEN 32192 tpl := vlist[i]; 32193 boo := TRUE; 32194 ELSE 32195 tp2 := vlist[i]; 32196 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32197 RETURN (?); 32198 END_IF; 32199 REPEAT l := 1 TO SIZEOF(tpl); 32200 tpl[j] := tpl[j] + tp2[j]; 32201 END_REPEAT; 32202 END_IF; 32203 REMOVE( vlist, i ); 32204 END_IF; 32205 END_REPEAT; 32206 IF SIZEOF(vlist) = 0 THEN 32207 RETURN (ctmv(tpl)); 32208 END_IF; 32209 IF boo THEN 32210 INSERT( vlist, ctmv(tpl), 0 ); 32211 END_IF; 32212 IF SIZEOF(vlist) = 1 THEN 32213 RETURN (vlist[1]); 32214 END_IF; 32215 END; 32216 ef_subtract_rt : 32217 IF good_t(v1, 'REAL') AND good_t(v2, 'REAL') THEN 32218 tpl := v1; 32219 tp2 := v2; 32220 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32221 RETURN (?); 32222 END_IF; 32223 REPEAT i := 1 TO SIZEOF(tpl); 32224 tpl[i] := tpl[i] - tp2[i]; 32225 END_REPEAT; 32226 RETURN (ctmv(tpl)); 32227 END_IF; 32228 ef_scalar_mult_rt : 32229 IF ('REAL' IN TYPEOF(v1)) AND good_t(v2, 'REAL') THEN 32230 r := v1; 32231 tpl := v2; 32232 REPEAT i := 1 TO SIZEOF(tpl); 32233 tpl[i] := r * tpl[i]; 32234 END_REPEAT; 32235 RETURN (ctmv(tpl)); 32236 END_IF; 32237 ef_dot_prod_rt : 32238 IF good_t(v1, 'REAL') AND good_t(v2, 'REAL') THEN 32239 tpl := v1; 32240 tp2 := v2; 32241 r := 0; 32242 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32243 RETURN (?); 32244 END_IF; 32245 REPEAT i := 1 TO SIZEOF(tpl); 32246 r := r + tpl[i] * tp2[i]; 32247 END_REPEAT; 32248 RETURN (ctmv(r)); 32249 END_IF; 32250 ef_norm_rt : 32251 IF good_t(v1, 'REAL') THEN 32252 tpl := v1; 32253 r := 0.0; 32254 REPEAT i := 1 TO SIZEOF(tpl); 32255 r := r + tpl[i] * tpl[i]; 32256 END_REPEAT; 32257 RETURN (ctmv(SQRT(r))); 32258 END_IF; 32259 ef_sum_ct : 32260 IF good_t(v1, cnlit) THEN 32261 tpl := v1; 32262 p := 0.0; 32263 q := 0.0; 32264 REPEAT i := 1 TO SIZEOF(tpl); 32265 parts( tpl[i], r, s ); 32266 p := p + r; 32267 q := q + s; 32268 END_REPEAT; 32269 RETURN (makec(p, q)); 32270 END_IF; 32271 ef_product_ct : 32272 IF good_t(v1, cnlit) THEN 32273 tpl := v1; 32274 p := 1.0; 32275 q := 0.0; 32276 REPEAT i := 1 TO SIZEOF(tpl); 32277 parts( tpl[i], r, s ); 32278 p := p * r - q * s; 32279 q := p * s + q * r; 32280 END_REPEAT; 32281 RETURN (makec(p, q)); 32282 END_IF; 32283 ef_add_ct : 32284 BEGIN 32285 boo := FALSE; 32286 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32287 IF good_t(vlist[i], cnlit) THEN 32288 IF NOT boo THEN 32289 tpl := vlist[i]; 32290 boo := TRUE; 32291 ELSE 32292 tp2 := vlist[i]; 32293 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32294 RETURN (?); 32295 END_IF; 32296 REPEAT l := 1 TO SIZEOF(tpl); 32297 parts( tpl[j], p, q ); 32298 parts( tp2[j], r, s ); 32299 tpl[j] := makec(p + r, q + s); 32300 END_REPEAT; 32301 END_IF; 32302 REMOVE( vlist, i ); 32303 END_IF; 32304 END_REPEAT; 32305 IF SIZEOF(vlist) = 0 THEN 32306 RETURN (ctmv(tpl)); 32307 END_IF; 32308 IF boo THEN 32309 INSERT( vlist, ctmv(tpl), 0 ); 32310 END_IF; 32311 IF SIZEOF(vlist) = 1 THEN 32312 RETURN (vlist[1]); 32313 END_IF; 32314 END; 32315 ef_subtract_ct : 32316 IF good_t(v1, cnlit) AND good_t(v2, cnlit) THEN 32317 tpl := v1; 32318 tp2 := v2; 32319 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32320 RETURN (?); 32321 END_IF; 32322 REPEAT i := 1 TO SIZEOF(tpl); 32323 parts( tpl[i], p, q ); 32324 parts( tp2[i], r, s ); 32325 tpl[i] := makec(p - r, q - s); 32326 END_REPEAT; 32327 RETURN (ctmv(tpl)); 32328 END_IF; 32329 ef_scalar_mult_ct : 32330 IF (cnlit IN TYPEOF(v1)) AND good_t(v2, cnlit) THEN 32331 parts( v1, p, q ); 32332 tpl := v2; 32333 REPEAT i := 1 TO SIZEOF(tpl); 32334 parts( tpl[i], r, s ); 32335 tpl[i] := makec(p * r - q * s, p * s + q * r); 32336 END_REPEAT; 32337 RETURN (ctmv(tpl)); 32338 END_IF; 32339 ef_dot_prod_ct : 32340 IF good_t(v1, cnlit) AND good_t(v2, cnlit) THEN 32341 tpl := v1; 32342 tp2 := v2; 32343 T := 0.0; 32344 u := 0.0; 32345 IF SIZEOF(tpl) <> SIZEOF(tp2) THEN 32346 RETURN (?); 32347 END_IF; 32348 REPEAT i := 1 TO SIZEOF(tpl); 32349 parts( tpl[i], p, q ); 32350 parts( tp2[i], r, s ); 32351 T := T + p * r + q * s; 32352 u := u + q * r - p * s; 32353 END_REPEAT; 32354 RETURN (makec(T, u)); 32355 END_IF; 32356 ef_norm_ct : 32357 IF good_t(v1, cnlit) THEN 32358 tpl := v1; 32359 r := 0.0; 32360 REPEAT i := 1 TO SIZEOF(tpl); 32361 parts( tpl[i], p, q ); 32362 r := r + p * p + q * q; 32363 END_REPEAT; 32364 RETURN (ctmv(SQRT(r))); 32365 END_IF; 32366 ef_if, ef_if_i, ef_if_r, ef_if_c, ef_if_s, ef_if_b, ef_if_t : 32367 IF 'LOGICAL' IN TYPEOF(v1) THEN 32368 lgc := v1; 32369 IF lgc THEN 32370 RETURN (v2); 32371 ELSE 32372 RETURN (v3); 32373 END_IF; 32374 END_IF; 32375 ef_ensemble : 32376 RETURN (make_finite_space(mem + vlist)); 32377 ef_member_of : 32378 IF schema_prefix + 'MATHS_SPACE' IN TYPEOF(v2) THEN 32379 lgc := member_of(v1, v2); 32380 IF lgc <> UNKNOWN THEN 32381 RETURN (ctmv(lgc)); 32382 END_IF; 32383 END_IF; 32384 END_CASE; 32385 RETURN (make_function_application(expr.func, vlist)); 32386 END_IF; 32387 IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN types THEN 32388 gexpr := substitute(expr.func\abstracted_expression_function.expr, expr.func\quantifier_expression.variables, vlist); 32389 RETURN (simplify_generic_expression(gexpr)); 32390 END_IF; 32391 IF 'FINITE_FUNCTION' IN types THEN 32392 pairs := expr.func\finite_function.pairs; 32393 REPEAT i := 1 TO SIZEOF(pairs); 32394 IF equal_maths_values(vlist[1], pairs[i][1]) THEN 32395 RETURN (simplify_maths_value(pairs[i][2])); 32396 END_IF; 32397 END_REPEAT; 32398 RETURN (make_function_application(expr.func, vlist)); 32399 END_IF; 32400 RETURN (expr); 32401END_FUNCTION; 32402 32403-- IN AP242 32404FUNCTION simplify_generic_expression 32405 (expr : generic_expression ) : maths_value; 32406 FUNCTION restore_unary 32407 (expr : unary_generic_expression; 32408 opnd : generic_expression ) : generic_expression; 32409 expr.operand := opnd; 32410 RETURN (expr); 32411 END_FUNCTION; 32412 FUNCTION restore_binary 32413 (expr : binary_generic_expression; 32414 opd1 : generic_expression; 32415 opd2 : generic_expression ) : generic_expression; 32416 expr.operands[1] := opd1; 32417 expr.operands[2] := opd2; 32418 RETURN (expr); 32419 END_FUNCTION; 32420 FUNCTION restore_mulary 32421 (expr : multiple_arity_generic_expression; 32422 ops : LIST OF generic_expression ) : generic_expression; 32423 expr.operands := ops; 32424 RETURN (expr); 32425 END_FUNCTION; 32426 FUNCTION make_number_literal 32427 (nmb : NUMBER ) : generic_literal; 32428 IF 'INTEGER' IN TYPEOF(nmb) THEN 32429 RETURN (make_int_literal(nmb)); 32430 END_IF; 32431 RETURN (make_real_literal(nmb)); 32432 END_FUNCTION; 32433 LOCAL 32434 types : SET OF STRING := stripped_typeof(expr); 32435 v1 : maths_value; 32436 v2 : maths_value; 32437 vlist : LIST OF maths_value := []; 32438 op1 : generic_expression; 32439 op2 : generic_expression; 32440 oplist : LIST OF generic_expression := []; 32441 opnds : LIST [2:?] OF generic_expression; 32442 n : INTEGER; 32443 m : INTEGER; 32444 finfun : maths_function_select; 32445 boo : BOOLEAN; 32446 str : STRING; 32447 nmb : NUMBER; 32448 END_LOCAL; 32449 IF 'INT_LITERAL' IN types THEN 32450 RETURN (convert_to_maths_value(expr\int_literal.the_value)); 32451 END_IF; 32452 IF 'REAL_LITERAL' IN types THEN 32453 RETURN (convert_to_maths_value(expr\real_literal.the_value)); 32454 END_IF; 32455 IF 'BOOLEAN_LITERAL' IN types THEN 32456 RETURN (convert_to_maths_value(expr\boolean_literal.the_value)); 32457 END_IF; 32458 IF 'STRING_LITERAL' IN types THEN 32459 RETURN (convert_to_maths_value(expr\string_literal.the_value)); 32460 END_IF; 32461 IF 'COMPLEX_NUMBER_LITERAL' IN types THEN 32462 RETURN (expr); 32463 END_IF; 32464 IF 'LOGICAL_LITERAL' IN types THEN 32465 RETURN (convert_to_maths_value(expr\logical_literal.lit_value)); 32466 END_IF; 32467 IF 'BINARY_LITERAL' IN types THEN 32468 RETURN (convert_to_maths_value(expr\binary_literal.lit_value)); 32469 END_IF; 32470 IF 'MATHS_ENUM_LITERAL' IN types THEN 32471 RETURN (expr\maths_enum_literal.lit_value); 32472 END_IF; 32473 IF 'REAL_TUPLE_LITERAL' IN types THEN 32474 RETURN (convert_to_maths_value(expr\real_tuple_literal.lit_value)); 32475 END_IF; 32476 IF 'INTEGER_TUPLE_LITERAL' IN types THEN 32477 RETURN (convert_to_maths_value(expr\integer_tuple_literal.lit_value)); 32478 END_IF; 32479 IF 'ATOM_BASED_LITERAL' IN types THEN 32480 RETURN (expr\atom_based_literal.lit_value); 32481 END_IF; 32482 IF 'MATHS_TUPLE_LITERAL' IN types THEN 32483 RETURN (convert_to_maths_value(expr\maths_tuple_literal.lit_value)); 32484 END_IF; 32485 IF 'MATHS_SPACE' IN types THEN 32486 RETURN (simplify_maths_space(expr)); 32487 END_IF; 32488 IF 'FUNCTION_APPLICATION' IN types THEN 32489 RETURN (simplify_function_application(expr)); 32490 END_IF; 32491 IF 'UNARY_GENERIC_EXPRESSION' IN types THEN 32492 v1 := simplify_generic_expression(expr\unary_generic_expression.operand); 32493 op1 := convert_to_operand(v1); 32494 END_IF; 32495 IF 'BINARY_GENERIC_EXPRESSION' IN types THEN 32496 v1 := simplify_generic_expression(expr\binary_generic_expression.operands[1]); 32497 op1 := convert_to_operand(v1); 32498 v2 := simplify_generic_expression(expr\binary_generic_expression.operands[2]); 32499 op2 := convert_to_operand(v2); 32500 END_IF; 32501 IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN 32502 opnds := expr\multiple_arity_generic_expression.operands; 32503 REPEAT i := 1 TO SIZEOF(opnds); 32504 v1 := simplify_generic_expression(opnds[i]); 32505 INSERT( vlist, v1, i - 1 ); 32506 INSERT( oplist, convert_to_operand(v1), i - 1 ); 32507 END_REPEAT; 32508 END_IF; 32509 IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN 32510 v1 := vlist[1]; 32511 n := SIZEOF(vlist); 32512 finfun := vlist[n]; 32513 REMOVE( vlist, n ); 32514 REMOVE( vlist, 1 ); 32515 RETURN (make_parallel_composed_function(v1, vlist, finfun)); 32516 END_IF; 32517 IF ('ABS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32518 RETURN (convert_to_maths_value(ABS(v1))); 32519 END_IF; 32520 IF ('ACOS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32521 RETURN (convert_to_maths_value(ACOS(v1))); 32522 END_IF; 32523 IF 'AND_EXPRESSION' IN types THEN 32524 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32525 IF 'BOOLEAN' IN TYPEOF(vlist[i]) THEN 32526 boo := vlist[i]; 32527 IF NOT boo THEN 32528 RETURN (convert_to_maths_value(FALSE)); 32529 END_IF; 32530 REMOVE( oplist, i ); 32531 END_IF; 32532 END_REPEAT; 32533 IF SIZEOF(oplist) = 0 THEN 32534 RETURN (convert_to_maths_value(TRUE)); 32535 END_IF; 32536 IF SIZEOF(oplist) = 1 THEN 32537 RETURN (oplist[1]); 32538 END_IF; 32539 END_IF; 32540 IF ('ASIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32541 RETURN (convert_to_maths_value(ASIN(v1))); 32542 END_IF; 32543 IF (('ATAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN 32544 RETURN (convert_to_maths_value(atan(v1, v2))); 32545 END_IF; 32546 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 32547 IF 'COMPARISON_EQUAL' IN types THEN 32548 boo := bool(v1 = v2); 32549 ELSE 32550 IF 'COMPARISON_GREATER' IN types THEN 32551 boo := bool(v1 > v2); 32552 ELSE 32553 IF 'COMPARISON_GREATER_EQUAL' IN types THEN 32554 boo := bool(v1 >= v2); 32555 ELSE 32556 IF 'COMPARISON_LESS' IN types THEN 32557 boo := bool(v1 < v2); 32558 ELSE 32559 IF 'COMPARISON_LESS_EQUAL' IN types THEN 32560 boo := bool(v1 <= v2); 32561 ELSE 32562 IF 'COMPARISON_NOT_EQUAL' IN types THEN 32563 boo := bool(v1 <> v2); 32564 ELSE 32565 IF 'LIKE_EXPRESSION' IN types THEN 32566 boo := bool(v1 LIKE v2); 32567 ELSE 32568 RETURN (?); 32569 END_IF; 32570 END_IF; 32571 END_IF; 32572 END_IF; 32573 END_IF; 32574 END_IF; 32575 END_IF; 32576 RETURN (convert_to_maths_value(boo)); 32577 END_IF; 32578 IF 'CONCAT_EXPRESSION' IN types THEN 32579 str := ''; 32580 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32581 IF 'STRING' IN TYPEOF(vlist[i]) THEN 32582 str := vlist[i] + str; 32583 REMOVE( oplist, i ); 32584 ELSE 32585 IF LENGTH(str) > 0 THEN 32586 INSERT( oplist, make_string_literal(str), i ); 32587 str := ''; 32588 END_IF; 32589 END_IF; 32590 END_REPEAT; 32591 IF SIZEOF(oplist) = 0 THEN 32592 RETURN (convert_to_maths_value(str)); 32593 END_IF; 32594 IF LENGTH(str) > 0 THEN 32595 INSERT( oplist, make_string_literal(str), 0 ); 32596 END_IF; 32597 IF SIZEOF(oplist) = 1 THEN 32598 RETURN (oplist[1]); 32599 END_IF; 32600 END_IF; 32601 IF ('COS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32602 RETURN (convert_to_maths_value(cos(v1))); 32603 END_IF; 32604 IF (('DIV_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN 32605 RETURN (convert_to_maths_value(v1 DIV v2)); 32606 END_IF; 32607 IF 'EQUALS_EXPRESSION' IN types THEN 32608 opnds := expr\binary_generic_expression.operands; 32609 RETURN (convert_to_maths_value(opnds[1] :=: opnds[2])); 32610 END_IF; 32611 IF ('EXP_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32612 RETURN (convert_to_maths_value(EXP(v1))); 32613 END_IF; 32614 IF (('FORMAT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('STRING' IN TYPEOF(v2)) THEN 32615 RETURN (convert_to_maths_value(FORMAT(v1, v2))); 32616 END_IF; 32617 IF (('INDEX_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN 32618 str := v1; 32619 n := v2; 32620 RETURN (convert_to_maths_value(str[n])); 32621 END_IF; 32622 IF ('INT_VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN 32623 RETURN (convert_to_maths_value(VALUE(v1))); 32624 END_IF; 32625 IF 'INTERVAL_EXPRESSION' IN types THEN 32626 str := ''; 32627 IF 'NUMBER' IN TYPEOF(vlist[1]) THEN 32628 str := 'NUMBER'; 32629 END_IF; 32630 IF 'STRING' IN TYPEOF(vlist[1]) THEN 32631 str := 'STRING'; 32632 END_IF; 32633 IF 'BOOLEAN' IN TYPEOF(vlist[1]) THEN 32634 str := 'BOOLEAN'; 32635 END_IF; 32636 IF ((LENGTH(str) > 0) AND (str IN TYPEOF(vlist[2]))) AND (str IN TYPEOF(vlist[3])) THEN 32637 RETURN (convert_to_maths_value((vlist[1] <= vlist[2]) AND (vlist[2] <= vlist[3]))); 32638 END_IF; 32639 END_IF; 32640 IF ('LENGTH_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN 32641 RETURN (convert_to_maths_value(LENGTH(v1))); 32642 END_IF; 32643 IF ('LOG_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32644 RETURN (convert_to_maths_value(LOG(v1))); 32645 END_IF; 32646 IF ('LOG10_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32647 RETURN (convert_to_maths_value(LOG10(v1))); 32648 END_IF; 32649 IF ('LOG2_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32650 RETURN (convert_to_maths_value(LOG2(v1))); 32651 END_IF; 32652 IF 'MAXIMUM_EXPRESSION' IN types THEN 32653 boo := FALSE; 32654 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32655 IF 'NUMBER' IN TYPEOF(vlist[i]) THEN 32656 IF boo THEN 32657 IF nmb < vlist[i] THEN 32658 nmb := vlist[i]; 32659 END_IF; 32660 ELSE 32661 nmb := vlist[i]; 32662 boo := TRUE; 32663 END_IF; 32664 REMOVE( oplist, i ); 32665 END_IF; 32666 END_REPEAT; 32667 IF SIZEOF(oplist) = 0 THEN 32668 RETURN (convert_to_maths_value(nmb)); 32669 END_IF; 32670 IF boo THEN 32671 INSERT( oplist, make_number_literal(nmb), 0 ); 32672 END_IF; 32673 END_IF; 32674 IF 'MINIMUM_EXPRESSION' IN types THEN 32675 boo := FALSE; 32676 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32677 IF 'NUMBER' IN TYPEOF(vlist[i]) THEN 32678 IF boo THEN 32679 IF nmb > vlist[i] THEN 32680 nmb := vlist[i]; 32681 END_IF; 32682 ELSE 32683 nmb := vlist[i]; 32684 boo := TRUE; 32685 END_IF; 32686 REMOVE( oplist, i ); 32687 END_IF; 32688 END_REPEAT; 32689 IF SIZEOF(oplist) = 0 THEN 32690 RETURN (convert_to_maths_value(nmb)); 32691 END_IF; 32692 IF boo THEN 32693 INSERT( oplist, make_number_literal(nmb), 0 ); 32694 END_IF; 32695 END_IF; 32696 IF (('MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN 32697 RETURN (convert_to_maths_value(v1 - v2)); 32698 END_IF; 32699 IF (('MOD_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN 32700 RETURN (convert_to_maths_value(v1 MOD v2)); 32701 END_IF; 32702 IF 'MULT_EXPRESSION' IN types THEN 32703 nmb := 1; 32704 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32705 IF 'NUMBER' IN TYPEOF(vlist[i]) THEN 32706 nmb := nmb * vlist[i]; 32707 REMOVE( oplist, i ); 32708 END_IF; 32709 END_REPEAT; 32710 IF SIZEOF(oplist) = 0 THEN 32711 RETURN (convert_to_maths_value(nmb)); 32712 END_IF; 32713 IF nmb <> 1 THEN 32714 INSERT( oplist, make_number_literal(nmb), 0 ); 32715 END_IF; 32716 IF SIZEOF(oplist) = 1 THEN 32717 RETURN (oplist[1]); 32718 END_IF; 32719 END_IF; 32720 IF ('NOT_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF(v1)) THEN 32721 boo := v1; 32722 RETURN (convert_to_maths_value(NOT boo)); 32723 END_IF; 32724 IF ('ODD_EXPRESSION' IN types) AND ('INTEGER' IN TYPEOF(v1)) THEN 32725 RETURN (convert_to_maths_value(ODD(v1))); 32726 END_IF; 32727 IF 'OR_EXPRESSION' IN types THEN 32728 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32729 IF 'BOOLEAN' IN TYPEOF(vlist[i]) THEN 32730 boo := vlist[i]; 32731 IF boo THEN 32732 RETURN (convert_to_maths_value(TRUE)); 32733 END_IF; 32734 REMOVE( oplist, i ); 32735 END_IF; 32736 END_REPEAT; 32737 IF SIZEOF(oplist) = 0 THEN 32738 RETURN (convert_to_maths_value(FALSE)); 32739 END_IF; 32740 IF SIZEOF(oplist) = 1 THEN 32741 RETURN (oplist[1]); 32742 END_IF; 32743 END_IF; 32744 IF 'PLUS_EXPRESSION' IN types THEN 32745 nmb := 0; 32746 REPEAT i := SIZEOF(vlist) TO 1 BY -1; 32747 IF 'NUMBER' IN TYPEOF(vlist[i]) THEN 32748 nmb := nmb + vlist[i]; 32749 REMOVE( oplist, i ); 32750 END_IF; 32751 END_REPEAT; 32752 IF SIZEOF(oplist) = 0 THEN 32753 RETURN (convert_to_maths_value(nmb)); 32754 END_IF; 32755 IF nmb <> 0 THEN 32756 INSERT( oplist, make_number_literal(nmb), 0 ); 32757 END_IF; 32758 IF SIZEOF(oplist) = 1 THEN 32759 RETURN (oplist[1]); 32760 END_IF; 32761 END_IF; 32762 IF (('POWER_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN 32763 RETURN (convert_to_maths_value(v1 ** v2)); 32764 END_IF; 32765 IF ('SIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32766 RETURN (convert_to_maths_value(sin(v1))); 32767 END_IF; 32768 IF (('SLASH_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1))) AND ('NUMBER' IN TYPEOF(v2)) THEN 32769 RETURN (convert_to_maths_value(v1 / v2)); 32770 END_IF; 32771 IF ('SQUARE_ROOT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32772 RETURN (convert_to_maths_value(SQRT(v1))); 32773 END_IF; 32774 IF ((('SUBSTRING_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(vlist[1]))) AND ('NUMBER' IN TYPEOF(vlist[2]))) AND ('NUMBER' IN TYPEOF(vlist[3])) THEN 32775 str := vlist[1]; 32776 n := vlist[2]; 32777 m := vlist[3]; 32778 RETURN (convert_to_maths_value(str[ n : m ])); 32779 END_IF; 32780 IF ('TAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32781 RETURN (convert_to_maths_value(TAN(v1))); 32782 END_IF; 32783 IF ('UNARY_MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN 32784 nmb := v1; 32785 RETURN (convert_to_maths_value(-nmb)); 32786 END_IF; 32787 IF ('VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN 32788 RETURN (convert_to_maths_value(VALUE(v1))); 32789 END_IF; 32790 IF (('XOR_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF(v1))) AND ('BOOLEAN' IN TYPEOF(v2)) THEN 32791 RETURN (convert_to_maths_value(v1 XOR v2)); 32792 END_IF; 32793 IF 'UNARY_GENERIC_EXPRESSION' IN types THEN 32794 RETURN (restore_unary(expr, op1)); 32795 END_IF; 32796 IF 'BINARY_GENERIC_EXPRESSION' IN types THEN 32797 RETURN (restore_binary(expr, op1, op2)); 32798 END_IF; 32799 IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN 32800 RETURN (restore_mulary(expr, oplist)); 32801 END_IF; 32802 RETURN (expr); 32803END_FUNCTION; 32804 32805-- IN AP242 32806FUNCTION simplify_maths_space 32807 (spc : maths_space ) : maths_space; 32808 LOCAL 32809 stypes : SET OF STRING := stripped_typeof(spc); 32810 sset : SET OF maths_value; 32811 zset : SET OF maths_value := []; 32812 zval : maths_value; 32813 zspc : maths_space; 32814 zallint : BOOLEAN := TRUE; 32815 zint : INTEGER; 32816 zmin : INTEGER; 32817 zmax : INTEGER; 32818 factors : LIST OF maths_space; 32819 zfactors : LIST OF maths_space := []; 32820 rspc : maths_space; 32821 END_LOCAL; 32822 IF 'FINITE_SPACE' IN stypes THEN 32823 sset := spc\finite_space.members; 32824 REPEAT i := 1 TO SIZEOF(sset); 32825 zval := simplify_maths_value(sset[i]); 32826 zset := zset + [ zval ]; 32827 IF zallint AND ('INTEGER' IN TYPEOF(zval)) THEN 32828 zint := zval; 32829 IF i = 1 THEN 32830 zmin := zint; 32831 zmax := zint; 32832 ELSE 32833 IF zint < zmin THEN 32834 zmin := zint; 32835 END_IF; 32836 IF zint > zmax THEN 32837 zmax := zint; 32838 END_IF; 32839 END_IF; 32840 ELSE 32841 zallint := FALSE; 32842 END_IF; 32843 END_REPEAT; 32844 IF zallint AND (SIZEOF(zset) = zmax - zmin + 1) THEN 32845 RETURN (make_finite_integer_interval(zmin, zmax)); 32846 END_IF; 32847 RETURN (make_finite_space(zset)); 32848 END_IF; 32849 IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN 32850 zspc := simplify_maths_space(spc\uniform_product_space.base); 32851 RETURN (make_uniform_product_space(zspc, spc\uniform_product_space.exponent)); 32852 END_IF; 32853 IF 'LISTED_PRODUCT_SPACE' IN stypes THEN 32854 factors := spc\listed_product_space.factors; 32855 REPEAT i := 1 TO SIZEOF(factors); 32856 INSERT( zfactors, simplify_maths_space(factors[i]), i - 1 ); 32857 END_REPEAT; 32858 RETURN (make_listed_product_space(zfactors)); 32859 END_IF; 32860 IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN 32861 zspc := simplify_maths_space(spc\extended_tuple_space.base); 32862 rspc := simplify_maths_space(spc\extended_tuple_space.extender); 32863 RETURN (make_extended_tuple_space(zspc, rspc)); 32864 END_IF; 32865 IF 'FUNCTION_SPACE' IN stypes THEN 32866 zspc := simplify_maths_space(spc\function_space.domain_argument); 32867 rspc := simplify_maths_space(spc\function_space.range_argument); 32868 RETURN (make_function_space(spc\function_space.domain_constraint, zspc, spc\function_space.range_constraint, rspc)); 32869 END_IF; 32870 RETURN (spc); 32871END_FUNCTION; 32872 32873-- IN AP242 32874FUNCTION simplify_maths_value 32875 (val : maths_value ) : maths_value; 32876 LOCAL 32877 vtypes : SET OF STRING := stripped_typeof(val); 32878 vlist : LIST OF maths_value; 32879 nlist : LIST OF maths_value := []; 32880 END_LOCAL; 32881 IF 'GENERIC_EXPRESSION' IN vtypes THEN 32882 RETURN (simplify_generic_expression(val)); 32883 END_IF; 32884 IF 'LIST' IN vtypes THEN 32885 vlist := val; 32886 REPEAT i := 1 TO SIZEOF(vlist); 32887 INSERT( nlist, simplify_maths_value(vlist[i]), i - 1 ); 32888 END_REPEAT; 32889 RETURN (convert_to_maths_value(nlist)); 32890 END_IF; 32891 RETURN (val); 32892END_FUNCTION; 32893 32894-- IN AP242 32895FUNCTION singleton_member_of 32896 (spc : maths_space ) : maths_value; 32897 LOCAL 32898 types : SET OF STRING := stripped_typeof(spc); 32899 END_LOCAL; 32900 IF 'FINITE_SPACE' IN types THEN 32901 IF SIZEOF(spc\finite_space.members) = 1 THEN 32902 RETURN (spc\finite_space.members[1]); 32903 END_IF; 32904 RETURN (?); 32905 END_IF; 32906 IF 'FINITE_INTEGER_INTERVAL' IN types THEN 32907 IF spc\finite_integer_interval.size = 1 THEN 32908 RETURN (spc\finite_integer_interval.min); 32909 END_IF; 32910 RETURN (?); 32911 END_IF; 32912 RETURN (?); 32913END_FUNCTION; 32914 32915-- IN AP242 32916FUNCTION sort_link_associations 32917 (aprr : SET [1:?] OF pair_representation_relationship; 32918 one_not_two : BOOLEAN ) : SET [0:?] OF kinematic_link_representation; 32919 LOCAL 32920 result : SET OF kinematic_link_representation := []; 32921 END_LOCAL; 32922 IF one_not_two THEN 32923 REPEAT i := 1 TO HIINDEX(aprr); 32924 result := result + aprr[i].rep_1; 32925 END_REPEAT; 32926 ELSE 32927 REPEAT i := 1 TO HIINDEX(aprr); 32928 result := result + aprr[i].rep_2; 32929 END_REPEAT; 32930 END_IF; 32931 RETURN (result); 32932END_FUNCTION; 32933 32934-- IN AP242 32935FUNCTION space_dimension 32936 (tspace : tuple_space ) : nonnegative_integer; 32937 LOCAL 32938 types : SET OF STRING := TYPEOF(tspace); 32939 END_LOCAL; 32940 IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN types THEN 32941 RETURN (tspace\uniform_product_space.exponent); 32942 END_IF; 32943 IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN types THEN 32944 RETURN (SIZEOF(tspace\listed_product_space.factors)); 32945 END_IF; 32946 IF schema_prefix + 'EXTENDED_TUPLE_SPACE' IN types THEN 32947 RETURN (space_dimension(tspace\extended_tuple_space.base)); 32948 END_IF; 32949 RETURN (?); 32950END_FUNCTION; 32951 32952-- IN AP242 32953FUNCTION space_is_continuum 32954 (space : maths_space ) : BOOLEAN; 32955 LOCAL 32956 typenames : SET OF STRING := TYPEOF(space); 32957 factors : LIST OF maths_space; 32958 END_LOCAL; 32959 IF NOT EXISTS(space) THEN 32960 RETURN (FALSE); 32961 END_IF; 32962 IF subspace_of_es(space, es_reals) OR subspace_of_es(space, es_complex_numbers) THEN 32963 RETURN (TRUE); 32964 END_IF; 32965 IF schema_prefix + 'UNIFORM_PRODUCT_SPACE' IN typenames THEN 32966 RETURN (space_is_continuum(space\uniform_product_space.base)); 32967 END_IF; 32968 IF schema_prefix + 'LISTED_PRODUCT_SPACE' IN typenames THEN 32969 factors := space\listed_product_space.factors; 32970 IF SIZEOF(factors) = 0 THEN 32971 RETURN (FALSE); 32972 END_IF; 32973 REPEAT i := 1 TO SIZEOF(factors); 32974 IF NOT space_is_continuum(factors[i]) THEN 32975 RETURN (FALSE); 32976 END_IF; 32977 END_REPEAT; 32978 RETURN (TRUE); 32979 END_IF; 32980 RETURN (FALSE); 32981END_FUNCTION; 32982 32983-- IN AP242 32984FUNCTION space_is_singleton 32985 (spc : maths_space ) : BOOLEAN; 32986 LOCAL 32987 types : SET OF STRING := stripped_typeof(spc); 32988 END_LOCAL; 32989 IF 'FINITE_SPACE' IN types THEN 32990 RETURN (bool(SIZEOF(spc\finite_space.members) = 1)); 32991 END_IF; 32992 IF 'FINITE_INTEGER_INTERVAL' IN types THEN 32993 RETURN (bool(spc\finite_integer_interval.size = 1)); 32994 END_IF; 32995 RETURN (FALSE); 32996END_FUNCTION; 32997 32998-- IN AP242 32999FUNCTION stripped_typeof 33000 (arg : GENERIC : G ) : SET [0:?] OF STRING; 33001 LOCAL 33002 types : SET OF STRING := TYPEOF(arg); 33003 stypes : SET OF STRING := []; 33004 n : INTEGER := LENGTH(schema_prefix); 33005 END_LOCAL; 33006 REPEAT i := 1 TO SIZEOF(types); 33007 IF types[i][ 1 : n ] = schema_prefix THEN 33008 stypes := stypes + types[i][ (n + 1) : LENGTH(types[i]) ]; 33009 ELSE 33010 stypes := stypes + types[i]; 33011 END_IF; 33012 END_REPEAT; 33013 RETURN (stypes); 33014END_FUNCTION; 33015 33016-- IN AP242 33017FUNCTION sts_get_general_datum_reference 33018 (input : datum_reference_element ) : general_datum_reference; 33019 LOCAL 33020 general_datum_reference_bag : BAG OF general_datum_reference := USEDIN(input, 'STEP_MERGED_CAD_SCHEMA.' + 'GENERAL_DATUM_REFERENCE.' + 'BASE'); 33021 END_LOCAL; 33022 IF SIZEOF(general_datum_reference_bag) = 1 THEN 33023 RETURN (general_datum_reference_bag[1]); 33024 ELSE 33025 RETURN (?); 33026 END_IF; 33027END_FUNCTION; 33028 33029-- IN AP242 33030FUNCTION sts_get_product_definition_shape 33031 (input : geometric_tolerance_target ) : product_definition_shape; 33032 CASE TRUE OF 33033 'STEP_MERGED_CAD_SCHEMA.DIMENSIONAL_LOCATION' IN TYPEOF(input) : 33034 RETURN (input\shape_aspect_relationship.relating_shape_aspect\shape_aspect.of_shape); 33035 'STEP_MERGED_CAD_SCHEMA.DIMENSIONAL_SIZE' IN TYPEOF(input) : 33036 RETURN (input\dimensional_size.applies_to\shape_aspect.of_shape); 33037 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(input) : 33038 RETURN (input); 33039 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(input) : 33040 RETURN (input\shape_aspect.of_shape); 33041 OTHERWISE : 33042 RETURN (?); 33043 END_CASE; 33044END_FUNCTION; 33045 33046-- IN AP242 33047FUNCTION subspace_of 33048 (space1 : maths_space; 33049 space2 : maths_space ) : LOGICAL; 33050 LOCAL 33051 spc1 : maths_space := simplify_maths_space(space1); 33052 spc2 : maths_space := simplify_maths_space(space2); 33053 types1 : SET OF STRING := stripped_typeof(spc1); 33054 types2 : SET OF STRING := stripped_typeof(spc2); 33055 lgcl : LOGICAL; 33056 cum : LOGICAL; 33057 es_val : elementary_space_enumerators; 33058 bnd1 : REAL; 33059 bnd2 : REAL; 33060 n : INTEGER; 33061 sp1 : maths_space; 33062 sp2 : maths_space; 33063 prgn1 : polar_complex_number_region; 33064 prgn2 : polar_complex_number_region; 33065 aitv : finite_real_interval; 33066 END_LOCAL; 33067 IF NOT EXISTS(spc1) OR NOT EXISTS(spc2) THEN 33068 RETURN (FALSE); 33069 END_IF; 33070 IF spc2 = the_generics THEN 33071 RETURN (TRUE); 33072 END_IF; 33073 IF 'ELEMENTARY_SPACE' IN types1 THEN 33074 IF NOT ('ELEMENTARY_SPACE' IN types2) THEN 33075 RETURN (FALSE); 33076 END_IF; 33077 es_val := spc2\elementary_space.space_id; 33078 IF spc1\elementary_space.space_id = es_val THEN 33079 RETURN (TRUE); 33080 END_IF; 33081 CASE spc1\elementary_space.space_id OF 33082 es_numbers : 33083 RETURN (FALSE); 33084 es_complex_numbers : 33085 RETURN (es_val = es_numbers); 33086 es_reals : 33087 RETURN (es_val = es_numbers); 33088 es_integers : 33089 RETURN (es_val = es_numbers); 33090 es_logicals : 33091 RETURN (FALSE); 33092 es_booleans : 33093 RETURN (es_val = es_logicals); 33094 es_strings : 33095 RETURN (FALSE); 33096 es_binarys : 33097 RETURN (FALSE); 33098 es_maths_spaces : 33099 RETURN (FALSE); 33100 es_maths_functions : 33101 RETURN (FALSE); 33102 es_generics : 33103 RETURN (FALSE); 33104 END_CASE; 33105 RETURN (UNKNOWN); 33106 END_IF; 33107 IF 'FINITE_INTEGER_INTERVAL' IN types1 THEN 33108 cum := TRUE; 33109 REPEAT i := spc1\finite_integer_interval.min TO spc1\finite_integer_interval.max; 33110 cum := cum AND member_of(i, spc2); 33111 IF cum = FALSE THEN 33112 RETURN (FALSE); 33113 END_IF; 33114 END_REPEAT; 33115 RETURN (cum); 33116 END_IF; 33117 IF 'INTEGER_INTERVAL_FROM_MIN' IN types1 THEN 33118 IF 'ELEMENTARY_SPACE' IN types2 THEN 33119 es_val := spc2\elementary_space.space_id; 33120 RETURN ((es_val = es_numbers) OR (es_val = es_integers)); 33121 END_IF; 33122 IF 'INTEGER_INTERVAL_FROM_MIN' IN types2 THEN 33123 RETURN (spc1\integer_interval_from_min.min >= spc2\integer_interval_from_min.min); 33124 END_IF; 33125 RETURN (FALSE); 33126 END_IF; 33127 IF 'INTEGER_INTERVAL_TO_MAX' IN types1 THEN 33128 IF 'ELEMENTARY_SPACE' IN types2 THEN 33129 es_val := spc2\elementary_space.space_id; 33130 RETURN ((es_val = es_numbers) OR (es_val = es_integers)); 33131 END_IF; 33132 IF 'INTEGER_INTERVAL_TO_MAX' IN types2 THEN 33133 RETURN (spc1\integer_interval_to_max.max <= spc2\integer_interval_to_max.max); 33134 END_IF; 33135 RETURN (FALSE); 33136 END_IF; 33137 IF 'FINITE_REAL_INTERVAL' IN types1 THEN 33138 IF 'ELEMENTARY_SPACE' IN types2 THEN 33139 es_val := spc2\elementary_space.space_id; 33140 RETURN ((es_val = es_numbers) OR (es_val = es_reals)); 33141 END_IF; 33142 IF (('FINITE_REAL_INTERVAL' IN types2) OR ('REAL_INTERVAL_FROM_MIN' IN types2)) OR ('REAL_INTERVAL_TO_MAX' IN types2) THEN 33143 IF min_exists(spc2) THEN 33144 bnd1 := spc1\finite_real_interval.min; 33145 bnd2 := real_min(spc2); 33146 IF (bnd1 < bnd2) OR ((bnd1 = bnd2) AND min_included(spc1)) AND NOT min_included(spc2) THEN 33147 RETURN (FALSE); 33148 END_IF; 33149 END_IF; 33150 IF max_exists(spc2) THEN 33151 bnd1 := spc1\finite_real_interval.max; 33152 bnd2 := real_max(spc2); 33153 IF (bnd1 > bnd2) OR ((bnd1 = bnd2) AND max_included(spc1)) AND NOT max_included(spc2) THEN 33154 RETURN (FALSE); 33155 END_IF; 33156 END_IF; 33157 RETURN (TRUE); 33158 END_IF; 33159 RETURN (FALSE); 33160 END_IF; 33161 IF 'REAL_INTERVAL_FROM_MIN' IN types1 THEN 33162 IF 'ELEMENTARY_SPACE' IN types2 THEN 33163 es_val := spc2\elementary_space.space_id; 33164 RETURN ((es_val = es_numbers) OR (es_val = es_reals)); 33165 END_IF; 33166 IF 'REAL_INTERVAL_FROM_MIN' IN types2 THEN 33167 bnd1 := spc1\real_interval_from_min.min; 33168 bnd2 := spc2\real_interval_from_min.min; 33169 RETURN ((bnd2 < bnd1) OR (bnd2 = bnd1) AND (min_included(spc2) OR NOT min_included(spc1))); 33170 END_IF; 33171 RETURN (FALSE); 33172 END_IF; 33173 IF 'REAL_INTERVAL_TO_MAX' IN types1 THEN 33174 IF 'ELEMENTARY_SPACE' IN types2 THEN 33175 es_val := spc2\elementary_space.space_id; 33176 RETURN ((es_val = es_numbers) OR (es_val = es_reals)); 33177 END_IF; 33178 IF 'REAL_INTERVAL_TO_MAX' IN types2 THEN 33179 bnd1 := spc1\real_interval_to_max.max; 33180 bnd2 := spc2\real_interval_to_max.max; 33181 RETURN ((bnd2 > bnd1) OR (bnd2 = bnd1) AND (max_included(spc2) OR NOT max_included(spc1))); 33182 END_IF; 33183 RETURN (FALSE); 33184 END_IF; 33185 IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 THEN 33186 IF 'ELEMENTARY_SPACE' IN types2 THEN 33187 es_val := spc2\elementary_space.space_id; 33188 RETURN ((es_val = es_numbers) OR (es_val = es_complex_numbers)); 33189 END_IF; 33190 IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN 33191 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)); 33192 END_IF; 33193 IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN 33194 RETURN (subspace_of(enclose_cregion_in_pregion(spc1, spc2\polar_complex_number_region.centre), spc2)); 33195 END_IF; 33196 RETURN (FALSE); 33197 END_IF; 33198 IF 'POLAR_COMPLEX_NUMBER_REGION' IN types1 THEN 33199 IF 'ELEMENTARY_SPACE' IN types2 THEN 33200 es_val := spc2\elementary_space.space_id; 33201 RETURN ((es_val = es_numbers) OR (es_val = es_complex_numbers)); 33202 END_IF; 33203 IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN 33204 RETURN (subspace_of(enclose_pregion_in_cregion(spc1), spc2)); 33205 END_IF; 33206 IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN 33207 prgn1 := spc1; 33208 prgn2 := spc2; 33209 IF prgn1.centre = prgn2.centre THEN 33210 IF prgn2.direction_constraint.max > 3.14159 THEN 33211 aitv := make_finite_real_interval(-3.14159, open, prgn2.direction_constraint.max - 2.0 * 3.14159, prgn2.direction_constraint.max_closure); 33212 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))); 33213 ELSE 33214 RETURN (subspace_of(prgn1.distance_constraint, prgn2.distance_constraint) AND subspace_of(prgn1.direction_constraint, prgn2.direction_constraint)); 33215 END_IF; 33216 END_IF; 33217 RETURN (subspace_of(enclose_pregion_in_pregion(prgn1, prgn2.centre), prgn2)); 33218 END_IF; 33219 RETURN (FALSE); 33220 END_IF; 33221 IF 'FINITE_SPACE' IN types1 THEN 33222 cum := TRUE; 33223 REPEAT i := 1 TO SIZEOF(spc1\finite_space.members); 33224 cum := cum AND member_of(spc1\finite_space.members[i], spc2); 33225 IF cum = FALSE THEN 33226 RETURN (FALSE); 33227 END_IF; 33228 END_REPEAT; 33229 RETURN (cum); 33230 END_IF; 33231 IF 'PRODUCT_SPACE' IN types1 THEN 33232 IF 'PRODUCT_SPACE' IN types2 THEN 33233 IF space_dimension(spc1) = space_dimension(spc2) THEN 33234 cum := TRUE; 33235 REPEAT i := 1 TO space_dimension(spc1); 33236 cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i)); 33237 IF cum = FALSE THEN 33238 RETURN (FALSE); 33239 END_IF; 33240 END_REPEAT; 33241 RETURN (cum); 33242 END_IF; 33243 END_IF; 33244 IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN 33245 IF space_dimension(spc1) >= space_dimension(spc2) THEN 33246 cum := TRUE; 33247 REPEAT i := 1 TO space_dimension(spc1); 33248 cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i)); 33249 IF cum = FALSE THEN 33250 RETURN (FALSE); 33251 END_IF; 33252 END_REPEAT; 33253 RETURN (cum); 33254 END_IF; 33255 END_IF; 33256 RETURN (FALSE); 33257 END_IF; 33258 IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN 33259 IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN 33260 n := space_dimension(spc1); 33261 IF n < space_dimension(spc2) THEN 33262 n := space_dimension(spc2); 33263 END_IF; 33264 cum := TRUE; 33265 REPEAT i := 1 TO n + 1; 33266 cum := cum AND subspace_of(factor_space(spc1, i), factor_space(spc2, i)); 33267 IF cum = FALSE THEN 33268 RETURN (FALSE); 33269 END_IF; 33270 END_REPEAT; 33271 RETURN (cum); 33272 END_IF; 33273 RETURN (FALSE); 33274 END_IF; 33275 IF 'FUNCTION_SPACE' IN types1 THEN 33276 IF 'ELEMENTARY_SPACE' IN types2 THEN 33277 RETURN (spc2\elementary_space.space_id = es_maths_functions); 33278 END_IF; 33279 IF 'FUNCTION_SPACE' IN types2 THEN 33280 cum := TRUE; 33281 sp1 := spc1\function_space.domain_argument; 33282 sp2 := spc2\function_space.domain_argument; 33283 CASE spc1\function_space.domain_constraint OF 33284 sc_equal : 33285 BEGIN 33286 CASE spc2\function_space.domain_constraint OF 33287 sc_equal : 33288 cum := cum AND equal_maths_spaces(sp1, sp2); 33289 sc_subspace : 33290 cum := cum AND subspace_of(sp1, sp2); 33291 sc_member : 33292 cum := cum AND member_of(sp1, sp2); 33293 END_CASE; 33294 END; 33295 sc_subspace : 33296 BEGIN 33297 CASE spc2\function_space.domain_constraint OF 33298 sc_equal : 33299 RETURN (FALSE); 33300 sc_subspace : 33301 cum := cum AND subspace_of(sp1, sp2); 33302 sc_member : 33303 BEGIN 33304 IF NOT member_of(sp1, sp2) THEN 33305 RETURN (FALSE); 33306 END_IF; 33307 cum := UNKNOWN; 33308 END; 33309 END_CASE; 33310 END; 33311 sc_member : 33312 BEGIN 33313 CASE spc2\function_space.domain_constraint OF 33314 sc_equal : 33315 cum := (cum AND space_is_singleton(sp1)) AND equal_maths_spaces(singleton_member_of(sp1), sp2); 33316 sc_subspace : 33317 BEGIN 33318 IF NOT member_of(sp2, sp1) THEN 33319 RETURN (FALSE); 33320 END_IF; 33321 cum := UNKNOWN; 33322 END; 33323 sc_member : 33324 cum := cum AND subspace_of(sp1, sp2); 33325 END_CASE; 33326 END; 33327 END_CASE; 33328 IF cum = FALSE THEN 33329 RETURN (FALSE); 33330 END_IF; 33331 sp1 := spc1\function_space.range_argument; 33332 sp2 := spc2\function_space.range_argument; 33333 CASE spc1\function_space.range_constraint OF 33334 sc_equal : 33335 BEGIN 33336 CASE spc2\function_space.range_constraint OF 33337 sc_equal : 33338 cum := cum AND equal_maths_spaces(sp1, sp2); 33339 sc_subspace : 33340 cum := cum AND subspace_of(sp1, sp2); 33341 sc_member : 33342 cum := cum AND member_of(sp1, sp2); 33343 END_CASE; 33344 END; 33345 sc_subspace : 33346 BEGIN 33347 CASE spc2\function_space.domain_constraint OF 33348 sc_equal : 33349 RETURN (FALSE); 33350 sc_subspace : 33351 cum := cum AND subspace_of(sp1, sp2); 33352 sc_member : 33353 BEGIN 33354 IF NOT member_of(sp1, sp2) THEN 33355 RETURN (FALSE); 33356 END_IF; 33357 cum := UNKNOWN; 33358 END; 33359 END_CASE; 33360 END; 33361 sc_member : 33362 BEGIN 33363 CASE spc2\function_space.domain_constraint OF 33364 sc_equal : 33365 cum := (cum AND space_is_singleton(sp1)) AND equal_maths_spaces(singleton_member_of(sp1), sp2); 33366 sc_subspace : 33367 BEGIN 33368 IF NOT member_of(sp2, sp1) THEN 33369 RETURN (FALSE); 33370 END_IF; 33371 cum := UNKNOWN; 33372 END; 33373 sc_member : 33374 cum := cum AND subspace_of(sp1, sp2); 33375 END_CASE; 33376 END; 33377 END_CASE; 33378 RETURN (cum); 33379 END_IF; 33380 RETURN (FALSE); 33381 END_IF; 33382 RETURN (UNKNOWN); 33383END_FUNCTION; 33384 33385-- IN AP242 33386FUNCTION subspace_of_es 33387 (spc : maths_space; 33388 es : elementary_space_enumerators ) : LOGICAL; 33389 LOCAL 33390 types : SET OF STRING := stripped_typeof(spc); 33391 END_LOCAL; 33392 IF NOT EXISTS(spc) OR NOT EXISTS(es) THEN 33393 RETURN (FALSE); 33394 END_IF; 33395 IF 'ELEMENTARY_SPACE' IN types THEN 33396 RETURN (es_subspace_of_es(spc\elementary_space.space_id, es)); 33397 END_IF; 33398 IF 'FINITE_SPACE' IN types THEN 33399 RETURN (all_members_of_es(spc\finite_space.members, es)); 33400 END_IF; 33401 CASE es OF 33402 es_numbers : 33403 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)); 33404 es_complex_numbers : 33405 RETURN (('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types)); 33406 es_reals : 33407 RETURN ((('FINITE_REAL_INTERVAL' IN types) OR ('REAL_INTERVAL_FROM_MIN' IN types)) OR ('REAL_INTERVAL_TO_MAX' IN types)); 33408 es_integers : 33409 RETURN ((('FINITE_INTEGER_INTERVAL' IN types) OR ('INTEGER_INTERVAL_FROM_MIN' IN types)) OR ('INTEGER_INTERVAL_TO_MAX' IN types)); 33410 es_logicals : 33411 RETURN (FALSE); 33412 es_booleans : 33413 RETURN (FALSE); 33414 es_strings : 33415 RETURN (FALSE); 33416 es_binarys : 33417 RETURN (FALSE); 33418 es_maths_spaces : 33419 RETURN (FALSE); 33420 es_maths_functions : 33421 RETURN ('FUNCTION_SPACE' IN types); 33422 es_generics : 33423 RETURN (TRUE); 33424 END_CASE; 33425 RETURN (UNKNOWN); 33426END_FUNCTION; 33427 33428-- IN AP242 33429FUNCTION substitute 33430 (expr : generic_expression; 33431 vars : LIST [1:?] OF generic_variable; 33432 vals : LIST [1:?] OF maths_value ) : generic_expression; 33433 LOCAL 33434 types : SET OF STRING := stripped_typeof(expr); 33435 opnds : LIST OF generic_expression; 33436 op1 : generic_expression; 33437 op2 : generic_expression; 33438 qvars : LIST OF generic_variable; 33439 srcdom : maths_space_or_function; 33440 prpfun : LIST [1:?] OF maths_function; 33441 finfun : maths_function_select; 33442 END_LOCAL; 33443 IF SIZEOF(vars) <> SIZEOF(vals) THEN 33444 RETURN (?); 33445 END_IF; 33446 IF 'GENERIC_LITERAL' IN types THEN 33447 RETURN (expr); 33448 END_IF; 33449 IF 'GENERIC_VARIABLE' IN types THEN 33450 REPEAT i := 1 TO SIZEOF(vars); 33451 IF expr :=: vars[i] THEN 33452 RETURN (vals[i]); 33453 END_IF; 33454 END_REPEAT; 33455 RETURN (expr); 33456 END_IF; 33457 IF 'QUANTIFIER_EXPRESSION' IN types THEN 33458 qvars := expr\quantifier_expression.variables; 33459 REPEAT i := SIZEOF(vars) TO 1 BY -1; 33460 IF vars[i] IN qvars THEN 33461 REMOVE( vars, i ); 33462 REMOVE( vals, i ); 33463 END_IF; 33464 END_REPEAT; 33465 opnds := expr\multiple_arity_generic_expression.operands; 33466 REPEAT i := 1 TO SIZEOF(opnds); 33467 IF NOT (opnds[i] IN qvars) THEN 33468 expr\multiple_arity_generic_expression.operands[i] := substitute(opnds[i], vars, vals); 33469 END_IF; 33470 END_REPEAT; 33471 RETURN (expr); 33472 END_IF; 33473 IF 'UNARY_GENERIC_EXPRESSION' IN types THEN 33474 op1 := expr\unary_generic_expression.operand; 33475 expr\unary_generic_expression.operand := substitute(op1, vars, vals); 33476 END_IF; 33477 IF 'BINARY_GENERIC_EXPRESSION' IN types THEN 33478 op1 := expr\binary_generic_expression.operands[1]; 33479 expr\binary_generic_expression.operands[1] := substitute(op1, vars, vals); 33480 op2 := expr\binary_generic_expression.operands[2]; 33481 expr\binary_generic_expression.operands[2] := substitute(op2, vars, vals); 33482 END_IF; 33483 IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN 33484 srcdom := expr\parallel_composed_function.source_of_domain; 33485 prpfun := expr\parallel_composed_function.prep_functions; 33486 finfun := expr\parallel_composed_function.final_function; 33487 srcdom := substitute(srcdom, vars, vals); 33488 REPEAT i := 1 TO SIZEOF(prpfun); 33489 prpfun[i] := substitute(prpfun[i], vars, vals); 33490 END_REPEAT; 33491 IF 'MATHS_FUNCTION' IN stripped_typeof(finfun) THEN 33492 finfun := substitute(finfun, vars, vals); 33493 END_IF; 33494 RETURN (make_parallel_composed_function(srcdom, prpfun, finfun)); 33495 END_IF; 33496 IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN 33497 opnds := expr\multiple_arity_generic_expression.operands; 33498 REPEAT i := 1 TO SIZEOF(opnds); 33499 expr\multiple_arity_generic_expression.operands[i] := substitute(opnds[i], vars, vals); 33500 END_REPEAT; 33501 END_IF; 33502 RETURN (expr); 33503END_FUNCTION; 33504 33505-- IN AP214 33506FUNCTION suitably_based_mechanism 33507 (mbp : mechanism_base_placement; 33508 mech : mechanism ) : BOOLEAN; 33509 LOCAL 33510 kprop : kinematic_property_definition; 33511 kgrep : kinematic_ground_representation; 33512 klrep : kinematic_link_representation; 33513 klnk : kinematic_link; 33514 kjnts : BAG OF kinematic_joint; 33515 nmechs : BAG OF mechanism; 33516 nmbps : BAG OF mechanism_base_placement; 33517 END_LOCAL; 33518 kprop := mech.containing_property; 33519 IF 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_GROUND_REPRESENTATION' IN TYPEOF(mbp\representation_relationship.rep_1) THEN 33520 kgrep := mbp\representation_relationship.rep_1; 33521 IF kgrep.property\property_definition_representation.definition :=: kprop THEN 33522 RETURN (TRUE); 33523 ELSE 33524 RETURN (FALSE); 33525 END_IF; 33526 ELSE 33527 klrep := mbp\representation_relationship.rep_1; 33528-- klnk := klrep.link_representation_relation.topological_aspects; 33529 kjnts := USEDIN(klnk, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_JOINT.FIRST_LINK') + USEDIN(klnk, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_JOINT.SECOND_LINK'); 33530-- nmechs := USEDIN(kjnts[1].structure, 'STEP_MERGED_CAD_SCHEMA.MECHANISM.STRUCTURE_DEFINITION'); 33531 IF nmechs[1] :=: mech THEN 33532 RETURN (FALSE); 33533 ELSE 33534 IF nmechs[1].containing_property :<>: kprop THEN 33535 RETURN (FALSE); 33536 ELSE 33537 nmbps := USEDIN(nmechs[1], 'STEP_MERGED_CAD_SCHEMA.MECHANISM_BASE_PLACEMENT.BASE_OF_MECHANISM'); 33538 IF SIZEOF(nmbps) = 0 THEN 33539 RETURN (FALSE); 33540 ELSE 33541 RETURN (suitably_based_mechanism(nmbps[1], mech)); 33542 END_IF; 33543 END_IF; 33544 END_IF; 33545 END_IF; 33546END_FUNCTION; 33547 33548FUNCTION surface_condition_correlation 33549 (pd : property_definition; 33550 rep : representation ) : LOGICAL; 33551 CASE pd.name OF 33552 'visual appearance', 'tactile appearance', 'contact ratio', 'hardness', 'treatment result', 'surface texture' : 33553 RETURN (pd.name = rep.name); 33554 OTHERWISE : 33555 RETURN (UNKNOWN); 33556 END_CASE; 33557END_FUNCTION; 33558 33559FUNCTION surface_weights_positive 33560 (b : rational_b_spline_surface ) : BOOLEAN; 33561 LOCAL 33562 result : BOOLEAN := TRUE; 33563 END_LOCAL; 33564 REPEAT i := 0 TO b.u_upper; 33565 REPEAT j := 0 TO b.v_upper; 33566 IF b.weights[i][j] <= 0.0 THEN 33567 result := FALSE; 33568 RETURN (result); 33569 END_IF; 33570 END_REPEAT; 33571 END_REPEAT; 33572 RETURN (result); 33573END_FUNCTION; 33574 33575FUNCTION topology_reversed 33576 (an_item : reversible_topology ) : reversible_topology; 33577 IF 'STEP_MERGED_CAD_SCHEMA.EDGE' IN TYPEOF(an_item) THEN 33578 RETURN (edge_reversed(an_item)); 33579 END_IF; 33580 IF 'STEP_MERGED_CAD_SCHEMA.PATH' IN TYPEOF(an_item) THEN 33581 RETURN (path_reversed(an_item)); 33582 END_IF; 33583 IF 'STEP_MERGED_CAD_SCHEMA.FACE_BOUND' IN TYPEOF(an_item) THEN 33584 RETURN (face_bound_reversed(an_item)); 33585 END_IF; 33586 IF 'STEP_MERGED_CAD_SCHEMA.FACE' IN TYPEOF(an_item) THEN 33587 RETURN (face_reversed(an_item)); 33588 END_IF; 33589 IF 'STEP_MERGED_CAD_SCHEMA.SHELL' IN TYPEOF(an_item) THEN 33590 RETURN (shell_reversed(an_item)); 33591 END_IF; 33592 IF 'SET' IN TYPEOF(an_item) THEN 33593 RETURN (set_of_topology_reversed(an_item)); 33594 END_IF; 33595 IF 'LIST' IN TYPEOF(an_item) THEN 33596 RETURN (list_of_topology_reversed(an_item)); 33597 END_IF; 33598 RETURN (?); 33599END_FUNCTION; 33600 33601-- DIFF IN AP214 33602-- DIFF IN AP203e2 33603FUNCTION type_check_function 33604 (the_type : GENERIC; 33605 sub_names : SET [0:?] OF STRING; 33606 criterion : INTEGER ) : LOGICAL; 33607 IF NOT EXISTS(the_type) OR (SIZEOF(sub_names) = 0) THEN 33608 RETURN (UNKNOWN); 33609 ELSE 33610 CASE criterion OF 33611 0 : 33612 RETURN (SIZEOF(sub_names * TYPEOF(the_type)) > 0); 33613 1 : 33614 RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 0); 33615 2 : 33616 RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 1); 33617 3 : 33618 RETURN (SIZEOF(sub_names * TYPEOF(the_type)) <= 1); 33619 OTHERWISE : 33620 RETURN (UNKNOWN); 33621 END_CASE; 33622 END_IF; 33623END_FUNCTION; 33624 33625-- IN AP242 33626FUNCTION unambiguously_specified_multi_level_reference_designator 33627 (links : LIST [1:?] OF next_assembly_usage_occurrence ) : BOOLEAN; 33628 REPEAT i := 1 TO SIZEOF(links) - 1; 33629 CASE TRUE OF 33630 (('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)) : 33631 BEGIN 33632 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 33633 RETURN (FALSE); 33634 END_IF; 33635 END; 33636 ('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)) : 33637 BEGIN 33638 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 33639 RETURN (FALSE); 33640 END_IF; 33641 END; 33642 ('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)) : 33643 RETURN (FALSE); 33644 OTHERWISE : 33645 RETURN (FALSE); 33646 END_CASE; 33647 END_REPEAT; 33648 RETURN (TRUE); 33649END_FUNCTION; 33650 33651-- IN AP242 33652FUNCTION unique_in_product_definition 33653 (item : representative_shape_representation ) : BOOLEAN; 33654 LOCAL 33655 local_p_d : SET OF product_definition := []; 33656 local_s_r : SET OF shape_representation := []; 33657 i : INTEGER; 33658 j : INTEGER; 33659 END_LOCAL; 33660 local_p_d := using_product_definition_of_shape_representation(item); 33661 IF SIZEOF(local_p_d) <> 1 THEN 33662 RETURN (FALSE); 33663 ELSE 33664 REPEAT i := 1 TO HIINDEX(local_p_d); 33665 local_s_r := find_shape_representation_of_product_definition(local_p_d[i]); 33666 REPEAT j := 1 TO HIINDEX(local_s_r); 33667 IF ('STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(local_s_r[j])) AND (local_s_r[j] :<>: item) THEN 33668 RETURN (FALSE); 33669 END_IF; 33670 END_REPEAT; 33671 END_REPEAT; 33672 END_IF; 33673 RETURN (TRUE); 33674END_FUNCTION; 33675 33676-- IN AP242 33677FUNCTION unique_in_shape_aspect 33678 (item : representative_shape_representation ) : BOOLEAN; 33679 LOCAL 33680 local_s_a : SET OF shape_aspect := []; 33681 local_s_r : SET OF shape_representation := []; 33682 i : INTEGER; 33683 j : INTEGER; 33684 END_LOCAL; 33685 local_s_a := using_shape_aspect_of_shape_representation(item); 33686 IF SIZEOF(local_s_a) <> 1 THEN 33687 RETURN (FALSE); 33688 ELSE 33689 REPEAT i := 1 TO HIINDEX(local_s_a); 33690 local_s_r := find_shape_representation_of_shape_aspect(local_s_a[i]); 33691 REPEAT j := 1 TO HIINDEX(local_s_r); 33692 IF ('STEP_MERGED_CAD_SCHEMA.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(local_s_r[j])) AND (local_s_r[j] :<>: item) THEN 33693 RETURN (FALSE); 33694 END_IF; 33695 END_REPEAT; 33696 END_REPEAT; 33697 END_IF; 33698 RETURN (TRUE); 33699END_FUNCTION; 33700 33701-- IN AP214 33702FUNCTION unique_link_usage 33703 (link : kinematic_link ) : BOOLEAN; 33704 LOCAL 33705 mechs : SET OF mechanism; 33706 joints : SET OF kinematic_joint; 33707 struct : kinematic_structure; 33708 END_LOCAL; 33709 joints := bag_to_set(USEDIN(link, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_JOINT.FIRST_LINK') + USEDIN(link, 'STEP_MERGED_CAD_SCHEMA.KINEMATIC_JOINT.SECOND_LINK')); 33710-- struct := joints[1].structure; 33711 REPEAT i := 2 TO SIZEOF(joints); 33712-- IF joints[i].structure :<>: struct THEN 33713-- RETURN (FALSE); 33714-- END_IF; 33715 END_REPEAT; 33716 mechs := bag_to_set(USEDIN(struct, 'STEP_MERGED_CAD_SCHEMA.MECHANISM.STRUCTURE_DEFINITION')); 33717 IF SIZEOF(mechs) <> 1 THEN 33718 RETURN (FALSE); 33719 END_IF; 33720 RETURN (TRUE); 33721END_FUNCTION; 33722 33723-- IN AP242 33724FUNCTION used_variables 33725 (arg : generic_expression ) : SET [0:?] OF generic_variable; 33726 LOCAL 33727 result : SET OF generic_variable := []; 33728 END_LOCAL; 33729 IF 'STEP_MERGED_CAD_SCHEMA.GENERIC_VARIABLE' IN TYPEOF(arg) THEN 33730 RETURN ([ arg ]); 33731 END_IF; 33732 IF 'STEP_MERGED_CAD_SCHEMA.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN 33733 RETURN (used_variables(arg\unary_generic_expression.operand)); 33734 END_IF; 33735 IF 'STEP_MERGED_CAD_SCHEMA.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN 33736 RETURN (used_variables(arg\binary_generic_expression.operands[1]) + used_variables(arg\binary_generic_expression.operands[2])); 33737 END_IF; 33738 IF 'STEP_MERGED_CAD_SCHEMA.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN 33739 REPEAT i := 1 TO SIZEOF(arg\multiple_arity_generic_expression.operands); 33740 result := result + used_variables(arg\multiple_arity_generic_expression.operands[i]); 33741 END_REPEAT; 33742 RETURN (result); 33743 END_IF; 33744 RETURN ([]); 33745END_FUNCTION; 33746 33747-- DIFF IN AP214 33748FUNCTION using_items 33749 (item : founded_item_select; 33750 checked_items : SET [0:?] OF founded_item_select ) : SET [0:?] OF founded_item_select; 33751 LOCAL 33752 new_check_items : SET OF founded_item_select; 33753 result_items : SET OF founded_item_select; 33754 next_items : SET OF founded_item_select; 33755 END_LOCAL; 33756 result_items := []; 33757 new_check_items := checked_items + item; 33758 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))); 33759 IF SIZEOF(next_items) > 0 THEN 33760 REPEAT i := 1 TO HIINDEX(next_items); 33761 IF NOT (next_items[i] IN new_check_items) THEN 33762 result_items := result_items + next_items[i] + using_items(next_items[i], new_check_items); 33763 END_IF; 33764 END_REPEAT; 33765 END_IF; 33766 RETURN (result_items); 33767END_FUNCTION; 33768 33769-- IN AP242 33770FUNCTION using_product_definition_of_shape_aspect 33771 (item : shape_aspect ) : product_definition; 33772 IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(item.of_shape.definition) THEN 33773 RETURN (item.of_shape.definition); 33774 ELSE 33775 RETURN (?); 33776 END_IF; 33777END_FUNCTION; 33778 33779-- IN AP242 33780FUNCTION using_product_definition_of_shape_representation 33781 (item : shape_representation ) : SET [0:?] OF product_definition; 33782 LOCAL 33783 local_s_d_r : SET OF shape_definition_representation := []; 33784 local_p_d : SET OF product_definition := []; 33785 i : INTEGER; 33786 END_LOCAL; 33787 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)); 33788 REPEAT i := 1 TO HIINDEX(local_s_d_r); 33789 IF 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(local_s_d_r[i]\property_definition_representation.definition) THEN 33790 IF 'STEP_MERGED_CAD_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(local_s_d_r[i]\property_definition_representation.definition\property_definition.definition) THEN 33791 local_p_d := local_p_d + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; 33792 END_IF; 33793 END_IF; 33794 END_REPEAT; 33795 RETURN (local_p_d); 33796END_FUNCTION; 33797 33798-- IN AP242 33799FUNCTION using_representation_with_mapping 33800 (item : representation_item ) : SET [0:?] OF representation; 33801 LOCAL 33802 results : SET OF representation := []; 33803 local_results : SET OF representation := []; 33804 local_representation_map : SET OF representation_map := []; 33805 intermediate_items : SET OF representation_item := []; 33806 i : INTEGER; 33807 j : INTEGER; 33808 END_LOCAL; 33809 local_results := QUERY (z <* using_representations(item)| SIZEOF(USEDIN(z, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION')) > 0); 33810 IF SIZEOF(local_results) = 0 THEN 33811 RETURN ([]); 33812 ELSE 33813 REPEAT i := 1 TO HIINDEX(local_results); 33814 local_representation_map := local_representation_map + bag_to_set(USEDIN(local_results[i], 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); 33815 END_REPEAT; 33816 REPEAT i := 1 TO HIINDEX(local_representation_map); 33817 intermediate_items := intermediate_items + bag_to_set(USEDIN(local_representation_map[i], 'STEP_MERGED_CAD_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE')); 33818 END_REPEAT; 33819 REPEAT j := 1 TO HIINDEX(intermediate_items); 33820 results := results + bag_to_set(using_representation_with_mapping(intermediate_items[j])); 33821 END_REPEAT; 33822 END_IF; 33823 RETURN (results); 33824END_FUNCTION; 33825 33826-- DIFF IN AP214 33827FUNCTION using_representations 33828 (item : founded_item_select ) : SET [0:?] OF representation; 33829 LOCAL 33830 results : SET OF representation; 33831 result_bag : BAG OF representation; 33832 intermediate_items : SET OF founded_item_select; 33833 END_LOCAL; 33834 results := []; 33835 result_bag := USEDIN(item, 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'); 33836 IF SIZEOF(result_bag) > 0 THEN 33837 REPEAT i := 1 TO HIINDEX(result_bag); 33838 results := results + result_bag[i]; 33839 END_REPEAT; 33840 END_IF; 33841 intermediate_items := using_items(item, []); 33842 IF SIZEOF(intermediate_items) > 0 THEN 33843 REPEAT i := 1 TO HIINDEX(intermediate_items); 33844 result_bag := USEDIN(intermediate_items[i], 'STEP_MERGED_CAD_SCHEMA.REPRESENTATION.ITEMS'); 33845 IF SIZEOF(result_bag) > 0 THEN 33846 REPEAT j := 1 TO HIINDEX(result_bag); 33847 results := results + result_bag[j]; 33848 END_REPEAT; 33849 END_IF; 33850 END_REPEAT; 33851 END_IF; 33852 RETURN (results); 33853END_FUNCTION; 33854 33855-- IN AP242 33856FUNCTION using_shape_aspect_of_shape_representation 33857 (item : shape_representation ) : SET [0:?] OF shape_aspect; 33858 LOCAL 33859 local_s_d_r : SET OF shape_definition_representation := []; 33860 local_s_d_r2 : BAG OF shape_definition_representation := []; 33861 local_s_a : SET OF shape_aspect := []; 33862 i : INTEGER; 33863 END_LOCAL; 33864 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))); 33865 local_s_d_r := bag_to_set(local_s_d_r2); 33866 REPEAT i := 1 TO HIINDEX(local_s_d_r); 33867 IF 'STEP_MERGED_CAD_SCHEMA.SHAPE_ASPECT' IN TYPEOF(local_s_d_r[i]\property_definition_representation.definition\property_definition.definition) THEN 33868 local_s_a := local_s_a + local_s_d_r[i]\property_definition_representation.definition\property_definition.definition; 33869 END_IF; 33870 END_REPEAT; 33871 RETURN (local_s_a); 33872END_FUNCTION; 33873 33874FUNCTION valid_basis_curve_in_2d_wireframe 33875 (crv : curve ) : BOOLEAN; 33876 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 33877 RETURN (TRUE); 33878 ELSE 33879 IF 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' IN TYPEOF(crv) THEN 33880 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 33881 RETURN (TRUE); 33882 ELSE 33883 RETURN (valid_basis_curve_in_2d_wireframe(crv\trimmed_curve.basis_curve)); 33884 END_IF; 33885 ELSE 33886 IF 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_2D' IN TYPEOF(crv) THEN 33887 RETURN (valid_basis_curve_in_2d_wireframe(crv\offset_curve_2d.basis_curve)); 33888 ELSE 33889 IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv) THEN 33890 RETURN (valid_basis_curve_in_2d_wireframe(crv\curve_replica.parent_curve)); 33891 ELSE 33892 IF 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE' IN TYPEOF(crv) THEN 33893 RETURN (SIZEOF(QUERY (ccs <* crv\composite_curve.segments| NOT valid_basis_curve_in_2d_wireframe(ccs.parent_curve))) = 0); 33894 END_IF; 33895 END_IF; 33896 END_IF; 33897 END_IF; 33898 END_IF; 33899 RETURN (FALSE); 33900END_FUNCTION; 33901 33902FUNCTION valid_calendar_date 33903 (date : calendar_date ) : LOGICAL; 33904 CASE date.month_component OF 33905 1 : 33906 RETURN ((1 <= date.day_component) AND (date.day_component <= 31)); 33907 2 : 33908 BEGIN 33909 IF leap_year(date.year_component) THEN 33910 RETURN ((1 <= date.day_component) AND (date.day_component <= 29)); 33911 ELSE 33912 RETURN ((1 <= date.day_component) AND (date.day_component <= 28)); 33913 END_IF; 33914 END; 33915 3 : 33916 RETURN ((1 <= date.day_component) AND (date.day_component <= 31)); 33917 4 : 33918 RETURN ((1 <= date.day_component) AND (date.day_component <= 30)); 33919 5 : 33920 RETURN ((1 <= date.day_component) AND (date.day_component <= 31)); 33921 6 : 33922 RETURN ((1 <= date.day_component) AND (date.day_component <= 30)); 33923 7 : 33924 RETURN ((1 <= date.day_component) AND (date.day_component <= 31)); 33925 8 : 33926 RETURN ((1 <= date.day_component) AND (date.day_component <= 31)); 33927 9 : 33928 RETURN ((1 <= date.day_component) AND (date.day_component <= 30)); 33929 10 : 33930 RETURN ((1 <= date.day_component) AND (date.day_component <= 31)); 33931 11 : 33932 RETURN ((1 <= date.day_component) AND (date.day_component <= 30)); 33933 12 : 33934 RETURN ((1 <= date.day_component) AND (date.day_component <= 31)); 33935 END_CASE; 33936 RETURN (FALSE); 33937END_FUNCTION; 33938 33939-- IN AP242 33940FUNCTION valid_csg_2d_primitives 33941 (input : csg_solid_2d ) : BOOLEAN; 33942 CASE TRUE OF 33943 'STEP_MERGED_CAD_SCHEMA.PRIMITIVE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression) : 33944 BEGIN 33945 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 33946 RETURN (TRUE); 33947 ELSE 33948 RETURN (FALSE); 33949 END_IF; 33950 END; 33951 'STEP_MERGED_CAD_SCHEMA.BOOLEAN_RESULT_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression) : 33952 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)); 33953 'STEP_MERGED_CAD_SCHEMA.HALF_SPACE_2D' IN TYPEOF(input\csg_solid_2d.tree_root_expression) : 33954 RETURN (TRUE); 33955 OTHERWISE : 33956 RETURN (FALSE); 33957 END_CASE; 33958END_FUNCTION; 33959 33960-- DIFF IN AP203e2 33961-- IN AP203e2/AP242 33962FUNCTION valid_datum_target_parameters 33963 (pdf : placed_datum_target_feature ) : BOOLEAN; 33964 LOCAL 33965 rep_set : SET OF representation := []; 33966 parameter_representations : SET OF representation; 33967 END_LOCAL; 33968 REPEAT i := 1 TO HIINDEX(pdf.representation_associations); 33969 rep_set := rep_set + pdf.representation_associations[i].used_representation; 33970 END_REPEAT; 33971 parameter_representations := QUERY (rep <* rep_set| 'STEP_MERGED_CAD_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(rep)); 33972 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 33973 RETURN (FALSE); 33974 END_IF; 33975 CASE pdf\shape_aspect.description OF 33976 'point' : 33977 RETURN (SIZEOF(QUERY (srwp <* parameter_representations| (SIZEOF(srwp.items) = 1))) = 1); 33978 'circle', 'circular curve' : 33979 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)); 33980 'line' : 33981 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); 33982 'rectangle' : 33983 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)); 33984 OTHERWISE : 33985 RETURN (FALSE); 33986 END_CASE; 33987END_FUNCTION; 33988 33989FUNCTION valid_geometrically_bounded_wf_curve 33990 (crv : curve ) : BOOLEAN; 33991 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 33992 RETURN (TRUE); 33993 ELSE 33994 IF 'STEP_MERGED_CAD_SCHEMA.TRIMMED_CURVE' IN TYPEOF(crv) THEN 33995 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 33996 RETURN (TRUE); 33997 ELSE 33998 RETURN (valid_geometrically_bounded_wf_curve(crv\trimmed_curve.basis_curve)); 33999 END_IF; 34000 ELSE 34001 IF 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(crv) THEN 34002 RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve)); 34003 ELSE 34004 IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv) THEN 34005 RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve)); 34006 ELSE 34007 IF 'STEP_MERGED_CAD_SCHEMA.COMPOSITE_CURVE' IN TYPEOF(crv) THEN 34008 RETURN (SIZEOF(QUERY (ccs <* crv\composite_curve.segments| NOT valid_geometrically_bounded_wf_curve(ccs.parent_curve))) = 0); 34009 END_IF; 34010 END_IF; 34011 END_IF; 34012 END_IF; 34013 END_IF; 34014 RETURN (FALSE); 34015END_FUNCTION; 34016 34017FUNCTION valid_geometrically_bounded_wf_point 34018 (pnt : point ) : BOOLEAN; 34019 IF 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN 34020 RETURN (TRUE); 34021 ELSE 34022 IF 'STEP_MERGED_CAD_SCHEMA.POINT_ON_CURVE' IN TYPEOF(pnt) THEN 34023 RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve)); 34024 ELSE 34025 IF 'STEP_MERGED_CAD_SCHEMA.POINT_REPLICA' IN TYPEOF(pnt) THEN 34026 RETURN (valid_geometrically_bounded_wf_point(pnt\point_replica.parent_pt)); 34027 END_IF; 34028 END_IF; 34029 END_IF; 34030 RETURN (FALSE); 34031END_FUNCTION; 34032 34033FUNCTION valid_measure_value 34034 (m : measure_value ) : BOOLEAN; 34035 IF 'REAL' IN TYPEOF(m) THEN 34036 RETURN (m > 0.0); 34037 ELSE 34038 IF 'INTEGER' IN TYPEOF(m) THEN 34039 RETURN (m > 0); 34040 ELSE 34041 RETURN (TRUE); 34042 END_IF; 34043 END_IF; 34044END_FUNCTION; 34045 34046-- IN AP203e2/AP242 34047FUNCTION valid_selected_instance_representation 34048 (pd : product_definition_or_assembly_relationship ) : LOGICAL; 34049 LOCAL 34050 properties : SET OF property_definition := bag_to_set(QUERY (prd <* USEDIN(pd, 'STEP_MERGED_CAD_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| prd.name = 'occurrence selection')); 34051 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')); 34052 selected_representation : representation; 34053 END_LOCAL; 34054 IF SIZEOF(properties) <> 1 THEN 34055 RETURN (FALSE); 34056 END_IF; 34057 IF SIZEOF(property_definition_representations) <> 1 THEN 34058 RETURN (FALSE); 34059 END_IF; 34060 selected_representation := property_definition_representations[1]\property_definition_representation.used_representation; 34061 IF (SIZEOF(selected_representation\representation.items) < 1) OR (SIZEOF(selected_representation\representation.items) > 2) THEN 34062 RETURN (FALSE); 34063 END_IF; 34064 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 34065 RETURN (FALSE); 34066 END_IF; 34067 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 34068 RETURN (FALSE); 34069 END_IF; 34070 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 34071 RETURN (FALSE); 34072 END_IF; 34073 RETURN (TRUE); 34074END_FUNCTION; 34075 34076FUNCTION valid_time 34077 (time : local_time ) : BOOLEAN; 34078 IF EXISTS(time.second_component) THEN 34079 RETURN (EXISTS(time.minute_component)); 34080 ELSE 34081 RETURN (TRUE); 34082 END_IF; 34083END_FUNCTION; 34084 34085-- DIFF IN AP214 34086-- DIFF IN AP203e2 34087FUNCTION valid_units 34088 (m : measure_with_unit ) : BOOLEAN; 34089 IF 'STEP_MERGED_CAD_SCHEMA.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN 34090 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34091 RETURN (FALSE); 34092 END_IF; 34093 END_IF; 34094 IF 'STEP_MERGED_CAD_SCHEMA.MASS_MEASURE' IN TYPEOF(m.value_component) THEN 34095 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34096 RETURN (FALSE); 34097 END_IF; 34098 END_IF; 34099 IF 'STEP_MERGED_CAD_SCHEMA.TIME_MEASURE' IN TYPEOF(m.value_component) THEN 34100 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) THEN 34101 RETURN (FALSE); 34102 END_IF; 34103 END_IF; 34104 IF 'STEP_MERGED_CAD_SCHEMA.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m.value_component) THEN 34105 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) THEN 34106 RETURN (FALSE); 34107 END_IF; 34108 END_IF; 34109 IF 'STEP_MERGED_CAD_SCHEMA.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN 34110 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN 34111 RETURN (FALSE); 34112 END_IF; 34113 END_IF; 34114 IF 'STEP_MERGED_CAD_SCHEMA.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN 34115 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN 34116 RETURN (FALSE); 34117 END_IF; 34118 END_IF; 34119 IF 'STEP_MERGED_CAD_SCHEMA.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m.value_component) THEN 34120 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) THEN 34121 RETURN (FALSE); 34122 END_IF; 34123 END_IF; 34124 IF 'STEP_MERGED_CAD_SCHEMA.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m.value_component) THEN 34125 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN 34126 RETURN (FALSE); 34127 END_IF; 34128 END_IF; 34129 IF 'STEP_MERGED_CAD_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN 34130 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34131 RETURN (FALSE); 34132 END_IF; 34133 END_IF; 34134 IF 'STEP_MERGED_CAD_SCHEMA.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN 34135 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34136 RETURN (FALSE); 34137 END_IF; 34138 END_IF; 34139 IF 'STEP_MERGED_CAD_SCHEMA.AREA_MEASURE' IN TYPEOF(m.value_component) THEN 34140 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34141 RETURN (FALSE); 34142 END_IF; 34143 END_IF; 34144 IF 'STEP_MERGED_CAD_SCHEMA.VOLUME_MEASURE' IN TYPEOF(m.value_component) THEN 34145 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34146 RETURN (FALSE); 34147 END_IF; 34148 END_IF; 34149 IF 'STEP_MERGED_CAD_SCHEMA.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN 34150 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34151 RETURN (FALSE); 34152 END_IF; 34153 END_IF; 34154 IF 'STEP_MERGED_CAD_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN 34155 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34156 RETURN (FALSE); 34157 END_IF; 34158 END_IF; 34159 IF 'STEP_MERGED_CAD_SCHEMA.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN 34160 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN 34161 RETURN (FALSE); 34162 END_IF; 34163 END_IF; 34164 IF 'STEP_MERGED_CAD_SCHEMA.ACCELERATION_MEASURE' IN TYPEOF(m.value_component) THEN 34165 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN 34166 RETURN (FALSE); 34167 END_IF; 34168 END_IF; 34169 IF 'STEP_MERGED_CAD_SCHEMA.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component) THEN 34170 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0) THEN 34171 RETURN (FALSE); 34172 END_IF; 34173 END_IF; 34174 IF 'STEP_MERGED_CAD_SCHEMA.ELECTRIC_CHARGE_MEASURE' IN TYPEOF(m.value_component) THEN 34175 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0) THEN 34176 RETURN (FALSE); 34177 END_IF; 34178 END_IF; 34179 IF 'STEP_MERGED_CAD_SCHEMA.CONDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN 34180 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0) THEN 34181 RETURN (FALSE); 34182 END_IF; 34183 END_IF; 34184 IF 'STEP_MERGED_CAD_SCHEMA.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF(m.value_component) THEN 34185 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0) THEN 34186 RETURN (FALSE); 34187 END_IF; 34188 END_IF; 34189 IF 'STEP_MERGED_CAD_SCHEMA.ENERGY_MEASURE' IN TYPEOF(m.value_component) THEN 34190 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN 34191 RETURN (FALSE); 34192 END_IF; 34193 END_IF; 34194 IF 'STEP_MERGED_CAD_SCHEMA.FORCE_MEASURE' IN TYPEOF(m.value_component) THEN 34195 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN 34196 RETURN (FALSE); 34197 END_IF; 34198 END_IF; 34199 IF 'STEP_MERGED_CAD_SCHEMA.FREQUENCY_MEASURE' IN TYPEOF(m.value_component) THEN 34200 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN 34201 RETURN (FALSE); 34202 END_IF; 34203 END_IF; 34204 IF 'STEP_MERGED_CAD_SCHEMA.ILLUMINANCE_MEASURE' IN TYPEOF(m.value_component) THEN 34205 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN 34206 RETURN (FALSE); 34207 END_IF; 34208 END_IF; 34209 IF 'STEP_MERGED_CAD_SCHEMA.INDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN 34210 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0) THEN 34211 RETURN (FALSE); 34212 END_IF; 34213 END_IF; 34214 IF 'STEP_MERGED_CAD_SCHEMA.LUMINOUS_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN 34215 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN 34216 RETURN (FALSE); 34217 END_IF; 34218 END_IF; 34219 IF 'STEP_MERGED_CAD_SCHEMA.MAGNETIC_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN 34220 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0) THEN 34221 RETURN (FALSE); 34222 END_IF; 34223 END_IF; 34224 IF 'STEP_MERGED_CAD_SCHEMA.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF(m.value_component) THEN 34225 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0) THEN 34226 RETURN (FALSE); 34227 END_IF; 34228 END_IF; 34229 IF 'STEP_MERGED_CAD_SCHEMA.POWER_MEASURE' IN TYPEOF(m.value_component) THEN 34230 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0) THEN 34231 RETURN (FALSE); 34232 END_IF; 34233 END_IF; 34234 IF 'STEP_MERGED_CAD_SCHEMA.PRESSURE_MEASURE' IN TYPEOF(m.value_component) THEN 34235 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN 34236 RETURN (FALSE); 34237 END_IF; 34238 END_IF; 34239 IF 'STEP_MERGED_CAD_SCHEMA.RESISTANCE_MEASURE' IN TYPEOF(m.value_component) THEN 34240 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0) THEN 34241 RETURN (FALSE); 34242 END_IF; 34243 END_IF; 34244 IF 'STEP_MERGED_CAD_SCHEMA.VELOCITY_MEASURE' IN TYPEOF(m.value_component) THEN 34245 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN 34246 RETURN (FALSE); 34247 END_IF; 34248 END_IF; 34249 IF 'STEP_MERGED_CAD_SCHEMA.RADIOACTIVITY_MEASURE' IN TYPEOF(m.value_component) THEN 34250 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN 34251 RETURN (FALSE); 34252 END_IF; 34253 END_IF; 34254 IF 'STEP_MERGED_CAD_SCHEMA.ABSORBED_DOSE_MEASURE' IN TYPEOF(m.value_component) THEN 34255 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN 34256 RETURN (FALSE); 34257 END_IF; 34258 END_IF; 34259 IF 'STEP_MERGED_CAD_SCHEMA.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component) THEN 34260 IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN 34261 RETURN (FALSE); 34262 END_IF; 34263 END_IF; 34264 RETURN (TRUE); 34265END_FUNCTION; 34266 34267FUNCTION valid_wireframe_edge_curve 34268 (crv : curve ) : BOOLEAN; 34269 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 34270 RETURN (TRUE); 34271 ELSE 34272 IF 'STEP_MERGED_CAD_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv) THEN 34273 RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve)); 34274 ELSE 34275 IF 'STEP_MERGED_CAD_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(crv) THEN 34276 RETURN (valid_wireframe_edge_curve(crv\offset_curve_3d.basis_curve)); 34277 END_IF; 34278 END_IF; 34279 END_IF; 34280 RETURN (FALSE); 34281END_FUNCTION; 34282 34283FUNCTION valid_wireframe_vertex_point 34284 (pnt : point ) : BOOLEAN; 34285 IF 'STEP_MERGED_CAD_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt) THEN 34286 RETURN (TRUE); 34287 ELSE 34288 IF 'STEP_MERGED_CAD_SCHEMA.POINT_REPLICA' IN TYPEOF(pnt) THEN 34289 RETURN (valid_wireframe_vertex_point(pnt\point_replica.parent_pt)); 34290 END_IF; 34291 END_IF; 34292 RETURN (FALSE); 34293END_FUNCTION; 34294 34295-- IN AP242 34296FUNCTION validate_accuracy_types 34297 (ei : shape_data_quality_criterion; 34298 type_list : BAG [0:?] OF STRING ) : LOGICAL; 34299 LOCAL 34300 sdqca : BAG OF shape_data_quality_criterion_and_accuracy_association := []; 34301 sma : BAG OF shape_measurement_accuracy := []; 34302 sdqir : SET OF shape_data_quality_inspection_result := []; 34303 scraa : BAG OF shape_inspection_result_accuracy_association := []; 34304 t_logic : BOOLEAN; 34305 END_LOCAL; 34306 sdqca := USEDIN(ei, 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_CRITERION'); 34307 IF SIZEOF(sdqca) <> 0 THEN 34308 REPEAT i := 1 TO SIZEOF(sdqca); 34309 sma := sma + sdqca[i].required_specific_accuracy; 34310 END_REPEAT; 34311 IF SIZEOF(type_list) < SIZEOF(sma) THEN 34312 RETURN (FALSE); 34313 END_IF; 34314 REPEAT i := 1 TO SIZEOF(sma); 34315 t_logic := FALSE; 34316 REPEAT j := 1 TO SIZEOF(type_list); 34317 IF type_list[j] IN value_limit_type(sma[i].range) THEN 34318 t_logic := TRUE; 34319 ESCAPE; 34320 END_IF; 34321 END_REPEAT; 34322 IF NOT t_logic THEN 34323 RETURN (FALSE); 34324 END_IF; 34325 END_REPEAT; 34326 END_IF; 34327 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)); 34328 IF SIZEOF(sdqir) = 0 THEN 34329 RETURN (TRUE); 34330 END_IF; 34331 REPEAT i := 1 TO SIZEOF(sdqir); 34332 scraa := USEDIN(sdqir[i], 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_RESULT'); 34333 IF SIZEOF(scraa) <> 0 THEN 34334 sma := []; 34335 REPEAT j := 1 TO SIZEOF(scraa); 34336 sma := sma + scraa[j].applied_specific_accuracy; 34337 END_REPEAT; 34338 IF SIZEOF(type_list) < SIZEOF(sma) THEN 34339 RETURN (FALSE); 34340 END_IF; 34341 REPEAT j := 1 TO SIZEOF(sma); 34342 t_logic := FALSE; 34343 REPEAT k := 1 TO SIZEOF(type_list); 34344 IF type_list[k] IN value_limit_type(sma[j].range) THEN 34345 t_logic := TRUE; 34346 ESCAPE; 34347 END_IF; 34348 END_REPEAT; 34349 IF NOT t_logic THEN 34350 RETURN (FALSE); 34351 END_IF; 34352 END_REPEAT; 34353 END_IF; 34354 END_REPEAT; 34355 RETURN (TRUE); 34356END_FUNCTION; 34357 34358-- IN AP242 34359FUNCTION validate_attribute_id 34360 (attid : attribute_identifier ) : BOOLEAN; 34361 CONSTANT 34362 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' ]; 34363 numbers_etc : SET [15:15] OF STRING := [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_', '[', ']', '.', '\' ]; 34364 valid_chars : SET [67:67] OF STRING := letters + numbers_etc; 34365 END_CONSTANT; 34366 LOCAL 34367 id_length : INTEGER := LENGTH(attid); 34368 id_valid : BOOLEAN := TRUE; 34369 i : INTEGER; 34370 END_LOCAL; 34371 IF NOT (attid[1] IN letters) THEN 34372 id_valid := FALSE; 34373 END_IF; 34374 REPEAT i := 2 TO id_length WHILE id_valid = TRUE; 34375 IF NOT (attid[i] IN valid_chars) THEN 34376 id_valid := FALSE; 34377 END_IF; 34378 END_REPEAT; 34379 RETURN (id_valid); 34380END_FUNCTION; 34381 34382-- IN AP203e2/AP242 34383FUNCTION validate_countersink_radii 34384 (cskhole : solid_with_stepped_round_hole_and_conical_transitions ) : BOOLEAN; 34385 LOCAL 34386 i : INTEGER; 34387 j : INTEGER; 34388 n : INTEGER := 1 + cskhole\solid_with_stepped_round_hole.segments; 34389 smaller : positive_length_measure; 34390 larger : positive_length_measure; 34391 END_LOCAL; 34392 REPEAT i := 1 TO SIZEOF(cskhole.conical_transitions); 34393 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 34394 RETURN (FALSE); 34395 ELSE 34396 IF (cskhole.conical_transitions[i].transition_number <> 1) AND (cskhole.conical_transitions[i].transition_number <> n) THEN 34397 BEGIN 34398 j := cskhole.conical_transitions[i].transition_number; 34399 IF cskhole\solid_with_stepped_round_hole.segment_radii[j] > cskhole\solid_with_stepped_round_hole.segment_radii[(j - 1)] THEN 34400 BEGIN 34401 IF cskhole.conical_transitions[i].cone_apex_angle > 0 THEN 34402 RETURN (FALSE); 34403 END_IF; 34404 larger := cskhole\solid_with_stepped_round_hole.segment_radii[j]; 34405 smaller := cskhole\solid_with_stepped_round_hole.segment_radii[(j - 1)]; 34406 END; 34407 ELSE 34408 BEGIN 34409 IF cskhole.conical_transitions[i].cone_apex_angle < 0 THEN 34410 RETURN (FALSE); 34411 END_IF; 34412 larger := cskhole\solid_with_stepped_round_hole.segment_radii[(j - 1)]; 34413 smaller := cskhole\solid_with_stepped_round_hole.segment_radii[j]; 34414 END; 34415 END_IF; 34416 IF (cskhole.conical_transitions[i].cone_base_radius > larger) OR (cskhole.conical_transitions[i].cone_base_radius < smaller) THEN 34417 RETURN (FALSE); 34418 END_IF; 34419 END; 34420 END_IF; 34421 END_IF; 34422 END_REPEAT; 34423 RETURN (TRUE); 34424END_FUNCTION; 34425 34426-- IN AP242 34427FUNCTION validate_ecdq_inspected_elements_type 34428 (ei : externally_conditioned_data_quality_criterion; 34429 type_list : BAG [0:?] OF STRING ) : LOGICAL; 34430 LOCAL 34431 sdqir : SET OF externally_conditioned_data_quality_inspection_result := []; 34432 dir : SET OF data_quality_inspection_instance_report := []; 34433 sdiri : SET OF externally_conditioned_data_quality_inspection_instance_report_item := []; 34434 t_type_list : BAG OF STRING := []; 34435 END_LOCAL; 34436 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)); 34437 IF SIZEOF(sdqir) = 0 THEN 34438 RETURN (TRUE); 34439 END_IF; 34440 REPEAT i := 1 TO SIZEOF(sdqir); 34441 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))); 34442 END_REPEAT; 34443 IF SIZEOF(dir) = 0 THEN 34444 RETURN (TRUE); 34445 END_IF; 34446 REPEAT i := 1 TO SIZEOF(dir); 34447 sdiri := sdiri + QUERY (q <* dir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q))); 34448 END_REPEAT; 34449 IF SIZEOF(sdiri) = 0 THEN 34450 RETURN (TRUE); 34451 END_IF; 34452 REPEAT i := 1 TO SIZEOF(sdiri); 34453 IF SIZEOF(sdiri[i].inspected_elements) <> SIZEOF(type_list) THEN 34454 RETURN (FALSE); 34455 END_IF; 34456 t_type_list := type_list; 34457 REPEAT j := 1 TO SIZEOF(sdiri[i].inspected_elements); 34458 REPEAT k := 1 TO SIZEOF(t_type_list); 34459 IF t_type_list[k] IN TYPEOF(sdiri[i].inspected_elements[j]) THEN 34460 t_type_list := t_type_list - t_type_list[k]; 34461 ESCAPE; 34462 END_IF; 34463 END_REPEAT; 34464 END_REPEAT; 34465 IF SIZEOF(t_type_list) > 0 THEN 34466 RETURN (FALSE); 34467 END_IF; 34468 END_REPEAT; 34469 RETURN (TRUE); 34470END_FUNCTION; 34471 34472-- IN AP242 34473FUNCTION validate_inspected_elements_type 34474 (ei : shape_data_quality_criterion; 34475 type_list : BAG [0:?] OF STRING ) : LOGICAL; 34476 LOCAL 34477 sdqir : SET OF shape_data_quality_inspection_result := []; 34478 sdir : SET OF shape_data_quality_inspection_instance_report := []; 34479 sdiri : SET OF shape_data_quality_inspection_instance_report_item := []; 34480 t_type_list : BAG OF STRING := []; 34481 END_LOCAL; 34482 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)); 34483 IF SIZEOF(sdqir) = 0 THEN 34484 RETURN (TRUE); 34485 END_IF; 34486 REPEAT i := 1 TO SIZEOF(sdqir); 34487 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))); 34488 END_REPEAT; 34489 IF SIZEOF(sdir) = 0 THEN 34490 RETURN (TRUE); 34491 END_IF; 34492 REPEAT i := 1 TO SIZEOF(sdir); 34493 sdiri := sdiri + QUERY (q <* sdir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q))); 34494 END_REPEAT; 34495 IF SIZEOF(sdiri) = 0 THEN 34496 RETURN (TRUE); 34497 END_IF; 34498 REPEAT i := 1 TO SIZEOF(sdiri); 34499 IF SIZEOF(sdiri[i].inspected_elements) <> SIZEOF(type_list) THEN 34500 RETURN (FALSE); 34501 END_IF; 34502 t_type_list := type_list; 34503 REPEAT j := 1 TO SIZEOF(sdiri[i].inspected_elements); 34504 REPEAT k := 1 TO SIZEOF(t_type_list); 34505 IF t_type_list[k] IN TYPEOF(sdiri[i].inspected_elements[j]) THEN 34506 t_type_list := t_type_list - t_type_list[k]; 34507 ESCAPE; 34508 END_IF; 34509 END_REPEAT; 34510 END_REPEAT; 34511 IF SIZEOF(t_type_list) > 0 THEN 34512 RETURN (FALSE); 34513 END_IF; 34514 END_REPEAT; 34515 RETURN (TRUE); 34516END_FUNCTION; 34517 34518-- IN AP242 34519FUNCTION validate_locations_of_extreme_value_type 34520 (ei : shape_data_quality_criterion; 34521 type_list : BAG [0:?] OF STRING ) : LOGICAL; 34522 LOCAL 34523 sdqir : SET OF shape_data_quality_inspection_result := []; 34524 sdir : SET OF shape_data_quality_inspection_instance_report := []; 34525 sdei : SET OF instance_report_item_with_extreme_instances := []; 34526 t_type_list : BAG OF STRING := []; 34527 END_LOCAL; 34528 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)); 34529 IF SIZEOF(sdqir) = 0 THEN 34530 RETURN (TRUE); 34531 END_IF; 34532 REPEAT i := 1 TO SIZEOF(sdqir); 34533 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))); 34534 END_REPEAT; 34535 REPEAT i := 1 TO SIZEOF(sdir); 34536 sdei := sdei + QUERY (q <* sdir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' IN TYPEOF(q))); 34537 END_REPEAT; 34538 IF SIZEOF(sdei) = 0 THEN 34539 RETURN (TRUE); 34540 END_IF; 34541 IF (SIZEOF(type_list) = 0) AND (SIZEOF(sdei) <> 0) THEN 34542 RETURN (FALSE); 34543 END_IF; 34544 REPEAT i := 1 TO SIZEOF(sdei); 34545 REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances); 34546 IF SIZEOF(sdei[i].extreme_instances[j].locations_of_extreme_value) <> SIZEOF(type_list) THEN 34547 RETURN (FALSE); 34548 END_IF; 34549 t_type_list := type_list; 34550 REPEAT k := 1 TO SIZEOF(sdei[i].extreme_instances[j].locations_of_extreme_value); 34551 REPEAT l := 1 TO SIZEOF(t_type_list); 34552 IF t_type_list[l] IN TYPEOF(sdei[i].extreme_instances[j].locations_of_extreme_value[k]) THEN 34553 t_type_list := t_type_list - t_type_list[l]; 34554 ESCAPE; 34555 END_IF; 34556 END_REPEAT; 34557 END_REPEAT; 34558 IF SIZEOF(t_type_list) > 0 THEN 34559 RETURN (FALSE); 34560 END_IF; 34561 END_REPEAT; 34562 END_REPEAT; 34563 RETURN (TRUE); 34564END_FUNCTION; 34565 34566-- IN AP242 34567FUNCTION validate_measured_data_type 34568 (ei : shape_data_quality_criterion; 34569 type_string : STRING ) : LOGICAL; 34570 LOCAL 34571 sdqir : SET OF shape_data_quality_inspection_result := []; 34572 sdcr : SET OF shape_data_quality_inspection_criterion_report := []; 34573 sdir : SET OF shape_data_quality_inspection_instance_report := []; 34574 sdii : SET OF shape_data_quality_inspection_instance_report_item := []; 34575 sdei : BAG OF instance_report_item_with_extreme_instances := []; 34576 END_LOCAL; 34577 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)); 34578 IF SIZEOF(sdqir) = 0 THEN 34579 RETURN (TRUE); 34580 END_IF; 34581 REPEAT i := 1 TO SIZEOF(sdqir); 34582 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))); 34583 END_REPEAT; 34584 REPEAT i := 1 TO SIZEOF(sdqir); 34585 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))); 34586 END_REPEAT; 34587 IF (SIZEOF(sdcr) = 0) AND (SIZEOF(sdir) = 0) THEN 34588 RETURN (TRUE); 34589 END_IF; 34590 REPEAT i := 1 TO SIZEOF(sdir); 34591 sdii := sdii + QUERY (q <* sdir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q))); 34592 END_REPEAT; 34593 REPEAT i := 1 TO SIZEOF(sdir); 34594 sdei := sdei + QUERY (q <* sdir[i].inspected_instances| ('STEP_MERGED_CAD_SCHEMA.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' IN TYPEOF(q))); 34595 END_REPEAT; 34596 REPEAT i := 1 TO SIZEOF(sdcr); 34597 IF NOT (type_string IN TYPEOF(sdcr[i].representative_measured_value)) THEN 34598 RETURN (FALSE); 34599 END_IF; 34600 END_REPEAT; 34601 REPEAT i := 1 TO SIZEOF(sdii); 34602 IF NOT (type_string IN TYPEOF(sdii[i].measured_value)) THEN 34603 RETURN (FALSE); 34604 END_IF; 34605 END_REPEAT; 34606 REPEAT i := 1 TO SIZEOF(sdei); 34607 REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances); 34608 IF NOT (type_string IN TYPEOF(sdei[i].extreme_instances[j].measured_value)) THEN 34609 RETURN (FALSE); 34610 END_IF; 34611 END_REPEAT; 34612 END_REPEAT; 34613 RETURN (TRUE); 34614END_FUNCTION; 34615 34616-- IN AP242 34617FUNCTION value_limit_type 34618 (iv : shape_data_quality_value_limit_type_select ) : SET [0:?] OF STRING; 34619 LOCAL 34620 retval : SET OF STRING := []; 34621 END_LOCAL; 34622 IF 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_VALUE_RANGE' IN TYPEOF(iv) THEN 34623 retval := TYPEOF(iv\compound_representation_item.item_element[1].value_component); 34624 END_IF; 34625 IF 'STEP_MERGED_CAD_SCHEMA.' + 'SHAPE_DATA_QUALITY_VALUE_LIMIT' IN TYPEOF(iv) THEN 34626 IF 'STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_WITH_UNIT' IN TYPEOF(iv) THEN 34627 retval := TYPEOF(iv\measure_with_unit.value_component); 34628 END_IF; 34629 END_IF; 34630 RETURN (retval); 34631END_FUNCTION; 34632 34633-- DIFF IN AP214 34634FUNCTION value_range_aggregate_rep_item 34635 (agg : AGGREGATE OF representation_item ) : BOOLEAN; 34636 BEGIN 34637 IF SIZEOF(QUERY (i1 <* agg| ('STEP_MERGED_CAD_SCHEMA.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 6 THEN 34638 RETURN (TRUE); 34639 ELSE 34640 RETURN (FALSE); 34641 END_IF; 34642 END; 34643END_FUNCTION; 34644 34645-- DIFF IN AP214 34646FUNCTION value_range_wr1 34647 (agg : compound_item_definition ) : BOOLEAN; 34648 BEGIN 34649 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 34650 RETURN (TRUE); 34651 ELSE 34652 RETURN (FALSE); 34653 END_IF; 34654 END; 34655END_FUNCTION; 34656 34657-- DIFF IN AP214 34658FUNCTION value_range_wr2 34659 (agg : compound_item_definition ) : BOOLEAN; 34660 BEGIN 34661 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 34662 RETURN (TRUE); 34663 ELSE 34664 RETURN (FALSE); 34665 END_IF; 34666 END; 34667END_FUNCTION; 34668 34669-- DIFF IN AP214 34670FUNCTION value_range_wr3 34671 (agg : compound_item_definition ) : BOOLEAN; 34672 BEGIN 34673 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 34674 RETURN (TRUE); 34675 ELSE 34676 RETURN (FALSE); 34677 END_IF; 34678 END; 34679END_FUNCTION; 34680 34681-- IN AP242 34682FUNCTION values_space_of 34683 (expr : generic_expression ) : maths_space; 34684 LOCAL 34685 e_prefix : STRING := 'STEP_MERGED_CAD_SCHEMA.'; 34686 typenames : SET OF STRING := TYPEOF(expr); 34687 END_LOCAL; 34688 IF schema_prefix + 'MATHS_VARIABLE' IN typenames THEN 34689 RETURN (expr\maths_variable.values_space); 34690 END_IF; 34691 IF e_prefix + 'EXPRESSION' IN typenames THEN 34692 IF e_prefix + 'NUMERIC_EXPRESSION' IN typenames THEN 34693 IF expr\numeric_expression.is_int THEN 34694 IF e_prefix + 'INT_LITERAL' IN typenames THEN 34695 RETURN (make_finite_space([ expr\int_literal.the_value ])); 34696 ELSE 34697 RETURN (the_integers); 34698 END_IF; 34699 ELSE 34700 IF e_prefix + 'REAL_LITERAL' IN typenames THEN 34701 RETURN (make_finite_space([ expr\real_literal.the_value ])); 34702 ELSE 34703 RETURN (the_reals); 34704 END_IF; 34705 END_IF; 34706 END_IF; 34707 IF e_prefix + 'BOOLEAN_EXPRESSION' IN typenames THEN 34708 IF e_prefix + 'BOOLEAN_LITERAL' IN typenames THEN 34709 RETURN (make_finite_space([ expr\boolean_literal.the_value ])); 34710 ELSE 34711 RETURN (the_booleans); 34712 END_IF; 34713 END_IF; 34714 IF e_prefix + 'STRING_EXPRESSION' IN typenames THEN 34715 IF e_prefix + 'STRING_LITERAL' IN typenames THEN 34716 RETURN (make_finite_space([ expr\string_literal.the_value ])); 34717 ELSE 34718 RETURN (the_strings); 34719 END_IF; 34720 END_IF; 34721 RETURN (?); 34722 END_IF; 34723 IF schema_prefix + 'MATHS_FUNCTION' IN typenames THEN 34724 IF expression_is_constant(expr) THEN 34725 RETURN (make_finite_space([ expr ])); 34726 ELSE 34727 RETURN (make_function_space(sc_equal, expr\maths_function.domain, sc_equal, expr\maths_function.range)); 34728 END_IF; 34729 END_IF; 34730 IF schema_prefix + 'FUNCTION_APPLICATION' IN typenames THEN 34731 RETURN (expr\function_application.func.range); 34732 END_IF; 34733 IF schema_prefix + 'MATHS_SPACE' IN typenames THEN 34734 IF expression_is_constant(expr) THEN 34735 RETURN (make_finite_space([ expr ])); 34736 ELSE 34737 RETURN (make_elementary_space(es_maths_spaces)); 34738 END_IF; 34739 END_IF; 34740 IF schema_prefix + 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN 34741 RETURN (values_space_of(expr\unary_generic_expression.operand)); 34742 END_IF; 34743 IF schema_prefix + 'COMPLEX_NUMBER_LITERAL' IN typenames THEN 34744 RETURN (make_finite_space([ expr ])); 34745 END_IF; 34746 IF schema_prefix + 'LOGICAL_LITERAL' IN typenames THEN 34747 RETURN (make_finite_space([ expr\logical_literal.lit_value ])); 34748 END_IF; 34749 IF schema_prefix + 'BINARY_LITERAL' IN typenames THEN 34750 RETURN (make_finite_space([ expr\binary_literal.lit_value ])); 34751 END_IF; 34752 IF schema_prefix + 'MATHS_ENUM_LITERAL' IN typenames THEN 34753 RETURN (make_finite_space([ expr\maths_enum_literal.lit_value ])); 34754 END_IF; 34755 IF schema_prefix + 'REAL_TUPLE_LITERAL' IN typenames THEN 34756 RETURN (make_finite_space([ expr\real_tuple_literal.lit_value ])); 34757 END_IF; 34758 IF schema_prefix + 'INTEGER_TUPLE_LITERAL' IN typenames THEN 34759 RETURN (make_finite_space([ expr\integer_tuple_literal.lit_value ])); 34760 END_IF; 34761 IF schema_prefix + 'ATOM_BASED_LITERAL' IN typenames THEN 34762 RETURN (make_finite_space([ expr\atom_based_literal.lit_value ])); 34763 END_IF; 34764 IF schema_prefix + 'MATHS_TUPLE_LITERAL' IN typenames THEN 34765 RETURN (make_finite_space([ expr\maths_tuple_literal.lit_value ])); 34766 END_IF; 34767 IF schema_prefix + 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN 34768 RETURN (drop_numeric_constraints(values_space_of(expr\partial_derivative_expression.derivand))); 34769 END_IF; 34770 IF schema_prefix + 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN 34771 RETURN (drop_numeric_constraints(values_space_of(expr\definite_integral_expression.integrand))); 34772 END_IF; 34773 RETURN (?); 34774END_FUNCTION; 34775 34776-- DIFF IN AP214 34777-- DIFF IN AP203e2 34778FUNCTION vector_difference 34779 (arg1 : vector_or_direction; 34780 arg2 : vector_or_direction ) : vector; 34781 LOCAL 34782 result : vector; 34783 res : direction; 34784 vec1 : direction; 34785 vec2 : direction; 34786 mag : REAL; 34787 mag1 : REAL; 34788 mag2 : REAL; 34789 ndim : INTEGER; 34790 END_LOCAL; 34791 IF (NOT EXISTS(arg1) OR NOT EXISTS(arg2)) OR (arg1.dim <> arg2.dim) THEN 34792 RETURN (?); 34793 ELSE 34794 BEGIN 34795 IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(arg1) THEN 34796 mag1 := arg1\vector.magnitude; 34797 vec1 := arg1\vector.orientation; 34798 ELSE 34799 mag1 := 1.0; 34800 vec1 := arg1; 34801 END_IF; 34802 IF 'STEP_MERGED_CAD_SCHEMA.VECTOR' IN TYPEOF(arg2) THEN 34803 mag2 := arg2\vector.magnitude; 34804 vec2 := arg2\vector.orientation; 34805 ELSE 34806 mag2 := 1.0; 34807 vec2 := arg2; 34808 END_IF; 34809 vec1 := normalise(vec1); 34810 vec2 := normalise(vec2); 34811 ndim := SIZEOF(vec1.direction_ratios); 34812 mag := 0.0; 34813 res := dummy_gri || direction(vec1.direction_ratios); 34814 REPEAT i := 1 TO ndim; 34815 res.direction_ratios[i] := mag1 * vec1.direction_ratios[i] - mag2 * vec2.direction_ratios[i]; 34816 mag := mag + res.direction_ratios[i] * res.direction_ratios[i]; 34817 END_REPEAT; 34818 IF mag > 0.0 THEN 34819 result := dummy_gri || vector(res, SQRT(mag)); 34820 ELSE 34821 result := dummy_gri || vector(vec1, 0.0); 34822 END_IF; 34823 END; 34824 END_IF; 34825 RETURN (result); 34826END_FUNCTION; 34827 34828-- IN AP214/AP242 34829FUNCTION ypr_index 34830 (ypr : ypr_enumeration ) : INTEGER; 34831 CASE ypr OF 34832 yaw : 34833 RETURN (1); 34834 pitch : 34835 RETURN (2); 34836 roll : 34837 RETURN (3); 34838 END_CASE; 34839 RETURN (?); 34840END_FUNCTION; 34841 34842END_SCHEMA; 34843