Arcpad,arcpy,checkout / in data和限制到所选功能

时间:2014-02-05 15:42:10

标签: python arcpy arcmap

正致力于开发一个python工具箱,以自动执行检出数据并返回文件地理数据库所需的步骤。我的问题是,在使用python命令行和ArcPad数据管理工具而不是ArcPad数据管理器时,将检出的功能限制为仅限于所选功能的最佳方法是什么? ArcPad Data Manager中的“仅获取所选功能”复选框使其变得简单。这很重要,因为我想限制使用区域并减小文件大小,因为其中一个要素类是一个大的宗地图。

1 个答案:

答案 0 :(得分:0)

我确实知道一种只使用arcpy来获取所选项目的方法。

    #get an map object
    mxd = arcpy.mapping.MapDocument("CURRENT")
    #get an dataframe object, here the first one is taken
    df = arcpy.mapping.ListDataFrames(mxd)[0]
    #get a layer object
    lyr = arcpy.mapping.ListLayers(mxd,"NameOfRequiredLayer",df)
    #now get the FIDs of the selected Elements of your layer
    selection = arcpy.Describe(lyr).FIDSet

"选择"然后包含所选元素的FID。有了这个,你可以随身携带一个你必须做的事情。例如,您可以设置图层定义查询:

    #shapes use FID, feature classes use OBJECTID, so you better check
    IDname = "\"OBJECTID\""
    if lyr.dataSource.endswith("shp"):
        IDname = "\"FID\""
    querystring = IDname + " = " + str(selection[0])
    for count in range(1,len(selection)):
        querystring = querystring + " OR " + IDname + " = " + str(selection[count])   
    if lyr.supports("DEFINITIONQUERY"):
        lyr.definitionQuery = querystring