RULE restrict_product_definitions_for_product_definition_relationship

(* SCHEMA step_merged_ap_schema; *)
-- IN AP214
RULE restrict_product_definitions_for_product_definition_relationship FOR (assembly_component_usage, product_definition_relationship );
   WHERE
      wr1:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'definition usage') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part occurrence')))) = 0;
      wr2:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name IN [ 'geometrical relationship', 'definition replacement' ]) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part definition')))) = 0;
      wr3:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (('STEP_MERGED_AP_SCHEMA.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part definition'))) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'physical occurrence') OR (pdr.related_product_definition.frame_of_reference.name <> 'physical occurrence')))) = 0;
      wr4:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (('STEP_MERGED_AP_SCHEMA.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) AND (pdr.name = 'selected instance usage')) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part definition')))) = 0;
      wr5:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'physical realization') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'physical occurrence')))) = 0;
      wr6:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'physical occurrence usage') AND ((NOT ('STEP_MERGED_AP_SCHEMA.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)) OR (pdr.relating_product_definition.frame_of_reference.name <> 'physical occurrence')) OR (pdr.related_product_definition.frame_of_reference.name <> 'physical occurrence')))) = 0;
      wr7:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'solution alternative definition') AND (NOT (pdr.relating_product_definition.frame_of_reference.name IN [ 'alternative definition', 'functional definition', 'conceptual definition' ]) OR (pdr.related_product_definition.frame_of_reference.name <> 'alternative definition')))) = 0;
      wr8:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'collection membership') AND (((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part occurrence')) OR (SIZEOF(QUERY (pdca <* USEDIN(pdr.relating_product_definition, 'STEP_MERGED_AP_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION')| (pdca.role.name = 'part definition type') AND (pdca.frame_of_reference.name = 'collection definition'))) = 0)))) = 0;
      wr9:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'design constraint association') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'design constraint definition') OR NOT (pdr.related_product_definition.frame_of_reference.name IN [ 'alternative definition', 'functional definition', 'conceptual definition' ])))) = 0;
      wr10:
         SIZEOF(QUERY (pdr <* product_definition_relationship| (pdr.name = 'final specification') AND ((NOT (pdr.relating_product_definition.name IN [ 'final', 'technical final', 'supplier final', 'technical supplier final' ]) OR (pdr.relating_product_definition.frame_of_reference.name <> 'alternative definition')) OR NOT (pdr.related_product_definition.frame_of_reference.name IN [ 'part definition', 'physical occurrence' ])))) = 0;
END_RULE;

[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2024-09-06T14:00:33-04:00