Обновить схему (Update Diagram) (Схематика)

Уровень лицензии:BasicStandardAdvanced

Резюме

Обновить схематическое представление.

В зависимости от компоновщика схемы обновление схемы может быть основано на слоях объектов, классах объектов, таблицах объектов, произведенном сетевом анализе или файле XML.

Использование

Синтаксис

UpdateDiagram_schematics (in_diagram, {in_data}, {builder_options})
ПараметрОбъяснениеТип данных
in_diagram

Обновляемый слой схематического представления.

Schematic Layer
in_data
[in_data,...]
(дополнительно)

Входные данные, на которых будет основываться схема.

Параметр Входные данные (Input Data) не требуется для всех предопределенных компоновщиков, это дополнительный параметр:

  • Для шаблонов схемы, работающих со Стандартным компоновщиком (Standard builder), настроенным для работы из пользовательских запросов, не нужно задавать входные таблицы.
  • Для шаблонов схемы, работающих с XML компоновщиком (XML builder), параметр Входные данные (Входные данные) должен ссылаться на файл XML.
  • Для шаблонов схемы, работающих с Компоновщиком набора сетевых данных (Network Dataset builder), входные данные должны быть указаны. Параметр должен ссылаться на уникальный слой сетевого анализа. Если анализ сети не выполнялся, Schematics попытается провести его, а затем использовать полученный слой анализа в качестве входных данных.
  • Для шаблонов схемы, работающих со Стандартным компоновщиком (Standard builder), настроенным для работы из геометрической сети или набора сетевых данных, если параметр Входные данные (Input Data) не задан, инструмент Обновить схему (Update Diagram) работает из исходного набора объектов сети, использовавшихся для создания схемы, или из обновленного результата трассировки геометрической сети, основанного на параметрах трассировки, сохраненных в наборе схематических данных, если схемы была создана из выделенной трассировки. Если параметр Входные данные (Input Data) задан, он должен ссылаться, по крайней мере, на слой объектов, класс объектов или таблицу объектов, чтобы обновление производилось на основе этих данных в соответствии со значением Опций компоновщика (Builder Options).

Table View;Data Element;Layer
builder_options
[builder_options,...]
(дополнительно)

