I am currently working on a python script where I am trying to copy selected features into a feature dataset.
Basically I have an mxd containing some layers, and for each layer I select features by their attributes, this query is based on the featuredataset name. The script I have written get a list of the feature datasets of my geodatabase. With the name of the featuredataset, I can build a query filter (arcpy.SelectLayerByAttribute_management) for each layers of the mxd. If my selection return something, I export the selected feature in the proper dataset (arcpy.FeatureClassToFeatureClass_conversion). The script is processing the first dataset properly, but once it jumps to the next one it fails... I cannot figuring out why I am receiving the following message error(arcgisscripting.ExecuteError: ERROR 999999: Error executing function. Failed to execute (FeatureClassToFeatureClass).)
#-----Work-on-the-Geodatabase----- ##path of the geodatabase gdb_hull="D:\\As_Con_Plans\\As_Con_Hull_part1.gdb" ##set the workspace arcpy.env.workspace=gdb_hull ##get the list of the featuredataset fdlist =arcpy.ListDatasets() #-----Work-on-the-mxd----- ##get the mxd path and initialise it path_mxd="D:\\As_Con_Plans\\As_constructed.mxd" doc_mxd = arcpy.mapping.MapDocument(path_mxd) ##list of layers fclist=arcpy.mapping.ListLayers(doc_mxd) #-----Loop-on-each-featuredataset---- for fds in fdlist: print "________","\n ", fds ##work on the featuredataset name, for suiting the query get_fds= fds.replace("As_con_","") fds_name=get_fds.replace("_","-") ##path of the featuredataset fds_path=gdb_hull+"\\"+fds ##prepare the query SQLexpression= "\"As_Constructed_Plan\"='"+fds_name+"'" ##path where we will store the selection fds_path_test=str(fds_path) #-----Loop-on-each-layers-of-the-mxd----- for fc in fclist: fc_to_copy=fc.dataSource #fc_to_copy2=arcpy.mapping.Layer(fc_to_copy) ##Select the featureclasses arcpy.SelectLayerByAttribute_management (fc,"NEW_SELECTION",SQLexpression) ##Count the selected features count = int(arcpy.GetCount_management(fc).getOutput(0)) print fc,count ##if the query succeed, we will copy the selection into the proper featuredataset if count>0: ##print some info fc_path2=fds_path+"\\"+str(fc) fc_path=str(fc_path2) fc_name=str(fc) fc_copy_from=str(fc_to_copy) ##check if the featureclass does not exist if not arcpy.Exists(fc_path): print "\n copying...",count," entities , on ",fc_path print (fc_copy_from,fds_path_test,fc_name,SQLexpression) arcpy.FeatureClassToFeatureClass_conversion(fc_to_copy,fds_path_test,fc_name,SQLexpression) print "export ok"