I developed a Combox which:
Here is my code:
class SiteComboBoxClass4(object):"""Implementation for Site_Python_Addins_addin.combobox (ComboBox)"""def __init__(self):self.items = []self.editable = Trueself.enabled = Trueself.dropdownWidth = 'WWWWWWWWW'self.width = 'WWWWWWWWW'def onFocus(self, focused):if focused: self.mxd = arcpy.mapping.MapDocument('current') global items, site, akode, fc_biotop_pol, fc_biotop_poi, fc_biotop_li, fc_pro1_pol, fc_pro1_poi, fc_pro1_li items = [] site = "SITE_ID" #Attribute fields of the features acode = "ACODE" #Attribute fields of the features fc_biotop_pol = "Biotop (Polygon)" fc_biotop_poi = "Biotop (Point)" fc_biotop_li = "Biotop (Line)" fc_pro1_pol = "Protection Area 1 (Polygon)" fc_pro1_poi = "Protection Area 1 (Point)" fc_pro1_li = "Protection Area 1 (Line)" Cursor_1 = arcpy.da.SearchCursor(fc_biotop_pol,site) Cursor_2 = arcpy.da.SearchCursor(fc_biotop_poi,site) Cursor_3 = arcpy.da.SearchCursor(fc_biotop_li,site) Cursor_4 = arcpy.da.SearchCursor(fc_pro1_pol,site) Cursor_5 = arcpy.da.SearchCursor(fc_pro1_poi,site) Cursor_6 = arcpy.da.SearchCursor(fc_pro1_li,site) Cursor_7 = arcpy.da.SearchCursor(fc_pro1_pol,acode) Cursor_8 = arcpy.da.SearchCursor(fc_pro1_poi,acode) Cursor_9 = arcpy.da.SearchCursor(fc_pro1_li,acode) for row in Cursor_1: items.append(row[0]) for row in Cursor_2: items.append(row[0]) for row in Cursor_3: items.append(row[0]) for row in Cursor_4: items.append(row[0]) for row in Cursor_5: items.append(row[0]) for row in Cursor_6: items.append(row[0]) for row in Cursor_7: items.append(row[0]) for row in Cursor_8: items.append(row[0]) for row in Cursor_9: items.append(row[0]) self.items = sorted(items) passdef onSelChange(self, selection):combobox.enabled = Trueself.value = selectionself.mxd = arcpy.mapping.MapDocument('current')self.df = arcpy.mapping.ListDataFrames(self.mxd)[0] arcpy.SelectLayerByAttribute_management(fc_biotop_poi, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_biotop_li, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()#arcpy.RefreshActiveView()arcpy.SelectLayerByAttribute_management(fc_biotop_pol, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_poi, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_li, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_pol, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_poi, "NEW_SELECTION", acode + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_li, "NEW_SELECTION", acode + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_pol, "NEW_SELECTION", acode + "='" + selection + "'")self.df.zoomToSelectedFeatures()pass
أكثر...
- combines values from different featurelayers
- the User can select an ID or activitycode (acode)
- the active view zooms to the object (biotop or Protected Area)
Here is my code:
class SiteComboBoxClass4(object):"""Implementation for Site_Python_Addins_addin.combobox (ComboBox)"""def __init__(self):self.items = []self.editable = Trueself.enabled = Trueself.dropdownWidth = 'WWWWWWWWW'self.width = 'WWWWWWWWW'def onFocus(self, focused):if focused: self.mxd = arcpy.mapping.MapDocument('current') global items, site, akode, fc_biotop_pol, fc_biotop_poi, fc_biotop_li, fc_pro1_pol, fc_pro1_poi, fc_pro1_li items = [] site = "SITE_ID" #Attribute fields of the features acode = "ACODE" #Attribute fields of the features fc_biotop_pol = "Biotop (Polygon)" fc_biotop_poi = "Biotop (Point)" fc_biotop_li = "Biotop (Line)" fc_pro1_pol = "Protection Area 1 (Polygon)" fc_pro1_poi = "Protection Area 1 (Point)" fc_pro1_li = "Protection Area 1 (Line)" Cursor_1 = arcpy.da.SearchCursor(fc_biotop_pol,site) Cursor_2 = arcpy.da.SearchCursor(fc_biotop_poi,site) Cursor_3 = arcpy.da.SearchCursor(fc_biotop_li,site) Cursor_4 = arcpy.da.SearchCursor(fc_pro1_pol,site) Cursor_5 = arcpy.da.SearchCursor(fc_pro1_poi,site) Cursor_6 = arcpy.da.SearchCursor(fc_pro1_li,site) Cursor_7 = arcpy.da.SearchCursor(fc_pro1_pol,acode) Cursor_8 = arcpy.da.SearchCursor(fc_pro1_poi,acode) Cursor_9 = arcpy.da.SearchCursor(fc_pro1_li,acode) for row in Cursor_1: items.append(row[0]) for row in Cursor_2: items.append(row[0]) for row in Cursor_3: items.append(row[0]) for row in Cursor_4: items.append(row[0]) for row in Cursor_5: items.append(row[0]) for row in Cursor_6: items.append(row[0]) for row in Cursor_7: items.append(row[0]) for row in Cursor_8: items.append(row[0]) for row in Cursor_9: items.append(row[0]) self.items = sorted(items) passdef onSelChange(self, selection):combobox.enabled = Trueself.value = selectionself.mxd = arcpy.mapping.MapDocument('current')self.df = arcpy.mapping.ListDataFrames(self.mxd)[0] arcpy.SelectLayerByAttribute_management(fc_biotop_poi, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_biotop_li, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()#arcpy.RefreshActiveView()arcpy.SelectLayerByAttribute_management(fc_biotop_pol, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_poi, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_li, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_pol, "NEW_SELECTION", site + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_poi, "NEW_SELECTION", acode + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_li, "NEW_SELECTION", acode + "='" + selection + "'")self.df.zoomToSelectedFeatures()arcpy.SelectLayerByAttribute_management(fc_pro1_pol, "NEW_SELECTION", acode + "='" + selection + "'")self.df.zoomToSelectedFeatures()pass
أكثر...