ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

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

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

添加附件

  • 描述
  • 插图
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

向地理数据库要素类或表的记录中添加文件附件。附件以单独附件表的形式存储在地理数据库中,该表与目标数据集保持连接。使用匹配表将附件添加到目标数据集中,该表指定了针对每个输入记录(或记录的属性组)向该记录中添加的附件文件的路径。

了解有关地理数据库附件的详细信息

了解有关使用附件地理处理工具的详细信息

插图

添加附件工具图示
添加附件工具图示

使用方法

  • 在可以使用该工具添加附件之前,必须先使用启用附件工具启用附件。

  • 使用该工具添加的附件将被复制到地理数据库中。原始附件文件将不会受到任何影响。如果修改了原始文件,这些更改不会自动更新到地理数据库附件中;要将这些更改同步到地理数据库中,请使用移除附件工具移除受影响的附件,然后将修改的文件作为新附件重新添加。

  • 如果输入数据集已经包含指向要添加附件的路径的字段,而且不希望使用单独的匹配表,请为输入数据集和匹配表指定相同数据集。工具将自动选择这两个连接字段的对象 ID 字段,而且您可以指定输入的哪个字段包含附件文件的路径。

  • 多个文件可作为一个要素类或表记录的附件。要实现这一功能,匹配表应包含该输入 ID 的多个记录(例如,记录 1 的 InputID 为 1 且路径名为 pic1a.jpg,记录 2 的 InputID 为 1 且路径名为 pic1b.jpg)。

语法

arcpy.management.AddAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, in_match_path_field, {in_working_folder})
参数说明数据类型
in_dataset

要添加附件的地理数据库表或要素类。附件不直接添加到该表中,而是添加到关联的附件表,该附件表保持与输入数据集的连接。

输入数据集必须存储在 10.0 或更高版本的地理数据库中,而且表的附件必须已经启用。

Table View
in_join_field

输入数据集中的值与匹配连接字段中的值相匹配的字段。输入数据集和匹配表之间的连接字段值匹配的记录将添加附件。该字段可以是“Object ID”字段或其他任何标识属性。

Field
in_match_table

用于确定将为哪些输入记录添加附件并确定附件路径的表文件。

Table View
in_match_join_field

匹配表中的字段,用来确定输入数据集中的哪些记录将添加指定附件。该字段的值可与输入数据集“Object ID”或某些其他标识属性相匹配。

Field
in_match_path_field

匹配表中的字段,包含要添加到输入数据集记录中的附件的路径。

Field
in_working_folder
(可选)

集中存放附件文件的文件夹或工作空间。通过指定工作文件夹,匹配路径字段中的路径可以是相对于工作文件夹的短文件名称。

例如,如果加载路径为 C:\MyPictures\image1.jpg 和 C:\MyPictures\image2.jpg 的附件,将工作文件夹设置为 C:\MyPictures 后,匹配路径字段中的路径就可以使用 image1.jpg 和 image2.jpg 等短名称,而不必使用较长的完整路径。

Folder

派生输出

名称说明数据类型
out_dataset

已更新的输入数据集。

表视图

代码示例

AddAttachments 示例 1(Python 窗口)

以下代码片段说明了如何在 Python 窗口中使用 AddAttachments 工具。

import arcpy
arcpy.AddAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", "ParcelID","Picture" , r"C:\Pictures")
AddAttachments 示例 2(独立脚本)

以下脚本说明了如何在独立脚本中使用 AddAttachments 工具。

"""
Example: we have a folder of digital photographs of vacant homes; the photos
are named according to the ParcelID of the house in the picture. Let's add
these photos to a parcel feature class as attachments.
"""
import csv
import arcpy
import os
input = r"C:\Data\City.gdb\Parcels"
inputField = "ParcelID"
matchTable = r"C:\Data\matchtable.csv"
matchField = "ParcelID"
pathField = "Picture" 
picFolder = r"C:\Pictures"
# create a new Match Table csv file
writer = csv.writer(open(matchTable, "wb"), delimiter=",")
# write a header row (the table will have two columns: ParcelID and Picture)
writer.writerow([matchField, pathField])
# iterate through each picture in the directory and write a row to the table
for file in os.listdir(picFolder):
    if str(file).find(".jpg") > -1:
        writer.writerow([str(file).replace(".jpg", ""), file])
del writer
# the input feature class must first be GDB attachments enabled
arcpy.EnableAttachments_management(input)
# use the match table with the Add Attachments tool
arcpy.AddAttachments_management(input, inputField, matchTable, matchField, 
                                pathField, picFolder)

环境

  • 当前工作空间

许可信息

  • Basic: 否
  • Standard: 是
  • Advanced: 是

相关主题

  • 附件工具集概述
  • 使用附件地理处理工具

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

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