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

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

将逻辑示意图转换为要素

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

摘要

将逻辑示意图转换为标准要素类或 shapefile。

逻辑示意图全部存储在 Schematics 特定的隐藏要素类中,并且需要其余逻辑示意图配置表和信息才能起作用。此工具可用于与其他用户共享逻辑示意图,而无需提供整个逻辑示意图数据集(包含全部逻辑示意图和配置)。如果打算转换多个逻辑示意图,则可选择是将其全部放置到同一组标准要素类或 shapefile 中,还是每个逻辑示意图分别拥有一组要素类或 shapefile。

注:

有关用于转换逻辑示意图数据集或逻辑示意图文件夹中的所有逻辑示意图的脚本工具示例,请参阅“代码示例”部分。

用法

  • 要将逻辑示意图图层转换为标准要素类,请浏览至特定输出位置参数的地理数据库/要素数据集并将其选中。要将逻辑示意图图层转换为 shapefile,请浏览至文件夹并将其选中。

  • 要将多个逻辑示意图转换为相同的标准要素类/shapefile,请选中重用现有结构选项。要将多个逻辑示意图转换为不同的标准要素类/shapefile,请取消选中重用现有结构选项。

  • 如果希望在转换过程中将所有真实要素类属性附加到逻辑示意图记录,请选中导出所有相关要素属性。

  • 导出所有相关属性要素选项仅适用于“关联要素类/表”字段值已知的逻辑示意图要素类。如果没有为逻辑示意图要素类指定关联要素类/表,则不能导出其相关的属性要素。

  • 如果希望将输入逻辑示意图中的所有容器转换为面要素,请选择容器几何中的 POLYGON。如果希望将此类容器转换为折线要素或点要素,请选择 POLYLINE(或 POINT)。

    警告:

    在使用重用现有结构选项时,如果首次转换逻辑示意图时选择了 POLYGON(POLYLINE 或 POINT),则在下次转换时无法更改为 POLYLINE 或 POINT (POLYGON)。如果需要进行更改,必须移除该结构,然后重新转换逻辑示意图。

  • 如果指定的输入逻辑示意图图层已转换到指定的输出位置,则重新创建之前会将其删除。

语法

ConvertDiagram_schematics (in_diagram, out_location, {reuse_fc}, {export_related_attributes}, {container_geometry}, {config_keyword})
参数说明数据类型
in_diagram

要转换的逻辑示意图图层。

Schematic Layer
out_location

要转换逻辑示意图的工作空间或要素数据集。此容器必须已经存在。

Workspace;Feature Dataset
reuse_fc
(可选)

指示是否要将输入逻辑示意图图层转换为与基于相同逻辑示意图模板的其他逻辑示意图相同的标准要素类/shapefile。

  • REUSE_FC —将指定的逻辑示意图转换为与基于相同逻辑示意图模板的其他逻辑示意图(已转换或将被转换)相同的标准要素类/shapefile 时必须用到。在这种情况下,根据所选的输出位置将指定的逻辑示意图转换为:
    • 名称对应于逻辑示意图模板名称且每个要素类名称分别对应于逻辑示意图要素类名称的要素数据集。
    • 名称对应于逻辑示意图模板名称且每个 shapefile 名称分别对应于逻辑示意图要素类名称的文件夹。
    这是默认设置。
  • NO_REUSE_FC —将输入逻辑示意图转换为新的要素数据集/文件夹,其中,要素数据集/文件夹的名称是输入逻辑示意图的模板名称与逻辑示意图名称的组合,而每个要素类/shapefile 的名称是逻辑示意图要素类名称与逻辑示意图名称的组合。
Boolean
export_related_attributes
(可选)

指示是否也一并转换与逻辑示意图要素类相关联的真实要素类/对象表中存储的所有属性。

  • NO_RELATED_ATTRIBUTES —输入逻辑示意图中的每个逻辑示意图要素只与其逻辑示意图要素类中的属性一并转换。这是默认设置。
  • EXPORT_RELATED_ATTRIBUTES —输入逻辑示意图中的每个逻辑示意图要素将与其逻辑示意图要素类中的属性以及与关联的真实要素相关的所有属性一并转换。
注:

如果没有为逻辑示意图要素类指定关联要素类/表,则不能转换要素属性。

注:

使用 REUSE_FC 和 EXPORT_RELATED_ATTRIBUTES 时,必须存在具有关联要素字段的结构,以便转换相关属性。

Boolean
container_geometry
(可选)

指示要为输入逻辑示意图中已转换的逻辑示意图容器创建哪种几何类型的要素。

  • POLYGON —将输入逻辑示意图中的每个容器转换为面要素。这是默认设置。
  • POLYLINE —将输入逻辑示意图中的每个容器转换为折线要素。
  • POINT —将输入逻辑示意图中的每个容器转换为点要素。
注:

