Solved! Go to Solution.
import arcpy import pythonaddins class Selection(object): """Implementation for SelectAllButton_addin.button (Button)""" def __init__(self): self.enabled = True self.checked = False def onClick(self): # Select all features (in Test there are no features with FID 0). arcpy.SelectLayerByAttribute_management ("XYMin_Max_Avg_Temp_with_Lat_Long","NEW_SELECTION","Station_Id"<>'0') pass
# your map obj, based on an input pathname: mxd = arcpy.mapping.MapDocument(r'your mxd pathname goes here') # fetching the row obj of your current DDP index page: currentRow = mxd.dataDrivenPages.pageRow
currentStation = currentRow.Station_ID
# 'TSR' is the fieldname the value is fetched from in this case fieldValue = mxd.dataDrivenPages.pageRow.TSR
# Modify bar chart his2000 = float(mxd.dataDrivenPages.pageRow.HisPer2000) bar1.elementHeight = (his2000 / 50)*2 bar1txt.text = "(" + str(round(his2000, 2)) + ")" bar1txt.elementPositionY = bar1.elementPositionY + bar1.elementHeight + 0.1 # comment I added: # 2nd bar element modified, same line formatting as above 4 lines his2010 = float(mxd.dataDrivenPages.pageRow.HisPer2010) bar2.elementHeight = (his2010 / 50)*2 bar2txt.text = "(" + str(round(his2010, 2)) + ")" bar2txt.elementPositionY = bar2.elementPositionY + bar2.elementHeight + 0.1
#Loop through each DDP page for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):
.... So it seems you need something to 'reselect' the records based on the page definition; .... It seems the problem is the graph will update only based on a selection ....
import arcpy import pythonaddins class ExtensionClass1(object): """Implementation for testAddIn_addin.extension2 (Extension)""" def __init__(self): self.enabled = True def beforePageIndexExtentChange(self, old_id): if self.enabled == False: self.enabled = True pass def pageIndexExtentChanged(self, new_id): if self.enabled: mxd = arcpy.mapping.MapDocument("Current") df = arcpy.mapping.ListDataFrames(mxd)[0] lyr = arcpy.mapping.ListLayers(mxd, 'tempsStation', df)[0] arcpy.SelectLayerByLocation_management(lyr, '', '', '', 'SWITCH_SELECTION') self.enabled = False pass