UtilityNetwork
Краткая информация
Класс UtilityNetwork обеспечивает доступ к методам, поддерживающим управление контроллерами подсети и связями между объектами сети.
Синтаксис
UtilityNetwork(utilityNetworkPath)
| Имя | Объяснение | Тип данных |
|---|---|---|
|
utilityNetworkPath |
The input utility network. |
String |
Методы
AddConnectivityAssociation(association_type, from_table, from_global_id, from_terminal_name, to_table, to_global_id, to_terminal_name, percent_along)
Метод AddConnectivityAssociation создает связь связности между двумя не совпадающими объектами для моделирования связности.
Например, вы можете определить связи связности для классов точечных объектов и таблиц объектов соединений в специализированной сети при условии, что в сети существуют правила, поддерживающие эту связь.
Существует несколько типов связей связности: соединение-соединение, соединение-ребро от, соединение-ребро середина и соединение-ребро до.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
association_type |
An integer value representing the type of connectivity association that will be created.
|
Integer |
|
from_table |
The table name of the from object. |
String |
|
from_global_id |
The global ID of the from object. |
String |
|
from_terminal_name |
The terminal name of the from object. |
String |
|
to_table |
The table name of the to object. |
String |
|
to_global_id |
The global ID of the to object. |
String |
|
to_terminal_name |
The terminal name of the to object. |
String |
|
percent_along |
The percentage along the edge where the connection occurs. This is only used for midspan connectivity.. |
Float |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Integer |
Object ID новой связи связности. |
import arcpy
editor = arcpy.da.Editor(r"C:\testData\SDK_UtilityNetwork.geodatabase")
# Pass in the utility network layer
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\testData\SDK_UtilityNetwork.geodatabase\main.TestNetwork\main.TestNetwork")
if not editor.isEditing:
editor.startEditing()
editor.startOperation()
object_id = myUtilityNetwork.AddConnectivityAssociation(
1, "WaterDevice","{41D5BFC0-BFED-40A1-AB1A-02B0D69FB835}",
"High Pressure In", "WaterDevice",
"{D8F5535D-36B1-485E-97D3-E92E453CC11E}", "Port One", 0)
if editor.isEditing:
editor.stopOperation()
editor.stopEditing(True)
AddContainmentAssociation(container_table, container_global_id, content_table, content_global_id, is_content_visible)
Метод AddContainmentAssociation создает связи содержания для моделирования плотной коллекции объектов в сети.
Связи содержания позволяют представить коллекцию объектов в виде отдельного объекта. Например, устройства, провода и проводники могут размещаться внутри таких объектов, как подстанция, коммутатор, траншея трубопровода или канал для прокладки проводов. Объекты содержания могут быть показаны или скрыты в виде карты, чтобы улучшить видимость и уменьшить беспорядок на карте. Объект, содержащий другие объекты, называется контейнером, а находящиеся в нем объекты называются содержанием.
Инженерная сеть поддерживает вложенное содержание, а также отношения один-ко-многим между содержанием и контейнером. Во вложенном содержании объект контейнера может содержать в себе другой объект контейнера, в который, в свою очередь, включено содержание. Например, в подстанцию может входить распределительная коробка, которая может содержать электрические устройства. При отношении один-ко-многим отдельный объект содержания содержится более, чем в одном контейнере, например, одна линия проходит по многим кабельным блокам.
Примечание:
Точечный объект не может быть содержанием более чем одного объекта контейнера.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
container_table |
The table name of the container object. |
String |
|
container_global_id |
The global ID of the container object. |
String |
|
content_table |
The table name of the content object. |
String |
|
content_global_id |
The global ID of the content object. |
String |
|
is_content_visible |
Specifies whether the content will be visible. |
Boolean |
import arcpy
editor = arcpy.da.Editor(r"C:\testData\SDK_UtilityNetwork.geodatabase")
# Pass in the utility network layer
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\testData\SDK_UtilityNetwork.geodatabase\main.TestNetwork\main.TestNetwork")
if not editor.isEditing:
editor.startEditing()
editor.startOperation()
myUtilityNetwork.AddContainmentAssociation(
"StructureBoundary", "{A498A20B-C086-48C9-993D-F71231037806}",
"WaterDevice", "{90483407-0BBF-48FF-A7B8-D3D26313A7CB}", True)
if editor.isEditing:
editor.stopOperation()
editor.stopEditing(True)
AddStructuralAttachmentAssociation(structure_table, structure_global_id, attachment_table, attachment_global_id)
Метод AddStructuralAttachmentAssociation создает связь прикрепления к структуре, чтобы обеспечить моделирование поддерживающих структур и прикреплений, которые передают ресурсы в сети.
Прикрепления к структуре логически связывают объекты структуры с другими объектами в инженерной сети. Эти связи позволяют моделировать отношения между структурами, которые поддерживают оборудование, и связанным оборудованием. Например, столб может служить в качестве структуры с трансформатором в качестве прикрепления.
Более подробно о создании связей прикреплений к структуре
| Имя | Объяснение | Тип данных |
|---|---|---|
|
structure_table |
The table name of the structure object. |
String |
|
structure_global_id |
The global ID of the structure object. |
String |
|
attachment_table |
The table name of the attachment object. |
String |
|
attachment_global_id |
The global ID of the attachment object. |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Integer |
Object ID новой связи прикрепления к структуре. |
import arcpy
editor = arcpy.da.Editor(r"C:\testData\SDK_UtilityNetwork.geodatabase")
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\testData\SDK_UtilityNetwork.geodatabase\main.TestNetwork\main.TestNetwork")
if not editor.isEditing:
editor.startEditing()
editor.startOperation()
object_id = myUtilityNetwork.AddStructuralAttachmentAssociation(
"StructureJunction", "{529DE843-659D-499B-AF2A-FA8E47E89CAD}",
"ElecDistDevice", "{505C79BC-1019-4A71-85B5-F4D38F6E0C6E}")
if editor.isEditing:
editor.stopOperation()
editor.stopEditing(True)
DeleteConnectivityAssociation(association_type, association_global_id)
Метод DeleteConnectivityAssociation удаляет связь связности между двумя объектами.
Более подробно о том, как удалить связь связности
| Имя | Объяснение | Тип данных |
|---|---|---|
|
association_type |
An integer value representing the type of connectivity association that will be deleted.
|
Integer |
|
association_global_id |
The global ID of the association that will be deleted. |
String |
import arcpy
editor = arcpy.da.Editor(r"C:\testData\SDK_UtilityNetwork.geodatabase")
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\testData\SDK_UtilityNetwork.geodatabase\main.TestNetwork\main.TestNetwork")
if not editor.isEditing:
editor.startEditing()
editor.startOperation()
myUtilityNetwork.DeleteConnectivityAssociation(
1, "{0356CDD1-C44A-4273-8EE7-73A27EFEF116}")
if editor.isEditing:
editor.stopOperation()
editor.stopEditing(True)
DeleteContainmentAssociation(association_global_id)
Метод DeleteContainmentAssociation удаляет связь содержания между объектом-контейнером и его содержанием.
Более подробно о том, как удалить связь содержания
| Имя | Объяснение | Тип данных |
|---|---|---|
|
association_global_id |
The global ID for the specified containment association in the utility network. |
String |
import arcpy
editor = arcpy.da.Editor(r"C:\testData\SDK_UtilityNetwork.geodatabase")
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\testData\SDK_UtilityNetwork.geodatabase\main.TestNetwork\main.TestNetwork")
if not editor.isEditing:
editor.startEditing()
editor.startOperation()
myUtilityNetwork.DeleteContainmentAssociation(
"{8513D6CE-0416-4967-BBCC-591A1C34CF4A}")
if editor.isEditing:
editor.stopOperation()
editor.stopEditing(True)
DeleteStructualAttachmentAssociation(association_global_id)
Метод DeleteStructualAttachmentAssociation удаляет связь прикрепления к структуре между объектом структуры и прикрепленным объектом.
Более подробно о том, как удалить связь прикрепления к структуре
| Имя | Объяснение | Тип данных |
|---|---|---|
|
association_global_id |
The global ID of the specified structural attachment association in the utility network. |
String |
import arcpy
editor = arcpy.da.Editor(r"C:\testData\SDK_UtilityNetwork.geodatabase")
# Pass in the utility network layer
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\testData\SDK_UtilityNetwork.geodatabase\main.TestNetwork\main.TestNetwork")
if not editor.isEditing:
editor.startEditing()
editor.startOperation()
myUtilityNetwork.DeleteStructuralAttachmentAssociation(
"{549DE843-659D-499B-AF2A-FA8E47E89CAD}")
if editor.isEditing:
editor.stopOperation()
editor.stopEditing(True)
DisableSubnetworkController(table, global_id, terminal_name)
Метод DisableSubnetworkController удаляет назначение контроллера подсети с терминала на устройстве или объекте соединения.
Более подробно о том, как удалить контроллер подсети
| Имя | Объяснение | Тип данных |
|---|---|---|
|
table |
The table name to which the subnetwork controller is assigned. |
String |
|
global_id |
The global ID for the feature to which the subnetwork controller is assigned. |
String |
|
terminal_name |
The name of the terminal to which the subnetwork controller is assigned. |
String |
import arcpy
editor = arcpy.da.Editor(r"C:\testData\SDK_UtilityNetwork.geodatabase")
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\testData\SDK_UtilityNetwork.geodatabase\main.TestNetwork\main.TestNetwork")
if not editor.isEditing:
editor.startEditing()
editor.startOperation()
myUtilityNetwork.DisableSubnetworkController(
"ElecDistDevice", "{A6BFF336-92F9-45F0-8ACE-AAD6137E5E2B}", "Side1")
if editor.isEditing:
editor.stopOperation()
editor.stopEditing(True)
EnableSubnetworkController(table, global_id, terminal_name, subnetwork_controller_name, subnetwork_name, tier_name, description, notes)
Метод EnableSubnetworkController включает контроллер подсети.
Контроллеры подсети задаются на терминале устройства или объекта соединения для представления исходной подсети.
Более подробно о том, как настроить контроллер подсети
| Имя | Объяснение | Тип данных |
|---|---|---|
|
table |
The table name to which the new subnetwork controller will be assigned. |
String |
|
global_id |
The global ID for the feature to which the new subnetwork controller will be assigned. |
String |
|
terminal_name |
The name of the terminal on which the new subnetwork controller will be assigned. |
String |
|
subnetwork_controller_name |
The name of the new subnetwork controller. |
String |
|
subnetwork_name |
The name of the subnetwork on which the subnetwork controller participates. |
String |
|
tier_name |
The name of the tier to which the subnetwork controller belongs. |
String |
|
description |
A description of the new subnetwork controller. |
String |
|
notes |
Notes for the new subnetwork controller. |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Integer |
Object ID новой строки в таблице подсетей. |
import arcpy
editor = arcpy.da.Editor(r"C:\testData\SDK_UtilityNetwork.geodatabase")
# Pass in the utility network layer
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\testData\SDK_UtilityNetwork.geodatabase\main.TestNetwork\main.TestNetwork")
if not editor.isEditing:
editor.startEditing()
editor.startOperation()
object_id = myUtilityNetwork.EnableSubnetworkController(
"PipelineDevice", "{560FCA60-62B4-4B40-8CD9-9986AD63FA10}", "Terminal One",
"#2-213 - Batchelder HP T1", "213 - Batchelder HP", "Cathodic Read Location",
"Some Description", "No Notes")
if editor.isEditing:
editor.stopOperation()
editor.stopEditing(True)
HasValidNetworkTopology()
Метод HasValidNetworkTopology проверяет, включена ли топология сети.
Перед созданием связей и изменением контроллеров подсети полезно убедиться в том, что топология инженерной сети включена.
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Boolean |
Возвращенное логическое значение True указывает, что топология для инженерной сети включена. |
import arcpy
myUtilityNetwork = arcpy.un.UtilityNetwork(
r"C:\path\to\data\testdata1.sde\ELEC.TestNetwork\ELEC.TestNetwork")
is_valid = myUtilityNetwork.HasValidNetworkTopology()