アタッチメントの追加(Add Attachments) (データ管理)

ライセンス レベル:BasicStandardAdvanced

サマリ

ジオデータベース フィーチャクラスまたはテーブルのレコードに、ファイル アタッチメントを追加します。ジオデータベースの内部では、アタッチメントはターゲット データセットへのリンクを保持する独立したアタッチメント テーブルに格納されます。入力レコード(またはレコードの属性グループ)ごとに、アタッチメントとしてレコードに追加するファイルのパスを指定する照合テーブルを使用して、アタッチメントがターゲット データセットに追加されます。

ジオデータベース アタッチメントの詳細

アタッチメント ジオプロセシグ ツールの操作の詳細

アタッチメントの追加(Add Attachments)ツール
アタッチメントの追加(Add Attachments)ツール

使用法

構文

AddAttachments_management (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

コードのサンプル

AddAttachments(アタッチメントの追加)の例(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(アタッチメントの追加)の例(スタンドアロン Python スクリプト)

次のスクリプトは、スタンドアロン スクリプトで 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
import sys

input = r"C:\Data\City.gdb\Parcels"
inputField = "ParcelID"
matchTable = r"C:\Data\matchtable.csv"
matchField = "ParcelID"
pathField = "Picture" 
picFolder = r"C:\Pictures"

try:
    # 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)
except:
    print arcpy.GetMessages(2)

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: ×
ArcGIS for Desktop Standard: ○
ArcGIS for Desktop Advanced: ○
9/14/2013