(* SCHEMA step_merged_ap_schema; *)
-- IN AP238 STEP-NC/AP242
RULE valid_datum_geometry_correlation FOR (datum, geometric_item_specific_usage, geometric_representation_item );
LOCAL
pass : BOOLEAN := TRUE;
gisu_cgr_set : SET OF geometric_item_specific_usage := [];
gisu_set : SET OF geometric_item_specific_usage := [];
gisu_tcgr_set : SET OF geometric_item_specific_usage := [];
END_LOCAL;
REPEAT i := 1 TO HIINDEX(datum);
gisu_cgr_set := bag_to_set(QUERY (gcs <* USEDIN(datum[i], 'STEP_MERGED_AP_SCHEMA.GEOMETRIC_ITEM_SPECIFIC_USAGE.DEFINITION')| 'STEP_MERGED_AP_SCHEMA.CONSTRUCTIVE_GEOMETRY_REPRESENTATION' IN TYPEOF(gcs\geometric_item_specific_usage.used_representation)));
IF SIZEOF(gisu_cgr_set) > 1 THEN
pass := FALSE;
END_IF;
gisu_tcgr_set := bag_to_set(QUERY (tgcs <* USEDIN(datum[i], 'STEP_MERGED_AP_SCHEMA.GEOMETRIC_ITEM_SPECIFIC_USAGE.DEFINITION')| 'STEP_MERGED_AP_SCHEMA.TESSELLATED_CONSTRUCTIVE_GEOMETRY_REPRESENTATION' IN TYPEOF(tgcs\geometric_item_specific_usage.used_representation)));
IF SIZEOF(gisu_tcgr_set) > 1 THEN
pass := FALSE;
END_IF;
gisu_set := bag_to_set(USEDIN(datum[i], 'STEP_MERGED_AP_SCHEMA.GEOMETRIC_ITEM_SPECIFIC_USAGE.DEFINITION'));
REPEAT j := 1 TO HIINDEX(gisu_set);
CASE TRUE OF
'STEP_MERGED_AP_SCHEMA.CONSTRUCTIVE_GEOMETRY_REPRESENTATION' IN TYPEOF(gisu_set[i]\geometric_item_specific_usage.used_representation) :
BEGIN
IF SIZEOF([ 'STEP_MERGED_AP_SCHEMA.LINE', 'STEP_MERGED_AP_SCHEMA.POINT', 'STEP_MERGED_AP_SCHEMA.PLANE', 'STEP_MERGED_AP_SCHEMA.LINE_AND_POINT_ON_PLANE', 'STEP_MERGED_AP_SCHEMA.LINE_ON_PLANE_PCURVE', 'STEP_MERGED_AP_SCHEMA.POINT_ON_LINE', 'STEP_MERGED_AP_SCHEMA.POINT_ON_PLANE' ] * TYPEOF(gisu_set[i]\geometric_item_specific_usage.identified_item)) = 1 THEN
pass := TRUE;
END_IF;
END;
OTHERWISE :
pass := FALSE;
END_CASE;
CASE TRUE OF
'STEP_MERGED_AP_SCHEMA.TESSELLATED_CONSTRUCTIVE_GEOMETRY_REPRESENTATION' IN TYPEOF(gisu_set[i]\geometric_item_specific_usage.used_representation) :
BEGIN
IF SIZEOF([ 'STEP_MERGED_AP_SCHEMA.PLACEMENT', 'STEP_MERGED_AP_SCHEMA.TESSELLATED_CURVE_SET', 'STEP_MERGED_AP_SCHEMA.TESSELLATED_EDGE', 'STEP_MERGED_AP_SCHEMA.TESSELLATED_FACE', 'STEP_MERGED_AP_SCHEMA.TESSELLATED_SURFACE_SET', 'STEP_MERGED_AP_SCHEMA.TESSELLATED_VERTEX' ] * TYPEOF(gisu_set[i]\geometric_item_specific_usage.identified_item)) = 1 THEN
pass := TRUE;
END_IF;
END;
OTHERWISE :
pass := FALSE;
END_CASE;
END_REPEAT;
END_REPEAT;
WHERE
WR1:
pass;
END_RULE;
Generated by STEP Tools® EXPRESS to HTML Converter
2026-09-02T09:08:05-04:00