Quantcast
Channel: Forums - Python
Viewing all articles
Browse latest Browse all 2485

Add layer works for a dataframe but not the other

$
0
0
I am creating a tool that the user can use to clip polygons to soils. So he first starts editing, draws a polygon, clicks the tool, choose the soil file to be used for the clipping, then runs the tool. After the clip layer is created, I want it to be added to the data frame, but no matter what I try, it does not get added to the active dataframe. I tested the script adding the clipped polygon to another dataframe and it works fine. How is it not being added to the first dataframe? Both have the same coordiante system. Could it be because the dataframe is in edit mode? Thanks

Code:

    def execute(self, parameters, messages):
        """The source code of the tool."""
     
        arcpy.env.workspace = "D:/ArcGISData/SARS/Temp"


        Soils =  parameters[0].valueAsText
     
        df = arcpy.mapping.ListDataFrames(arcpy.mapping.MapDocument('CURRENT'))[0]
        dfspatialref =  df.spatialReference
        arcpy.env.outputCoordinateSystem = dfspatialref
        clippedsoils = "ClippedSoils"
        if arcpy.Exists(clippedsoils):
            arcpy.Delete_management(clippedsoils)     
        output = arcpy.Clip_analysis(Soils, "Stewardship",clippedsoils)[0]
        outputlyr = arcpy.mapping.Layer("D:/ArcGISData/SARS/Temp/ClippedSoils.shp")

        arcpy.mapping.AddLayer(df, outputlyr, "AUTO_ARRANGE")
        df2 = arcpy.mapping.ListDataFrames(arcpy.mapping.MapDocument('CURRENT'))[1]
   
        arcpy.mapping.AddLayer(df2, outputlyr, "AUTO_ARRANGE")
       
        arcpy.AddWarning("Completed clipping of soils.")

       
        return


Viewing all articles
Browse latest Browse all 2485

Trending Articles