IWorkspaceFactory Interface

Provides access to members that create and open workspaces and supply workspace factory information.

When To Use

Use IWorkspaceFactory when you need to create a new workspace, connect to an existing workspace or find information about a workspace.

Members

Name Description
Method ContainsWorkspace Indicates if parentDirectory contains a valid workspace, or is a valid file-system workspace.
Method Copy Copies a workspace to the specified destination folder.
Method Create Creates a new workspace specified by the directory, file name, and connection properties.
Method GetClassID The class ID of the WorkspaceFactory.
Method GetWorkspaceName Retrieves the workspace name of a workspace from the given list of file names.
Method IsWorkspace True if the specified file identifies a workspace supported by the workspace factory.
Method Move Moves a workspace to the specified destination folder.
Method Open Opens the workspace specified by the connection properties.
Method OpenFromFile Opens the workspace specified by the given file name.
Method ReadConnectionPropertiesFromFile The connection properties from the specified file.
Read-only property WorkspaceDescription A singular or plural description of the type of workspace the workspace factory opens/creates.
Read-only property WorkspaceType The type of workspace the workspace factory opens/creates.

IWorkspaceFactory.ContainsWorkspace Method

Indicates if parentDirectory contains a valid workspace, or is a valid file-system workspace.

Public Function ContainsWorkspace ( _
    ByVal parentDirectory As String, _
    ByVal fileNames As IFileNames _
) As Boolean
public bool ContainsWorkspace (
    string parentDirectory,
    IFileNames fileNames
);

Remarks

ContainsWorkspaceis useful when browsing the file system for workspaces. It takes a parent directory and the list of file names in the directory to be examined. It returns true if the parent directory represents a workspace covered by this factory or if the parent directory contains a workspace or a connection file to a workspace covered by this factory.

IWorkspaceFactory.Copy Method

Copies a workspace to the specified destination folder.

Public Function Copy ( _
    ByVal WorkspaceName As IWorkspaceName, _
    ByVal destinationFolder As String, _
    ByRef workspaceNameCopy As IWorkspaceName _
) As Boolean
public bool Copy (
    IWorkspaceName WorkspaceName,
    string destinationFolder,
    ref IWorkspaceName workspaceNameCopy
);

Remarks

The Copyand Movemethods can be used to copy or move workspaces or connection files between folders in the file system. The Boolean result indicates if the operation was successful. In the case of remote database workspaces, these operations work on the connection file representing the workspace.

IWorkspaceFactory.Create Method

Creates a new workspace specified by the directory, file name, and connection properties.

Public Function Create ( _
    ByVal parentDirectory As String, _
    ByVal Name As String, _
    ByVal ConnectionProperties As IPropertySet, _
    ByVal hWnd As Integer _
) As IWorkspaceName
public IWorkspaceName Create (
    string parentDirectory,
    string Name,
    IPropertySet ConnectionProperties,
    int hWnd
);

Remarks

Createhas different results depending on the type of workspace factory. If you are working with ArcSDE, a new connection file (.sde) is created. If you are working with an ArcGIS for Desktop Advanced workspace factory, a folder with an INFO subfolder is created. The optional ConnectionPropertiesparameter specifies any additional connection properties needed, such as the server, instance, user and password in the case where a connection file to a remote database workspace is being created. If no connection properties are specified, this method will result in a dialog being displayed that prompts the user for the required properties.

IWorkspaceFactory.GetClassID Method

The class ID of the WorkspaceFactory.

Public Function GetClassID ( _
) As UID
public UID GetClassID (
);

Remarks

GetClassID returns the unique identifier for the workspace factory. You can use this to distinguish different versions of the same type of factory, for example, whether you are working with an SDEWorkspace, FileGDBWorkspace or AccessWorkspace factory.

IWorkspaceFactory.GetWorkspaceName Method

Retrieves the workspace name of a workspace from the given list of file names.

Public Function GetWorkspaceName ( _
    ByVal parentDirectory As String, _
    ByVal fileNames As IFileNames _
) As IWorkspaceName
public IWorkspaceName GetWorkspaceName (
    string parentDirectory,
    IFileNames fileNames
);

Remarks