如果使用重用现有结构选项,并且在为容器逻辑示意图要素创建 POLYGON(POLYLINE 或 POINT)要素类时此结构已经存在,则在下次转换时无法将要素类类型更改为 POLYLINE 或 POINT (POLYGON)。

String
config_keyword
(可选)

配置关键字,用来确定关系数据库管理系统 (RDBMS) 中表的存储参数。它仅适用于 企业级、工作组或桌面地理数据库。

String

代码示例

ConvertDiagram 示例(脚本工具)

以下脚本演示了如何在脚本工具中使用 ConvertDiagram 函数。此脚本工具可以循环遍历输入逻辑示意图容器(即逻辑示意图数据集或逻辑示意图文件夹)中的所有逻辑示意图,并将其转换为输出位置中的标准要素或 shapefile。创建和配置此脚本工具的方法:

  1. 将以下脚本复制到任意文本编辑器,然后另存为扩展名为 .py 的文本文件。
  2. 启动 ArcCatalog,然后打开 ArcToolbox 窗口。
  3. 添加新脚本:
    • 为其输入名称(例如 ConvertDiagramsTool)。
    • 对于“脚本文件”参数,指定刚刚创建的 .py 文件。
    • 然后指定以下五组参数:
      1. 显示名称:输入逻辑示意图容器,数据类型:逻辑示意图数据集或逻辑示意图文件夹,类型属性:必填,方向属性:输入
      2. 显示名称:输出位置,数据类型:工作空间或要素数据集;类型属性:必填,方向属性:输入
      3. 显示名称:递归,数据类型:布尔型;类型属性:必填,方向属性:输入,默认值:True
      4. 显示名称:逻辑示意图类过滤器,数据类型:字符串;类型属性:可选,方向属性:输入
      5. 显示名称:派生的输出位置,数据类型:工作空间或要素数据集;类型属性:派生,方向属性:输出,获取自:Output_Location
必填输入参数:输入逻辑示意图容器(数据集或文件夹)+ 输出位置(GDB、要素数据集或 shapefile 的文件夹)可选参数:递归标记 + 逻辑示意图类过滤器 输出派生位置:工作空间或要素数据集

# Name: ConvertDiagrams.py
# Description: Convert schematic diagrams
# Requirement: ArcGIS Schematics
# import arcpy, sys, math
import arcpy, sys, math
msgInputsErr = "Invalid arguments."
msgParseErr = "Cannot parse input arguments."
msgConvertErr = "Error during conversion."
msgNoLicenseAvailable = "ArcGIS Schematics license required"
# Recursively searches for schematic diagrams in the folders
def RecursiveSearch(inCont, bRecursive):
    try:
        childs = inCont.Children
        dataset = None
        for dataset in childs:
            if dataset.DataType == "SchematicFolder" and bRecursive:
                RecursiveSearch(dataset, bRecursive)
            elif dataset.DataType == "SchematicDiagram":
                if diagramClassFilter == "" or diagramClassFilter == dataset.DiagramClassname:
                    pathList.append(dataset.CatalogPath)
    except:
        raise
    
try:
# Checks out the ArcGIS Schematics license    
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)
except Exception as exc:
    print exc
    raise
arcpy.env.overwriteOutput = True
# Decodes parameters
try:
    inputContainer = arcpy.GetParameterAsText(0)
    outputLocation = arcpy.GetParameterAsText(1)
    recursive = arcpy.GetParameterAsText(2)
    if recursive == "false":
        recursive = None
    diagramClassFilter = arcpy.GetParameterAsText(3)
    
    if inputContainer == "":
        raise Exception()
    
except:
    print msgParseErr
    arcpy.AddError(msgParseErr)
    raise
# Main code
try:
    pathList = []   # List for diagram names to convert
    arcpy.SetProgressorLabel("Searching diagrams to convert...")
    RecursiveSearch(arcpy.Describe(inputContainer), recursive)
    arcpy.SetProgressor("step", "Converting...", 0, len(pathList), 1)
    for path in pathList:
        # Execute convert
        mes = "Converting Schematic Diagram : " + path
        # Set the progressor label
        arcpy.SetProgressorLabel(mes)
        arcpy.AddMessage(mes)
        arcpy.ConvertDiagram_schematics(path, outputLocation, "REUSE_FC", "NO_RELATED_ATTRIBUTES", "#")
        arcpy.SetProgressorPosition()
    # Returns the ArcGIS Schematics licence
    arcpy.CheckInExtension("Schematics")
except:
    arcpy.AddError(msgConvertErr)
    raise

环境

  • 输出配置关键字

许可信息

  • ArcGIS Desktop Basic: 需要 Schematics
  • ArcGIS Desktop Standard: 需要 Schematics
  • ArcGIS Desktop Advanced: 需要 Schematics

相关主题

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

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

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

关于 Esri

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