RULE product_definition_shape_for_hull_cross_section_design_definition

(* 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

[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:17:03-04:00