Enable Attachments (Data Management)


Enables attachments on a geodatabase feature class or table. The tool creates the necessary attachment relationship class and attachment table that will store attachment files internally.

Learn more about working with the Attachments geoprocessing tools


  • If the input dataset is from an enterprise geodatabase, it must be from a database connection established as the data owner.

  • Attachments must first be enabled using this tool before they can be added using the Add Attachments tool.

  • If the geodatabase feature class or table already has attachments enabled, a warning message will appear and no processing will occur.

  • Datasets that have replica tracking enabled and are nonversioned with archiving enabled will have archiving and replica tracking enabled on the attachments table.

  • Datasets that are branch versioned will not be registered as branch versioning or have replica tracking enabled on the attachments table automatically. This can be handled manually by using the Register As Versioned and Enable Replica Tracking tools.


ParameterExplanationData Type

The geodatabase table or feature class for which attachments will be enabled. The input must be in a version 10 or later geodatabase.

Table View

Derived Output

NameExplanationData Type

The updated input dataset.

Table View

Code sample

EnableAttachments example 1 (Python window)

The following code snippet illustrates how to use the EnableAttachments tool in the Python window.

import arcpy
EnableAttachments example 2 (stand-alone script)

The following script illustrates how to use the EnableAttachments tool in a stand-alone script.

Example: You have a folder of digital photographs of vacant homes; the photos
         are named according to the ParcelID of the house in the picture. You'll 
         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

# Use the match table with the Add Attachments tool
arcpy.AddAttachments_management(input, inputField, matchTable, matchField, 
                                pathField, picFolder)


Licensing information

  • Basic: No
  • Standard: Yes
  • Advanced: Yes

Related topics