com.esri.arcgis.geodatabase
Interface IGeometricNetwork

All Superinterfaces:
IGraph, java.io.Serializable
All Known Implementing Classes:
GeometricNetwork, IGeometricNetworkProxy

public interface IGeometricNetwork
extends IGraph, java.io.Serializable

Provides access to members that manage properties and elements of a geometric network.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

When To Use

Use the IGeometricNetwork interface to return general geometric network information.

Remarks

A geometric network is a collection of feature classes that participate in a network relationship. Each feature class has a topological role in the network and a network may have multiple feature classes in the same role. A feature dataset may have multiple networks but a feature class can only belong to one network. Every geometric network has an associated logical network.

The NetworkLoader object should be used for creating or building of geometric networks, in place of the GeometricNetwork object.

If you need to access the logical network directly for doing such things as tracing or navigating the network using a forward star, etc see the Network object help.


Method Summary
 void addJunctionWithSubsumption(ISimpleJunctionFeature pJunction, int junctionEID, ISimpleJunctionFeature pSubsumedJunction)
          Add a new junction feature to the network by replacing existing junction.
 void addRule(IConnectivityRule rule)
          Adds the constraint to the set of connectivity rules.
 ISimpleJunctionFeature createOrphanFeature(IPoint location, int[] orphanEID)
          Create an orphan JunctionFeature.
 void deleteRule(IConnectivityRule rule)
          Removes the rule from the set of rules.
 void establishFlowDirection()
          Establish the flow direction in the LogicalNetwork.
 IEnumFeatureClass getClassesByNetworkAncillaryRole(int role)
          The FeatureClasses with the specified ancillary role.
 IEnumFeatureClass getClassesByType(int type)
          The FeatureClasses containing Features of the specified type.
 int getEdgeElement(IPoint location)
          The EdgeElement EID at the specified location.
 IGeometry getGeometryForEdgeEID(int edgeEID)
          The geometry of the EdgeElement.
 IGeometry getGeometryForJunctionEID(int junctionEID)
          The geometry that corresponds to the JunctionElement (a point).
 IInvalidArea getInvalidArea()
          The area to be drawn.
 int getJunctionElement(IPoint location)
          The JunctionElement EID at the specified location.
 INetwork getNetwork()
          The associated logical network.
 INetworkFeature getNetworkFeature(INetElementDescription networkElement)
          The NetworkFeature that corresponds to the NetworkElement.
 int getNetworkType()
          The type of associated logical network.
 IFeatureClass getOrphanJunctionFeatureClass()
          The FeatureClass containing the OrphanJunctionFeatures.
 IEnumRule getRules()
          All the connectivity rules associated with the network.
 IEnumRule getRulesByClassAndSubtype(int classID, int subtypeCode)
          The connectivity rules associated with the class and subtype.
 boolean isValidFlowDirection()
          Indicates whether the current flow directions are valid.
 IEnumFeature searchForNetworkFeature(IPoint location, int type)
          The NetworkFeatures found at the point.
 void setInvalidAreaByRef(IInvalidArea invalidArea)
          The area to be drawn.
 void spliceSimpleJunction(ISimpleJunctionFeature junction, int junctionEID, IGeometry geometry, boolean forceConnectivity)
          Create network connectivity between the simple junction and any intersecting network feature.
 
Methods inherited from interface com.esri.arcgis.geodatabase.IGraph
add, addFeatureClass, deleteSet, getDisplayFeedback, getFeatureDataset, init, isVertexBasedStretching, merge, setVertexBasedStretching, split, transformSet
 

Method Detail

getClassesByNetworkAncillaryRole

public IEnumFeatureClass getClassesByNetworkAncillaryRole(int role)
                                                   throws java.io.IOException,
                                                          AutomationException
The FeatureClasses with the specified ancillary role.

Supported Platforms

Windows, Solaris, Linux

Remarks

The ClassesByNetworkAncillaryRole property returns an enumeration of feature classes based on whether or not the feaure class has been assigned an ancillary role within the geometric network.  Since the differentiation between source and sink roles occurs at the feature level, feature classes cannot be returned based on a specific ancillary role.

