I am building a script to integrate into a model that iterates through data. I've been able to get two submodels to iterate through the original data and create large numbers of features in file geodatabase. One submodel creates point features the other creates polygons. I would like to select features (one point and one polygon) based on similar names from the file geodatabase. The point features are civic addresses that fall within a catchment area of each facility. The polygon is the 25 min drive time (service area) from each facility. The point ID of the facility has been integrated into the names of the points and the polygons. I was hoping to select the features from the geodatabase based on the actual name of the feature class which contains the point ID as seen in the screen shot below. Ex: SA207900045_01 polygon the point ID is 207900045. The corresponding point file is nscafPL207900045_01. The point and polygon features do not contain the point ID information. I was hoping something could be done with 'list features' in python then 'select where' the names are the same but I'm having no luck finding this function. I want to be able to loop this selection. So I would select the point and polygon that have similar names then feed them into a tool in model builder then loop back and find another pair of point and polygon features and feed them into the tool. Is there anyway to do this in python or model builder? I'm new to both. Below is an image of some sample data. I'm using ArcGIS for desktop 10.2.2
An arcpy/python way to find like named layers in a gdb would be to use the string
.find() method, see example below:
import os commonSearchText = ['207900045', 'xyz', '1234'] workspace = "C:/Temp/New File Geodatabase.gdb" for nameX in commonSearchText: foundLayersList =  walk = arcpy.da.Walk(workspace, datatype="FeatureClass") for dirpath, dirnames, filenames in walk: for filename in filenames: found = filename.find(nameX) if found >-1: foundLayersList.append(os.path.join(dirpath, filename)) # next do something with two found layers in the foundLayers list....
Alternatively, you could do this in one line combining the if condition and in method:
# same code as noted above before walk statement walk = arcpy.da.Walk(workspace, datatype="FeatureClass") for dirpath, dirnames, filenames in walk: for filename in filenames: if commonSearchText in (filename): foundLayersList.append(os.path.join(dirpath, filename)) # ....
You could put all your common names in the commonSearchText list and loop over those if all layers are in one gdb.