FUNCTION find_shape_representation_of_shape_aspect
(item : shape_aspect) : SET [0:?] OF shape_representation;
LOCAL local_p_d: SET OF property_definition:= []; local_s_d_r: SET OF shape_definition_representation := []; local_s_d_r2: BAG OF shape_definition_representation := []; local_s_r: SET OF shape_representation := []; i : INTEGER; END_LOCAL; -- find property_definition representing the shape_aspect local_p_d := bag_to_set (USEDIN (item, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); -- find shape_definition_representations refereing TO the local_p_d REPEAT i := 1 TO HIINDEX (local_p_d); local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN (local_p_d[i], 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)); END_REPEAT; local_s_d_r := bag_to_set (local_s_d_r2); REPEAT i := 1 TO HIINDEX (local_s_d_r); IF('PRODUCT_PROPERTY_REPRESENTATION_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF (local_s_d_r[i].used_representation)) THEN local_s_r := local_s_r + local_s_d_r[i].used_representation; END_IF; END_REPEAT; RETURN (local_s_r); END_FUNCTION; -- find_shape_representation_of_shape_aspect
|