com.esri.arcgis.networkanalysis
Interface ITraceFlowSolverGEN

All Superinterfaces:
Serializable
All Known Implementing Classes:
TraceFlowSolver

public interface ITraceFlowSolverGEN
extends Serializable

Provides access to members that perform traces on a network.

When To Use

Use the ITraceFlowSolverGEN interface when you want to implement your own custom solver. This interface provides methods for common network tracing tasks such as find common ancestors and trace upstream.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.
In order to do any type of trace analysis through the TraceFlowSolver you need to add flags to the solver. Whether you are adding one flag or multiple flags the solver requires an array of these flags. Junction flags and edge flags are added as seperate arrays.
For example, let's say your are doing a trace from one junction flag. The first step is to create a junction flag based on a feature in your network. Each feature in your network contains the following information needed to create a flag: the UserClassID, UserID, and UserSubID.
The UserClassID, UserID, and UserSubID are taken from the feature in the geometric network which you want to create a flag on. For information on getting these attributes from a feature see the Feature object help.
For more information on creating flags see the help for INetFlag.
Once you have created the flag you need to create an array of junction flags to add to the solver. Then you can add the array to the TraceFlowSolver object by calling the PutJunctionOrigins method.
If you are planning to use a trace solver that will be considering flow direction, you need to set the TraceIndeterminateFlow property. See the help for TraceIndeterminateFlow for more information on this property.
You can now call one of the tracing methods on the ITraceFlowSolver interface.


Method Summary
 void findAccumulation(int flowMethod, int flowElements, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs, Object[] pTotalCost)
          Finds the total cost of all reachable network elements based on the specified flow method.
 void findCircuits(int flowElements, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs)
          Finds all reachable network elements that are parts of closed circuits in the network.
 void findCommonAncestors(int flowElements, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs)
          Finds all reachable network elements that are upstream from all the specified origins.
 void findFlowElements(int flowMethod, int flowElements, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs)
          Finds all reachable network elements based on the specified flow method.
 void findFlowEndElements(int flowMethod, int flowElements, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs)
          Finds all reachable network end elements based on the specified flow method.
 void findFlowUnreachedElements(int flowMethod, int flowElements, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs)
          Finds all unreachable network elements based on the flow method.
 void findPath(int flowMethod, int objFn, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs, int count, Object[][] segmentCosts)
          Finds a path between the specified origins in the network.
 void findSource(int flowMethod, int objFn, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs, int count, Object[][] segmentCosts)
          Finds a path upstream to a source or downstream to a sink, depending on the specified flow method.
 void putEdgeOrigins(IEdgeFlag[] edgeOrigins)
          Sets the starting edges for this trace solver.
 void putJunctionOrigins(IJunctionFlag[] junctionOrigins)
          Sets the starting junctions for this trace solver.
 void setTraceIndeterminateFlow(boolean rhs1)
          Indicates if directional traces include edges with indeterminate or uninitialized flow direction.
 

Method Detail

setTraceIndeterminateFlow

void setTraceIndeterminateFlow(boolean rhs1)
                               throws IOException,
                                      AutomationException
Indicates if directional traces include edges with indeterminate or uninitialized flow direction.

Remarks

The TraceIndeterminateFlow property affects the trace results of trace solvers whose FlowMethod parameter is esriFMUpstream or esriFMDownstream. If the TraceIndeterminateFlow parameter is set to False, then the trace solver will only trace on edges whose flow is determined, and only in the direction specified in the FlowMethod parameter of the trace solver. If the TraceIndeterminateFlow parameter is set to True, then the trace solver will not only trace on the aforementioned edges, but also on edges with indeterminate or uninitialized flow.

Set the TraceIndetermiateFlow property before calling any of the trace solvers.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
rhs1 - The rhs1 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putJunctionOrigins

void putJunctionOrigins(IJunctionFlag[] junctionOrigins)
                        throws IOException,
                               AutomationException