Опции обновления компоновщика схемы. Опции обновления необязательны. Они зависят от компоновщика, связанного с шаблоном схемы, реализующим заданное схематическое представление:

  • Схемы, созданные из пользовательских запросов (Стандартный компоновщик): KEEP_MANUAL_MODIF, NO_KEEP_MANUAL_MODIF или REFRESH.
  • Схемы, созданные из данных XML (XML компоновщик): KEEP_MANUAL_MODIF или NO_KEEP_MANUAL_MODIF.
  • Схемы, созданные из результатов механизма расчета для наборов сетевых данных (Компоновщик набора сетевых данных): NO_MERGE_NODES;KEEP_MANUAL_MODIF, NO_MERGE_NODES;NO_KEEP_MANUAL_MODIF, MERGE_NODES;KEEP_MANUAL_MODIF или MERGE_NODES;NO_KEEP_MANUAL_MODIF.
  • Схемы, созданные из объектов, организованных в геометрическую сеть или набор сетевых данных (Стандартный компоновщик):
    • Если параметр Входные данные (Input Data) не задан — KEEP_MANUAL_MODIF, NO_KEEP_MANUAL_MODIF или REFRESH
    • Если параметр Входные данные (Input Data) задан — REBUILD;KEEP_MANUAL_MODIF, REBUILD;NO_KEEP_MANUAL_MODIF, APPEND;KEEP_MANUAL_MODIF, APPEND;NO_KEEP_MANUAL_MODIF, APPEND_QUICK;KEEP_MANUAL_MODIF или APPEND_QUICK;NO_KEEP_MANUAL_MODIF.

  • KEEP_MANUAL_MODIFОпция по умолчанию для схемы, основанной на XML компоновщике (XML builder) или Стандартном компоновщике (Standard builder), если заданы входные данные. Используется для синхронизации содержимого входной схемы или с исходной выборкой/трассировкой/запросом, использованными для изначального создания данной схемы — Стандартная схема (Standard diagram) — или из обновленной версии входных данных XML, изначально использованных для создания схемы — XML схема (XML diagram) — тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на XML компоновщике (XML builder) или Стандартном компоновщике (Standard builder), если входные данные не заданы. Используется для синхронизации содержимого входной схемы или с исходной выборкой/трассировкой/запросом, использованными для изначального создания данной схемы — Стандартная схема (Standard diagram) — или из обновленной версии входных данных XML, изначально использованных для создания схемы — XML схема (XML diagram) — тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
  • REFRESHОпция доступна для схем, основанных на Стандартном компоновщике (Standard builder), если входные данные не заданы. Используется для простого обновления атрибутов для всех объектов схемы во входной схеме до текущего состояния связанных объектов сети в классах объектов геометрической сети или набора сетевых данных.
  • REBUILD;KEEP_MANUAL_MODIFОпция по умолчанию доступна для схем, основанных на Стандартном компоновщике (Standard builder), если заданы входные данные. Эта опция используется, если нужно полностью перестроить схему в соответствии с заданными входными слоями объектов, классами объектов или таблицами объектов, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • REBUILD;NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Стандартном компоновщике (Standard builder), если заданы входные данные. Эта опция используется, если нужно полностью перестроить схему в соответствии с заданными входными слоями объектов, классами объектов или таблицами объектов, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
  • APPEND;KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Стандартном компоновщике (Standard builder), если заданы входные данные. Эта опция используется, если нужно присоединить объекты схемы, связанные с заданными входными слоями объектов, классами объектов или таблицами объектов, к полностью синхронизированному содержимому входной схемы, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • APPEND;NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Стандартном компоновщике (Standard builder), если заданы входные данные. Эта опция используется, если нужно присоединить объекты схемы, связанные с заданными входными слоями объектов, классами объектов или таблицами объектов, к полностью синхронизированному содержимому входной схемы, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
  • APPEND_QUICK;KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Стандартном компоновщике (Standard builder), если заданы входные данные. Эта опция используется, если нужно присоединить объекты схемы, связанные с заданными входными слоями объектов, классами объектов или таблицами объектов, к частично синхронизированному содержимому входной схемы, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • APPEND_QUICK;NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Стандартном компоновщике (Standard builder), если заданы входные данные. Эта опция используется, если нужно присоединить объекты схемы, связанные с заданными входными слоями объектов, классами объектов или таблицами объектов, к частично синхронизированному содержимому входной схемы, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
  • NO_MERGE_NODES;KEEP_MANUAL_MODIFОпция по умолчанию для схем, основанных на Компоновщике набора сетевых данных (Network Dataset builder). Эта опция используется для обновления входной схемы из заданного рассчитанного слоя сетевого анализа без слияния узлов, встречающихся в этом слое несколько раз, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • NO_MERGE_NODES;NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Компоновщике набора сетевых данных (Network Dataset builder). Эта опция используется для обновления входной схемы из заданного рассчитанного слоя сетевого анализа без слияния узлов, встречающихся в этом слое несколько раз, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
  • MERGE_NODES;KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Компоновщике набора сетевых данных (Network Dataset builder). Эта опция используется для обновления входной схемы из заданного рассчитанного слоя сетевого анализа и слияния узлов, встречающихся в этом слое несколько раз, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • MERGE_NODES;NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Компоновщике набора сетевых данных (Network Dataset builder). Эта опция используется для обновления входной схемы из заданного рассчитанного слоя сетевого анализа и слияния узлов, встречающихся в этом слое несколько раз, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
String

Пример кода

Инструмент Обновить схему (UpdateDiagram) и Стандартный компоновщик (Standard builder), работающий из пользовательских запросов: пример 1 (автономный скрипт Python)

Обновляет образец схематического представления, полностью построенного из пользовательских запросов. В этом случае требуется только параметр имени схемы.

Как запустить этот пример скрипта Python:

  1. Запустите ArcCatalog или ArcMap с новой пустой картой.
  2. Скопируйте приведенный ниже скрипт в Окно Python:
  3. Нажмите ENTER.

# Name: UpdateDiagramCustomQuery.py
# Description: Update a schematic diagram entirely built from custom queries
# Requirement: Дополнительный модуль ArcGIS Schematics

# import system modules
import arcpy
msgNoLicenseAvailable = "Дополнительный модуль ArcGIS Schematics license required"

try:
    # Checks out the Дополнительный модуль ArcGIS Schematics license
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap\ElecDemo.gdb"

    # UpdateDiagram by only refreshing the attributes on schematic features contained in the input diagram; builder_options=REFRESH
    arcpy.UpdateDiagram_schematics("ElecDemo\Inside Plants\Substation 08", "#", "REFRESH")

    # UpdateDiagram by fully synchronizing the diagram content regarding the custom queries; no udpate parameters required
    arcpy.UpdateDiagram_schematics("ElecDemo\Inside Plants\Substation 08")

    # Returns the Дополнительный модуль ArcGIS Schematics 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) и Стандартный компоновщик (Standard builder), работающий с данными геометрической сети: пример 2 (автономный скрипт Python)

