ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

创建逻辑示意图

  • 摘要
  • 用法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

摘要

创建逻辑示意图。

根据所选择的逻辑示意图构建器的不同,逻辑示意图的创建可基于要素图层、要素类、对象表、网络分析图层或 XML 数据。

用法

  • 如果输出逻辑示意图名称当前已存在,则其可能在重新创建之前被删除。为避免被删除,可以取消选中地理处理选项 对话框中的覆盖地理处理操作的输出框。

  • 根据与为要创建的逻辑示意图指定的逻辑示意图模板所关联的逻辑示意图构建器的不同,确定是否需要输入数据参数:

    • 对于基于配置成对几何网络或网络数据集进行操作时选择标准构建器的逻辑示意图模板,此参数是必需的。指定的输入表可以是要素图层、要素类或对象表。
    • 对于基于网络数据集构建器的逻辑示意图模板,必须为输入数据参数指定唯一的网络分析图层。
    • 对于基于 XML 构建器的逻辑示意图模板,必须为输入数据参数指定唯一的 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,...]
(可选)

生成逻辑示意图所需的输入数据。

输入数据参数可指定生成逻辑示意图要基于的元素。对于大多数预定义的逻辑示意图构建器而言,必须指定此参数:

  • 对于那些使用配置成根据几何网络或网络数据集进行操作的“标准构建器”的逻辑示意图模板,“输入数据”参数必须至少引用一个要素图层、要素类或对象表。
  • 对于使用“网络数据集构建器”的逻辑示意图模板,“输入数据”参数必须引用唯一的网络分析图层。如果未执行相关网络分析,则在将已求解的分析图层用作输入之前,Schematics 会尝试执行该网络分析。
  • 对于与“XML 构建器”关联的逻辑示意图模板,如果逻辑示意图生成的数据具有外部组件,则“输入数据”参数可选。但是,如果未定义构建器属性的外部组件,则“输入数据”必须引用 XML 文件。在此两种情况下,输入 XML 数据必须根据 XMLBuilderDiagram XML 方案文件构建。
  • 对于那些使用配置成对自定义查询进行操作的“标准构建器”的逻辑示意图模板,则不需要输入数据。
警告:

对于使用“标准构建器”的逻辑示意图模板(当其配置成通过几何网络或网络数据集、XML 构建器和网络数据集构建器操作时),如果未指定输入数据,则不能生成逻辑示意图。

Table View;Data Element;Layer
builder_options
(可选)

逻辑示意图构建器创建参数。仅对于那些基于网络数据集构建器来指定是否合并结点的逻辑示意图,这些参数才是必需参数。

  • MERGE_NODES —指定网络元素交汇点,其在生成的逻辑示意图中用单个逻辑示意图要素结点表示(沿路径分析的生成路径多次显示)。如果它们位于服务区分析的相同位置时,也可以合并中跨交汇点元素。
  • NO_MERGE_NODES —指定将不合并逻辑示意图要素结点(默认)。
String

代码示例

使用几何网络数据的 CreateDiagram 和标准构建器 - 示例 1(独立 Python 脚本)

根据按几何网络形式组织的 GIS 要素创建示例逻辑示意图。以下 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 Schematics general settings
    dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
    gdbName="ElecDemo.gdb"
    out_schDataset="ElecDemo"
    out_diagAName="FeederDiagram"
    out_diagBName="ElectricMainNetworkDiagram"
    out_diagTempName="GeoSchematic"
    input_FC1="ElectricNetwork/Feeder"
    input_FC2="ElectricNetwork/PrimaryLine"
    input_LayerName="PrimaryLineLayer"
    input_Filter="PHASECODE=135"
    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName
    # CreateDiagram from a feature class, Feeder
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagAName, out_diagTempName, input_FC1)
    # CreateDiagram from a feature layer
    # 1) Creates a layer with the selection
    InputLayer = arcpy.MakeFeatureLayer_management(input_FC2, input_LayerName, input_Filter)
    # 2) Uses the layer as input of CreateDiagram
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagBName, out_diagTempName, 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 和网络数据集构建器 - 示例 2(独立 Python 脚本)

