com.esri.arcgis.networkanalysis
Interface ITraceFlowSolver

All Superinterfaces:
Serializable
All Known Subinterfaces:
ITraceFlowSolver2
All Known Implementing Classes:
ITraceFlowSolver2Proxy, ITraceFlowSolverProxy

public interface ITraceFlowSolver
extends Serializable

Provides access to members that perform basic traces on a network.

Superseded By

ITraceFlowSolver2

When To Use

Use the ITraceFlowSolver 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.

See Also:
INetSolverWeights, ITraceFlowSolver,

Not all members are callable from Java. Please use ITraceFlowSolverGEN instead.


Method Summary
 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 findPath(int flowMethod, int objFn, IEnumNetEID[] junctionEIDs, IEnumNetEID[] edgeEIDs, int count, Object[] segmentCosts)
          Finds a path between the specified origins in the network.
 void putEdgeOrigins(int edgeOriginCount, IEdgeFlag edgeOrigins)
          Sets the starting edges for this trace solver.
 void putJunctionOrigins(int junctionOriginCount, 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.

Supported Platforms

Windows, Solaris, Linux

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

putJunctionOrigins

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

This method is not callable from Java. Please use ITraceFlowSolverGEN::PutJunctionOrigins.

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

putEdgeOrigins

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

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

This method is not callable from Java. Please use ITraceFlowSolverGEN::PutEdgeOrigins.

Parameters:
edgeOriginCount - The edgeOriginCount (in)
edgeOrigins - A reference to a com.esri.arcgis.networkanalysis.IEdgeFlag (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.

Supported Platforms

Windows, Solaris, Linux

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.

Supported Platforms

Windows, Solaris, Linux

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.

Supported Platforms

Windows, Solaris, Linux

This method is not callable from Java. Please use ITraceFlowSolverGEN::FindPath.

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.

Supported Platforms

Windows, Solaris, Linux

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.

Supported Platforms

Windows, Solaris, Linux

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.