com.esri.arcgis.geodatabase
Interface IGraph

All Superinterfaces:
Serializable
All Known Subinterfaces:
IGeometricNetwork
All Known Implementing Classes:
GeometricNetwork, IGeometricNetworkProxy, IGraphProxy

public interface IGraph
extends Serializable

Provides access to members that manage graphs.

Remarks

The IGraph interface contains methods and properties which are used in conjunction with geometric networks. Many of the methods, such as Add, Init, Split and Merge are called internally from within other methods. For these methods, there may be an analogous method or series of methods available, consult the specific help file for that method.

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

Since IGeometricNetwork inherits from IGraph, all the methods on IGraph are available to IGeometricNetwork

Product Availability

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

See Also:
IGeometricNetworkName, IGraph, IGraph.transformSet(com.esri.arcgis.system.ISet, int, com.esri.arcgis.geometry.IAffineTransformation2D), IGeometricNetwork.addJunctionWithSubsumption(com.esri.arcgis.geodatabase.ISimpleJunctionFeature, int, com.esri.arcgis.geodatabase.ISimpleJunctionFeature), IGraph.split(com.esri.arcgis.geodatabase.IEdgeFeature, com.esri.arcgis.geometry.IGeometry), IGeometricNetwork

Method Summary
 void add(IFeature newFeature)
          Adds the preexisting Feature to the graph.
 void addFeatureClass(IFeatureClass featureClass, String enabledFieldName, int role, String ancillaryRoleFieldName)
          Add the FeatureClass to this graph.
 void deleteSet(ISet featuresToDelete)
          Removes the set of Feature from the graph.
 IDisplayFeedback getDisplayFeedback(IFeature feature, ISet features, IPoint point)
          The DisplayFeedback.
 IFeatureDataset getFeatureDataset()
          The FeatureDataset associated with the graph.
 void init(IFeatureDataset dataset, int graphID, String graphName, boolean buildNormalizedTables, boolean createGraph)
          Initializes the graph.
 boolean isVertexBasedStretching()
          The stretching model to nearest vertex (true) or junction (false) based stretching.
 IEnumFeature merge(IEnumFeature mergingFeatures)
          Merges the Features together, returning the newly created Feature.
 void setVertexBasedStretching(boolean vertexBased)
          The stretching model to nearest vertex (true) or junction (false) based stretching.
 ISet split(IEdgeFeature splittingEdge, IGeometry point)
          Split the feature.
 void transformSet(ISet features, int type, IAffineTransformation2D tranformation)
          Repositions all specified NetworkFeatures and any topologically connected NetworkFeatures.
 

Method Detail

add

void add(IFeature newFeature)
         throws IOException,
                AutomationException
Adds the preexisting Feature to the graph.

Remarks

The IGraph:Add method is meant for internal use only.

There is no need to call INetworkFeature::CreateNetworkElements or INetworkFeature::Connect as these are handled internally by IFeature::Store

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

addFeatureClass

void addFeatureClass(IFeatureClass featureClass,
                     String enabledFieldName,
                     int role,
                     String ancillaryRoleFieldName)
                     throws IOException,
                            AutomationException
Add the FeatureClass to this graph.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
enabledFieldName - The enabledFieldName (in)
role - A com.esri.arcgis.geodatabase.esriNetworkClassAncillaryRole constant (in)
ancillaryRoleFieldName - The ancillaryRoleFieldName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteSet

void deleteSet(ISet featuresToDelete)
               throws IOException,
                      AutomationException
