Создать схему (Create Diagram) (Схематика)

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

Резюме

Создает схематическое представление

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

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

Синтаксис

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

Набор схематических данных или папка схемы, в которых будет создана схема.

ВниманиеВнимание:

Этот контейнер уже должен существовать.

Schematic Dataset;Schematic Folder
out_name

Имя создаваемого схематического представления.

String
diagram_type
[diagram_type,...]

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

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

Входные данные для создания схемы.

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

  • Для шаблонов схемы, работающих со Стандартным компоновщиком (Standard builder), настроенным для работы из геометрической сети или набора сетевых данных, параметр Входные данные (Input Data) должен, по крайней мере, ссылаться на слой объектов, класс объектов или таблицу объектов.
  • Для шаблонов схемы, работающих с Компоновщиком наборов сетевых данных (Network Dataset builder), параметр Входные данные (Input Data) должен ссылаться на уникальный слой сетевого анализа. Если анализ сети не выполнялся, Schematics попытается провести его, а затем использовать полученный слой анализа в качестве входных данных.
  • Для шаблонов схемы, связанных с XML-компоновщиком (XML builder), параметр Входные данные (Input Data) необязателен, если данные для создания схемы предоставляются внешним компонентом. Но если в свойствах компоновщика внешний компонент не задан, параметр Входные данные (Input Data) должен ссылаться на файл XML. В обоих случаях входные данные XML должны строиться в соответствии с файлом XML-схемы XMLBuilderDiagram (XMLBuilderDiagram XML Schema file).
  • Для шаблонов схемы, работающих со Стандартным компоновщиком (Standard builder), настроенным для работы из пользовательских запросов, входные данные не требуются.
ВниманиеВнимание:

Если входные данные для шаблонов схемы, работающих со Стандартным компоновщиком (Standard builder), настроенным для работы из геометрической сети, набора сетевых данных, XML-компоновщиком (XML builder) и Компоновщиком набора сетевых данных (Network Dataset builder), не заданы, схема создана не будет.

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

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

  • MERGE_NODESУказывает соединения элементов сети, которые берутся несколько раз в окончательном анализе маршрутов, представленные единственным узлом схемы объекта в созданном схематическом представлении. Он также позволяет объединять срединные элементы соединения, когда они находятся в одинаковом положении в анализе области обслуживания.
  • NO_MERGE_NODESУказывает, что узлы объекта схемы объединяться не будут (значение по умолчанию).
String

Пример кода

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

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

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

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

# Name: CreateDiagramStd.py
# Description: Create schematic diagrams sample from GIS 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"

    # CreateDiagram from a feature class, Feeder
    arcpy.CreateDiagram_schematics("ElecDemo", "FeederDiagram", "GeoSchematic", "ElectricNetwork\Feeder")

    # CreateDiagram from a feature layer
    # 1) Creates a layer with the selection
    InputLayer = arcpy.MakeFeatureLayer_management("ElectricNetwork\PrimaryLine","PrimaryLineLayer", "PHASECODE =135")
    # 2) Uses the layer as input of CreateDiagram
    arcpy.CreateDiagram_schematics("ElecDemo", "ElectricMainNetworkDiagram", "GeoSchematic", InputLayer)

    # 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)
Инструмент Создать схему (CreateDiagram) и Компоновщик набора сетевых данных (Network Dataset builder): пример 2 (автономный скрипт Python)

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

Как запустить этот пример скрипта 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:
  6. Нажмите ENTER.

# Name : CreateDiagramNDS.py
# Description : Create a schematic diagram from 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 environnement settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset\NetworkAnalyst_Schematics.gdb"
    
    # CreateDiagram from a solved route network analysis layer
    # 1) Solves the route network analysis layer, Tour1
    arcpy.Solve_na("Routes\Tour1")
    # 2) Creates diagrams from this solved route network analysis layer
    # a - DiagramTour_MERGED diagram, where a single schematic feature node is created to represent a network junction which is crossed N times along the resultant route (MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour_MERGED", "NADiagrams", "Routes\Tour1", "MERGE_NODES")
    # b - DiagramTour_NOTMERGED diagram, where N schematic nodes are created to represent a network junction which is crossed N times along the resultant route (NOT_MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour_NOTMERGED", "NADiagrams", "Routes\Tour1", "NO_MERGE_NODES")


    # 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 occured on line %i" % tb.tb_lineno
    print str(e)
Инструмент Создать схему (CreateDiagram) и 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: CreateDiagramXML.py
# Description: Create a sample schematic diagram 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, SampleNetworkData.xml file
    arcpy.CreateDiagram_schematics("XMLDataset", "XMLDiagramSample", "XMLDiagrams", "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\SampleNetworkData.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 occured on line %i" % tb.tb_lineno
    print str(e)
Инструмент Создать схему (CreateDiagram) и Стандартный компоновщик (Standard builder), работающий из пользовательских запросов: пример 4 (автономный скрипт Python)

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

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

  1. Запустите ArcCatalog
  2. Этот скрипт работает с копией учебной базы геоданных ElecDemo, чтобы избежать перезаписи исходной, внутренней схемы:
    • Перейдите в папку C:\ArcGIS\ArcTutor\Schematics\chematics_In_ArcMap в дереве Каталога (Catalog)
    • Скопируйте и вставьте базу геоданных ElecDemo. Только что созданная база геоданных ElecDemo_1 предназначена для работы примера скрипта.
  3. Скопируйте и вставьте следующий скрипт в окно Python в ArcCatalog или ArcMap:
  4. Нажмите ENTER.

# Name: CreateDiagramCustomQuery.py
# Description: Create a schematic diagram 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_1.gdb"

    # CreateDiagram from a diagram template, InsidePlants, which is configured to generate diagrams from custom queries
    arcpy.CreateDiagram_schematics("ElecDemo\Inside Plants", "Substation 08", "InsidePlants")

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

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

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

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

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