Обновляет образцы схематических представлений, созданных из объектов, организованных в геометрическую сеть.

Как запустить этот пример скрипта Python:

  1. Запустите ArcCatalog или ArcMap с новой пустой картой.
  2. Скопируйте приведенный ниже скрипт в Окно Python:
  3. Нажмите ENTER.

# Name: UpdateDiagramStd.py
# Description: Update schematic diagrams built from features organized into a geometric network
# Requirement: Дополнительный модуль ArcGIS Schematics

# import system modules
import arcpy
msgNoLicenseAvailable = "Дополнительный модуль ArcGIS Schematics license required"

try:
    # Checks out the Дополнительный модуль ArcGIS Schematics license
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap\ElecDemo.gdb"

    # Creates some new diagrams that will be used to exemplify the UpdateDiagram command:
    arcpy.CreateDiagram_schematics("ElecDemo", "FeederDiagram", "GeoSchematic", "ElectricNetwork\Feeder")
    arcpy.CreateDiagram_schematics("ElecDemo", "FeederDiagramBIS", "GeoSchematic", "ElectricNetwork\Feeder")
    arcpy.CreateDiagram_schematics("ElecDemo", "WholeElectricNetworkDiagram", "GeoSchematic", "ElectricNetwork\PrimaryLine;ElectricNetwork\SecondaryLine")
    InputLayer = arcpy.MakeFeatureLayer_management("ElectricNetwork\PrimaryLine","PrimaryLineLayer", "PHASECODE =135")
    arcpy.CreateDiagram_schematics("ElecDemo", "PrimaryLinesDiagram", "GeoSchematic", InputLayer)


    # UpdateDiagram by fully synchronizing the diagram content regarding the original network features that were used to initially generate it; no udpate parameters required
    arcpy.UpdateDiagram_schematics("ElecDemo\Feeders\Feeder 0801-Rice Creek")

    # UpdateDiagram by only refreshing the attributes on schematic features contained in the input diagram; builder_options=REFRESH
    arcpy.UpdateDiagram_schematics("ElecDemo\Feeders\Feeder 0802-Goldmine", "#", "REFRESH")

    # UpdateDiagram by rebuilding the input diagram from a feature class; builder_options=REBUILD;KEEP_MANUAL_MODIF or REBUILD;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\WholeElectricNetworkDiagram", "ElectricNetwork\PrimaryLine", "REBUILD;KEEP_MANUAL_MODIF")

    # UpdateDiagram by appending new features to the input diagram with a partial synchronization of the diagram content; builder_options=APPEND_QUICK;KEEP_MANUAL_MODIF or APPEND_QUICK;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\FeederDiagram", "ElectricNetwork\Substation", "APPEND_QUICK;KEEP_MANUAL_MODIF")

    # UpdateDiagram by appending new features to the input diagram with a full synchronization of the diagram content; builder_options=APPEND;KEEP_MANUAL_MODIF or APPEND;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\FeederDiagramBIS", "ElectricNetwork\ServiceLocation", "APPEND;KEEP_MANUAL_MODIF")

    # UpdateDiagram by rebuilding the input diagram from an input layer; builder_options=REBUILD;KEEP_MANUAL_MODIF or REBUILD;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\PrimaryLinesDiagram", InputLayer, "REBUILD;KEEP_MANUAL_MODIF")
	
    # Returns the Дополнительный модуль ArcGIS Schematics 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 компоновщик (XML builder): пример 3 (автономный скрипт Python)

Обновляет образец схематического представления на основе XML компоновщика.

Как запустить этот пример скрипта Python:

  1. Запустите ArcCatalog
  2. Создание и настройка набора схематических данных, используемого в ходе работы примера скрипта:
    • Перейдите в папку C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data в дереве Каталога (Catalog).
    • Щелкните правой кнопкой мыши базу геоданных GISDatabaseForXML, выберите Новый (New), а затем щелкните Набор схематических данных (Schematic Dataset).
    • Введите XMLDataset в качестве имени только что созданного набора схематических данных и нажмите клавишу ENTER.
    • Щелкните правой кнопкой мыши набор схематических данных XMLDataset и щелкните Редактировать (Edit).
    • Щелкните правой кнопкой мыши элемент XMLDataset в дереве Редактора набора данных (Dataset Editor) и щелкните Новый шаблон схематического представления (New Schematic Diagram Template).
    • Введите XMLDiagrams в текстовое поле Имя (Name).
    • Выберите XML-компоновщик (XML Builder) в разделе Компоновщик схемы (Schematic Builder).
    • Щелкните Свойства компоновщика схемы (Schematic Builder Properties) и отметьте флажком Автоматическое создание класса объектов схемы (Automatic schematic feature class creation).
    • Закройте диалоговое окно Свойства компоновщика (Builder Properties).
    • Нажмите OK.
    • Щелкните Сохранить (Save) на панели инструментов Редактор набора схематических данных (Schematic Dataset Editor) и закройте Редактора.
  3. Скопируйте и вставьте следующий скрипт в окно Python в ArcCatalog или ArcMap:
  4. Нажмите ENTER.

