ArcObjects Library Reference (GeoDatabase)  

IWorkspaceFactory Interface

Provides access to members that create and open workspaces and supply workspace factory information. Note: the IWorkspaceFactory interface has been superseded byIWorkspaceFactory2. Please consider using the more recent version.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

When To Use

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


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.

CoClasses that implement IWorkspaceFactory

CoClasses and Classes Description
AccessWorkspaceFactory (esriDataSourcesGDB) Esri Access Workspace Factory.
AMSWorkspaceFactory (esriTrackingAnalyst) Controls functionality for the tracking workspace factory.
ArcInfoWorkspaceFactory (esriDataSourcesFile) Workspace factory used to create workspace objects for ArcInfo coverages and Info tables.
CadWorkspaceFactory (esriDataSourcesFile) Esri Cad Workspace Factory.
ExcelWorkspaceFactory (esriDataSourcesOleDB) Excel Workspace Factory.
FeatureServiceWorkspaceFactory (esriCarto) FeatureService workspace factory.
FileGDBWorkspaceFactory (esriDataSourcesGDB) File GeoDatabase Workspace Factory.
GeoRSSWorkspaceFactory (esriDataSourcesFile) GeoRSS workspace factory.
IMSWorkspaceFactory (esriGISClient) The IMS Workspace Factory.
InMemoryWorkspaceFactory (esriDataSourcesGDB)
LasDatasetWorkspaceFactory (esriGeoDatabaseExtensions) Esri LasDataset workspace-factory component.
NetCDFWorkspaceFactory (esriDataSourcesNetCDF) Provides access to members that control creation of NetCDF workspaces.
OLEDBWorkspaceFactory (esriDataSourcesOleDB) OleDB Workspace Factory.
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.
SDCWorkspaceFactory (esriDataSourcesFile) Esri SDC workspace factory.
SdeWorkspaceFactory (esriDataSourcesGDB) Esri SDE Workspace Factory.
ShapefileWorkspaceFactory (esriDataSourcesFile) Esri Shapefile Workspace Factory.
SqlWorkspaceFactory (esriDataSourcesGDB) Sql workspace factory
StreetMapWorkspaceFactory (esriDataSourcesFile) Esri StreetMap workspace factory.
TextFileWorkspaceFactory (esriDataSourcesOleDB) Text File Workspace Factory.
TinWorkspaceFactory (esriDataSourcesFile) Esri TIN workspace factory is used to access TINs on disk.
ToolboxWorkspaceFactory (esriGeoprocessing) Workspace Factory used to open toolbox workspaces.
VpfWorkspaceFactory (esriDataSourcesFile) Esri VPF Workspace Factory
WorkspaceFactory WorkspaceFactory Object.


A WorkspaceFactory is 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 WorkspaceFactory is a cocreatable, singleton object. Connection properties are specified using a PropertySet object and can be saved to a connection file. A WorkspaceFactory also 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.

.NET Snippets

Open Raster File As GeoDatset | Add Shapefile Using OpenFileDialog | Add Tracking Layer To Map | Set Data Source | Create Grid From Feature Class | Get FeatureClass From Shapefile On Disk

.NET Samples

Closest facility solver (Code Files: frmClosestFacilitySolver) | Add a custom menu created in .NET to ArcGIS for Desktop (Code Files: AddShapefile) | Cut polygons without selection edit task (Code Files: EditingForm) | Editing using a custom form (Code Files: MainForm) | Custom reshape polyline edit task (Code Files: EditingForm) | 3D dynamic element tracking (Code Files: TrackDynamicObject) | Service area solver (Code Files: frmServiceAreaSolver) | Create a Raster Function template (Code Files: CreateRasterFunctionTemplate) | Managing snap agents (Code Files: EditingForm) | Create a custom raster type (Code Files: TestThumbnailBuilder) | Location-allocation solver (Code Files: frmLocationAllocationSolver) | Adding a real-time feed to ArcMap (Code Files: AddTrackingServerLayerButton) | Vehicle routing problem solver (Code Files: frmVRPSolver) | Automate ArcGIS for Desktop applications (Code Files: Form1) | Simple point plug-in data source (Code Files: OpenSimplePointDlg) | Origin-destination cost matrix solver (Code Files: frmODCostMatrixSolver) | Create a custom raster type from the ground up for DMCII data (Code Files: DMCIIRasterType TestDMCIIRasterType) | Extending the replication synchronization process (Code Files: RegisterExtension) | Publish an image service and set configurations (Code Files: ISConfig) | Custom vertex editing commands (Code Files: EditingForm) | Create a Math Function Raster dataset (Code Files: CreateMathFunctionRasterDataset) | RSS weather GraphicTracker (Code Files: RSSWeather) | Create a Mosaic dataset (Code Files: CreateMosaicDataset) | Buffer snap agent (Code Files: EditingForm) | Mosaic raster datasets to a file raster format (Code Files: CreateFileRasterMosaic) | Get and set key properties on a mosaic dataset (Code Files: GetSetKeyProperty) | RSS weather layer (Code Files: AddWeatherItemTool RSSWeatherLayerClass) | Create a custom NoData pixel filter (Code Files: TestApp) | Create an NDVI custom raster function (Code Files: NDVICustomFunction TestNDVICustomFunction) | Create a Function Raster dataset (Code Files: CreateFunctionRasterDataset) | Route layer (Code Files: Program) | Edit event listener (Code Files: EditingForm) | Create a custom raster function (Code Files: TestWatermarkFunction WatermarkFunction) | Temporal statistics (Code Files: MainForm)

.NET Related Topics

Accessing ECWP service | Accessing raster workspaces | Adding a custom menu created in .NET to ArcGIS for Desktop | Adding a plug-in data source programmatically | Automating ArcGIS for Desktop applications | Connecting to geodatabases and databases | Converting data using GeoAnalyst objects | Creating geodatabases | Data processing in spatial analysis operations | DataSourcesGDB | DataSourcesOleDB | DataSourcesRaster | Executing a map algebra expression | Geodatabase | How to access a raster dataset | How to access members that control the CAD drawing dataset | How to add different types of layers to a map | How to change label formats and marks on an axis using a line graph | How to create a 3D pie graph | How to create a box plot graph | How to create a function series graph | How to create a histogram graph | How to create a Mosaic dataset | How to create a mosaic layer | How to create a multimodal network dataset | How to create a network dataset | How to create a raster dataset | How to create a selection set using a scatter plot graph | How to create a vertical stack area graph | How to create an image server layer | How to create graph series with different color types | How to create multiple vertical bar graphs | How to export a dataset to XML | How to geocode a single address | How to geocode a table of addresses | How to get CAD transformation properties (from, to, angle, and scale) | How to get the points of a two-point CAD transformation | How to import a dataset from XML | How to open a Mosaic dataset | How to open a terrain dataset | How to open locator workspaces | How to rematch a geocoded feature class | How to return CAD drawing layer properties | How to return CAD transformation settings | How to save a function raster dataset into a raster dataset | How to save a mosaic dataset to a raster dataset | How to save raster data and set storage properties | How to set CAD transformation properties (from, to, angle, and scale) | How to set the points of a two-point CAD transformation | How to sort data in the graph | How to standardize an address | Location | LocationUI | Performing a spatial analysis operation using objects | Working with server contexts | Working with the analysis environment