Tuesday 28 June 2016

arcpy - Using selection of features in ArcMap in Python script?


I am trying to write a python script and am stuck on the first obstacle.


I want the user to select features in ArcMap and then use these selected features in a python script.


Is that at all possible and does someone have a code example?


The code that I have now uses all the features instead of just the selected ones. Please see code snippet below.


arcpy.MakeFeatureLayer_management(pipes,"pipeslyr")
arcpy.SetParameter(0,"pipeslyr")
pipesnew = os.path.join(ws,"pipesnew")


arcpy.CopyFeatures_management("pipeslyr", pipesnew)

Answer



arcpy.CopyFeatures_management works like right-clicking on the layer > export data > selected features. Then you can make the layer from that exported selection. I'd do this "in_memory" so you don't have deal with overwriting each time you run the script.


import arcpy
from arcpy import env

arcpy.env.workspace = "in_memory"

selected_features = "The Feature Class with the selection.shp"
pipes = "the new feature class to convert to a layer"


#this will create a new feature class from the selected features but will do it In Memory
arcpy.CopyFeatures_management (selected_features, pipes)

#Now do all the other stuff you want like convert it to a layer and work with it

arcpy.MakeFeatureLayer_management(pipes,"pipeslyr")

The selection would need to be made before this is run.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...