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.

pipesnew = os.path.join(ws,"pipesnew")

arcpy.CopyFeatures_management("pipeslyr", pipesnew)

2 Answers 2


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


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


As your script stands if you want to copy out a selection then the selection must exist on the layer, but you would need to get a handle on the layer from your mxd first. Have a look at this Getting started with arcpy.mapping tutorial page about referencing a layer in an mxd.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.