The orphan junction feautre class will always be returned when esriNCARNone or a value of 0 is supplied for the role.

Parameters:
role - A com.esri.arcgis.geodatabase.esriNetworkClassAncillaryRole constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumFeatureClass
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

establishFlowDirection

public void establishFlowDirection()
                            throws java.io.IOException,
                                   AutomationException
Establish the flow direction in the LogicalNetwork.

Supported Platforms

Windows, Solaris, Linux

Remarks

EstablishFlowDirection should be called after each edit operation which affects the network's current flow direction. Please note that EstablishFlowDirection should also be called following a reconcile but prior to a post process.

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

isValidFlowDirection

public boolean isValidFlowDirection()
                             throws java.io.IOException,
                                    AutomationException
Indicates whether the current flow directions are valid.

Supported Platforms

Windows, Solaris, Linux

Remarks

ValidFlowDirection specifies whether the geometric network's flow direction has been defined.  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 validFlowDirection
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClassesByType

public IEnumFeatureClass getClassesByType(int type)
                                   throws java.io.IOException,
                                          AutomationException
The FeatureClasses containing Features of the specified type.

Supported Platforms

Windows, Solaris, Linux

Parameters:
type - A com.esri.arcgis.geodatabase.esriFeatureType constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumFeatureClass
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createOrphanFeature

public ISimpleJunctionFeature createOrphanFeature(IPoint location,
                                                  int[] orphanEID)
                                           throws java.io.IOException,
                                                  AutomationException
Create an orphan JunctionFeature.

Supported Platforms

Windows, Solaris, Linux

Remarks

The CreateOrphanFeature method creates an orphan junction at the location corresponding to the supplied point.  Connectivity is not established by CreateOrphanFeature, the Connect method must be called explicitly after the feature is created.

Parameters:
location - A reference to a com.esri.arcgis.geometry.IPoint (in)
orphanEID - The orphanEID (out: use single element array)
Returns:
A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEdgeElement

public int getEdgeElement(IPoint location)
                   throws java.io.IOException,
                          AutomationException
The EdgeElement EID at the specified location.

Supported Platforms

Windows, Solaris, Linux

Remarks

The EdgeElement property returns the Element ID (EID) of the network feature found at the specified point. If there is more than one network edge feature at the location, then the EID of the first feature that is located is returned.  If no network feature is found, EdgeElement returns -1.  If the network feature does not have an EID, a value of 0 is returned.

Parameters:
location - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The edgeEID
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getInvalidArea

public IInvalidArea getInvalidArea()
                            throws java.io.IOException,
                                   AutomationException
The area to be drawn.

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.geodatabase.IInvalidArea
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setInvalidAreaByRef

public void setInvalidAreaByRef(IInvalidArea invalidArea)
                         throws java.io.IOException,
                                AutomationException
The area to be drawn.

Parameters:
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getJunctionElement

public int getJunctionElement(IPoint location)
                       throws java.io.IOException,
                              AutomationException
The JunctionElement EID at the specified location.

Supported Platforms

Windows, Solaris, Linux

Remarks

The JuntionElement property returns the Element ID (EID) of the network feature found at the specified point. If there is more than one network junction feature at the the location, then the EID of the first feature that is located is returned.  If no network feature is found, JuntionElement returns -1.  If the network feature does not have an EID, a value of 0 is returned.

Parameters:
location - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
The junctionEID
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNetwork

public INetwork getNetwork()
                    throws java.io.IOException,
                           AutomationException
The associated logical network.

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.geodatabase.INetwork
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNetworkType

public int getNetworkType()
                   throws java.io.IOException,
                          AutomationException
The type of associated logical network.

Supported Platforms

Windows, Solaris, Linux

Remarks

See esriNetworkType Constants for information on the types of networks.

Returns:
A com.esri.arcgis.geodatabase.esriNetworkType constant
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOrphanJunctionFeatureClass

public IFeatureClass getOrphanJunctionFeatureClass()
                                            throws java.io.IOException,
                                                   AutomationException
The FeatureClass containing the OrphanJunctionFeatures.

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureClass
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addRule

public void addRule(IConnectivityRule rule)
             throws java.io.IOException,
                    AutomationException
