com.esri.arcgis.geodatabase
Interface IUtilityNetworkGEN

All Superinterfaces:
INetwork, java.io.Serializable
All Known Implementing Classes:
IUtilityNetworkGENProxy, UtilityNetwork

public interface IUtilityNetworkGEN
extends INetwork, java.io.Serializable

Provides access to members that get and set flow direction in a utility network.

Product Availability

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

Remarks

The only elements in a network that can have flow are edge elements. Junction elements do not have flow.

Flow is maintained in the logical network and not the geometric network. Unlike creating flags, which is done on a feature in the geometric network, changing flow direction on individual elements requires that you directly manipulate the logical network.

This operation requires that you make the network editable. You can do this either through an edit session, using the Editor, or you can use the IWorkspaceEdit interface to edit the workspace of the logical network.


Method Summary
 void establishFlowDirection(int[] sourceEIDs, int[] sinkEIDs)
          Sets the flow direction of all edge elements based on the placement of sources and sinks.
 int getFlowDirection(int edgeEID)
          Returns the flow direction of the specified edge element.
 boolean isValidFlowDirection()
          Indicates if the flow direction is valid for this utility network.
 void partialEstablishFlowDirection(int[] sourceEIDs, int[] sinkEIDs)
          Sets the flow direction of all reachable edge elements based on the placement of sources and sinks.
 void setFlowDirection(int edgeEID, int flowDirection)
          Sets the flow direction for the specified edge element.
 
Methods inherited from interface com.esri.arcgis.geodatabase.INetwork
createForwardStar, createNetBrowser, getEdgeCount, getJunctionCount, getMaxDegree, getMaxTurn, getStatus, getTurnCount
 

Method Detail

isValidFlowDirection

public boolean isValidFlowDirection()
                             throws java.io.IOException,
                                    AutomationException
Indicates if the flow direction is valid for this utility network.

Remarks

ValidFlowDirection specifies whether the logical network has flow direction defined on it.  Use EstablishFlowDirection on this same interface to set the flow direction.

In this release, ValidFlowDirection is not implemented -- for now, this property always returns False.

Returns:
The pValidFlowDirection
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFlowDirection

public int getFlowDirection(int edgeEID)
                     throws java.io.IOException,
                            AutomationException
Returns the flow direction of the specified edge element.

Remarks

GetFlowDirection returns the flow direction for the specified edge element.  Possible flow directions are (with and against values are in relation to the digitized direction of the element).

esriFDAgainstFlow

esriFDIndeterminate

esriFDUninitialized

esriFDWithFlow

Parameters:
edgeEID - The edgeEID (in)
Returns:
A com.esri.arcgis.geodatabase.esriFlowDirection constant
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFlowDirection

public void setFlowDirection(int edgeEID,
                             int flowDirection)
                      throws java.io.IOException,
                             AutomationException
Sets the flow direction for the specified edge element.

Parameters:
edgeEID - The edgeEID (in)
flowDirection - A com.esri.arcgis.geodatabase.esriFlowDirection constant (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

establishFlowDirection

public void establishFlowDirection(int[] sourceEIDs,
                                   int[] sinkEIDs)
                            throws java.io.IOException,
                                   AutomationException
Sets the flow direction of all edge elements based on the placement of sources and sinks.

Remarks

EstablishFlowDirection will set the flow direction for the entire network based on the input sources (starting points) and/or sinks (collection points).  In the majority of cases your network will have either sources or sinks, but not both.  Having both sources and sinks in your network will often lead to indeterminate flow on the edge elements.  Any edge elements that cannot be reached from the specified sources and/or sinks will have uninitialized flow.

The flow direction established on the edges will be based on these possible values:

esriFDAgainstFlow
esriFDIndeterminate
esriFDUninitialized
esriFDWithFlow

This operation requires that you make the network editable. You can do this either through an edit session using the Editor, or you can use the IWorkspaceEdit interface to edit the workspace of the logical network.

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

partialEstablishFlowDirection

public void partialEstablishFlowDirection(int[] sourceEIDs,
                                          int[] sinkEIDs)
                                   throws java.io.IOException,
                                          AutomationException
Sets the flow direction of all reachable edge elements based on the placement of sources and sinks.

Remarks

PartialEstablishFlowDirection will set the flow direction for the network based on the input sources (starting points) and/or sinks (collection points).  In the majority of cases your network will have either sources or sinks, but not both.  Having both sources and sinks in your network will often lead to indeterminate flow on the edge elements.

PartialEstablishFlowDirection is very similar to IUtilityNetworkGEN::EstablishFlowDirection.  The difference is in those edge elements that cannot be reached from the specified sources and/or sinks.  In EstablishFlowDirection, these edges will be set to uninitialized flow.  In PartialEstablishFlowDirection, these unreachable edges will retain their original flow direction value.

The flow direction established on the edges will be based on these possible values:

esriFDAgainstFlow
esriFDIndeterminate
esriFDUninitialized
esriFDWithFlow

 

This operation requires that you make the network editable. You can do this either through an edit session using the Editor, or you can use the IWorkspaceEdit interface to edit the workspace of the logical network.

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