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

In This Topic
    NetworkAttribute Class
    In This Topic
    The NetworkAttribute class is used to represent a network attribute inside a utility network. Network attributes correspond to weights in the geometric network. NetworkAttribute objects can be obtained by calling UtilityNetworkDefinition.GetNetworkAttributes or UtilityNetworkDefinition.GetNetworkAttribute
    Object Model
    NetworkAttribute ClassDomain ClassNetworkAttribute Class
    Syntax
    Public NotInheritable Class NetworkAttribute 
       Inherits ArcGIS.Core.CoreObjectsBase
       Implements System.IDisposable 
    public sealed class NetworkAttribute : ArcGIS.Core.CoreObjectsBase, System.IDisposable  
    Example
    Create a Condition to compare a Network Attribute against a set of values
    {
      static void CreateNetworkAttributeComparison(UtilityNetworkDefinition utilityNetworkDefinition, TraceConfiguration traceConfiguration)
      {
        // This routine creates a NetworkAttributeComparison to compare the Lifecycle network attribute against two values: "In Design" and "In Service"
    
        const int InDesign = 4;
        const int InService = 8;
    
        // Create a NetworkAttribute object for the Lifecycle network attribute from the UtilityNetworkDefinition
        using NetworkAttribute lifecycleNetworkAttribute = utilityNetworkDefinition.GetNetworkAttribute("Lifecycle");
        // Create a NetworkAttributeComparison that stops traversal if Lifecycle <> "In Design" (represented by the constant InDesign)
        NetworkAttributeComparison inDesignNetworkAttributeComparison =
          new NetworkAttributeComparison(lifecycleNetworkAttribute, Operator.NotEqual, InDesign);
    
        // Create a NetworkAttributeComparison to stop traversal if Lifecycle <> "In Service" (represented by the constant InService)
        NetworkAttributeComparison inServiceNetworkAttributeComparison =
          new NetworkAttributeComparison(lifecycleNetworkAttribute, Operator.NotEqual, InService);
    
        // Combine these two comparisons together with "And"
        And lifecycleFilter = new And(inDesignNetworkAttributeComparison, inServiceNetworkAttributeComparison);
    
        // Final condition stops traversal if Lifecycle <> "In Design" and Lifecycle <> "In Service"
        traceConfiguration.Traversability.Barriers = lifecycleFilter;
      }
    }
    Create a Function
    {
      // This routine creates an Add function to sum the Load network attribute during a trace
      static void ApplyFunction(UtilityNetworkDefinition utilityNetworkDefinition, TraceConfiguration traceConfiguration)
      {
        // Get a NetworkAttribute object for the Load network attribute from the UtilityNetworkDefinition
        using NetworkAttribute loadNetworkAttribute = utilityNetworkDefinition.GetNetworkAttribute("Load");
        // Create a function to sum the Load
        Add sumLoadFunction = new Add(loadNetworkAttribute);
    
        // Add this function to our trace configuration
        traceConfiguration.Functions = new List<Function>() { sumLoadFunction };
      }
    }
    Create a FunctionBarrier
    {
      // This routine creates a FunctionBarrier that stops traversal when the total shape length exceeds 1000 feet
      static void CreateFunctionBarrier(UtilityNetworkDefinition utilityNetworkDefinition, TraceConfiguration traceConfiguration)
      {
        // Create a NetworkAttribute object for the Shape length network attribute from the UtilityNetworkDefinition
        using NetworkAttribute shapeLengthNetworkAttribute = utilityNetworkDefinition.GetNetworkAttribute("Shape length");
        // Create a function that adds up shape length
        Add lengthFunction = new Add(shapeLengthNetworkAttribute);
    
        // Create a function barrier that stops traversal after 1000 feet
        FunctionBarrier distanceBarrier = new FunctionBarrier(lengthFunction, Operator.GreaterThan, 1000.0);
    
        // Set this function barrier
        traceConfiguration.Traversability.FunctionBarriers = new List<FunctionBarrier>() { distanceBarrier };
      }
    }
    Inheritance Hierarchy

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

    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also