Sets the starting junctions for this trace solver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
junctionOrigins - A reference to a com.esri.arcgis.networkanalysis.IJunctionFlag array (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putEdgeOrigins

void putEdgeOrigins(IEdgeFlag[] edgeOrigins)
                    throws IOException,
                           AutomationException
Sets the starting edges for this trace solver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
edgeOrigins - A reference to a com.esri.arcgis.networkanalysis.IEdgeFlag array (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findFlowElements

void findFlowElements(int flowMethod,
                      int flowElements,
                      IEnumNetEID[] junctionEIDs,
                      IEnumNetEID[] edgeEIDs)
                      throws IOException,
                             AutomationException
Finds all reachable network elements based on the specified flow method.

Remarks

The FlowMethod parameter determines whether the trace solver traces upstream, downstream, or on all connected edges. If you would like to allow or restrict tracing on edges with indeterminate or uninitialized flow, be sure to set the TraceIndeterminateFlow property prior to calling this trace solver.

The flowElements parameter determines whether edge elements, junction elements, or both are returned by the trace solver.

The trace solver will return the traced junction and edge element IDs in the junctionEIDs and edgeEIDs parameters respectively.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
flowMethod - A com.esri.arcgis.networkanalysis.esriFlowMethod constant (in)
flowElements - A com.esri.arcgis.networkanalysis.esriFlowElements constant (in)
junctionEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
edgeEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findFlowEndElements

void findFlowEndElements(int flowMethod,
                         int flowElements,
                         IEnumNetEID[] junctionEIDs,
                         IEnumNetEID[] edgeEIDs)
                         throws IOException,
                                AutomationException
Finds all reachable network end elements based on the specified flow method.

Remarks

The FindFlowEndElements method returns those network elements stopping the trace. Network elements stopping a trace are those elements past which a trace cannot continue. These include network elements in a disabled element class (specified by INetSolver::DisableElementClass), and network elements that are connected to only one other network element.

The FlowMethod parameter determines whether the trace solver traces upstream, downstream, or on all connected edges. If you would like to allow or restrict tracing on edges with indeterminate or uninitialized flow, be sure to set the TraceIndeterminateFlow property prior to calling this trace solver.

The flowElements parameter determines whether edge elements, junction elements, or both are returned by the trace solver.

The trace solver will return the traced junction and edge element IDs in the junctionEIDs and edgeEIDs parameters respectively.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
flowMethod - A com.esri.arcgis.networkanalysis.esriFlowMethod constant (in)
flowElements - A com.esri.arcgis.networkanalysis.esriFlowElements constant (in)
junctionEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
edgeEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findPath

void findPath(int flowMethod,
              int objFn,
              IEnumNetEID[] junctionEIDs,
              IEnumNetEID[] edgeEIDs,
              int count,
              Object[][] segmentCosts)
              throws IOException,
                     AutomationException
Finds a path between the specified origins in the network.

Remarks

The FlowMethod parameter determines whether the trace solver traces upstream, downstream, or on all connected edges.

The objFn parameter specifies the objective function of the trace solver. Depending on this parameter, the trace solver will either attempt to minimize the total cost of the path, or will attempt to minimize the maximum cost of any single element in the path.

The Count is the number of path segments to be returned by the trace solver. It is equivalent to one less than the number of flags being passed into the trace solver. The Count is also the size of the array passed into the segmentCosts parameter.

The origins you place on the network using PutEdgeOrigins or PutJunctionOrigins must be either all edge origins or all junction origins. You cannot find a path among a mixture of edge and junction origins.

The trace solver will return the traced junction and edge element IDs in the junctionEIDs and edgeEIDs parameters respectively, and will return the cost of each segment in the segmentCosts array.

The traced element IDs are returned in the order that they were traced.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
flowMethod - A com.esri.arcgis.networkanalysis.esriFlowMethod constant (in)
objFn - A com.esri.arcgis.networkanalysis.esriShortestPathObjFn constant (in)
junctionEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
edgeEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
count - The count (in)
segmentCosts - A Variant (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findCircuits

void findCircuits(int flowElements,
                  IEnumNetEID[] junctionEIDs,
                  IEnumNetEID[] edgeEIDs)
                  throws IOException,
                         AutomationException
Finds all reachable network elements that are parts of closed circuits in the network.

Remarks

The flowElements parameter determines whether edge elements, junction elements, or both are returned by the trace solver.

The trace solver will return the traced junction and edge element IDs in the junctionEIDs and edgeEIDs parameters respectively.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
flowElements - A com.esri.arcgis.networkanalysis.esriFlowElements constant (in)
junctionEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
edgeEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findCommonAncestors

void findCommonAncestors(int flowElements,
                         IEnumNetEID[] junctionEIDs,
                         IEnumNetEID[] edgeEIDs)
                         throws IOException,
                                AutomationException
Finds all reachable network elements that are upstream from all the specified origins.

Remarks

The flowElements parameter determines whether edge elements, junction elements, or both are returned by the trace solver.

The trace solver will return the traced junction and edge element IDs in the junctionEIDs and edgeEIDs parameters respectively.

If you would like to allow or restrict tracing on edges with indeterminate or uninitialized flow, be sure to set the TraceIndeterminateFlow property prior to calling this trace solver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
flowElements - A com.esri.arcgis.networkanalysis.esriFlowElements constant (in)
junctionEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
edgeEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findFlowUnreachedElements

void findFlowUnreachedElements(int flowMethod,
                               int flowElements,
                               IEnumNetEID[] junctionEIDs,
                               IEnumNetEID[] edgeEIDs)
                               throws IOException,
                                      AutomationException
Finds all unreachable network elements based on the flow method.

Remarks

The FlowMethod parameter determines whether the trace solver traces upstream, downstream, or on all connected edges. If you would like to allow or restrict tracing on edges with indeterminate or uninitialized flow, be sure to set the TraceIndeterminateFlow property prior to calling this trace solver.

The flowElements parameter determines whether edge elements, junction elements, or both are returned by the trace solver.

The trace solver will return the traced junction and edge element IDs in the junctionEIDs and edgeEIDs parameters respectively.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
flowMethod - A com.esri.arcgis.networkanalysis.esriFlowMethod constant (in)
flowElements - A com.esri.arcgis.networkanalysis.esriFlowElements constant (in)
junctionEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
edgeEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findSource

void findSource(int flowMethod,
                int objFn,
                IEnumNetEID[] junctionEIDs,
                IEnumNetEID[] edgeEIDs,
                int count,
                Object[][] segmentCosts)
                throws IOException,
                       AutomationException
Finds a path upstream to a source or downstream to a sink, depending on the specified flow method.

Remarks

The FlowMethod parameter determines whether the trace solver traces upstream, downstream, or on all connected edges. If you would like to allow or restrict tracing on edges with indeterminate or uninitialized flow, be sure to set the TraceIndeterminateFlow property prior to calling this trace solver.

The objFn parameter specifies the objective function of the trace solver. Depending on this parameter, the trace solver will either attempt to minimize the total cost of the paths to the source, or will attempt to minimize the maximum cost of any single element in the paths to the source.

The Count is the number of path segments to be returned by the trace solver. It is equivalent to the number of flags being passed into the trace solver. The Count is also the size of the array passed into the segmentCosts parameter.

The trace solver will return the traced junction and edge element IDs in the junctionEIDs and edgeEIDs parameters respectively, and will return the cost of each segment in the segmentCosts array.

The traced element IDs are returned in the order that they were traced.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
flowMethod - A com.esri.arcgis.networkanalysis.esriFlowMethod constant (in)
objFn - A com.esri.arcgis.networkanalysis.esriShortestPathObjFn constant (in)
junctionEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
edgeEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
count - The count (in)
segmentCosts - A Variant (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

findAccumulation

void findAccumulation(int flowMethod,
                      int flowElements,
                      IEnumNetEID[] junctionEIDs,
                      IEnumNetEID[] edgeEIDs,
                      Object[] pTotalCost)
                      throws IOException,
                             AutomationException
Finds the total cost of all reachable network elements based on the specified flow method.

Remarks

The FlowMethod parameter determines whether the trace solver traces upstream, downstream, or on all connected edges. If you would like to allow or restrict tracing on edges with indeterminate or uninitialized flow, be sure to set the TraceIndeterminateFlow property prior to calling this trace solver.

The flowElements parameter determines whether edge elements, junction elements, or both are returned by the trace solver.

The trace solver will return the traced junction and edge element IDs in the junctionEIDs and edgeEIDs parameters respectively, and will return the total cost of the traced elements in the pTotalCost parameter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
flowMethod - A com.esri.arcgis.networkanalysis.esriFlowMethod constant (in)
flowElements - A com.esri.arcgis.networkanalysis.esriFlowElements constant (in)
junctionEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
edgeEIDs - A reference to a com.esri.arcgis.geodatabase.IEnumNetEID (out: use single element array)
pTotalCost - A Variant (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.