2014-04-03 71 views
0

我在ArcMap 10.2中創建了一個Add-in按鈕,它將浮動級聯動態文本框添加到地圖佈局中。我的腳本很辛苦,希望有人能得到答案。在ArcMap 10.2中添加動態文本作爲文本元素

這裏是我的代碼:

def onClick(self): 
    mxd = arcpy.mapping.MapDocument("CURRENT") 
    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " ")[0]: 
     elmWidth = 4.0 
     x = 100 
     elm.text = 'User: <dyn type="user"/> Date: <dyn type="date" format="short"/> <Document Path: dyn type="document" property="path"/>' 
     elm.fontSize = x 
     while elm.elementWidth > float(elmWidth): 
      elm.fontSize = x 
      x = x-1 
    arcpy.RefreshActiveView() 
    del mxd 

我得到UnboundLocalError的錯誤:之前分配和IndexError引用局部變量「MXD」:列表索引超出範圍 我堅持和需要幫助。

謝謝。

回答

0

首先,您不能將新的文本元素添加到mxd佈局,只能修改或複製現有的文本元素。 其次,無論是寫:

for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " "): 
    ... 

elm = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", " ")[0] 

這個假設有一個在您MXD名爲 「」 的文本元素。

+0

謝謝。我將通過ArcMap中的工具添加地圖文檔動態文本。 – geogeekme