Adds the constraint to the set of connectivity rules.

Supported Platforms

Windows, Solaris, Linux

Parameters:
rule - A reference to a com.esri.arcgis.geodatabase.IConnectivityRule (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteRule

public void deleteRule(IConnectivityRule rule)
                throws java.io.IOException,
                       AutomationException
Removes the rule from the set of rules.

Supported Platforms

Windows, Solaris, Linux

Parameters:
rule - A reference to a com.esri.arcgis.geodatabase.IConnectivityRule (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRules

public IEnumRule getRules()
                   throws java.io.IOException,
                          AutomationException
All the connectivity rules associated with the network.

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumRule
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRulesByClassAndSubtype

public IEnumRule getRulesByClassAndSubtype(int classID,
                                           int subtypeCode)
                                    throws java.io.IOException,
                                           AutomationException
The connectivity rules associated with the class and subtype.

Supported Platforms

Windows, Solaris, Linux

Parameters:
classID - The classID (in)
subtypeCode - The subtypeCode (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumRule
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

searchForNetworkFeature

public IEnumFeature searchForNetworkFeature(IPoint location,
                                            int type)
                                     throws java.io.IOException,
                                            AutomationException
The NetworkFeatures found at the point.

Supported Platforms

Windows, Solaris, Linux

Remarks

The SearchForNetworkFeature method returns an enumeration of the specified type of network feature located at the supplied point.  If more than one feature is coincident with the point, then all are returned. The returned features may span different classes; the only restriction is that all features must be of the same feature type. There is no guarantee as to the order of the returned features.

Parameters:
location - A reference to a com.esri.arcgis.geometry.IPoint (in)
type - A com.esri.arcgis.geodatabase.esriFeatureType constant (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumFeature
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getGeometryForEdgeEID

public IGeometry getGeometryForEdgeEID(int edgeEID)
                                throws java.io.IOException,
                                       AutomationException
The geometry of the EdgeElement.

Supported Platforms

Windows, Solaris, Linux

Parameters:
edgeEID - The edgeEID (in)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getGeometryForJunctionEID

public IGeometry getGeometryForJunctionEID(int junctionEID)
                                    throws java.io.IOException,
                                           AutomationException
The geometry that corresponds to the JunctionElement (a point).

Supported Platforms

Windows, Solaris, Linux

Parameters:
junctionEID - The junctionEID (in)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNetworkFeature

public INetworkFeature getNetworkFeature(INetElementDescription networkElement)
                                  throws java.io.IOException,
                                         AutomationException
The NetworkFeature that corresponds to the NetworkElement.

Supported Platforms

Windows, Solaris, Linux

Parameters:
networkElement - A reference to a com.esri.arcgis.geodatabase.INetElementDescription (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.INetworkFeature
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

spliceSimpleJunction

public void spliceSimpleJunction(ISimpleJunctionFeature junction,
                                 int junctionEID,
                                 IGeometry geometry,
                                 boolean forceConnectivity)
                          throws java.io.IOException,
                                 AutomationException
Create network connectivity between the simple junction and any intersecting network feature. For internal use only.

Supported Platforms

Windows, Solaris, Linux

Parameters:
junction - A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)
junctionEID - The junctionEID (in)
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
forceConnectivity - The forceConnectivity (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addJunctionWithSubsumption

public void addJunctionWithSubsumption(ISimpleJunctionFeature pJunction,
                                       int junctionEID,
                                       ISimpleJunctionFeature pSubsumedJunction)
                                throws java.io.IOException,
                                       AutomationException
Add a new junction feature to the network by replacing existing junction.

Supported Platforms

Windows, Solaris, Linux

Description

The pJunction argument represents the junction which will subsume or replace the existing junction.  The JunctionEID represents the Element ID of the junction feature specified in the first argument and can be obtained from SimpleJunctionFeature::EID property.  The thrid argument, pSusbsumedJunction represents the junction being subsumed.

AddJunctionWithSubsumption will enforce network connectivity between the newly created feature and any network features which are geometrically coincident.

Parameters:
pJunction - A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)
junctionEID - The junctionEID (in)
pSubsumedJunction - A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.