Hi,
I'm using the ArcGIS Pro Python console (we are using ArcGIS Desktop 10.5 mostly but its copy_management doesn't have the associated_data parameter) in order to try to do the following:
Copy all feature classes under a specific data set in an enterprise geodatabase to a new / existing data set with a specific name in the same database and in the process rename the feature classes using a suffix.
This is the current python code:
suffix = "_imahappysuffix"
in_data = "C:/tempo/pyth/data_owner_connection.sde/db_test.dataowner.mexico"
out_data = "C:/tempo/pyth/data_owner_connection.sde/db_test.dataowner.newdataset"
arcpy.env.workspace = r'C:\tempo\pyth\data_owner_connection.sde'
dss = arcpy.ListDatasets("db_test.dataowner.mexico","Feature")
for ds in dss:
for fc in arcpy.ListFeatureClasses(feature_dataset=ds):
arcpy.Copy_management(in_data, out_data, associated_data=fc+" FeatureClass "+fc+suffix)
This executes and creates a new dataset named newdataset (if it didn't exist) and then creates a copy of the first feature class with the intended suffix. The second and third feature classes in the origin data set however are only given a _1 suffix in the target data set, how come?
I think something might be wrong with how I use associated_data but I haven't figured out what yet.
In the target data set I'm getting:
db_test.dataowner.mexico_dots_imahappysuffix
db_test.dataowner.mexico_realms_1
db_test.dataowner.mexico_rivers_1
Thanks for reading : )
Solved! Go to Solution.
Copy Features—Data Management toolbox | ArcGIS Desktop if you are just copying featureclasses
Copy—Data Management toolbox | ArcGIS Desktop has a lot more fluff associated with it and seems to be targeted for particular situations
Is it your intention to use the latter instead of the former?
I haven't worked with the newish associated_data parameter yet, but according to Copy—Data Management toolbox | ArcGIS Desktop you appear to be running into some form of expected behavior:
The from_name and to_name column names will be identical if the to_name is not already used in out_data. If a name already exists in the out_data, a unique to_name will be created by appending an underscore plus a number, _2.
In your case it is appending _1 instead of _2.
Thanks, that's a good point; possibly it's copying all origin feature classes thrice, hah, loop-logic-failure if so. Checking..
Copy Features—Data Management toolbox | ArcGIS Desktop if you are just copying featureclasses
Copy—Data Management toolbox | ArcGIS Desktop has a lot more fluff associated with it and seems to be targeted for particular situations
Is it your intention to use the latter instead of the former?
My intention is to get all feature classes in a specific data set copied under new names (suffix) into another dataset; seems Copy Features can do just that too, after CreateFeatureDataset. Got it working now with a .gdb-source and target, will try .sde-target tomorrow. Cheers for the advice! : )
Edit. Just wanted to say that CopyFeatures_management appears to work for the intended job. No potential issues with selections either as enterprise geodatabase feature classes -> enterprise geodatabase feature classes. Thanks again! (if anyone is interested in the rough little script I made I'll attach it here, am not certain yet how the forum usually goes )