アタッチメントの削除(Remove Attachments) (データ管理)

ライセンス レベル:BasicStandardAdvanced

サマリ

ジオデータベース フィーチャクラスまたはテーブルのレコードからアタッチメントを削除します。アタッチメントは実際には入力データセットに格納されていないため、フィーチャクラスまたはテーブルに対する変更は発生しません。変更は、アタッチメントを格納して入力データセットとのリンクを管理している関連ジオデータベース テーブルに対して行われます。アタッチメントが削除される入力レコード(またはレコードの属性グループ)を識別するには、照合テーブルを使用します。

Remove Attachments illustration

使用法

構文

RemoveAttachments_management (in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
パラメータ説明データ タイプ
in_dataset

アタッチメントを削除するジオデータベース テーブルまたはフィーチャクラス。アタッチメントは直接このテーブルから削除されるのではなく、アタッチメントを格納している関連アタッチメント テーブルから削除されます。[入力データセット] はバージョン 10 以降のジオデータベースに格納されている必要があります。また、テーブルでアタッチメントが有効になっている必要もあります。

Table View
in_join_field

[照合結合フィールド] の値に一致する値を含む入力データセットのフィールド。[入力データセット][照合テーブル] の間で一致する結合フィールド値を持つレコードからアタッチメントが削除されます。このフィールドには、Object ID フィールドまたはその他の個別属性を指定できます。

Field
in_match_table

アタッチメントを削除する入力レコードを識別するテーブル。

Table View
in_match_join_field

指定したアタッチメントを削除する [入力データセット] 内のレコードを識別する照合テーブルのフィールド。このフィールドには、[入力データセット] の Object ID やその他の個別属性に一致する値を指定できます。

Field
in_match_name_field
(オプション)

[入力データセット] のレコードから削除するアタッチメントの名前を保持する照合テーブルのフィールド。名前フィールドを指定しない場合は、[照合結合フィールド] で指定した各レコードからすべてのアタッチメントが削除されます。名前フィールドが指定されていても、レコードの名前フィールドに NULL または空の値が含まれている場合は、そのレコードからすべてのアタッチメントが削除されます。このフィールドの値には、元のアタッチメントを作成するために使用したファイルの絶対パスではなく、削除するアタッチメントの短い名前を指定します。

Field

コードのサンプル

RemoveAttachments(アタッチメントの削除)の例(Python ウィンドウ)

次のコード スニペットは、Python ウィンドウで RemoveAttachments(アタッチメントの削除)ツールを使用する方法を示しています。

import arcpy
arcpy.RemoveAttachments_management(r"C:\Data\City.gdb\Parcels", "ParcelID", r"C:\Data\matchtable.csv", "ParcelID","Picture")
RemoveAttachments(アタッチメントの削除)の例(スタンドアロン Python スクリプト)

次のスクリプトは、スタンドアロン スクリプトで RemoveAttachments(アタッチメントの削除)ツールを使用する方法を示しています。

## Some of the attachments we added to a feature class are unnecessary, let's remove them.

import csv, arcpy, os, sys

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

# create a new Match Table csv file that will tell the RemoveAttachments tool which attachments to delete
writer = csv.writer(open(matchTable, "wb"), delimiter=",")

# write a header row (the table will have two columns: ParcelID and Picture)
writer.writerow([matchField, nameField])

# create a list of the attachments to delete
# removes attachments pic1a.jpg and pic1b.jpg from feature 1, pic3.jpg from feature 3, and pic4.jpg from feature 4.
deleteList = [[1, "pic1a.jpg"], [1, "pic1b.jpg"], [3, "pic3.jpg"], [4, "pic4.jpg"]]

# iterate through the delete list and write it to the Match Table csv
for row in deleteList:
    writer.writerow(row)

del writer

# use the match table with the Remove Attachments tool
arcpy.RemoveAttachments_management(input, inputField, matchTable, matchField, nameField)

環境

関連トピック

ライセンス情報

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