Opens and returns a network dataset.
[C#]
///<summary>Opens and returns a network dataset.</summary>
///
///<param name="networkDatasetWorkspace">An IWorkspace interface that contains the network dataset</param>
///<param name="networkDatasetName">A System.String that is the name of the network dataset. Example: "roads"</param>
///<param name="featureDatasetName">A System.String that is the name of the feature dataset that contains the network dataset. This name is only required for geodatabase workspaces. An empty string may be passed in for shapefile/SDC workspaces. Example: "Highways" or "".</param>
///
///<returns>The INetworkDataset interface of the opened network dataset</returns>
///
///<remarks></remarks>
public ESRI.ArcGIS.Geodatabase.INetworkDataset OpenNetworkDataset(ESRI.ArcGIS.Geodatabase.IWorkspace networkDatasetWorkspace, System.String networkDatasetName, System.String featureDatasetName)
{
if (networkDatasetWorkspace == null || networkDatasetName == "" || featureDatasetName == null)
{
return null;
}
ESRI.ArcGIS.Geodatabase.IDatasetContainer3 datasetContainer3 = null;
switch (networkDatasetWorkspace.Type)
{
case ESRI.ArcGIS.Geodatabase.esriWorkspaceType.esriFileSystemWorkspace:
// Shapefile or SDC network dataset workspace
ESRI.ArcGIS.Geodatabase.IWorkspaceExtensionManager workspaceExtensionManager = networkDatasetWorkspace as ESRI.ArcGIS.Geodatabase.IWorkspaceExtensionManager; // Dynamic Cast
ESRI.ArcGIS.esriSystem.UID networkID = new ESRI.ArcGIS.esriSystem.UIDClass();
networkID.Value = "esriGeoDatabase.NetworkDatasetWorkspaceExtension";
ESRI.ArcGIS.Geodatabase.IWorkspaceExtension workspaceExtension = workspaceExtensionManager.FindExtension(networkID);
datasetContainer3 = workspaceExtension as ESRI.ArcGIS.Geodatabase.IDatasetContainer3; // Dynamic Cast
break;
case ESRI.ArcGIS.Geodatabase.esriWorkspaceType.esriLocalDatabaseWorkspace:
// Personal Geodatabase or File Geodatabase network dataset workspace
case ESRI.ArcGIS.Geodatabase.esriWorkspaceType.esriRemoteDatabaseWorkspace:
// SDE Geodatabase network dataset workspace
ESRI.ArcGIS.Geodatabase.IFeatureWorkspace featureWorkspace = networkDatasetWorkspace as ESRI.ArcGIS.Geodatabase.IFeatureWorkspace; // Dynamic Cast
ESRI.ArcGIS.Geodatabase.IFeatureDataset featureDataset = featureWorkspace.OpenFeatureDataset(featureDatasetName);
ESRI.ArcGIS.Geodatabase.IFeatureDatasetExtensionContainer featureDatasetExtensionContainer = featureDataset as ESRI.ArcGIS.Geodatabase.IFeatureDatasetExtensionContainer; // Dynamic Cast
ESRI.ArcGIS.Geodatabase.IFeatureDatasetExtension featureDatasetExtension = featureDatasetExtensionContainer.FindExtension(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTNetworkDataset);
datasetContainer3 = featureDatasetExtension as ESRI.ArcGIS.Geodatabase.IDatasetContainer3; // Dynamic Cast
break;
}
if (datasetContainer3 == null)
return null;
ESRI.ArcGIS.Geodatabase.IDataset dataset = datasetContainer3.get_DatasetByName(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTNetworkDataset, networkDatasetName);
return dataset as ESRI.ArcGIS.Geodatabase.INetworkDataset; // Dynamic Cast
}
[Visual Basic .NET]
'''<summary>Opens and returns a network dataset.</summary>
'''
'''<param name="networkDatasetWorkspace">An IWorkspace interface that contains the network dataset</param>
'''<param name="networkDatasetName">A System.String that is the name of the network dataset. Example: "roads"</param>
'''<param name="featureDatasetName">A System.String that is the name of the feature dataset that contains the network dataset. This name is only required for geodatabase workspaces. An empty string may be passed in for shapefile/SDC workspaces. Example: "Highways" or "".</param>
'''
'''<returns>The INetworkDataset interface of the opened network dataset</returns>
'''
'''<remarks></remarks>
Public Shared Function OpenNetworkDataset(ByVal networkDatasetWorkspace As ESRI.ArcGIS.Geodatabase.IWorkspace, ByVal networkDatasetName As System.String, ByVal featureDatasetName As System.String) As ESRI.ArcGIS.Geodatabase.INetworkDataset
If networkDatasetWorkspace Is Nothing OrElse networkDatasetName = "" OrElse featureDatasetName Is Nothing Then
Return Nothing
End If
Dim datasetContainer3 As ESRI.ArcGIS.Geodatabase.IDatasetContainer3 = Nothing
Select Case networkDatasetWorkspace.Type
Case ESRI.ArcGIS.Geodatabase.esriWorkspaceType.esriFileSystemWorkspace
' Shapefile or SDC network dataset workspace
Dim workspaceExtensionManager As ESRI.ArcGIS.Geodatabase.IWorkspaceExtensionManager = TryCast(networkDatasetWorkspace, ESRI.ArcGIS.Geodatabase.IWorkspaceExtensionManager) ' Dynamic Cast
Dim networkID As ESRI.ArcGIS.esriSystem.UID = New ESRI.ArcGIS.esriSystem.UIDClass()
networkID.Value = "esriGeoDatabase.NetworkDatasetWorkspaceExtension"
Dim workspaceExtension As ESRI.ArcGIS.Geodatabase.IWorkspaceExtension = workspaceExtensionManager.FindExtension(networkID)
datasetContainer3 = TryCast(workspaceExtension, ESRI.ArcGIS.Geodatabase.IDatasetContainer3) ' Dynamic Cast
Case ESRI.ArcGIS.Geodatabase.esriWorkspaceType.esriLocalDatabaseWorkspace, ESRI.ArcGIS.Geodatabase.esriWorkspaceType.esriRemoteDatabaseWorkspace
' Personal Geodatabase or File Geodatabase network dataset workspace
' SDE Geodatabase network dataset workspace
Dim featureWorkspace As ESRI.ArcGIS.Geodatabase.IFeatureWorkspace = TryCast(networkDatasetWorkspace, ESRI.ArcGIS.Geodatabase.IFeatureWorkspace) ' Dynamic Cast
Dim featureDataset As ESRI.ArcGIS.Geodatabase.IFeatureDataset = featureWorkspace.OpenFeatureDataset(featureDatasetName)
Dim featureDatasetExtensionContainer As ESRI.ArcGIS.Geodatabase.IFeatureDatasetExtensionContainer = TryCast(featureDataset, ESRI.ArcGIS.Geodatabase.IFeatureDatasetExtensionContainer) ' Dynamic Cast
Dim featureDatasetExtension As ESRI.ArcGIS.Geodatabase.IFeatureDatasetExtension = featureDatasetExtensionContainer.FindExtension(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTNetworkDataset)
datasetContainer3 = TryCast(featureDatasetExtension, ESRI.ArcGIS.Geodatabase.IDatasetContainer3) ' Dynamic Cast
End Select
If datasetContainer3 Is Nothing Then
Return Nothing
End If
Dim dataset As ESRI.ArcGIS.Geodatabase.IDataset = datasetContainer3.DatasetByName(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTNetworkDataset, networkDatasetName)
Return TryCast(dataset, ESRI.ArcGIS.Geodatabase.INetworkDataset) ' Dynamic Cast
End Function