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

サマリー

ジオデータベース フィーチャクラスまたはテーブルのレコードからアタッチメントを削除します。

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

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

アタッチメントの削除ツールの図

使用法

  • このツールを使用する以外の方法として、[入力データセット] 値と同じジオデータベースにある InputDataset__ATTACH テーブルから選択したレコードを削除する方法があります。このテーブルはアタッチメントを格納し、[入力データセット] 値へのリンクを管理しています。

  • このツールは、ArcGIS Enterprise ホスト フィーチャ レイヤーを入力としてサポートしています。

パラメーター

ラベル説明データ タイプ
入力データセット

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

Table View
レイヤー、テーブル ビューのキーとなるフィールド

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

Field
照合テーブル

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

Table View
照合結合フィールド

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

Field
照合名フィールド
(オプション)

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

Field

派生した出力

ラベル説明データ タイプ
更新された入力データセット

更新された入力データセット。

Table View

arcpy.management.RemoveAttachments(in_dataset, in_join_field, in_match_table, in_match_join_field, {in_match_name_field})
名前説明データ タイプ
in_dataset

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

Table View
in_join_field

in_match_join_field パラメーター値の値に一致する値を含む in_dataset パラメーター値のフィールド。 in_dataset パラメーター値と in_match_table パラメーター値に一致する結合フィールド値を持つレコードからアタッチメントが削除されます。 このフィールドには、Object ID フィールドまたはその他の個別属性を指定できます。

Field
in_match_table

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

Table View
in_match_join_field

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

Field
in_match_name_field
(オプション)

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

Field

派生した出力

名前説明データ タイプ
out_dataset

更新された入力データセット。

Table View

コードのサンプル

RemoveAttachments の例 1 (Python ウィンドウ)

次のコード スニペットは、Python ウィンドウで RemoveAttachments 関数を使用する方法を示しています。

import arcpy
arcpy.management.RemoveAttachments(r"C:\Data\City.gdb\Parcels", "ParcelID", 
                                   r"C:\Data\matchtable.csv", "ParcelID", 
                                   "Picture")
RemoveAttachments の例 2 (スタンドアロン スクリプト)

次のスクリプトは、スタンドアロン スクリプトで RemoveAttachments 関数を使用する方法を示しています。

# Delete unnecessary attachments from a feature class

import arcpy
import csv

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)