Summary
The properties below are returned by the tiers object when using Describe on a utility network.
Properties
Property | Explanation | Data Type |
aggregatedLinesForSubnetLine (Read Only) | An aggregatedLinesForSubnetLine object that can be used to retrieve properties of the aggregated lines for the SubnetLine class. | Object |
creationTime (Read Only) | The time that the tier was created. | String |
diagramTemplates (Read Only) | A list of diagram templates used for the tier. | String |
manageSubnetwork (Read Only) | A manageSubnetwork object that can be used to retrieve properties of the state of the subnetwork. | Object |
name (Read Only) | The name of the tier. | String |
rank (Read Only) | The value of the tier rank. | Integer |
subnetworkFieldName (Read Only) | The subnetwork field name. | String |
supportDisjointSubnetwork (Read Only) | Returns whether the tier supports disjoint subnetworks.
| Boolean |
tierGroupName (Read Only) | If the network has a hierarchical tier definition, this is the name of the tier group to which the tier belongs. | String |
tierID (Read Only) | The ID of the tier. | Integer |
tierTopology (Read Only) | The tier topology type—for example, radial or mesh tier topology. | String |
updateSubnetworkEditModeForDefaultVersion (Read Only) | The edit mode for subnetwork updates on the default version. | String |
updateSubnetworkEditModeForNamedVersion (Read Only) | The edit mode for subnetwork updates on a named version. | String |
updateSubnetworkOnContainers (Read Only) | Returns whether the update subnetwork process will update the supported subnetwork name for domain network containers.
| Boolean |
updateSubnetworkOnStructures (Read Only) | Returns whether the update subnetwork process will update the supported subnetwork name attribute for structure network containers.
| Boolean |
updateSubnetworkTraceConfiguration (Read Only) | An updateSubnetworkTraceConfiguration object that can be used to retrieve properties of the trace configuration when updating the subnetwork. | Object |
validDevices (Read Only) | A validDevices object that can be used to retrieve properties of the valid devices. | Object |
validEdgeObjects (Read Only) | A validEdgeObjects object that can be used to retrieve properties of the valid edge objects. | Object |
validJunctions (Read Only) | A validJunctions object that can be used to retrieve properties of the valid junctions. | Object |
validJunctionObjects (Read Only) | A validJunctionObjects object that can be used to retrieve properties of the valid junction objects. | Object |
validJunctionObjectSubnetworkControllers (Read Only) | A validJunctionObjectSubnetworkControllers object that can be used to retrieve properties of the valid junction object subnetwork controllers. | Object |
validLines (Read Only) | A validLines object that can be used to retrieve properties of the valid lines. | Object |
validSubnetworkControllers (Read Only) | A validSubnetworkControllers object that can be used to retrieve properties of the valid subnetwork controllers. | Object |
Code sample
This stand-alone Python script is a report of properties returned by the tiers object.
'''****************************************************************************
Name: DescribeUN_TierProperties.py
Description: This script reports the tier properties of a utility network
Created by: Esri
****************************************************************************'''
# Import required modules
import arcpy
# Describe functions on a Utility Network
UN = "C:\\Projects\\MyProject\\unowner.sde\\Naperville.UNOWNER.Naperville\\Naperville.UNOWNER.Naperville"
d = arcpy.Describe(UN)
# Domain Network properties
domnets = d.domainNetworks
for dom in domnets:
print("*** - Domain Network properties - ***")
print(f"Domain Network Creation Time: {dom.creationTime}")
print(f"Domain Network Release Number: {dom.releaseNumber}")
print(f"Domain Network Name: {dom.domainNetworkName}")
print(f"Domain Network ID: {dom.domainNetworkId}")
print(f"Domain Network Alias Name: {dom.domainNetworkAliasName}")
print(f"Domain Network is Structure Network: {dom.isStructureNetwork}")
print(f"Domain Network Tier Definition: {dom.tierDefinition}")
print(f"Domain Network Subnetwork Controller Type: {dom.subnetworkControllerType} \n")
print(f"Domain Network Subnetwork Table Name: {dom.subnetworkTableName}")
print(f"Domain Network Subnetwork Label Field Name: {dom.subnetworkLabelFieldName}")
for tier in dom.tiers:
print(f"Tier Name: {tier.name}")
print(f"Rank: {tier.rank}")
print(f"Tier topology type: {tier.tierTopology}")
print(f"Tier group name: {tier.tierGroupName} \n")
print(f"Subnetwork field name: {tier.subnetworkFieldName}")
print(f"Supports disjoint subnetwork: {tier.supportDisjointSubnetwork}")
print(f"Update Subnetwork Edit Mode For Default Version: {tier.updateSubnetworkEditModeForDefaultVersion}")
print(f"Update Subnetwork Edit Mode For Named Version: {tier.updateSubnetworkEditModeForNamedVersion}")
print(f"Update Subnetwork On Structures: {tier.updateSubnetworkOnStructures}")
print(f"Update Subnetwork On Containers: {tier.updateSubnetworkOnContainers}")
print(f"Diagram templates: {tier.diagramTemplates} \n")
print (f"Manage IsDirty: {tier.ManageSubnetwork.isDirty} \n")
# Subnetwork Controller Properties
for sc in tier.validSubnetworkControllers:
print(" -- Subnetwork Controllers Properties -- ")
print(f"Asset Group Code: {sc.assetGroupCode} \n")
print(" - Asset Type Properties - ")
for at in sc.assetTypes:
print(f"Asset Type Code: {at.assetTypeCode} \n")
# Valid Device Properties
for vd in tier.validDevices:
print(" -- Valid Devices Properties -- ")
print(f"Asset Group Code: {vd.assetGroupCode} \n")
print(" - Asset Type Properties - ")
for at in vd.assetTypes:
print(f"Asset Type Code: {at.assetTypeCode} \n")
# Valid Lines Properties
for vl in tier.validLines:
print(" -- Valid Lines Properties -- ")
print(f"Asset Group Code: {vl.assetGroupCode} \n")
print(" - Asset Type Properties - ")
for at in vl.assetTypes:
print(f"Asset Type Code: {at.assetTypeCode}")
# Valid Junctions Properties
for vj in tier.validJunctions:
print(" -- Valid Junctions Properties -- ")
print(f"Asset Group Code: {vj.assetGroupCode} \n")
print(" - Asset Type Properties - ")
for at in vj.assetTypes:
print(f"Asset Type Code: {at.assetTypeCode}")
# Valid Junction Objects Properties
for vjo in tier.validJunctionObjects:
print(" -- Valid JunctionObjects Properties -- ")
print(f"Asset Group Code: {vjo.assetGroupCode} \n")
print(" - Asset Type Properties - ")
for at in vjo.assetTypes:
print(f"Asset Type Code: {at.assetTypeCode}")
# Valid Junction Objects Subnetwork Controller Properties
for vjosc in tier.validJunctionObjectSubnetworkControllers:
print(" -- Valid Junction Object Subnetwork Controllers Properties -- ")
print(f"Asset Group Code: {vjosc.assetGroupCode} \n")
print(" - Asset Type Properties - ")
for at in vjosc.assetTypes:
print(f"Asset Type Code: {at.assetTypeCode} \n")
# Valid Edge Objects Properties
for veo in tier.validEdgeObjects:
print(" -- Valid EdgeObjects Properties -- ")
print(f"Asset Group Code: {veo.assetGroupCode} \n")
print(" - Asset Type Properties - ")
for at in veo.assetTypes:
print(f"Asset Type Code: {at.assetTypeCode}")
# Aggregated Lines for SubnetLine Properties
for al in tier.aggregatedLinesForSubnetLine:
print(" -- Aggregated Lines for SubnetLine Properties -- ")
print(f"Asset Group Code: {al.assetGroupCode} \n")
print(" - Asset Type Properties - ")
for at in al.assetTypes:
print(f"Asset Type Code: {at.assetTypeCode} \n")
# Update Subnetwork Trace Configuration Properties
print(" -- Update Subnetwork Trace Properties -- ")
ust = tier.updateSubnetworkTraceConfiguration
print(f"Include Containers: {ust.includeContainers}")
print(f"Include Content: {ust.includeContent}")
print(f"Include Structures: {ust.includeStructures}")
print(f"Include Barriers: {ust.includeBarriers}")
print(f"Validate Consistency: {ust.validateConsistency}")
print(f"Validate Locatability: {ust.validateLocatability}")
print(f"Include Isolated: {ust.includeIsolated}")
print(f"Ignore Barriers at Starting Points: {ust.ignoreBarriersAtStartingPoints}")
print(f"Include Up To First Spatial Container: {ust.includeUpToFirstSpatialContainer}")
print(f"Allow Indeterminate Flow: {ust.allowIndeterminateFlow}")
print(f"Domain Network Name: {ust.domainNetworkName}")
print(f"Tier Name: {ust.tierName}")
print(f"Target Tier Name: {ust.targetTierName}")
print(f"Subnetwork Name: {ust.subnetworkName}")
print(f"Diagram Template Name: {ust.diagramTemplateName}")
print(f"Shortest Path Network Attribute Name: {ust.shortestPathNetworkAttributeName}")
print(f"Filter Bitset Network Attribute Name: {ust.filterBitsetNetworkAttributeName}")
print(f"Traversability Scope: {ust.traversabilityScope}")
print(f"Filter Scope: {ust.filterScope} \n")
# Condition Barrier Properties
print(" - Condition Barrier Properties - ")
for cb in ust.conditionBarriers:
try:
print(f"Name: {cb.name} ")
print(f"Type: {cb.type} ")
print(f"Operator: {cb.operator} ")
print(f"Value: {cb.value} ")
print(f"CombineUsingOr: {cb.combineUsingOr}")
print(f"Is Specific Value: {cb.isSpecificValue} \n")
except:
print("Skipped condition barrier properties. \n")
# Function Barrier Properties
print(" - Function Barrier Properties - ")
for fb in ust.functionBarriers:
try:
print(f"Name: {fb.networkAttributeName}")
print(f"Type: {fb.functionType}")
print(f"Operator: {fb.networkAttributeOperator}")
print(f"Value: {fb.value} ")
print(f"Use Local Values: {fb.useLocalValues} \n")
except:
print("Skipped function barrier properties. \n")
# Filter Barrier Properties
print(" - Filter Barrier Properties - ")
for filb in ust.filterBarriers:
try:
print(f"Name: {filb.name}")
print(f"Type: {filb.type}")
print(f"Operator: {filb.operator}")
print(f"Value: {filb.value}")
print(f"CombineUsingOr: {filb.combineUsingOr}")
print(f"Is Specific Value: {filb.isSpecificValue} \n")
except:
print("Skipped filter barrier properties. \n")
# Filter Function Barrier Properties
print(" - Filter Function Barrier Properties - ")
for ffb in ust.filterFunctionBarriers:
try:
print(f"Name: {ffb.networkAttributeName}")
print(f"Type: {ffb.functionType}")
print(f"Operator: {ffb.networkAttributeOperator}")
print(f"Value: {ffb.value}")
print(f"Use Local Values: {ffb.useLocalValues} \n")
except:
print("Skipped filter function properties. \n")
# Functions Properties
print(" - Functions Properties - ")
for f in ust.functions:
# Try to get these properties if the exist, else, print the empty list
try:
print(f"Function Type: {f.functionType}")
print(f"Function Network Attribute Name: {f.networkAttributeName}")
print(f"Function Summary Attribute Name: {f.summaryAttributeName} \n")
# Function Conditions
print(" - Function Conditions - ")
for fc in f.conditions:
print(f"Name: {fc.name}")
print(f"Type: {fc.type}")
print(f"Operator: {fc.operator}")
print(f"Value: {fc.value}")
print(f"CombineUsingOr: {fc.combineUsingOr}")
print(f"Is Specific Value: {fc.isSpecificValue} \n")
except:
print("Skipped functions properties. \n")
# Nearest Neighbor Properties
print(" - Nearest Neighbor Properties - ")
nn = ust.nearestNeighbor
# Try to get these properties if the exist, else, print the empty list
try:
print(f"Count: {nn.count}")
print(f"Cost Network Attribute Name: {nn.costNetworkAttributeName}")
print(f"Nearest Categories: {nn.nearestCategories} \n")
print(f" - Nearest Asset Properties - ")
for nsta in nn.nearestAssets:
try:
print(f"Network Source ID: {nsta.networkSourceID}")
print(f"Asset Group Code: {nsta.assetGroupCode}")
print(f"Asset Type Code: {nsta.assetTypeCode} \n")
except:
print("Skipped nearest assets properties. \n")
except:
print("Skipped nearest neighbor properties. \n")
# Output Filter Properties
print(" - Output Filter Properties - ")
for ofp in ust.outputFilters:
# Try to get these properties if the exist, else, print the empty list
try:
for of in ofp:
print(f"Network Source ID: {of.networkSourceID}")
print(f"Asset Group Code: {of.assetGroupCode}")
print(f"Asset Type Code: {of.assetTypeCode} \n")
except:
print("Skipped output filter properties. \n")
# Output Condition Properties
print(" - Output Condition Properties - ")
for oc in ust.outputConditions:
# Try to get these properties if the exist, else, print the empty list
try:
print(f"Name: {oc.name}")
print(f"Type: {oc.type}")
print(f"Operator: {oc.operator}")
print(f"Value: {oc.value}")
print(f"CombineUsingOr: {oc.combineUsingOr}")
print(f"Is Specific Value: {oc.isSpecificValue} \n")
except:
print("Skipped output condition properties. \n")
# Propagators Properties
print(" - Propagator Properties - ")
for p in ust.propagators:
# Try to get these properties if the exist, else, print the empty list
try:
print(f"Network Attribute Name: {p.networkAttributeName}")
print(f"Trace Propagator Function Type: {p.tracePropagatorFunctionType}")
print(f"Network Attribute Filter Operator: {p.networkAttributeOperator}")
print(f"Network Attribute Value: {p.value}")
print(f"Propagated Attribute Name: {p.propagatedAttributeName}")
print(f"Substitution Attribute Name: {p.substitutionAttributeName}")
except:
print("Skipped propagator properties. \n")