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 方法可在两个非重合要素之间创建连通性关联以模拟连通性。

例如,如果存在支持关联的网络规则,则可以在域网络和结构网络中定义点要素类和交汇点对象表的连通性关联。 当通过连通性关联保持连通性时,两个不重叠的点要素(例如变压器和保险丝)可以彼此偏移 x 和 y 或 z。 交汇点-交汇点连通性还支持要素上终端之间的连通性。

连通性关联有多种类型:交汇点-交汇点连通性、交汇点-边自连通性、交汇点-边中跨连通性以及交汇点-边至连通性。

AddContainmentAssociation (container_table, container_global_id, content_table, content_global_id, is_content_visible)

AddContainmentAssociation 方法可创建包含关联以对网络中密集的要素集合进行建模。

包含关联允许单个要素表示密集的要素集合。 例如,设备、电线和导体将放置于变电站、开关装置、沟渠和管道等要素中。 可以在地图视图中显示或隐藏内容要素,以提高可见性并减少地图混乱。 包含其他要素的要素称为容器,而包含于其他要素中的要素称为内容。

公共设施网络支持嵌套包含以及内容和容器间的一对多关系。 在嵌套包含中,容器要素可以包含另一个容器要素,而其中可以包含其他内容。 例如,变电站可以包含接线盒,而接线盒可以包含电子设备。 在一对多关系中,单个内容要素可以包含在多个容器中,例如,跨越多个管线组的单个地下线路。

AddStructuralAttachmentAssociation (structure_table, structure_global_id, attachment_table, attachment_global_id)

AddStructuralAttachmentAssociation 方法可创建结构附件关联,以支持对网络中传递资源的支持结构和附件进行建模。

结构附件在逻辑上将结构要素与公共设施网络中的其他要素相关联。 这些关联允许您对支持设备的结构和附加于其上的关联资产之间的关系进行建模。 例如,电线杆可以作为结构,变压器可以作为附件。

了解有关如何创建结构附件关联的详细信息

DeleteConnectivityAssociation (association_type, association_global_id)

DeleteConnectivityAssociation 方法可移除两个要素之间的连通性关联

了解有关如何删除连通性关联的详细信息

DeleteContainmentAssociation (association_global_id)

DeleteContainmentAssociation 方法可移除容器要素及其内容之间的容器关联

了解有关如何删除容器关联的详细信息

DeleteStructualAttachmentAssociation (association_global_id)

DeleteStructualAttachmentAssociation 方法可移除结构要素和附件要素之间的结构附件关联

了解有关如何删除结构附件关联的详细信息

DisableSubnetworkController (table, global_id, terminal_name)

DisableSubnetworkController 方法可从设备或交汇点对象上的终端移除子网控制器分配。

了解有关如何移除子网控制器的详细信息

EnableSubnetworkController (table, global_id, terminal_name, subnetwork_controller_name, subnetwork_name, tier_name, description, notes)

EnableSubnetworkController 方法可启用一个子网控制器。

子网控制器在设备或交汇点对象的终端上进行设置,以表示子网的起点。

了解有关如何设置子网控制器的详细信息

HasValidNetworkTopology ()

HasValidNetworkTopology 方法可检查是否已启用网络拓扑。

在创建关联和修改子网控制器之前,确保公共设施网络的拓扑已启用非常有用。

方法

AddConnectivityAssociation (association_type, from_table, from_global_id, from_terminal_name, to_table, to_global_id, to_terminal_name, percent_along)
参数说明数据类型
association_type

An integer value representing the type of connectivity association that will be created.

  • 1—Junction-Junction Connectivity association
  • 4—Junction-Edge From Connectivity association
  • 5—Junction-Edge Midspan Connectivity association
  • 6—Junction-Edge To Connectivity association
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

新连通性关联的对象 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)
参数说明数据类型
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)
参数说明数据类型
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

新附件关联的对象 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)
参数说明数据类型
association_type

An integer value representing the type of connectivity association that will be deleted.

  • 1—Junction-Junction Connectivity association
  • 4—Junction-Edge From Connectivity association
  • 5—Junction-Edge Midspan Connectivity association
  • 6—Junction-Edge To Connectivity association
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)
参数说明数据类型
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)
参数说明数据类型
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)
参数说明数据类型
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)
参数说明数据类型
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

子网表中新行的对象 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 ()
返回值
数据类型说明
Boolean

如果返回的布尔值为 True,则表示公共设施网络的拓扑已启用。

import arcpy
 
myUtilityNetwork = arcpy.un.UtilityNetwork(
    r"C:\path\to\data\testdata1.sde\ELEC.TestNetwork\ELEC.TestNetwork")

is_valid = myUtilityNetwork.HasValidNetworkTopology()