Here's what the online doc says:
Versioned and unversioned data is
supported; however, versioning is
required if you plan on editing
nonsimple types (for example, network
edges) with the service.
Also verify that the Editor has been configured for non-versioned editing.
Just use the CreateFeatureClass tool, passing the original feature class as the template argument. Grab the shape type from the Describe object of the input feature class.
Unlike the other answer, this won't copy a bunch of unnecessary records only to delete them right away.
import arcpy
arcpy.env.workspace= 'MyGDB.gdb'
fcs = arcpy.ListFeatureClasses()
output = "OutGDB.gdb"
for fc in fcs:
geom = arcpy.Describe(fc).shapeType
arcpy.CreateFeatureclass_management(output, fc, geom, fc, spatial_reference=fc)
UPDATE:
If you need to preserve domains/subtypes, then run Select_analysis
using a generic where clause that will capture none of the records, like OBJECTID < 0
:
import os, arcpy
arcpy.env.workspace= 'MyGDB.gdb'
fcs = arcpy.ListFeatureClasses()
output = "OutGDB.gdb"
wc = 'OBJECTID < 0'
for fc in fcs:
fc_out = os.path.join(output, fc)
arcpy.Select_analysis(fc, fc_out, wc)
This is far more efficient than copying all the records and then deleting them. I've yet to find an approach that will preserve editor tracking.
Best Answer
If you call the method arcpy.Describe() on your feature class - e.g. arcpy.Describe("path/to/my/feature/class"), you will get a Dataset properties object. You can then use the isVersioned property of this object to get a boolean, whether or not your dataset is versioned.
Code snippet:
Remember to use escaped backslash characters, forward slashes, or a raw string in the path
More details in the docs: http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Dataset_properties/000v0000002m000000/