import arcpy import pythonaddins sitename = [] for row in arcpy.SearchCursor("Z:\JACOS\Data\GIS\Geodatabases\JACOS_MASTER_2011_PDA_CR.gdb\IF_PDABNDY_R"): sitename.append(row.SITE) class ComboBoxClass(object): """Implementation for SolsticeFigureUpdater_addin.combobox (ComboBox)""" def __init__(self): #self.items = ["item1", "item2"] self.items = sorted(sitename) self.editable = True self.enabled = True self.dropdownWidth = 'WWWWWWWWWWWWWW' self.width = 'WWWWWWWW' def onSelChange(self, selection): mxd = arcpy.mapping.MapDocument("CURRENT") for df in arcpy.mapping.ListDataFrames(mxd): if df.name == "DFMAIN": dfmain = arcpy.mapping.ListDataFrames(mxd, "DFMAIN")[0] if df.name == "DFINSET": dfinset = arcpy.mapping.ListDataFrames(mxd, "DFINSET")[0] for lyr in arcpy.mapping.ListLayers(mxd, "", dfmain): if lyr.name == "PDA Boundary": lyr.definitionQuery = '"SITE" =' selection arcpy.RefreshActiveView() arcpy.RefreshTOC() def onEditChange(self, text): pass def onFocus(self, focused): pass def onEnter(self): pass def refresh(self): pass
lyr.definitionQuery = '"SITE" = selection'
lyr.definitionQuery = '"SITE" = "selection"'
lyr.definitionQuery = '"SITE" = 'selection'
def onSelChange(self, selection):is the variable used to store the selection the user makes from the combo box (I could be wrong, this is my first python combo box) I thought it would be easy just to pass that into the definition query. I even tried to convert it to string
lyr.definitionQuery = '"SITE" =' str(selection)but no luck. Obviously I'm mistaking the functionality of that variable....
lyr.definitionQuery = '"SITE"' + "=" + "'" + selection + "'"
I am trying to pass the users selection into a definition query in an addin combo box python script.
Basically, I have a feature class with a field called "SITE". I build a python list from that field and pass it into the combo box items list. The user will choose a value in the combo box box from that list. I want to further pass the users selection into a definition query.
You can see in my script below, I just tried to pass the selection into the definition query, but it crashes the whole combo box and toolbar (i.e. when I reinstall my addin, the tool shows up on my toolbar in big red letters "MISSING"). Obviously I am doing something wrong it I believe it's how I'm passing the selection. As suggestions?import arcpy import pythonaddins sitename = [] for row in arcpy.SearchCursor("Z:\JACOS\Data\GIS\Geodatabases\JACOS_MASTER_2011_PDA_CR.gdb\IF_PDABNDY_R"): sitename.append(row.SITE) class ComboBoxClass(object): """Implementation for SolsticeFigureUpdater_addin.combobox (ComboBox)""" def __init__(self): #self.items = ["item1", "item2"] self.items = sorted(sitename) self.editable = True self.enabled = True self.dropdownWidth = 'WWWWWWWWWWWWWW' self.width = 'WWWWWWWW' def onSelChange(self, selection): mxd = arcpy.mapping.MapDocument("CURRENT") for df in arcpy.mapping.ListDataFrames(mxd): if df.name == "DFMAIN": dfmain = arcpy.mapping.ListDataFrames(mxd, "DFMAIN")[0] if df.name == "DFINSET": dfinset = arcpy.mapping.ListDataFrames(mxd, "DFINSET")[0] for lyr in arcpy.mapping.ListLayers(mxd, "", dfmain): if lyr.name == "PDA Boundary": lyr.definitionQuery = '"SITE" =' selection arcpy.RefreshActiveView() arcpy.RefreshTOC() def onEditChange(self, text): pass def onFocus(self, focused): pass def onEnter(self): pass def refresh(self): pass
import arcpy import pythonaddins class SelectPlotComboBoxClass(object): """Implementation for SelectPlot_addin.combobox (ComboBox)""" def __init__(self): #self.items = ["item1", "item2"] Name_Allottee = [] for row in arcpy.SearchCursor("KWAGIS_Parcels"): Name.append(row.OBJECTID) self.items = sorted(Name_Allottee) self.editable = True self.enabled = True self.dropdownWidth = 'WWWWWWWWWWWWWWWWWWWW' self.width = 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW' def onSelChange(self, selection): mxd = arcpy.mapping.MapDocument("CURRENT") for df in arcpy.mapping.ListDataFrames(mxd): if df.name == "Layers": dfmain = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] #if df.name == "DFINSET": #dfinset = arcpy.mapping.ListDataFrames(mxd, "DFINSET")[0] Name_Allottee = [] for row in arcpy.SearchCursor("KWAGIS_Parcels"): Name_Allottee.append(row.OBJECTID) for lyr in arcpy.mapping.ListLayers(mxd, "", Layers): if lyr.name == "KWAGIS_Parcels": lyr.definitionQuery = '"Name_Allottee"' + "=" + "'" + selection + "'" arcpy.RefreshActiveView() arcpy.RefreshTOC() def onEditChange(self, text): pass def onFocus(self, focused): pass def onEnter(self): pass def refresh(self): pass
I am trying to pass the users selection into a definition query in an addin combo box python script.
Basically, I have a feature class with a field called "SITE". I build a python list from that field and pass it into the combo box items list. The user will choose a value in the combo box box from that list. I want to further pass the users selection into a definition query.
You can see in my script below, I just tried to pass the selection into the definition query, but it crashes the whole combo box and toolbar (i.e. when I reinstall my addin, the tool shows up on my toolbar in big red letters "MISSING"). Obviously I am doing something wrong it I believe it's how I'm passing the selection. As suggestions?import arcpy import pythonaddins sitename = [] for row in arcpy.SearchCursor("Z:\JACOS\Data\GIS\Geodatabases\JACOS_MASTER_2011_PDA_CR.gdb\IF_PDABNDY_R"): sitename.append(row.SITE) class ComboBoxClass(object): """Implementation for SolsticeFigureUpdater_addin.combobox (ComboBox)""" def __init__(self): #self.items = ["item1", "item2"] self.items = sorted(sitename) self.editable = True self.enabled = True self.dropdownWidth = 'WWWWWWWWWWWWWW' self.width = 'WWWWWWWW' def onSelChange(self, selection): mxd = arcpy.mapping.MapDocument("CURRENT") for df in arcpy.mapping.ListDataFrames(mxd): if df.name == "DFMAIN": dfmain = arcpy.mapping.ListDataFrames(mxd, "DFMAIN")[0] if df.name == "DFINSET": dfinset = arcpy.mapping.ListDataFrames(mxd, "DFINSET")[0] for lyr in arcpy.mapping.ListLayers(mxd, "", dfmain): if lyr.name == "PDA Boundary": lyr.definitionQuery = '"SITE" =' selection arcpy.RefreshActiveView() arcpy.RefreshTOC() def onEditChange(self, text): pass def onFocus(self, focused): pass def onEnter(self): pass def refresh(self): pass
import arcpy import pythonaddins class SelectPlotComboBoxClass(object): """Implementation for SelectPlot_addin.combobox (ComboBox)""" def __init__(self): #self.items = ["item1", "item2"] Name_Allottee = [] for row in arcpy.SearchCursor("KWAGIS_Parcels"): Name.append(row.OBJECTID) self.items = sorted(Name_Allottee) self.editable = True self.enabled = True self.dropdownWidth = 'WWWWWWWWWWWWWWWWWWWW' self.width = 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW' def onSelChange(self, selection): mxd = arcpy.mapping.MapDocument("CURRENT") for df in arcpy.mapping.ListDataFrames(mxd): if df.name == "Layers": dfmain = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] Name_Allottee = [] for row in arcpy.SearchCursor("KWAGIS_Parcels"): Name_Allottee.append(row.OBJECTID) for lyr in arcpy.mapping.ListLayers(mxd, "", Layers): if lyr.name == "KWAGIS_Parcels": lyr.definitionQuery = '"Name_Allottee"' + "=" + "'" + selection + "'" arcpy.RefreshActiveView() arcpy.RefreshTOC() def onEditChange(self, text): pass def onFocus(self, focused): pass def onEnter(self): pass def refresh(self): pass