Tier properties

サマリー

The properties below are returned by the tiers object when using Describe on a utility network.

Learn more about tiers in a utility network

プロパティ

プロパティ説明データ タイプ
aggregatedLinesForSubnetLine
(読み取り専用)

An aggregatedLinesForSubnetLine object that can be used to retrieve properties of the aggregated lines for the SubnetLine class.

Object
creationTime
(読み取り専用)

The time that the tier was created.

String
diagramTemplates
(読み取り専用)

A list of diagram templates used for the tier.

String
name
(読み取り専用)

The name of the tier.

String
rank
(読み取り専用)

The value of the tier rank.

Integer
subnetworkFieldName
(読み取り専用)

The subnetwork field name.

String
supportDisjointSubnetwork
(読み取り専用)

Returns whether the tier supports disjoint subnetworks.

  • True—The tier does support disjoint subnetworks.
  • False—The tier does not support disjoint subnetworks.

Boolean
tierGroupName
(読み取り専用)

If the network has a hierarchical tier definition, this is the name of the tier group to which the tier belongs.

String
tierID
(読み取り専用)

The ID of the tier.

Integer
tierTopology
(読み取り専用)

The tier topology type—for example, radial or mesh tier topology.

String
updateSubnetworkEditModeForDefaultVersion
(読み取り専用)

The edit mode for subnetwork updates on the default version.

String
updateSubnetworkEditModeForNamedVersion
(読み取り専用)

The edit mode for subnetwork updates on a named version.

String
updateSubnetworkOnContainers
(読み取り専用)

Returns whether the update subnetwork process will update the supported subnetwork name for domain network containers.

  • True—The domain network containers will be updated.
  • False—The domain network containers will not be updated.

Boolean
updateSubnetworkOnStructures
(読み取り専用)

Returns whether the update subnetwork process will update the supported subnetwork name attribute for structure network containers.

  • True—The structure network containers will be updated.
  • False—The structure network containers will not be updated.

Boolean
updateSubnetworkTraceConfiguration
(読み取り専用)

An updateSubnetworkTraceConfiguration object that can be used to retrieve properties of the trace configuration when updating the subnetwork.

Object
validDevices
(読み取り専用)

A validDevices object that can be used to retrieve properties of the valid devices.

Object
validEdgeObjects
(読み取り専用)

A validEdgeObjects object that can be used to retrieve properties of the valid edge objects.

Object
validJunctions
(読み取り専用)

A validJunctions object that can be used to retrieve properties of the valid junctions.

Object
validJunctionObjects
(読み取り専用)

A validJunctionObjects object that can be used to retrieve properties of the valid junction objects.

Object
validJunctionObjectSubnetworkControllers
(読み取り専用)

A validJunctionObjectSubnetworkControllers object that can be used to retrieve properties of the valid junction object subnetwork controllers.

Object
validLines
(読み取り専用)

A validLines object that can be used to retrieve properties of the valid lines.

Object
validSubnetworkControllers
(読み取り専用)

A validSubnetworkControllers object that can be used to retrieve properties of the valid subnetwork controllers.

Object

コードのサンプル

Tier properties example (stand-alone script)

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")

        # 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")