Краткая информация
Свойства, описанные ниже, возвращает объект tiers, при использовании Describe в инженерной сети.
Свойства
| Свойство | Описание | Тип данных | 
| aggregatedLinesForSubnetLine (только чтение) | Объект aggregatedLinesForSubnetLine может использоваться для получения свойств агрегированных линий для класса SubnetLine. | Object | 
| creationTime (только чтение) | Время создания этого уровня. | String | 
| diagramTemplates (только чтение) | Список шаблонов схемы, используемых уровнем. | String | 
| manageSubnetwork (только чтение) | Объект manageSubnetwork, который можно использовать для получения свойств состояния подсети. | Object | 
| name (только чтение) | Имя уровня. | String | 
| rank (только чтение) | Значение ранга уровня. | Integer | 
| subnetworkFieldName (только чтение) | Имя поля подсети. | String | 
| supportDisjointSubnetwork (только чтение) | Определяет, поддерживает ли уровень непересекающиеся подсети. 
 | Boolean | 
| tierGroupName (только чтение) | Если в сети есть определение иерархических уровней, это имя группы уровней, к которой уровень относится. | String | 
| tierID (только чтение) | ID уровня. | Integer | 
| tierTopology (только чтение) | Тип топологии уровня, например, радиальная или ячеистая топология. | String | 
| updateSubnetworkEditModeForDefaultVersion (только чтение) | Режим редактирования обновлений подсети в версии по умолчанию. | String | 
| updateSubnetworkEditModeForNamedVersion (только чтение) | Режим редактирования обновлений подсети в именованной версии. | String | 
| updateSubnetworkOnContainers (только чтение) | Возвращает, будет ли процесс обновления подсети обновлять поддерживаемое имя подсети для контейнеров специализированной сети. 
 | Boolean | 
| updateSubnetworkOnStructures (только чтение) | Возвращает, будет ли процесс обновления подсети обновлять атрибут поддерживаемого имени подсети для контейнеров структурной сети. 
 | Boolean | 
| updateSubnetworkTraceConfiguration (только чтение) | Объект updateSubnetworkTraceConfiguration, который может использоваться для получения свойств конфигурации трассировки при обновлении подсети. | Object | 
| validDevices (только чтение) | Объект validDevices, который может использоваться для получения свойств допустимых устройств. | Object | 
| validEdgeObjects (только чтение) | Объект validEdgeObjects, который может использовать для получения свойств допустимых объектов ребер. | Object | 
| validJunctions (только чтение) | Объект validJunctions, который может использоваться для получения свойств допустимых подключений. | Object | 
| validJunctionObjects (только чтение) | Объект validJunctionObjects, который может использовать для получения свойств допустимых объектов подключения. | Object | 
| validJunctionObjectSubnetworkControllers (только чтение) | Объект validJunctionObjectSubnetworkControllers, который можно использовать для получения свойств допустимых контроллеров подсети объекта соединения. | Object | 
| validLines (только чтение) | Объект validLines, который может использоваться для получения свойств допустимых линий. | Object | 
| validSubnetworkControllers (только чтение) | Объект validSubnetworkControllers, который может использоваться для получения свойств допустимых контроллеров подсети. | Object | 
Пример кода
Этот автономный скрипт Python возвращает отчет о свойствах, возвращаемых объектом tiers.
'''****************************************************************************
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")