I am new to writing c# programs for ESRI. My aim is to create a Geodatabase File which contains Feature Datasets and Feature Classes, using the freely available File Geodatabase API 1.3. After initial prodding, I found that the API has interfaces to create Tables and Feature Datasets but no specific interface/function to create Feature classes. After some googling, I have seen code with functions to create Feature Classes, but using Arcobjects which I believe is not freely available. And after inquiries to ESRI Australia, I was given to understand that Tables are Feature Classes.
Are Tables really Feature Classes?
What's the best API for C# to create a Feature Dataset and Feature Class?
Any help appreciated.
Yes, tables really are feature classes (or, more specifically, feature classes are tables with a geometry column).
The File Geodatabase API is a subset of ArcObjects functionality, ported to be standalone. You would never need the FGDBAPI if you have ArcObjects available, so choosing the best API is not diifficult.
BTW: Questions about the File Geodatabase API can be posted to File Geodatabase API
You can move this post there by clicking on the question title to get to the thread, then selecting the "Move" option on the right side of the page, below "Actions"
I would disagree, tables are not feature classes. A feature class is special table with a geometry column (as Vince said). So every feature class is a table, with at least two columns: Object ID and Geometry (or Shape). I would have placed a link to Esri File Geodatabase API documentation, but i cannot find it. Is this not available in public web?
While tables are not feature classes, feature classes are exposed as FileGDBAPI::Table objects, which I believe is what ESRI-AU was trying to communicate.
The API also has CreateTable, CreateFeatureDataset, and Move requests on the FileGDBAPI::Geodatabase object, whereby empty feature classes and feature datasets can be created, and tables can be moved into and out of feature datasets.
The new 1.4 API release has a mechanism for creating tables from a vector of FieldInfo objects (vice the old mechanism of assembling from XML).
The API documentation does not appear to be available online, but that's certainly something to look at.