I have some dataset topologies that I want to loop through, but I need to test for the assignment of feature classes so the scripts don't fail. (Using Win 7, ArcGIS 10.2, Python 2.7.5 and a file GDB)
My research hasn't turned up too much but using the 10.2 "Remove Feature Class From Topology (Data Management)", using ArcCatalog I can remove an existing fc from the topo set. If however I run the script 'stand alone' and the fc isn't currently assigned to the topology, the script fails. (Error shown below script)
I read this post (ArcMap remove feature-class from feature-dataset) as well but I don't want to delete the fc, I only want to remove it from the topo if it exists as I need it again later.
Am I going down the wrong path?
Using ArcCatalog, this succeeds if the fc exists; topo = "C:/Data/Terrain_36/TOPO_EXPORT_2015_09_09_1_2.gdb/ZONES_1_2/TOPO_1_2" fc = "RL_10" arcpy.RemoveFeatureClassFromTopology_management(topo, fc) # Running the script below as 'stand alone', fails if the fc isnt currently assigned; # import modules import arcpy, sys, os, datetime, traceback, string, time from os import sep, listdir from arcpy import env as env # This scripts name script_name = os.path.basename(sys.argv) # Create file prefix for unique file naming prefix = datetime.datetime.now().strftime('%Y-%m-%d %H%M') # Create file suffix for avoiding filenames staring with numbers suffix = datetime.datetime.now().strftime('%Y-%m-%d %H%M') # Set variables Top_Dir = "C:/Data/Terrain_36" td = Top_Dir print "Top_Dir set to: '" +td+ "'" + '\n' # Out_Dir = td+sep+ 'Exports' # print "Out_Dir set to: '" +Out_Dir+ "'" + '\n' Log_Dir = td+sep+ 'zz_logs' print "Log_Dir set to: '" +Log_Dir+ "'" + '\n' GDB_Nam = 'TOPO_EXPORT_2015_09_09_1_2.gdb' print "GDB_Nam set to: '" +GDB_Nam+ "'" + '\n' GDB_Home = os.path.join(td, GDB_Nam) print "GDB_Home set to: '" +GDB_Home+ "'" + '\n' # Set the workspace environment env.workspace = os.path.join(Top_Dir, GDB_Nam) ws = env.workspace print "Env.workspace set to: '" +ws+ "'" '\n' topo = "C:/Data/Terrain_36/TOPO_EXPORT_2015_09_09_1_2.gdb/ZONES_1_2/TOPO_1_2" fc = "RL_10" if arcpy.Exists (fc): arcpy.RemoveFeatureClassFromTopology_management(topo, fc) # My error messages Log: 2015-09-14 11:48:32.722000 Begin process: Topo_script.py Process started at 2015-09-14 11:48:32.722000 PYTHON ERRORS: Traceback info: File "C:\Data\Terrain_36\Data_quality\_Scripts\Topo_script.py", line 62, in <module> arcpy.RemoveFeatureClassFromTopology_management(topo, fc) ArcPy ERRORS: ERROR 999999: Error executing function. Cannot register as versioned on this database. Cannot register as versioned on this database. Failed to execute (RemoveFeatureClassFromTopology).