I have a list of unused/unassigned domains in table format. It's actually a table inside a GDB. I want to build a model that iterates through this table and deletes the domain.
Is this possible with ModelBuilder?
I tried to create a field value iterator, however, it won't let me link it up with the Delete Domain tool.
I know it's possible with python, but has anyone successfully attempted this with ModelBuilder.
1 Answer 1
I wasn't able to find the Model builder answer, but I managed to create a script in python that did the job.
Here it is:
##domain clean up script
##Created by: Ruchira Welikala
##Date: Aug 27, 2015
import arcpy
from arcpy import env
#Workspace where domains will be deleted from
gdbConnName = "Database Connections\\ProductionDB.sde"
#Workspace/Table where list of unused domains are located
UnusedDmnListTable = "C:\Scratch Workspace\domain_List.gdb\A_UnusedDomains"
#Field name that you're running the cursor on
fieldName = "name"
#Cursor initialization. Set the cursor to the table
cursor = arcpy.SearchCursor(UnusedDmnListTable)
txtfile = open('DomainsNOTDeleted.txt','w')
#Loop through and delete domains from workspace
for row in cursor:
try:
print "Deleting domain: " + (row.getValue(fieldName))
arcpy.DeleteDomain_management(gdbConnName, (row.getValue(fieldName)))
print "Deleted:" + (row.getValue(fieldName))
except Exception:
print "Domain " + row.getValue(fieldName) + " was not deleted."
txtfile.write(row.getValue(fieldName) + "\n")
continue
txtfile.close()
-
You should delete your cursor (
del row, cursor
) after you are done using it to ensure proper closure. Or better yet, since you are on 10.1+, useda.SearchCursor
with awith
statement, which automatically closes and is considerably more robust and efficient.Paul– Paul2015年08月28日 17:20:58 +00:00Commented Aug 28, 2015 at 17:20
Explore related questions
See similar questions with these tags.