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 + "'")
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.