(* SCHEMA step_ship_schema; *)
-- ONLY IN AP218
RULE panel_system_optionally_contains_specified_classes FOR (group,
applied_classification_assignment, applied_group_assignment);
LOCAL
violation : LOGICAL := FALSE;
cl_ass : SET OF applied_classification_assignment := [];
gr_ass : SET OF applied_group_assignment := [];
pd : SET OF product_definition := [];
groups : SET OF group := [];
END_LOCAL;
cl_ass := QUERY ( i <* applied_classification_assignment | ((i.role.
name = 'class membership') AND (i.assigned_class.name =
'panel system')) );
REPEAT i := 1 TO HIINDEX(cl_ass) BY 1;
pd := pd + cl_ass[i].items;
END_REPEAT;
gr_ass := QUERY ( i <* applied_group_assignment | (i.role.name =
'equivalence') );
REPEAT i := 1 TO HIINDEX(gr_ass) BY 1;
REPEAT j := 1 TO HIINDEX(gr_ass[i].items) BY 1;
IF gr_ass[i].items[j] IN pd THEN
groups := groups + gr_ass[i].assigned_group;
END_IF;
END_REPEAT;
END_REPEAT;
gr_ass := QUERY ( i <* applied_group_assignment | ((SIZEOF(i.items) <>
0) AND (i.role.name = 'item structure') AND (i.assigned_group IN
groups)) );
REPEAT i := 1 TO HIINDEX(gr_ass) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( inst <* gr_ass[i].items | ('plate' IN
which_class(inst)) )) = 0;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE;
Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2007-09-24T12:42:21-04:00