Сводка
Функция Describe возвращает следующие свойства инженерной сети.
Инженерная сеть возвращает dataType "Utility Network".
Свойства
Владение | Объяснение | Тип данных |
associationSource (только чтение) | Объект associationSource. Объект может использоваться для получения свойств источников соединений. | Object |
categories (только чтение) | Объект categories. Объект может использоваться для получения свойств категорий инженерной сети. | Object |
createDirtyAreaForAnyAttributeUpdate (только чтение) | Создаются ли измененные области в случае обновлении атрибутов при включенной топологии сети.
| Boolean |
creationTime (только чтение) | Дата и время создания инженерной сети. | DateTime |
domainNetworks (только чтение) | Объект domainNetworks. Объект может использоваться для получения свойств специализированных сетей. | Object |
globalID (только чтение) | Global-ID инженерной сети. | String |
minimalDirtyAreaSize (только чтение) | Минимальный размер измененных областей топологии сети. | Integer |
networkAttributes (только чтение) | Объект networkAttributes. Объект может использоваться для получения свойств атрибутов сети. | Object |
proVersion (только чтение) | Версия ArcGIS Pro, используемая для построения инженерной сети. | String |
schemaGeneration (только чтение) | Значение создания схемы для входной инженерной сети. | Integer |
serviceTerritoryFeatureClassName (только чтение) | Название полигонального класса объектов, использующегося для задания экстента инженерной сети. | String |
systemJunctionSource (только чтение) | Объект systemJunctionSource. Объект может использоваться для получения свойств источников системных соединений. | Object |
terminalConfigurations (только чтение) | Объект terminalConfigurations. Объект может использоваться для получения свойств конфигурации терминалов. | Object |
Пример кода
Этот автономный скрипт Python выводит отчет о некоторых свойствах инженерных сетей.
'''****************************************************************************
Name: DescribeUtilityNetworkProperties.py
Description: This script reports the properties of a utility network
Created by: Esri
****************************************************************************'''
# Import required modules
import arcpy
# Describe function on a Utility Network
UN = "C:\\MyProject\\databaseConn.sde\\pro21.USER1.Naperville\\pro21.USER1.ElectricNetwork"
d = arcpy.Describe(UN)
# Top level UN properties
print(f"Creation Time: {d.creationTime}")
print(f"Pro Version: {d.proVersion}")
print(f"Global ID: {d.globalId}")
print(f"Properties: {d.properties}")
print(f"Schema generation: {d.schemaGeneration}")
print(f"Minimal dirty area size: {d.minimalDirtyAreaSize}")
print(f"Create Dirty Area For Any Attribute Update: {d.createDirtyAreaForAnyAttributeUpdate} \n")
# Association source properties
asources = d.associationSource
print("*** - Association Sources properties - ***")
print(f"Name: {asources.name}")
print(f"ID: {asources.sourceID}")
print(f"Type: {asources.sourceType} \n")
# System junction source properties
sjsources = d.systemJunctionSource
print("*** - System Junction Source properties - ***")
print(f"Name: {sjsources.name}")
print(f"ID: {sjsources.sourceID}")
print(f"Type: {sjsources.sourceType} \n")
# Domain Network properties
domnets = d.domainNetworks
for dom in domnets:
print("*** - Domain Network properties - ***")
print(f"Creation Time: {dom.creationTime}")
print(f"Release Number: {dom.releaseNumber}")
print(f"Is Structure Network: {dom.isStructureNetwork}")
print(f"Domain Network ID: {dom.domainNetworkId}")
print(f"Domain Network Name: {dom.domainNetworkName}")
print(f"Domain Network Alias Name: {dom.domainNetworkAliasName}")
print(f"Subnetwork Table Name: {dom.subnetworkTableName}")
print(f"Subnetwork Label Field Name: {dom.subnetworkLabelFieldName}")
print(f"Tier Definition: {dom.tierDefinition}")
print(f"Subnetwork Controller Type: {dom.subnetworkControllerType} \n")
# Network Attribute properties
netattrs = d.networkAttributes
for na in netattrs:
print("*** - Network Attribute properties - ***")
print(f"ID: {na.Id}")
print(f"Name: {na.name}")
print(f"Data Type: {na.dataType}")
print(f"Usage Type: {na.usageType}")
print(f"isEmbedded: {na.isEmbedded}")
print(f"isApportionable: {na.isApportionable}")
print(f"isOverridable: {na.isOverridable}")
print(f"Domain name: {na.domainName}")
print(f"bitPosition: {na.bitPosition}")
print(f"bitSize: {na.bitSize}")
print(f"Junction Weight ID: {na.junctionWeightId}")
print(f"Edge Weight ID: {na.edgeWeightId} \n")
# For each attribute assignment in the attribute assignments object:
try:
unas = na.assignments
for una in unas:
print(" -- Attribute Assignment Properties -- ")
print(f"Utility Network Assignment Attribute ID: {una.networkAttributeId}")
print(f"Utility Network Assignment Attribute Source Name: {una.networkSourceName} \n")
# For each field evaluator in the attribute evaluator object:
print(" - Field Evaluator Properties - ")
fe = una.evaluator
print(f"Field Evaluator Type: {fe.evaluatorType}")
print(f"Field Evaluator Name: {fe.fieldName} \n")
except:
print(f"{na.name} does not have any attribute assignments \n")
# Terminal Configuration properties
termconfigs = d.terminalConfigurations
for tc in termconfigs:
print("*** - Terminal Configuration Properties - ***")
print(f"ID: {tc.terminalConfigurationId}")
print(f"Name: {tc.terminalConfigurationName}")
print(f"Traversability Model: {tc.traversabilityModel}")
print(f"Default Configuration: {tc.defaultConfiguration} \n")
# For each terminal in the terminals object:
for t in tc.terminals:
print(" -- Terminal Properties -- ")
print(f"Terminal ID: {t.terminalId}")
print(f"Terminal Name: {t.terminalName}")
print(f"Terminal Is Upstream: {t.isUpstreamTerminal} \n")
# For each configuration in the valid configurations object:
try:
for lc in tc.validConfigurations:
print(" - Configuration Properties - ")
print(f"Configuration Id: {lc.id}")
print(f"Configuration Name: {lc.name}")
print(f"Description: {lc.description} \n")
try:
for tp in lc.terminalPaths:
print(f"From terminal id: {tp.fromTerminalId}")
print(f"To terminal id: {tp.toTerminalId}")
except:
print(f"{lc.name} does not have any terminal paths \n")
except:
print(f"{t.terminalName} does not have any valid configurations \n")
# Categories properties
categories = d.categories
for cat in categories:
print("*** - Categories properties - ***")
print(f"Category creation time: {cat.creationTime}")
print(f"Category Name: {cat.name} \n")