ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data.UtilityNetwork Namespace / UtilityNetwork Class
Members Example

In This Topic
    UtilityNetwork Class
    In This Topic
    Represents a utility network.
    Object Model
    UtilityNetwork ClassElement ClassCircuitManager ClassDatastore ClassUtilityNetworkDefinition ClassDiagramManager ClassEnvelope ClassUtilityNetworkServerCapabilities ClassUtilityNetworkState ClassSubnetworkManager ClassTable ClassTable ClassTraceManager ClassUnitIdentifierManager ClassTraverseAssociationsResult ClassValidationResult Class
    Syntax
    Public NotInheritable Class UtilityNetwork 
       Inherits ArcGIS.Core.Data.Dataset
       Implements System.IDisposable 
    public sealed class UtilityNetwork : ArcGIS.Core.Data.Dataset, System.IDisposable  
    Remarks
    This class is used to
    • Create and delete associations
    • Update subnetworks
    • Update network topology
    • Get other utility network classes
    Objects of this class are obtained by calling ArcGIS.Core.Data.Geodatabase.OpenDataset<T>
    Example
    Get a Utility Network from a Table
    {
      static UtilityNetwork GetUtilityNetworkFromTable()
      {
        UtilityNetwork utilityNetwork = null;
    
        Table table = MapView.Active.Map.GetStandaloneTablesAsFlattenedList().First().GetTable();
    
        // This routine obtains a utility network from a table
        if (table.IsControllerDatasetSupported())
        {
          // Tables can belong to multiple controller datasets, but at most one of them will be a UtilityNetwork
          IReadOnlyList<Dataset> controllerDatasets = table.GetControllerDatasets();
    
          foreach (Dataset controllerDataset in controllerDatasets)
          {
            if (controllerDataset is UtilityNetwork)
            {
              utilityNetwork = controllerDataset as UtilityNetwork;
            }
            else
            {
              controllerDataset.Dispose();
            }
          }
        }
        return utilityNetwork;
      }
    }
    Get a Utility Network from a Layer
    {
      static UtilityNetwork GetUtilityNetworkFromLayer(Layer unLayer)
      {
        UtilityNetwork utilityNetwork = null;
    
        Layer layer = MapView.Active.Map.GetLayersAsFlattenedList().First();
    
        // This routine obtains a utility network from a FeatureLayer, SubtypeGroupLayer, or UtilityNetworkLayer
        if (layer is UtilityNetworkLayer)
        {
          UtilityNetworkLayer utilityNetworkLayer = layer as UtilityNetworkLayer;
          utilityNetwork = utilityNetworkLayer.GetUtilityNetwork();
        }
    
        else if (layer is SubtypeGroupLayer)
        {
          CompositeLayer compositeLayer = layer as CompositeLayer;
          utilityNetwork = GetUtilityNetworkFromLayer(compositeLayer.Layers.First());
        }
    
        else if (layer is FeatureLayer)
        {
          FeatureLayer featureLayer = layer as FeatureLayer;
          using (FeatureClass featureClass = featureLayer.GetFeatureClass())
          {
            if (featureClass.IsControllerDatasetSupported())
            {
              IReadOnlyList<Dataset> controllerDatasets = new List<Dataset>();
              controllerDatasets = featureClass.GetControllerDatasets();
              foreach (Dataset controllerDataset in controllerDatasets)
              {
                if (controllerDataset is UtilityNetwork)
                {
                  utilityNetwork = controllerDataset as UtilityNetwork;
                }
                else
                {
                  controllerDataset.Dispose();
                }
              }
            }
          }
        }
        return utilityNetwork;
      }
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.CoreObjectsBase
          ArcGIS.Core.Data.Dataset
             ArcGIS.Core.Data.UtilityNetwork.UtilityNetwork

    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also