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

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

Краткая информация

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

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

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

Синтаксис

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

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

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

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

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

  • Для шаблонов схемы, работающих со Стандартным компоновщиком, настроенным для работы из пользовательских запросов, не нужно задавать входные таблицы.
  • Для шаблонов схемы, работающих с XML компоновщиком, параметр Входные данные должен ссылаться на файл XML.
  • Для шаблонов схемы, работающих с Компоновщиком набора сетевых данных, входные данные должны быть указаны. Параметр должен ссылаться на уникальный слой сетевого анализа. Если анализ сети не выполнялся, Schematics попытается провести его, а затем использовать полученный слой анализа в качестве входных данных.
  • Для шаблонов схемы, работающих со Стандартным компоновщиком, настроенным для работы из геометрической сети или набора сетевых данных, если параметр Входные данные не задан, инструмент Обновить схему работает из исходного набора объектов сети, использовавшихся для создания схемы, или из обновленного результата трассировки геометрической сети, основанного на параметрах трассировки, сохраненных в наборе схематических данных, если схемы была создана из выделенной трассировки. Если параметр Входные данные задан, он должен ссылаться, по крайней мере, на слой объектов, класс объектов или таблицу объектов, чтобы обновление производилось на основе этих данных в соответствии со значением Опций компоновщика.

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.
  • Схемы, созданные из объектов, организованных в геометрическую сеть или набор сетевых данных:
    • Если параметр Входные данные не задан – KEEP_MANUAL_MODIF, NO_KEEP_MANUAL_MODIF или REFRESH
    • Если параметр Входные данные задан – 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, изначально использованных для создания схемы – XML схема – тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на XML компоновщике или Стандартном компоновщике, если входные данные не заданы. Используется для синхронизации содержимого входной схемы или с исходной выборкой/трассировкой/запросом, использованными для изначального создания данной схемы – Стандартная схема – или из обновленной версии входных данных XML, изначально использованных для создания схемы – XML схема – тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
  • REFRESHОпция доступна для схем, основанных на Стандартном компоновщике, если входные данные не заданы. Используется для простого обновления атрибутов для всех объектов схемы во входной схеме до текущего состояния связанных объектов сети в классах объектов геометрической сети или набора сетевых данных.
  • 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Опция доступна для схем, основанных на Стандартном компоновщике, если заданы входные данные. Эта опция используется, если нужно присоединить объекты схемы, связанные с заданными входными слоями объектов, классами объектов или таблицами объектов, к частично синхронизированному содержимому входной схемы, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
  • NO_MERGE_NODES;KEEP_MANUAL_MODIFОпция по умолчанию для схем, основанных на Компоновщике набора сетевых данных. Эта опция используется для обновления входной схемы из заданного рассчитанного слоя сетевого анализа без слияния узлов, встречающихся в этом слое несколько раз, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • NO_MERGE_NODES;NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Компоновщике набора сетевых данных. Эта опция используется для обновления входной схемы из заданного рассчитанного слоя сетевого анализа без слияния узлов, встречающихся в этом слое несколько раз, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
  • MERGE_NODES;KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Компоновщике набора сетевых данных. Эта опция используется для обновления входной схемы из заданного рассчитанного слоя сетевого анализа и слияния узлов, встречающихся в этом слое несколько раз, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, хранятся в обновленной схеме.
  • MERGE_NODES;NO_KEEP_MANUAL_MODIFОпция доступна для схем, основанных на Компоновщике набора сетевых данных. Эта опция используется для обновления входной схемы из заданного рассчитанного слоя сетевого анализа и слияния узлов, встречающихся в этом слое несколько раз, тогда как объекты схемы, которые могли быть вручную удалены/сокращены/повторно подключены, восстановлены в обновленной схеме.
String

Пример кода

Инструмент Обновить схему и Стандартный компоновщик, работающий из пользовательских запросов: пример 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 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 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)
Инструмент Обновить схему и Стандартный компоновщик, работающий с данными геометрической сети: пример 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 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 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)
Инструмент Обновить схему и XML компоновщик: пример 3 (автономный скрипт Python)

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

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

  1. Запустите ArcCatalog
  2. Создание и настройка набора схематических данных, используемого в ходе работы примера скрипта:
    • Перейдите в папку C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data в дереве Каталога.
    • Щелкните правой кнопкой мыши базу геоданных GISDatabaseForXML, выберите Новый (New), а затем щелкните Набор схематических данных (Schematic Dataset).
    • Введите XMLDataset в качестве имени только что созданного набора схематических данных и нажмите клавишу ENTER.
    • Щелкните правой кнопкой мыши набор схематических данных XMLDataset и щелкните Редактировать (Edit).
    • Щелкните правой кнопкой мыши элемент XMLDataset в дереве Редактора набора данных (Dataset Editor) и щелкните Новый шаблон схематического представления (New Schematic Diagram Template).
    • Введите XMLDiagrams в текстовое поле Имя (Name).
    • Выберите XML-компоновщик в разделе Компоновщик схемы (Schematic Builder).
    • Щелкните Свойства компоновщика схемы и отметьте опцию Автоматическое создание класса объектов схемы.
    • Закройте диалоговое окно Свойства компоновщика (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 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 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)
Инструмент Обновить схему и Компоновщик набора сетевых данных: пример 4 (автономный скрипт Python)

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

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

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

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

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

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

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

ArcGIS for Desktop Basic: Требует Данные схем (Schematics)
ArcGIS for Desktop Standard: Требует Данные схем (Schematics)
ArcGIS for Desktop Advanced: Требует Данные схем (Schematics)
5/10/2014