7.15 SDO_NFE.GET_LINES_MATCH_LP_RULE

Format

SDO_NFE.GET_LINES_MATCH_LP_RULE(
     model_id    IN SDO_NUMBER,
     lp_rule_id  IN NUMBER,
     lines       IN SDO_INTERACT_LINE_FEAT_ARRAY,
     ) RETURN DBMS_SQL.NUMBER_TABLE;

Description

Given an set of line features, calculates the group of them that match a connectivity line-point rule. Returns a DBMS_SQL.NUMBER_TABLE object with the indexes of the lines in the input array that match the line-point rule.

Parameters

model_id

NFE model identifier.

lp_rule_id
Connectivity line-point rule identifier. Must exist in the LINE_POINT_RULE table.
lines
Array of line features where the search will take place. (The SDO_INTERACT_LINE_FEAT_ARRAY type is described in Data Types Used for NFE Connectivity Rules.)

Usage Notes

This function is mainly used after the SDO_NFE.GET_INTERACTION_GROUPS function, which returned a group of mixed line features where some line features matched a specific connectivity rule and some did not.

Examples

The following example finds the lines that meet a connectivity line-point rule from interacting groups.

DECLARE
  model_id    NUMBER := 1;
  lp_rule_id  NUMBER := 1;
  lines       SDO_INTERACT_LINE_FEAT_ARRAY;
  match_lines dbms_sql.NUMBER_TABLE;
  inter_grps  SDO_INTERACTION_ARRAY;
BEGIN
  -- find interaction groups
  inter_grps := sdo_nfe.get_interaction_groups( model_id, sdo_nfe.RULE_TYPE_LINE_LINE, 1 );

  FOR i IN 1..inter_grps.count loop
    lines := inter_grps(i).lines;
    match_lines := sdo_nfe.get_lines_match_lp_rule( model_id, lp_rule_id, lines );
  END loop;

END;
/