GetWorkspaceNameis useful when browsing the file system for workspaces. It is handed in a parent directory and the list of file names in the directory to be examined. It returns a WorkspaceNameobject representing the first workspace it finds in the list of filenames and removes any filenames representing the workspace from the input list of filenames.

IWorkspaceFactory.IsWorkspace Method

True if the specified file identifies a workspace supported by the workspace factory.

Public Function IsWorkspace ( _
    ByVal fileName As String _
) As Boolean
public bool IsWorkspace (
    string fileName
);

IWorkspaceFactory.Move Method

Moves a workspace to the specified destination folder.

Public Function Move ( _
    ByVal WorkspaceName As IWorkspaceName, _
    ByVal destinationFolder As String _
) As Boolean
public bool Move (
    IWorkspaceName WorkspaceName,
    string destinationFolder
);

Remarks

The Copyand Movemethods can be used to copy or move workspaces or connection files between folders in the file system. The Boolean result indicates if the operation was successful. In the case of remote database workspaces, these operations work on the connection file representing the workspace.

IWorkspaceFactory.Open Method

Opens the workspace specified by the connection properties.

Public Function Open ( _
    ByVal ConnectionProperties As IPropertySet, _
    ByVal hWnd As Integer _
) As IWorkspace
public IWorkspace Open (
    IPropertySet ConnectionProperties,
    int hWnd
);

Remarks

Open takes as input a property set of connection properties that specify the workspace to connect to. In the case of file system workspaces and local database workspaces, a single property named DATABASE, whose value is the pathname to the workspace, is usually all that is required. In the case of remote database workspaces accessed via ArcSDE the properties can include the USER, PASSWORD, DATABASE, SERVER, INSTANCE, VERSION, HISTORICAL_NAME, HISTORICAL_TIMESTAMP, and AUTHENTICATION_MODE properties of the database being connected to.

List of acceptable connection property names and a brief description of each

"SERVER" � SDE server name you are connecting to.

"INSTANCE" � Instance you are connection to.

"DATABASE" � Database connected to.

"USER" � Connected user.

"PASSWORD" � Connected password.

"AUTHENTICATION_MODE" � Credential authentication mode of the connection. Acceptable values are "OSA" and "DBMS".

"VERSION" � Transactional version to connect to. Acceptable value is a string that represents a transaction version name.

"HISTORICAL_NAME" � Historical version to connect to. Acceptable value is a string type that represents a historical marker name.

"HISTORICAL_TIMESTAMP" � Moment in history to establish an historical version connection. Acceptable value is a date time that represents a moment timestamp.

Notes:

  • The "DATABASE" property is optional and is required for ArcSDE instances that manage multiple databases (for example, SQL Server).
  • If �AUTHENTICATION_MODE� is �OSA� then �USER� and �PASSWORD� are not required. �OSA� represents operating system authentication and uses the operating system credentials to establish a connection with the database.
  • Since the workspace connection can only represent one version only 1 of the 3 version properties (�VERSION� or �HISTORICALNAME� _or �HISTORICAL_TIMESTAMP�) should be used.
  • The "VERSION" property is case sensitive and the correct case must be used when entering the version property.

IWorkspaceFactory.OpenFromFile Method

Opens the workspace specified by the given file name.

Public Function OpenFromFile ( _
    ByVal fileName As String, _
    ByVal hWnd As Integer _
) As IWorkspace
public IWorkspace OpenFromFile (
    string fileName,
    int hWnd
);

Remarks

OpenFromFiletakes the pathname of a file or directory that represents either a FileSystemWorkspaceor LocalDatabaseWorkspace, or a connection file to a RemoteDatabaseworkspace and returns an interface on the specified workspace. Clients of these methods can then proceed to open and access datasets in the workspace. If these methods are called with insufficient properties, then the user will be presented with a connection dialog that will prompt for the required properties.

The hWnd argument is the parent window or application's window. The hWnd will guarantee that the connection dialog, if presented to you because of insufficient properties, has the correct parent.

IWorkspaceFactory.ReadConnectionPropertiesFromFile Method

The connection properties from the specified file.

Public Function ReadConnectionPropertiesFromFile ( _
    ByVal fileName As String _
) As IPropertySet
public IPropertySet ReadConnectionPropertiesFromFile (
    string fileName
);

Remarks

The filename parameter represents the pathname of a file that contains the connection information to be placed into the IPropertySet variable.

