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:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:15:08-04:00