(* SCHEMA ship_moulded_form_schema; *)
RULE surface_with_identification_assignment
FOR (applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF surface := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := ['surface with identifier'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
(* get all instances of surface that have class id *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set |
j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE; -- surface_with_identification_assignment
Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:16:47-04:00