IFeatureDataset Interface

Provides access to create a new feature class in a feature dataset.


Name Description
Read/write property BrowseName The browse name of the dataset.
Method CanCopy True if this dataset can be copied.
Method CanDelete True if this dataset can be deleted.
Method CanRename True if this dataset can be renamed.
Read-only property Category The category of the dataset.
Method Copy Copies this dataset to a new dataset with the specified name.
Method CreateFeatureClass Creates a new FeatureClass in this FeatureDataset.
Method Delete Deletes this dataset.
Read-only property FullName The associated name object.
Read-only property Name The name of the Dataset.
Read-only property PropertySet The set of properties for the dataset.
Method Rename Renames this Dataset.
Read-only property Subsets Datasets contained within this dataset.
Read-only property Type The type of the Dataset.
Read-only property Workspace The workspace containing this dataset.

IFeatureDataset.CreateFeatureClass Method

Creates a new FeatureClass in this FeatureDataset.

Public Function CreateFeatureClass ( _
    ByVal Name As String, _
    ByVal Fields As IFields, _
    ByVal CLSID As UID, _
    ByVal EXTCLSID As UID, _
    ByVal FeatureType As esriFeatureType, _
    ByVal ShapeFieldName As String, _
    ByVal ConfigKeyword As String _
) As IFeatureClass
public IFeatureClass CreateFeatureClass (
    string Name,
    IFields Fields,
    esriFeatureType FeatureType,
    string ShapeFieldName,
    string ConfigKeyword

Errors Returned

If an EXTCLSID is provided that does not correspond with a registered class extension, CreateFeatureClass will return an error.

If fields of type esriFieldTypeOID and esriFieldTypeGeometry are not present in the field set, CreateFeatureClass will return an error.

Functional License Check

If your application/site is not appropriately licensed, CreateFeatureClass can return an error of FDO_E_NO_SCHEMA_LICENSE.


Use the CreateFeatureClassmethod in the IFeatureDatasetinterface to create a new feature class within a FeatureDataset. The arguments to this method are the same as to the CreateFeatureClassmethod in IFeatureWorkspace. However, this method requires that the spatial reference specified for the feature class to be created match the spatial reference of the feature dataset. Note that the spatial reference for the feature class to be created is specified in the GeometryDefproperty of the Fieldobject for the Shape field in the supplied Fieldscollection. The GeometryDef object must be fully set up with information on both the spatial reference (the projected or geographic coordinate system, vertical coordinate system, the coordinate domains and the coordinate resolution values), and the spatial index for the shape Field before calling CreateFeatureClass.

The following are valid Geometry types for a new feature class (from esriGeometryType) and are set on the GeometryDefobject:






If the FeatureWorkspace the FeatureClass is being created in is a Geodatabase workspace then at a minimum the Fields object must contain the the required fields. The required fields can be obtained from the class description for the type of object you wish to create (see the RequiredFields property on IObjectClassDescription).

The Fields object passed to the Fields parameter should not be an object retrieved from another class. If the new class is going to have the same fields as an existing class, cast the existing class' fields collection to the IClone interface, clone it, and use the cloned fields collection as input for this method.

The optional CLSID parameter is used to specify what GUID to use to instantiate the object representing a feature in that FeatureClass. If "Nothing" is passed in for the CLSID, the GeoDatabase will use the CLSID corresponding to esriGeoDatabase.Feature. This is OK in most instances. If you know the FeatureClass has a custom Feature other than esriGeoDatabase.Feature, you can pass in it's GUID at this time or later call methods on the FeatureClass's IClassSchemaEdit interface.

The optional EXTCLSID parameter specifies the GUID to use to instantiate the object representing the FeatureClassExtension. This object must at least support the IClassExtension interface. If you pass in "Nothing" for the EXTCLSID, the newly created FeatureClass will not have a ClassExtension. Since ClassExtensions are not required, this is generally OK, unless the FeatureClass is for annotation, dimension lines or a custom FeatureClass that requires a ClassExtension. If you know the FeatureClass has a ClassExtension and you know the GUID for the ClassExtension, you can pass it in at this time or later call methods on the FeatureClass's IClassSchemaEdit interface.

The optional configurationKeywordparameter allows the application to control the physical layout for this table in the underlying RDBMS—for example, in the case of an Oracle database, the configuration keyword controls the tablespace in which the table is created, the initial and next extents, and other properties. The configurationKeywords for an ArcSDE instance are set up by the ArcSDE data administrator, the list of available keywords supported by a workspace may be obtained using the IWorkspaceConfiguration interface.

Note: Table or feature class names with the following prefixes are not supported:

~ "gdb_"~ "sde_"~ "delta_"

Inherited Interfaces

Interfaces Description
IDataset Provides access to members that supply dataset information.

Classes that implement IFeatureDataset

Classes Description


Feature classes that store simple features can be organized either inside or outside a feature dataset. Those outside a feature dataset are called standalone feature classes. Feature classes which store topological features, for example those participating in geometric networks, must be contained within a feature dataset to ensure a common spatial reference.

A FeatureDatasetis a dataset that exists only in a geodatabase workspace and all the datasets contained in the FeatureDatasetare also part of the same geodatabase. When programming with feature classes, you need to remember that the feature class may or may not belong to a feature dataset.

Each dataset in a geodatabase must have a unique name. In particular, each feature class in a geodatabase must have a unique name, independent of its containing feature dataset. Note that this is different from a file system model where two folders may contain files with the same local name within the folder.

The OpenFeatureClassmethod available in the IFeatureWorkspaceinterface on a workspace may be used to open any feature class in the workspace, including both stand-alone feature classes and feature classes within a feature dataset, given the (unique) name of the feature class.

A FeatureDatasetis a dataset that contains feature classes that share the same spatial reference as the Feature Dataset. FeatureDatasets can also contain Geometric Networks and Relationship Classes.

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