サマリー
ユーザーがすべてのアタッチメントをローカルにエクスポートして保存できるようにするジオプロセシング ツールはありません。 下記の手順は考えられる解決策を示しています。
次に示すスクリプトは、1 つのフィーチャクラスのアタッチメント テーブル全体に繰り返し適用され、すべてのアタッチメント (BLOB (Binary Large Object) として保存される) をファイルにコピーします。
手順
このスクリプトの入力テーブルは、アタッチメントがフィーチャクラスに対して有効化されたときに作成された標準のアタッチメント テーブルである必要があります。 これは、下記のスクリプトがそのテーブルの DATA、ATT_NAME、および ATTACHMENTID フィールドに依存しているためです。 標準的な命名規則では、テーブル名の末尾に _ATTACH が付加されます。
- 次のスクリプトをコピーしてメモ帳に貼り付け、ExportAttachments.py という名前で保存します。
import arcpy
from arcpy import da
import os
inTable = arcpy.GetParameterAsText(0)
fileLocation = arcpy.GetParameterAsText(1)
with da.SearchCursor(inTable, ['DATA', 'ATT_NAME', 'ATTACHMENTID']) as cursor:
for item in cursor:
attachment = item[0]
filenum = "ATT" + str(item[2]) + "_"
filename = filenum + str(item[1])
open(fileLocation + os.sep + filename, 'wb').write(attachment.tobytes())
del item
del filenum
del filename
del attachment
- ツールボックスを右クリックして [追加] → [スクリプト] の順に選択します。
- スクリプトに名前とラベルを指定します。 [相対パスで保存] の横にあるチェックボックスをオンにして、[次へ] をクリックします。
- スクリプト ファイルを取得するために、ExportAttachments.py スクリプトが保存された場所に移動します。 スクリプトを選択して、[OK] をクリックしてから、[次へ] をクリックします。
- [パラメーター] で、[表示名] の下に「Attachments Table」と入力し、データ タイプを [テーブル] に設定します。 2 つ目のパラメーターを追加し、表示名の下に「Output Location」と入力し、データ タイプとして [フォルダー] を選択します。
- [完了] をクリックします。
- これで、新しいスクリプト ツールがツールボックスに追加されます。
- スクリプト ツールをダブルクリックします。 ダイアログで、最初のパラメーターとして展開されるアタッチメントを含むアタッチメント テーブルを選択します。 [OutputLocation] で、エクスポートされたアタッチメントの保存先となるフォルダーを選択します。 [OK] をクリックしてツールを実行します。