# Name: UpdateDiagramXML.py
# Description: Update schematic diagrams based on the XML builder
# Requirement: Дополнительный модуль ArcGIS Schematics

# import system modules
import arcpy
msgNoLicenseAvailable = "Дополнительный модуль ArcGIS Schematics license required"

try:
    # Checks out the Дополнительный модуль ArcGIS Schematics license
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\GISDatabaseForXML.gdb"

    # CreateDiagram from a XML file, SampleNetworkFeeder1.xml
    arcpy.CreateDiagram_schematics("XMLDataset", "XMLDiagramFeeder1", "XMLDiagrams", "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\SampleNetworkFeeder1.xml")

    # Updates the XMLDiagramFeeder1 diagram from another XML file, SampleNetworkUpdatedFeeder1.xml
    arcpy.UpdateDiagram_schematics("XMLDataset\XMLDiagramFeeder1", "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\SampleNetworkUpdatedFeeder1.xml")

    # Returns the Дополнительный модуль ArcGIS Schematics 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) и Компоновщик набора сетевых данных (Network Dataset builder): пример 4 (автономный скрипт Python)

Обновляет схематические представления, основанные на Компоновщике набора сетевых данных (Network Dataset builder).

Как использовать этот пример скрипта Python:

  1. Запустите ArcMap.
  2. Откройте файл Open the ParisTours.mxd, хранящийся в C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset.
  3. Щелкните Геообработка (Geoprocessing) > Опции геообработки (Geoprocessing Options).
  4. Снимите флажок с Включить (Enable) в разделе Обработка в фоновом режиме (Background Processing) и щелкните ОК.
  5. Скопируйте приведенный ниже скрипт в Окно Python:

# Name: UpdateDiagramNDS.py
# Description: Update sample schematic diagrams based on the Network Dataset builder
# Requirement: Дополнительный модуль ArcGIS Schematics,Дополнительный модуль ArcGIS Network Analyst 

# import system modules
import arcpy
msgNoLicenseSchematicsAvailable = "Дополнительный модуль ArcGIS Schematics license required"
msgNoLicenseNetworkAnalystAvailable = "Дополнительный модуль ArcGIS Network Analyst license required"


try:
    # Checks out the Дополнительный модуль ArcGIS Schematics licence
    if arcpy.CheckExtension("Schematics") == "Available":
       arcpy.CheckOutExtension("Schematics")
    else:
       raise Exception(msgNoLicenseSchematicsAvailable)

    # Checks out the Дополнительный модуль ArcGIS Network Analyst licence
    if arcpy.CheckExtension("Network") == "Available":
       arcpy.CheckOutExtension("Network")
    else:
       raise Exception(msgNoLicenseNetworkAnalystAvailable)

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset\NetworkAnalyst_Schematics.gdb"

    # UpdateDiagram from a solved route network analysis layer
    # 1) Solves the route network analysis layer, 
    arcpy.Solve_na("Routes\Tour2")
    # 2) Creates diagrams from this solved route network analysis layer
    # a - DiagramTour_A diagram, created with merged nodes to represent network junctions which are crossed several times along the resultant route (MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour2_A", "NADiagrams", "Routes\Tour2", "MERGE_NODES")
    # b - DiagramTour_B diagram, without merged nodes (NO_MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour2_B", "NADiagrams", "Routes\Tour2", "NO_MERGE_NODES")
    # 3) Updates those diagrams from the same solved route network analysis layer by changing the merge nodes option
    arcpy.UpdateDiagram_schematics("NA_SchematicDataset\DiagramTour2_A", "Routes\Tour2", "NO_MERGE_NODES;KEEP_MANUAL_MODIF")
    arcpy.UpdateDiagram_schematics("NA_SchematicDataset\DiagramTour2_B", "Routes\Tour2", "MERGE_NODES;KEEP_MANUAL_MODIF")

    # 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)

Параметры среды

Этот инструмент не использует параметры среды геообработки

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Требует Схематика (Schematics)
ArcGIS for Desktop Standard: Требует Схематика (Schematics)
ArcGIS for Desktop Advanced: Требует Схематика (Schematics)
9/11/2013