IWorkspaceFactory.WorkspaceDescription Property

A singular or plural description of the type of workspace the workspace factory opens/creates.

Public Function get_WorkspaceDescription ( _
    ByVal plural As Boolean _
) As String
public string get_WorkspaceDescription (
    bool plural
);

Remarks

The plural parameter is used as a helper that will take and make the workspacefactory plural. e.g. SDE Connection will become SDE Connections.

IWorkspaceFactory.WorkspaceType Property

The type of workspace the workspace factory opens/creates.

Public ReadOnly Property WorkspaceType As esriWorkspaceType
public esriWorkspaceType WorkspaceType {get;}

Remarks

The WorkspaceTypeproperty of a WorkspaceFactoryreturns information on the type of workspace managed by the WorkspaceFactory. Workspaces are classified into the following types specified by the esriWorkspaceTypeenumeration; FileSystemWorkspace, LocalDatabaseWorkspace, and RemoteDatabaseWorkspace.

See esriWorkspaceType for information on the types of workspaces.

Shapefiles workspaces are examples of FileSystemWorkspace.Personal and File Geodatabases are examples of LocalDatabaseWorkspace. An ArcSDE Geodatabase is an example of a RemoteDatabaseWorkspace.

Classes that implement IWorkspaceFactory

Classes Description
BDConnectionWorkspaceFactory (esriDataSourcesFile) Esri Big Data Connection Workspace Factory.
BimFileWorkspaceFactory (esriDataSourcesFile) BimFile Workspace Factory.
CadWorkspaceFactory (esriDataSourcesFile) Esri Cad Workspace Factory.
ColumnaDBWorkspaceFactory (esriDataSourcesGDB) The ColumnaDB Workspace Factory.
FileGDBWorkspaceFactory (esriDataSourcesGDB) File GeoDatabase Workspace Factory.
IMSWorkspaceFactory (esriGISClient) The IMS Workspace Factory.
InMemoryWorkspaceFactory (esriDataSourcesGDB)
PCCoverageWorkspaceFactory (esriDataSourcesFile) Esri PC ARC/INFO Workspace Factory.
PlugInWorkspaceFactory Esri Plug-In Workspace Factory.
RasterWorkspaceFactory (esriDataSourcesRaster) Provides access to members that control creation of raster workspaces.
RealtimePluginWorkspaceFactory (esriDataSourcesGDB) The Realtime Plugin Workspace Factory.
SdeWorkspaceFactory (esriDataSourcesGDB) Esri SDE Workspace Factory.
ShapefileWorkspaceFactory (esriDataSourcesFile) Esri Shapefile Workspace Factory.
SqliteWorkspaceFactory (esriDataSourcesGDB) Esri SQLite SDE Workspace Factory.
SqlWorkspaceFactory (esriDataSourcesGDB) Sql workspace factory
StreamServiceDBWorkspaceFactory (esriDataSourcesGDB) The Stream Service Workspace Factory.
TinWorkspaceFactory (esriDataSourcesFile) Esri TIN workspace factory is used to access TINs on disk.
VpfWorkspaceFactory (esriDataSourcesFile) Esri VPF Workspace Factory
WorkspaceFactory WorkspaceFactory Object.

Remarks

A WorkspaceFactoryis a dispenser of workspaces and allows a client to connect to a workspace specified by a set of connection properties. A workspace represents a database or a datasource that contains one or more datasets. Examples of datasets include tables, feature classes and relationship classes. A WorkspaceFactoryis a cocreatable, singleton object. Connection properties are specified using a PropertySetobject and can be saved to a connection file. A WorkspaceFactoryalso supports methods that can be used to browse and manage file system workspaces, and methods to manage connection files for remote database workspaces.

Each workspace factory maintains a pool of currently connected, active workspaces that are referenced by the application. When any of the Open* methods is called, the workspace factory first checks to see if a workspace has previously been opened with a matching set of properties. If so, a reference to the existing instance is returned. In the case of ArcSDE workspaces, when an application connects to a workspace but omits some connection properties (such as username, password, or version), the workspace factory will check a set of "core" properties - SERVER, INSTANCE, and AUTHENTICATION_MODE - to see they match any open workspaces. If so, the workspace factory will return a reference to the matching workspace.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.