import arcpy, os from arcpy import env folder = r"H:\Projects\H107039_PeterW\workpackages" for (path, dirs, files) in os.walk(folder): if ".gdb" not in path.lower(): env.workspace = path databases = arcpy.ListWorkspaces("*", "FileGDB") for database in databases: arcpy.TableToDomain_management(r"C:\TEMP\Python\domain.dbf", "Code", "Desc", database, "City")
Hi Peter,
It may be easiest to do this using a python script rather than model builder. Here is an example on how to do this. The below script will iterate through each sub directory in your 'H:\Projects\H107039_PeterW\workpackages' workspace:import arcpy, os from arcpy import env folder = r"H:\Projects\H107039_PeterW\workpackages" for (path, dirs, files) in os.walk(folder): if ".gdb" not in path.lower(): env.workspace = path databases = arcpy.ListWorkspaces("*", "FileGDB") for database in databases: arcpy.TableToDomain_management(r"C:\TEMP\Python\domain.dbf", "Code", "Desc", database, "City")
You will just need to update the line "arcpy.TableToDomain_management(r"C:\TEMP\Python\domain.dbf", "Code", "Desc", database[0], "City")". The first variable is the path to the table containing the domain. The second variable is the field containing the domain code. Third variable is the field containing the domain description, and the 5th variable is what you would like to name the domain.
import arcpy, os from arcpy import env folder = r"S:\Projects\H107039\GIS\ModelBuilder\Geodatabases" for (path, dirs, files) in os.walk(folder): if ".gdb" not in path.lower(): env.workspace = path databases = arcpy.ListWorkspaces("*", "FileGDB") for database in databases: arcpy.TableToDomain_management(r"S:\Projects\H107039\GIS\Domains.gdb\Landuse_Description", "Code", "Description", database, "Landuse Description", "Aurecon Landuse Description", "REPLACE")
database = arcpy.ListWorkspaces("*", "FileGDB") arcpy.TableToDomain_management(r"S:\Projects\H107039\GIS\Domains.gdb\Landuse_Description", "Code", "Description", database[0], "Landuse Description", "Aurecon Landuse Description", "REPLACE")
databases = arcpy.ListWorkspaces("*", "FileGDB") for database in databases: arcpy.TableToDomain_management(r"S:\Projects\H107039\GIS\Domains.gdb\Landuse_Description", "Code", "Description", database, "Landuse Description", "Aurecon Landuse Description", "REPLACE")
import arcpy, os from arcpy import env folder = r"S:\Projects\H107039\GIS\ModelBuilder\Geodatabases" for (path, dirs, files) in os.walk(folder): if ".gdb" not in path.lower(): env.workspace = path databases = arcpy.ListWorkspaces("*", "FileGDB") Code = 'Code' Description = 'Desc' Replace = 'REPLACE' for database in databases: arcpy.TableToDomain_management(arcpy.GetParameterAsText(0), Code, Description, database, arcpy.GetParameterAsText(1), arcpy.GetParameterAsText(2), Replace)
import arcpy, os from arcpy import env folder = r"S:\Projects\H107039\GIS\ModelBuilder\Geodatabases" for (path, dirs, files) in os.walk(folder): if ".gdb" not in path.lower(): env.workspace = path databases = arcpy.ListWorkspaces("*", "FileGDB") # Set parameters DomainTable = arcpy.GetParameterAsText(0) Code = 'Code' Description = 'Description' DomainName = arcpy.GetParameterAsText(1) DomainDesc = arcpy.GetParameterAsText(2) Replace = 'Replace' # Run Tool for database in databases: arcpy.TableToDomain_management(DomainTable, Code, Description, database, DomainName, DomainDesc, Replace)