Экспорт определений всех шаблонов схем, связанных с заданной сетью.
Следующий инструмент-скрипт получает список шаблонов схем, связанных с сетью, и экспортирует определения для каждого шаблона в файлы .ndbd и .ndld в заданную файлу.
Для добавления и настройки этого инструмента-скрипта выполните следующие шаги:
- Скопируйте следующий скрипт в любой Python IDE и сохраните его с разрешением .py.
- Запустите ArcGIS Pro с новым чистым проектом или с любым имеющимся проектом.
- Добавьте новый набор инструментов или на панели Каталог щелкните Проект и используйте набор инструментов по умолчанию в разделе Наборы инструментов.
- Щелкните правой кнопкой мыши набор инструментов и выберите Новый > Скрипт.
- Заполните вкладку Общие, как показано ниже:
- Имя – введите ExportAllDiagramTemplateDefinitions.
- Надпись – введите Экспорт всех определений шаблонов схем.
- Файл скрипта – Найдите его и выберите файл .py, созданный в шаге 1.
- Заполните вкладку Параметры, как показано ниже:
- Первый параметр
- Надпись – введите Входная сеть.
- Имя - сохраните имя по умолчанию Input_Network.
- Тип данных – Выберите Инженерная сеть и Трассировка сети.
- Тип – выберите Обязательный.
- Направление - выберите Входное.
- Второй параметр
- Подпись - введите Папка экспорта файлов определения.
- Имя - сохраните имя по умолчанию Definition_Files_Export_Folder.
- Тип данных – выберите Папка.
- Тип – выберите Обязательный.
- Направление - выберите Входное.
- Щелкните OK. Диалоговое окно Инструмента-скрипта закрывается.
Для запуска инструмента выполните следующие шаги:
- Разверните набор инструментов и дважды щелкните на инструмент, чтобы открыть его.
- Укажите параметр Входная сеть: перейдите и выберите файл подключения к базе данных, ссылающийся на сеть, из которой вы хотите экспортировать все определения шаблонов,
- Укажите параметр Выходная папка – перейдите и выберите выходную папку, куда вы хотите экспортировать файлы определения шаблонов.
- Щелкните Запустить.
# 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