根据求解的网络分析图层创建示例逻辑示意图。以下 Python 脚本示例的运行方法:

  1. 启动 ArcMap。
  2. 打开存储在 C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset 中的 ParisTours.mxd 文件。
  3. 单击地理处理 > 地理处理选项。
  4. 取消选中后台处理部分上的启用,然后单击 OK。
  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 general settings
    dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/Network_Dataset"
    gdbName="NetworkAnalyst_Schematics.gdb"
    out_schDataset="NA_SchematicDataset"
    out_diagAName="DiagramTour_MERGED"
    out_diagBName="DiagramTour_NOTMERGED"
    out_diagTempName="NADiagrams"
    in_NALayerName="Routes/Tour1"
    option1="MERGE_NODES"
    option2="NO_MERGE_NODES"
    # Sets environnement settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName
    # CreateDiagram from a solved route network analysis layer
    # 1) Solves the route network analysis layer, Tour1
    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 (option1)
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagAName, out_diagTempName, in_NALayerName, option1)
    # b - A diagram where N nodes are created to represent a GIS point crossed N times along this route (option2)
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagBName, out_diagTempName, in_NALayerName, 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 occured on line %i" % tb.tb_lineno
    print str(e)
CreateDiagram 和 XML 构建器 - 示例 3(独立 Python 脚本)

基于“XML 构建器”创建示例逻辑示意图。以下 Python 脚本示例的运行方法:

  1. 启动 ArcCatalog。
  2. 创建并配置示例脚本中使用的逻辑示意图数据集:
    • 导航至 Catalog 树中的 C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data 文件夹。
    • 右键单击 GISDatabaseForXML 地理数据库,指向“新建”,然后单击“逻辑示意图数据集”。
    • 输入 XMLDataset 作为新建逻辑示意图数据集的名称,然后按下 ENTER。
    • 右键单击 XMLDataset 逻辑示意图数据集,然后单击编辑。
    • 在“数据集编辑器”树中右键单击 XMLDataset 条目,然后单击新建逻辑示意图模板。
    • 在名称文本框中输入 XMLDiagrams。
    • 在逻辑示意图构建器部分中选择 XML 构建器。
    • 单击逻辑示意图构建器属性,然后选中自动创建逻辑示意图要素类。
    • 关闭构建器属性对话框。
    • 单击“确定”。
    • 单击逻辑示意图数据集编辑器工具条上的“保存”,然后关闭逻辑示意图数据集编辑器。
  3. 将以下脚本复制并粘贴到 ArcCatalog 或 ArcMap Python 窗口中。
  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 Schematics general settings
    dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/XML_Data"
    gdbName="GISDatabaseForXML.gdb"
    out_schDataset="XMLDataset"
    out_diagName="XMLDiagramSample"
    out_diagTempName="XMLDiagrams"
    input_XmlFile="SampleNetworkData.xml"
    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName
    # CreateDiagram from a XML file, SampleNetworkData.xml file
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagName, out_diagTempName, dataLocation + "/" + input_XmlFile)
    # 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 和标准构建器 - 示例 4(独立 Python 脚本)

根据自定义查询创建示例逻辑示意图。以下 Python 脚本示例的使用方法:

  1. 启动 ArcCatalog。
  2. 此脚本使用 ElecDemo 教程地理数据库的副本,以避免覆盖原有的室内设施逻辑示意图:
    • 导航至目录树中的 C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap 文件夹。
    • 复制并粘贴 ElecDemo 地理数据库。新建的 ElecDemo_1 地理数据库是脚本示例将要处理的数据库。
  3. 将以下脚本复制并粘贴到 ArcCatalog 或 ArcMap Python 窗口中。
  4. 按 Enter 键。ArcGIS Schematics 扩展模块

# Name: CreateDiagramCustomQuery.py
# Description: Create a schematic diagram from custom queries
# Requirement: 
# 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_1.gdb"
    out_schDataset="ElecDemo"
    out_schFolder="Inside Plants"
    out_diagName="Substation 08"
    out_diagTempName="InsidePlants"
    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName
    # CreateDiagram from a diagram template configured from custom queries
    arcpy.CreateDiagram_schematics(out_schDataset + "/" + out_schFolder, out_diagName, out_diagTempName)
    # 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 Desktop Basic: 需要 Schematics
  • ArcGIS Desktop Standard: 需要 Schematics
  • ArcGIS Desktop Advanced: 需要 Schematics

相关主题

  • Schematics 工具箱概述
  • 更新逻辑示意图
  • 更新逻辑示意图(批量)
  • 创建逻辑示意图文件夹
  • 将逻辑示意图转换为要素

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
© Copyright 2016 Environmental Systems Research Institute, Inc. | 隐私政策 | 法律声明