This document is archived and information here might be outdated. Recommended version. |
Provides access to members that perform traces on a network.
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.
Name | Description | |
---|---|---|
FindAccumulation | Finds the total cost of all reachable network elements based on the specified flow method. | |
FindCircuits | Finds all reachable network elements that are parts of closed circuits in the network. | |
FindCommonAncestors | Finds all reachable network elements that are upstream from all the specified origins. | |
FindFlowElements | Finds all reachable network elements based on the specified flow method. | |
FindFlowEndElements | Finds all reachable network end elements based on the specified flow method. | |
FindFlowUnreachedElements | Finds all unreachable network elements based on the flow method. | |
FindPath | Finds a path between the specified origins in the network. | |
FindSource | Finds a path upstream to a source or downstream to a sink, depending on the specified flow method. | |
PutEdgeOrigins | Sets the starting edges for this trace solver. | |
PutJunctionOrigins | Sets the starting junctions for this trace solver. | |
TraceIndeterminateFlow | Indicates if directional traces include edges with indeterminate or uninitialized flow direction. |
Classes | Description |
---|---|
TraceFlowSolver | A collection of basic trace flow solvers used to analyze networks. |
// Establish the trace flow solver
ITraceFlowSolverGEN traceFlowSolver = new TraceFlowSolverClass() as ITraceFlowSolverGEN;
INetSolver netSolver = traceFlowSolver as INetSolver;
netSolver.SourceNetwork = myNetwork;
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.
You can create a junction flag by using the following code:
INetFlag junctionFlag = new JunctionFlagClass() as INetFlag;
junctionFlag.UserClassID = userClassID;
junctionFlag.UserID = userID;
junctionFlag.UserSubID = userSubID;
For more information on creating flags see the help for INetFlag. IJunctionFlag[] junctionFlags = new IJunctionFlag[1];
//Add the flag to the array
junctionFlags[0] = junctionFlag as IJunctionFlag;
traceFlowSolver.PutJunctionOrigins(junctionFlags);
traceFlowSolver.TraceIndeterminateFlow = true;
' Establish the trace flow solver
Dim traceFlowSolver As ITraceFlowSolverGEN = New TraceFlowSolver
Dim netSolver As INetSolver = CType(traceFlowSolver, INetSolver)
netSolver.SourceNetwork = myNetwork
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.
You can create a junction flag by using the following code:
Dim junctionFlag As INetFlag = New JunctionFlag
junctionFlag.UserClassID = userClassID
junctionFlag.UserID = userID
junctionFlag.UserSubID = userSubID
For more information on creating flags see the help for INetFlag. Dim junctionFlags(0) As IJunctionFlag
'Add the flag to the array
junctionFlags(0) = CType(junctionFlag, IJunctionFlag)
traceFlowSolver.PutJunctionOrigins(junctionFlags)
traceFlowSolver.TraceIndeterminateFlow = True