Сводка
Обновить схематическое представление.
В зависимости от компоновщика схемы обновление схемы может быть основано на слоях объектов, классах объектов, таблицах объектов, произведенном сетевом анализе или файле XML.
Использование
Параметр Входные данные необходим для схем, работающих с Компоновщиком набора сетевых данных и XML компоновщиком. И необязателен для схем, работающих со Стандартным компоновщиком, настроенным для работы из геометрической сети или набора сетевых данных. Параметр не нужно задавать для схем, работающих со Стандартным компоновщиком, настроенным для работы из пользовательских запросов.
При использовании инструмента Обновить схему для схем, реализованных с помощью Стандартного компоновщика, созданного из трассировки геометрической сети, обновление происходит из обновленного результата трассировки, основанного на параметрах трассировки, сохраненных в наборе схематических данных при первом создании схемы из выделенной трассировки.
Когда обновление должно производится из объектов, составляющих геометрическую сеть или набор сетевых данных, все слои объектов в параметре Входные данные можно не задавать. Если в свойствах Стандартного компоновщика задана опция Добавить соединенные узлы, можно указать только слои объектов, связанные с объектами ребер или элементы ребер сети, даже если для обновления будут использоваться все слои объектов, связанные с геометрической сетью или набором сетевых данных (соединения и ребра).
Если для заданного схематического представления была сохранена какая-нибудь компоновка, объекты схемы, бывшие в схеме до обновления, отображаются в соответствии с их последним сохраненным местоположением, а новые объекты схемы, которые могли быть вставлены в ходе обновления, размещаются в соответствии с их географическими координатами.
Синтаксис
arcpy.schematics.UpdateDiagram(in_diagram, {in_data}, {builder_options})
Параметр | Объяснение | Тип данных |
in_diagram | Обновляемый слой схематического представления. | Schematic Layer |
in_data [in_data,...] (Дополнительный) | Входные данные, на которых будет основываться схема. Параметр Входные данные не требуется для всех предопределенных компоновщиков, это дополнительный параметр:
| Table View;Data Element;Layer |
builder_options (Дополнительный) | Опции обновления компоновщика схемы. Опции обновления необязательны. Они зависят от компоновщика, связанного с шаблоном схемы, реализующим заданное схематическое представление:
| String |
Пример кода
UpdateDiagram и Стандартный компоновщик, работающий из пользовательских запросов, пример 1 (автономный скрипт Python)
Обновляет образец схематического представления, полностью построенного из пользовательских запросов. В этом случае требуется только параметр имени схемы.Как запустить этот пример скрипта Python:
- Запустите ArcCatalog или ArcMap с новой пустой картой.
- Скопируйте приведенный ниже скрипт в Окно Python:
- Нажмите ENTER.
# Name: UpdateDiagramCustomQuery.py
# Description: Update a schematic diagram entirely built from custom queries
# Requirement: ArcGIS Schematics extension extension
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension extension license required"
try:
# Checks out the ArcGIS Schematics extension extension license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
gdbName="ElecDemo.gdb"
in_schDataset="ElecDemo"
in_schFolder="Inside Plants"
in_diagName="Substation 08"
builder_option1="REFRESH"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# UpdateDiagram by only refreshing attributes on the input diagram's schematic features
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_schFolder + "/" + in_diagName, "#", builder_option1)
# UpdateDiagram by fully synchronizing the input custom queries-based diagram (no parameters required)
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_schFolder + "/" + in_diagName)
# Returns the ArcGIS Schematics extension extension license
arcpy.CheckInExtension("Schematics")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occurred on line %i" % tb.tb_lineno
print str(e)
UpdateDiagram и Стандартный компоновщик, работающий с данными геометрической сети, пример 2 (автономный скрипт Python)
Обновляет образцы схематических представлений, созданных из объектов, организованных в геометрическую сеть.Как запустить этот пример скрипта Python:
- Запустите ArcCatalog или ArcMap с новой пустой картой.
- Скопируйте приведенный ниже скрипт в Окно Python:
- Нажмите ENTER.
# Name: UpdateDiagramStd.py
# Description: Update schematic diagrams built from features organized into a geometric network
# Requirement: ArcGIS Schematics extension extension
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension extension license required"
try:
# Checks out the ArcGIS Schematics extension extension license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
gdbName="ElecDemo.gdb"
in_schDataset="ElecDemo"
in_schFolder="Feeders"
in_diagTempName="GeoSchematic"
# Sets variables used for the A/ UpdateDiagram sample
in_diagAName="Feeder 0801-Rice Creek"
# Sets variables used for the B/ UpdateDiagram sample
in_diagBName="Feeder 0802-Goldmine"
# Sets variables used for the C/ UpdateDiagram sample
in_diagCName="WholeElectricNetworkDiagram"
input_ForCDiag="ElectricNetwork/PrimaryLine;ElectricNetwork/SecondaryLine"
input_FC1="ElectricNetwork/PrimaryLine"
# Sets variables used for the D/ UpdateDiagram sample
in_diagDName="FeederDiagram"
input_ForDDiag="ElectricNetwork/Feeder"
input_FC2="ElectricNetwork/Substation"
# Sets variables used for the E/ UpdateDiagram sample
in_diagEName="FeederDiagramBIS"
input_ForEDiag="ElectricNetwork/Feeder"
input_FC3="ElectricNetwork/ServiceLocation"
# Sets variables used for the F/ UpdateDiagram sample
input_LayerName="PrimaryLineLayer"
input_Filter="PHASECODE=135"
in_diagFName="PrimaryLinesDiagram"
# Sets builder_options variables for diagram Update
# - For simply refreshing the diagram's attributes only
U_option1="REFRESH"
# - For rebuilding the diagram from a different input
U_option2="REBUILD;KEEP_MANUAL_MODIF"
U_option2BIS="REBUILD;NO_KEEP_MANUAL_MODIF"
# - For appending new features to the diagram with a partial synchronization of its content
U_option3="APPEND_QUICK;KEEP_MANUAL_MODIF"
U_option3BIS="APPEND_QUICK;NO_KEEP_MANUAL_MODIF"
# - For appending new features to the diagram with a full synchronization of its content
U_option4="APPEND;KEEP_MANUAL_MODIF"
U_option4BIS="APPEND;NO_KEEP_MANUAL_MODIF"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# Creates some new diagrams that will be used to exemplify the C/, D/, E/ and F/ UpdateDiagram samples
arcpy.CreateDiagram_schematics(in_schDataset, in_diagCName, in_diagTempName, input_ForCDiag)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagDName, in_diagTempName, input_ForDDiag)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagEName, in_diagTempName, input_ForEDiag)
InputLayer = arcpy.MakeFeatureLayer_management(input_FC1, input_LayerName, input_Filter)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagFName, in_diagTempName, InputLayer)
# A/ UpdateDiagram by fully synchronizing the diagram content; no udpate parameters required
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_schFolder + "/" + in_diagAName)
# B/ UpdateDiagram by only refreshing attributes on the input diagram's schematic features
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_schFolder + "/" + in_diagBName, "#", U_option1)
# C/ UpdateDiagram by rebuilding the input diagram from a feature class
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagCName, input_FC1, U_option2)
# D/ UpdateDiagram by appending new features to the input diagram with a partial synchronization
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagDName, input_FC2, U_option3)
# E/ UpdateDiagram by appending new features to the input diagram with a full synchronization
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagEName, input_FC3, U_option4)
# F/ UpdateDiagram by rebuilding the input diagram from an input layer
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagFName, InputLayer, U_option2)
# Returns the ArcGIS Schematics extension extension license
arcpy.CheckInExtension("Schematics")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occurred on line %i" % tb.tb_lineno
print str(e)
UpdateDiagram и XML компоновщик, пример 3 (автономный скрипт Python)
Обновляет образец схематического представления на основе XML компоновщика.Как запустить этот пример скрипта Python:
- Запустите ArcCatalog
- Создание и настройка набора схематических данных, используемого в ходе работы примера скрипта:
- Перейдите в папку C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data в дереве Каталога.
- Щелкните правой кнопкой мыши базу геоданных GISDatabaseForXML, выберите Новый, а затем щелкните Набор схематических данных.
- Введите XMLDataset в качестве имени только что созданного набора схематических данных и нажмите клавишу ENTER.
- Щелкните правой кнопкой мыши набор схематических данных XMLDataset и щелкните Редактировать.
- Щелкните правой кнопкой мыши элемент XMLDataset в дереве Редактора набора данных и щелкните Новый шаблон схематического представления.
- Введите XMLDiagrams в текстовое поле Имя.
- Выберите XML-компоновщик в разделе Компоновщик схемы.
- Щелкните Свойства компоновщика схемы и отметьте опцию Автоматическое создание класса объектов схемы.
- Закройте диалоговое окно Свойства компоновщика.
- Нажмите ОК.
- Щелкните Сохранить на панели инструментов Редактор набора схематических данных и закройте Редактора.
- Скопируйте и вставьте следующий скрипт в окно Python в ArcCatalog или ArcMap:
- Нажмите ENTER.
# Name: UpdateDiagramXML.py
# Description: Update schematic diagrams based on the XML builder
# Requirement: ArcGIS Schematics extension extension
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension extension license required"
try:
# Checks out the ArcGIS Schematics extension extension license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/XML_Data"
gdbName="GISDatabaseForXML.gdb"
in_schDataset="XMLDataset"
in_diagName="XMLDiagramFeeder1"
in_diagTempName="XMLDiagrams"
input_XmlFile1="SampleNetworkFeeder1.xml"
input_XmlFile2="SampleNetworkUpdatedFeeder1.xml"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a XML file, SampleNetworkFeeder1.xml
arcpy.CreateDiagram_schematics(in_schDataset, in_diagName, in_diagTempName, dataLocation + "/" + input_XmlFile1)
# Updates the XMLDiagramFeeder1 diagram from another XML file, SampleNetworkUpdatedFeeder1.xml
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagName, dataLocation + "/" + input_XmlFile2)
# Returns the ArcGIS Schematics extension extension license
arcpy.CheckInExtension("Schematics")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message import traceback, sys
tb = sys.exc_info()[2]
print "An error occured on line %i" % tb.tb_lineno
print str(e)
UpdateDiagram и Компоновщик набора сетевых данных, пример 4 (автономный скрипт Python)
Обновляет схематические представления, основанные на Компоновщике набора сетевых данных.Как использовать этот пример скрипта Python:
- Запустите ArcMap.
- Откройте файл Open the ParisTours.mxd, хранящийся в C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset.
- Щелкните Геообработка > Опции геообработки.
- Снимите отметку с Включить в разделе Обработка в фоновом режиме и щелкните ОК.
- Скопируйте приведенный ниже скрипт в Окно Python:
# Name: UpdateDiagramNDS.py
# Description: Update sample schematic diagrams based on the Network Dataset builder
# Requirement: ArcGIS Schematics extension extension,ArcGIS Network Analyst extension extension
# import system modules
import arcpy
msgNoLicenseSchematicsAvailable = "ArcGIS Schematics extension extension license required"
msgNoLicenseNetworkAnalystAvailable = "ArcGIS Network Analyst extension extension license required"
try:
# Checks out the ArcGIS Schematics extension extension licence
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseSchematicsAvailable)
# Checks out the ArcGIS Network Analyst extension extension licence
if arcpy.CheckExtension("Network") == "Available":
arcpy.CheckOutExtension("Network")
else:
raise Exception(msgNoLicenseNetworkAnalystAvailable)
# Sets general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/Network_Dataset"
gdbName="NetworkAnalyst_Schematics.gdb"
in_schDataset="NA_SchematicDataset"
in_diagAName="DiagramTour2_A"
in_diagBName="DiagramTour2_B"
in_diagTempName="NADiagrams"
in_NALayerName="Routes/Tour2"
# builder_options variables for diagram Generation and Update
G_option1="MERGE_NODES"
G_option2="NO_MERGE_NODES"
U_option1="NO_MERGE_NODES;KEEP_MANUAL_MODIF"
U_option2="MERGE_NODES;KEEP_MANUAL_MODIF"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# UpdateDiagram from a solved route network analysis layer
# 1) Solves the route network analysis layer,
arcpy.Solve_na(in_NALayerName)
# 2) Creates diagrams from this solved route network analysis layer
# a - A diagram where a single node is created to represent a GIS point crossed N times along this route (G_option1)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagAName, in_diagTempName, in_NALayerName, G_option1)
# b - A diagram where N nodes are created to represent a GIS point crossed N times along this route (G_option2)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagBName, in_diagTempName, in_NALayerName, G_option2)
# 3) Updates those diagrams from the same solved route network analysis layer by changing the merge nodes option
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagAName, in_NALayerName, U_option1)
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagBName, in_NALayerName, U_option2)
# Returns the licences
arcpy.CheckInExtension("Schematics")
arcpy.CheckInExtension("Network")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occurred on line %i" % tb.tb_lineno
print str(e)
Параметры среды
Этот инструмент не использует параметры среды геообработки
Информация о лицензиях
- Basic: Требуется Данные схем (Schematics)
- Standard: Требуется Данные схем (Schematics)
- Advanced: Требуется Данные схем (Schematics)