描述
返回与网络相关的所有逻辑示意图模板的名称。
使用方法
系统在使用公共设施网络或追踪网络服务时不支持此工具。您必须使用文件地理数据库中的公共设施网络或追踪网络,或者企业级地理数据库中公共设施网络或追踪网络的数据库连接。使用企业级地理数据库时,需要满足以下要求:
- 输入网络参数值必须来自作为数据库公共设施网络所有者或数据库追踪网络所有者建立的数据库连接。
- 连接的 ArcGIS Enterprise 门户帐户必须为门户公共设施网络所有者或门户追踪网络所有者。
- 该工具必须连接到预期为公开且不受保护的默认版本。
此工具在 ModelBuilder 或 Python 中运行时,主要用于针对逻辑示意图模板进行循环。
语法
arcpy.nd.GetDiagramTemplateNames(in_utility_network)
参数 | 说明 | 数据类型 |
in_utility_network | 与逻辑示意图模板名称相关的 公共设施网络或追踪网络。 | Utility Network; Trace Network |
派生输出
名称 | 说明 | 数据类型 |
out_template_names | 输出逻辑示意图模板名称。 | 字符串 |
代码示例
导出与给定网络相关的所有逻辑示意图模板的定义。
下列脚本工具用于检索与网络相关的逻辑示意图模板列表,以及将每个模板的定义导出为给定文件夹中的 .ndbd 和 .ndld 文件。
要添加和配置此脚本工具,请完成以下步骤:
- 将以下脚本复制到 Python IDE 中,并以 .py 扩展名进行保存。
- 以新的空白工程或现有工程启动 ArcGIS Pro。
- 添加新工具箱,或在目录窗格中,单击工程,然后使用工具箱下的默认工程工具箱。
- 右键单击此工具箱,然后单击新建 > 脚本。
- 完成常规选项卡,如下所示:
- 名称 - 输入 ExportAllDiagramTemplateDefinitions。
- 标注:输入导出所有逻辑示意图模板定义。
- 脚本文件:浏览至步骤 1 中创建的 .py 文件并选择。
- 完成参数选项卡,如下所示:
- 第一个参数
- 标注 - 输入输入网络。
- 名称 - 保留默认名称 Input_Network。
- 数据类型 - 选择公共设施网络和追踪网络。
- 类型 - 选择必填。
- 方向 - 选择输入。
- 第二个参数
- 标注 - 输入 Definition Files Export Folder。
- 名称 - 保留默认名称 Definition_Files_Export_Folder。
- 数据类型 - 选择文件夹。
- 类型 - 选择必填。
- 方向 - 选择输入。
- 第一个参数
- 单击确定。脚本工具对话框随即关闭。
要运行脚本工具,请完成以下步骤:
- 展开工具箱并双击该工具将其打开。
- 指定输入网络参数 - 即浏览至引用要从中导出所有模板定义的网络的数据库连接文件并选择。
- 指定输出文件夹参数 - 即浏览至要从中导出模板定义文件的输出文件夹并选择。
- 单击运行。
# Name: ExportAllDiagramTemplateDefinitions.py
# Description: Export definitions of all diagram templates related to a given network.
# Import system modules
import arcpy
import os
import re
# Initialize variables
msgInputsErr = "Invalid arguments."
msgScriptErr = "Error during script operation."
ndbd_ext = ".ndbd"
ndld_ext = ".ndld"
# Set overwrite option
arcpy.env.overwriteOutput = True
# Decodes parameters
try:
input_Network = arcpy.GetParameterAsText(0)
input_Folder = arcpy.GetParameterAsText(1)
if input_Network == "" or input_Folder == "" :
raise Exception()
except Exception:
arcpy.AddError(msgInputsErr)
raise
# Main code
try:
arcpy.AddMessage("Retrieving the templates list...")
output_TemplateNames = arcpy.GetDiagramTemplateNames_nd(input_Network)
templateNamesList = re.split(';', str(output_TemplateNames))
arcpy.AddMessage("Looping on each template...")
for template in templateNamesList:
message = "Exporting template: {}".format(template)
arcpy.AddMessage(message)
arcpy.ExportDiagramTemplateDefinitions_nd(input_Network, template,
os.path.join(input_Folder, template + ndbd_ext),
os.path.join(input_Folder, template + ndld_ext))
except Exception:
arcpy.AddError(msgScriptErr)
raise
环境
此工具不使用任何地理处理环境。
许可信息
- Basic: 否
- Standard: 是
- Advanced: 是