

Public NotInheritable Class NetworkAttribute Inherits ArcGIS.Core.CoreObjectsBase Implements System.IDisposable
public sealed class NetworkAttribute : ArcGIS.Core.CoreObjectsBase, System.IDisposable
{
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;
}
}
{
// 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 };
}
}
{
// 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 };
}
}
System.Object
ArcGIS.Core.CoreObjectsBase
ArcGIS.Core.Data.UtilityNetwork.NetworkAttribute
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)