FUNCTION assembly_shape_is_defined

(* SCHEMA structural_analysis_design; *)
  FUNCTION assembly_shape_is_defined(
               assy: next_assembly_usage_occurrence
      ): BOOLEAN;

    LOCAL
      srr_set   : SET OF shape_representation_relationship := [];
      i         : INTEGER;
      j         : INTEGER;
      sdr_set   : SET OF shape_definition_representation := [];
      sdr_a_set : SET OF shape_definition_representation := [];
      pr1_set   : SET OF property_definition := [];
      pdrel_set : SET OF product_definition_relationship := [];
      pr2_set   : SET OF property_definition := [];
    END_LOCAL;
    pr1_set := bag_to_set(USEDIN(assy.related_product_definition,
        'STRUCTURAL_ANALYSIS_DESIGN.PROPERTY_DEFINITION.' + 'DEFINITION'));
    REPEAT i := 1 TO HIINDEX(pr1_set) BY 1;
      sdr_set := sdr_set + QUERY ( pdr <* bag_to_set(USEDIN(pr1_set[i],
          'STRUCTURAL_ANALYSIS_DESIGN.' + 
          'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | ((
          'STRUCTURAL_ANALYSIS_DESIGN.' + 'SHAPE_DEFINITION_REPRESENTATION') 
          IN TYPEOF(pdr)) );
    END_REPEAT;
    pdrel_set := bag_to_set(USEDIN(assy.related_product_definition,
        'STRUCTURAL_ANALYSIS_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.' + 
        'RELATED_PRODUCT_DEFINITION'));
    REPEAT j := 1 TO HIINDEX(pdrel_set) BY 1;
      pr2_set := pr2_set + bag_to_set(USEDIN(pdrel_set[j],
          'STRUCTURAL_ANALYSIS_DESIGN.PROPERTY_DEFINITION.' + 'DEFINITION'));
    END_REPEAT;
    REPEAT i := 1 TO HIINDEX(pr2_set) BY 1;
      sdr_set := sdr_set + QUERY ( pdr <* bag_to_set(USEDIN(pr2_set[i],
          'STRUCTURAL_ANALYSIS_DESIGN.' + 
          'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | ((
          'STRUCTURAL_ANALYSIS_DESIGN.' + 'SHAPE_DEFINITION_REPRESENTATION') 
          IN TYPEOF(pdr)) );
    END_REPEAT;
    pr1_set := bag_to_set(USEDIN(assy.relating_product_definition,
        'STRUCTURAL_ANALYSIS_DESIGN.PROPERTY_DEFINITION.' + 'DEFINITION'));
    REPEAT i := 1 TO HIINDEX(pr1_set) BY 1;
      sdr_a_set := sdr_a_set + QUERY ( pdr <* bag_to_set(USEDIN(pr1_set[i],
          'STRUCTURAL_ANALYSIS_DESIGN.' + 
          'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | ((
          'STRUCTURAL_ANALYSIS_DESIGN.' + 'SHAPE_DEFINITION_REPRESENTATION') 
          IN TYPEOF(pdr)) );
    END_REPEAT;
    IF (SIZEOF(sdr_set) > 0) AND (SIZEOF(sdr_a_set) > 0) THEN
      REPEAT i := 1 TO HIINDEX(sdr_set) BY 1;
        srr_set := QUERY ( rr <* bag_to_set(USEDIN(sdr_set[i]\
            property_definition_representation.used_representation,
            'STRUCTURAL_ANALYSIS_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2'))
             | (('STRUCTURAL_ANALYSIS_DESIGN.' + 
            'SHAPE_REPRESENTATION_RELATIONSHIP') IN TYPEOF(rr)) );
        IF SIZEOF(srr_set) > 0 THEN
          REPEAT j := 1 TO HIINDEX(srr_set) BY 1;
            IF SIZEOF(QUERY ( pdr <* bag_to_set(USEDIN(srr_set[j]\
                representation_relationship.rep_1,
                'STRUCTURAL_ANALYSIS_DESIGN.' + 
                'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
                 | (('STRUCTURAL_ANALYSIS_DESIGN.' + 
                'SHAPE_DEFINITION_REPRESENTATION') IN TYPEOF(pdr)) ) * 
                sdr_a_set) >= 1 THEN
              IF SIZEOF(QUERY ( cdsr <* bag_to_set(USEDIN(srr_set[j],
                  'STRUCTURAL_ANALYSIS_DESIGN.' + 
                  'CONTEXT_DEPENDENT_SHAPE_REPRESENTATION.' + 
                  'REPRESENTATION_RELATION')) | (NOT (cdsr.
                  represented_product_relation.definition :=: assy)) )) > 0
                   THEN
                RETURN(FALSE);
              END_IF;
            END_IF;
          END_REPEAT;
        END_IF;
      END_REPEAT;
    END_IF;
    RETURN(TRUE);

  END_FUNCTION; -- assembly_shape_is_defined

Referenced By

Defintion assembly_shape_is_defined is references by the following definitions:
DefinitionType
 coordinated_assembly_and_shape RULE


[Top Level Definitions] [Exit]

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