Skip To Content

Workspace properties

Summary

The Describe function returns the following properties for Workspace.

A workspace returns a dataType of "Workspace".

Properties

PropertyExplanationData Type
connectionProperties
(Read Only)

connectionProperties is a property set. The connection properties for an enterprise geodatabase workspace will vary depending on the type of enterprise database being used. Possible properties include the following:

  • authentication_mode—Credential authentication mode of the connection, either OSA or DBMS.
  • database—Database connected to.
  • historical_name—The historical marker name of the historical version connected to.
  • historical_timestamp—A date time that represents a moment timestamp in the historical version connected to.
  • is_geodatabase—String. Returns true if the database has been enabled to support a geodatabase; otherwise, it's false.
  • instance—Instance connected to.
  • server—enterprise server name connected to.
  • user—Connected user.
  • version—The transaction version name of the transactional version connected to.

Only one of historical_name, historical_timestamp, or version exists for any given workspace.

Object
connectionString
(Read Only)

The connection string being used in conjunction with the enterprise database type. For any other workspace type, returns an empty string.

String
currentRelease
(Read Only)

For a geodatabase workspace, returns True if the geodatabase's version is current. currentRelease can be used to assess if the geodatabase can be upgraded.

Boolean
domains
(Read Only)

A list containing the geodatabase domain names. To work with these domain names, you can use tools from the Domains toolset.

String
release
(Read Only)

For a geodatabase workspace, returns the geodatabase release value. Below is the mapping of geodatabase release values to ArcGIS version numbers.

Geodatabase release valueArcGIS version

2,2,0

9.2

2,3,0

9.3, 9.3.1

3,0,0

10.0, 10.1, 10.2, 10.2.1, 10.2.2, 10.3, 10.3.1, 10.4, 10.4.1, 10.5, 10.5.1

ArcGIS Pro 1.0, 1.1, 1.2, 1.3, 1.4

String
workspaceFactoryProgID
(Read Only)

The ID is a string. You can use this to distinguish between specific workspace types with a finer granularity than you can with workspaceType. For example, workspaceFactoryProgID can distinguish between a file geodatabase and a personal geodatabase. Using workspaceType, you cannot make that distinction.

Following are workspaceFactoryProgID strings returned for the common workspace types:

  • esriDataSourcesGDB.AccessWorkspaceFactory.1Personal geodatabase
  • esriDataSourcesGDB.FileGDBWorkspaceFactory.1File geodatabase
  • esriDataSourcesGDB.InMemoryWorkspaceFactory.1in_memory workspace
  • esriDataSourcesGDB.SdeWorkspaceFactory.1Enterprise geodatabase
  • (empty string)Other (shapefile, coverage, CAD, VPF, and so on)
Tip:

The .1 following the string returned by workspaceFactoryProgID is only present in 64-bit products. If writing code that will be used against 32-bit and 64-bit products, use the string method startswith.

describe = arcpy.Describe(data)
# not - if describe.workspaceFactoryProgID == 'esriDataSourcesGDB.FileGDBWorkspaceFactory.1'
if describe.workspaceFactoryProgID.startswith('esriDataSourcesGDB.FileGDBWorkspaceFactory'):
    continue  #
String
workspaceType
(Read Only)

The workspace type.

  • FileSystemFile-based (coverage, shapefile, and so forth) workspaces and in_memory workspaces
  • LocalDatabaseGeodatabases that are local (a file or personal geodatabase)
  • RemoteDatabaseGeodatabases that require a remote connection (enterprise, OLE DB, and so forth)
String

Code sample

Workspace properties example (stand-alone script)

The following stand-alone script displays some workspace properties for an enterprise database.

import arcpy

# Create a Describe object for an SDE database
#
desc = arcpy.Describe(r"C:data\Connection to state.sde")

# Print workspace properties
#
print("%-24s %s" % ("Connection String:", desc.connectionString))
print("%-24s %s" % ("WorkspaceFactoryProgID:", desc.workspaceFactoryProgID))
print("%-24s %s" % ("Workspace Type:", desc.workspaceType))

# Print Connection properties
#
cp = desc.connectionProperties
print("\nDatabase Connection Properties:")
print("%-12s %s" % ("  Server:", cp.server))
print("%-12s %s" % ("  Instance:", cp.instance))
print("%-12s %s" % ("  Database:", cp.database))
print("%-12s %s" % ("  User:", cp.user))
print("%-12s %s" % ("  Version:", cp.version))

# Print workspace domain names"
#
domains = desc.domains
print("\nDomains:")
for domain in domains:
    print("\t" + domain)