Removes the set of Feature from the graph.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
featuresToDelete - A reference to a com.esri.arcgis.system.ISet (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IWorkspaceEdit, ISpatialCacheManager, IWorkspaceEditEvents, Editor, IFeatureClass.createFeature()

getFeatureDataset

IFeatureDataset getFeatureDataset()
                                  throws IOException,
                                         AutomationException
The FeatureDataset associated with the graph.

Remarks

Returns a reference to the feature dataset in which the graph exists.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

getDisplayFeedback

IDisplayFeedback getDisplayFeedback(IFeature feature,
                                    ISet features,
                                    IPoint point)
                                    throws IOException,
                                           AutomationException
The DisplayFeedback.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
feature - A reference to a com.esri.arcgis.geodatabase.IFeature (in)
features - A reference to a com.esri.arcgis.system.ISet (in)
point - A reference to a com.esri.arcgis.geometry.IPoint (in)
Returns:
A reference to a com.esri.arcgis.display.IDisplayFeedback
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

init

void init(IFeatureDataset dataset,
          int graphID,
          String graphName,
          boolean buildNormalizedTables,
          boolean createGraph)
          throws IOException,
                 AutomationException
Initializes the graph.

Remarks

The IGraph::Init method is called internally during the process of creating a Geometric Network and should be called independently.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
dataset - A reference to a com.esri.arcgis.geodatabase.IFeatureDataset (in)
graphID - The graphID (in)
graphName - The graphName (in)
buildNormalizedTables - The buildNormalizedTables (in)
createGraph - The createGraph (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

merge

IEnumFeature merge(IEnumFeature mergingFeatures)
                   throws IOException,
                          AutomationException
Merges the Features together, returning the newly created Feature.

Remarks

The Merge method is not currently implemented.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

split

ISet split(IEdgeFeature splittingEdge,
           IGeometry point)
           throws IOException,
                  AutomationException
Split the feature.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
splittingEdge - A reference to a com.esri.arcgis.geodatabase.IEdgeFeature (in)
point - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Returns:
A reference to a com.esri.arcgis.system.ISet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IGeometricNetworkName, IWorkspaceEdit, IGraph, ISpatialCacheManager, IGraph.transformSet(com.esri.arcgis.system.ISet, int, com.esri.arcgis.geometry.IAffineTransformation2D), IGeometricNetwork.addJunctionWithSubsumption(com.esri.arcgis.geodatabase.ISimpleJunctionFeature, int, com.esri.arcgis.geodatabase.ISimpleJunctionFeature), IWorkspaceEditEvents, IGraph.split(com.esri.arcgis.geodatabase.IEdgeFeature, com.esri.arcgis.geometry.IGeometry), IGeometricNetwork, Editor, IFeatureClass.createFeature()

transformSet

void transformSet(ISet features,
                  int type,
                  IAffineTransformation2D tranformation)
                  throws IOException,
                         AutomationException
Repositions all specified NetworkFeatures and any topologically connected NetworkFeatures.

Remarks

TransformSet will maintain connectivity between network features, there is no need to call Connect or RebuildConnectivity after TransformSet to establish connectivity. The type of stretching that is employed during TransformSet can be changed using the VertexBasedStretching property.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
features - A reference to a com.esri.arcgis.system.ISet (in)
type - A com.esri.arcgis.geodatabase.esriTransformType constant (in)
tranformation - A reference to a com.esri.arcgis.geometry.IAffineTransformation2D (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IWorkspaceEdit, ISpatialCacheManager, IWorkspaceEditEvents, Editor, IFeatureClass.createFeature()

isVertexBasedStretching

boolean isVertexBasedStretching()
                                throws IOException,
                                       AutomationException
The stretching model to nearest vertex (true) or junction (false) based stretching.

Description

VertexBasedStretching controls the stretching model for the specified graph: vertex (true) or junction (false) based stretching. Vertex based stretching modifies features to the nearest vertex(es), while junction based stretching will proportionally modify the feature to the nearest junction(s).

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Returns:
The vertexBased
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
INetworkUpdate, IForwardStar, IGraph, INetworkClass.getNetworkAncillaryRole(), INetworkWorkspace, INetworkClass.getGeometricNetwork(), INetworkClass.getFieldToWeightMapping(int), IUtilityNetwork, INetwork

setVertexBasedStretching

void setVertexBasedStretching(boolean vertexBased)
                              throws IOException,
                                     AutomationException
The stretching model to nearest vertex (true) or junction (false) based stretching.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
vertexBased - The vertexBased (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
INetworkUpdate, IWorkspaceEdit, IForwardStar, ISpatialCacheManager, IGraph, INetworkClass.getNetworkAncillaryRole(), INetworkWorkspace, IWorkspaceEditEvents, INetworkClass.getGeometricNetwork(), Editor, INetworkClass.getFieldToWeightMapping(int), IFeatureClass.createFeature(), IUtilityNetwork, INetwork