Solved! Go to Solution.
import arcpy import pythonaddins class ToolClass2(object): """Implementation for UserData2_addin.tool (Tool)""" def __init__(self): self.cursor = 0 self.enabled = True self.shape = "Rectangle" def onRectangle(self, rectangle_geometry): #Create Polygon from drawn extent extent = rectangle_geometry XMAX = extent.XMax XMIN = extent.XMin YMAX = extent.YMax YMIN = extent.YMin pnt1 = arcpy.Point(XMIN, YMIN) pnt2 = arcpy.Point(XMIN, YMAX) pnt3 = arcpy.Point(XMAX, YMAX) pnt4 = arcpy.Point(XMAX, YMIN) array = arcpy.Array() array.add(pnt1) array.add(pnt2) array.add(pnt3) array.add(pnt4) array.add(pnt1) polygon = arcpy.Polygon(array) #Select features that intersect drawn Polygon mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd)[0] for layer in arcpy.mapping.ListLayers(mxd, "Airports", df): arcpy.SelectLayerByLocation_management(layer, "INTERSECT", polygon, "#", "NEW_SELECTION") items = [] #Append primary key values to list with arcpy.da.SearchCursor(layer, ["District"]) as cursor: for row in cursor: items.append(row[0]) #Remove duplicates from list items = dict.fromkeys(items) items = items.keys() for table in arcpy.mapping.ListTableViews(mxd, "Districts", df): #Clear selection if one exists try: arcpy.SelectLayerByAttribute_management(table, "CLEAR_SELECTION") except: pass for item in items: #Select records in foreign key arcpy.SelectLayerByAttribute_management(table, "ADD_TO_SELECTION", "District = '" + item + "'")
import arcpy import pythonaddins class ToolClass2(object): """Implementation for UserData2_addin.tool (Tool)""" def __init__(self): self.cursor = 0 self.enabled = True self.shape = "Rectangle" def onRectangle(self, rectangle_geometry): #Create Polygon from drawn extent extent = rectangle_geometry XMAX = extent.XMax XMIN = extent.XMin YMAX = extent.YMax YMIN = extent.YMin pnt1 = arcpy.Point(XMIN, YMIN) pnt2 = arcpy.Point(XMIN, YMAX) pnt3 = arcpy.Point(XMAX, YMAX) pnt4 = arcpy.Point(XMAX, YMIN) array = arcpy.Array() array.add(pnt1) array.add(pnt2) array.add(pnt3) array.add(pnt4) array.add(pnt1) polygon = arcpy.Polygon(array) #Select features that intersect drawn Polygon mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd)[0] for layer in arcpy.mapping.ListLayers(mxd, "Airports", df): arcpy.SelectLayerByLocation_management(layer, "INTERSECT", polygon, "#", "NEW_SELECTION") items = [] #Append primary key values to list with arcpy.da.SearchCursor(layer, ["District"]) as cursor: for row in cursor: items.append(row[0]) #Remove duplicates from list items = dict.fromkeys(items) items = items.keys() for table in arcpy.mapping.ListTableViews(mxd, "Districts", df): #Clear selection if one exists try: arcpy.SelectLayerByAttribute_management(table, "CLEAR_SELECTION") except: pass for item in items: #Select records in foreign key arcpy.SelectLayerByAttribute_management(table, "ADD_TO_SELECTION", "District = '" + item + "'")