(* SCHEMA ship_structures_schema; *)
RULE product_definition_shape_for_hull_cross_section_design_definition FOR (
product_definition);
LOCAL
gr_ass_set : SET OF applied_group_assignment := [];
violation : LOGICAL := FALSE;
t1_set1 : SET OF product_definition_shape := [];
t1_set2 : SET OF product_definition_shape := [];
t2_set : SET OF product_definition := [];
END_LOCAL;
t2_set := QUERY ( all_t2_inst <* product_definition | (
'hull cross section' IN which_class(all_t2_inst)) );
REPEAT i := 1 TO HIINDEX(t2_set) BY 1 WHILE NOT violation;
t1_set1 := QUERY ( pd <* bag_to_set(USEDIN(t2_set[i],
'SHIP_STRUCTURES_SCHEMA.PROPERTY_DEFINITION.DEFINITION')) | (
'SHIP_STRUCTURES_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) );
t1_set2 := QUERY ( t1_inst1 <* t1_set1 | (
'hull cross section design definition' IN which_class(t1_inst1)) );
REPEAT j := 1 TO HIINDEX(t1_set2) BY 1;
gr_ass_set := QUERY ( aga <* bag_to_set(USEDIN(t1_set2[j],
'SHIP_STRUCTURES_SCHEMA.APPLIED_GROUP_ASSIGNMENT.ITEMS')) | ((
aga.role.name = 'versions') AND ('version history' IN
which_class(aga.assigned_group))) );
END_REPEAT;
violation := SIZEOF(gr_ass_set) > 1;
gr_ass_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_shape_for_hull_cross_section_design_definition
Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:17:03-04:00