ArcGIS Blog

Data Management

ArcMap

File Geodatabase API details

By Jonathan Murphy

(Update: You can find the most recent release of the File Gdb API right HERE)

While not exactly an early Xmas present (as a certain beaksnake may have promised), the API for the file geodatabase will be hitting the beta stage in January. Before you get your hands on it, here are some details about the File GDB API courtesy of Craig Gilgrass’ right frontal lobe:

The File Geodatabase API provides a non-ArcObjects based means by which advanced developers can work with File Geodatabases. The File Geodatabase API will be C++ based and will provide the ability to perform the following tasks:

  • Create, Open and Delete file geodatabases
  • Read the schema of the geodatabase
    • All content within a geodatabase can be opened for read access
  • Create schema for objects within the simple feature model
    • Tables
    • Point, Line, and Polygon feature classes
    • Feature datasets
    • Domains
    • Subtypes
  • Read the contents of datasets in a geodatabase
    • All dataset content within a geodatabase can be read
  • Insert, Delete and Edit the contents of simple datasets:
    • Tables
    • Point, Line, Polygon, Multipoint, and Multipatch feature classes
  • Perform attribute and (limited) spatial queries on datasets
    • Spatial queries will be limited to the envelope-intersects operator
  • Navigate relationships and work with Attachments

This API is targeted for advanced developers who require access to the File Geodatabase without an ArcObjects license for purposes of interoperability. A commonly requested user scenario is to open File Geodatabase tables outside of an ArcObjects based application to view or modify data. This API does not replace ArcObjects as the recommended approach to interacting with the geodatabase.

The File Geodatabase API leverages the work done in ArcGIS 10 to simplify the Geodatabase system tables. Therefore, the File Geodatabase API only supports file geodatabases from release 10 or later. We are planning to deliver the API as a single downloadable ZIP containing:

  • C++ library (single dll, lib, .h)
  • API documentation in html format
  • (Supported on Windows only for the initial release)

Limitations of the File Geodatabase API

While the File Geodatabase API will support reading the schema and data of complex geodatabase types, the API will not honor geodatabase behavior on inserts, deletes or updates to the following dataset types:

  • Annotation and Dimension feature classes
  • Relationship Classes
  • Networks (GN and ND)
  • Topologies
  • Terrains
  • Representations
  • Parcel Fabrics

The API will not prevent users from attempting to edit objects with complex behavior, the onus will be on the developer to understand what they should and should not edit through the API and avoid editing datasets that have geodatabase behavior. There will be a method called Table::IsEditable which will provide developers with the ability to determine whether a dataset can be safely edited.

Other limitations of the File Geodatabase API at its initial release:

  • Rasters (Raster Dataset, Raster Catalog, Mosaic Datasets and Raster Attributes) are not supported with the initial release of the File Geodatabase API.
  • Spatial queries with the File Geodatabase API will be limited to the envelope-intersects operator.

Share this article