RULE restrict_product_definitions_for_product_definition_relationship FOR (assembly_component_usage, product_definition_relationship); WHERE wr1: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'definition usage' ) AND ( ( pdr. relating_product_definition.frame_of_reference. name<> 'part definition' ) OR ( pdr. related_product_definition.frame_of_reference. name<> 'part occurrence' ) ) ) ) =0; wr2: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name IN [ 'geometrical relationship' , 'definition replacement' ] ) AND ( ( pdr. relating_product_definition.frame_of_reference. name<> 'part definition' ) OR ( pdr. related_product_definition.frame_of_reference. name<> 'part definition' ) ) ) ) =0; wr3: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( 'AUTOMOTIVE_DESIGN.'+ 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF ( pdr ) ) AND ( ( pdr. relating_product_definition.frame_of_reference. name<> 'part definition' ) OR ( pdr. related_product_definition.frame_of_reference. name<> 'part definition' ) ) AND ( ( pdr. relating_product_definition.frame_of_reference. name<> 'physical occurrence' ) OR ( pdr. related_product_definition.frame_of_reference. name<> 'physical occurrence' ) ) ) ) =0; wr4: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( 'AUTOMOTIVE_DESIGN.'+ 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF ( pdr ) ) AND ( pdr. name = 'selected instance usage' ) AND ( ( pdr. relating_product_definition.frame_of_reference. name<> 'part definition' ) OR ( pdr. related_product_definition.frame_of_reference. name<> 'part definition' ) ) ) ) =0; wr5: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'physical realization' ) AND ( ( pdr. relating_product_definition.frame_of_reference. name<> 'part 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 ( 'AUTOMOTIVE_DESIGN.'+ 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF ( pdr ) ) OR ( pdr. relating_product_definition.frame_of_reference. name<> 'physical occurrence' ) OR ( pdr. related_product_definition.frame_of_reference. name<> 'physical occurrence' ) ) ) ) =0; wr7: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'solution alternative definition' ) AND ( NOT ( pdr. relating_product_definition.frame_of_reference. name IN [ 'alternative definition' , 'functional definition' , 'conceptual definition' ] ) OR ( pdr. related_product_definition.frame_of_reference. name<> 'alternative definition' ) ) ) ) =0; wr8: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'collection membership' ) AND ( ( pdr. relating_product_definition.frame_of_reference. name<> 'part definition' ) OR ( pdr. related_product_definition.frame_of_reference. name<> 'part occurrence' ) OR ( SIZEOF ( QUERY ( pdca <* USEDIN ( pdr. relating_product_definition , 'AUTOMOTIVE_DESIGN.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION' ) | ( pdca. role.name = 'part definition type' ) AND ( pdca. frame_of_reference.name = 'collection definition' ) ) ) =0 ) ) ) ) =0; wr9: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'design constraint association' ) AND ( ( pdr. relating_product_definition.frame_of_reference. name<> 'design constraint definition' ) OR NOT ( pdr. related_product_definition.frame_of_reference. name IN [ 'alternative definition' , 'functional definition' , 'conceptual definition' ] ) ) ) ) =0; wr10: SIZEOF ( QUERY ( pdr <* product_definition_relationship | ( pdr. name = 'final specification' ) AND ( NOT ( pdr. relating_product_definition.name IN ['final' , 'technical final' , 'supplier final' , 'technical supplier final' ] ) OR ( pdr. relating_product_definition.frame_of_reference. name<> 'alternative definition' ) OR NOT ( pdr. related_product_definition.frame_of_reference.name IN [ 'part definition' , 'physical occurrence' ] ) ) ) ) =0; END_RULE; -- restrict_product_definitions_for_product_definition_relationship |
public class RRestrict_product_definitions_for_product_definition_relationship public int rWr10(SdaiContext _context) public int rWr9(SdaiContext _context) public int rWr8(SdaiContext _context) public int rWr7(SdaiContext _context) public int rWr6(SdaiContext _context) public int rWr5(SdaiContext _context) public int rWr4(SdaiContext _context) public int rWr3(SdaiContext _context) public int rWr2(SdaiContext _context) public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |