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):
passI 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