ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Core Namespace / IItemFactory Interface / CanGetDataset Method
The item to check.
Example Version

CanGetDataset Method (IItemFactory)
Gets if the dataset for the item can be retrieved.
Syntax
bool CanGetDataset( 
   Item item
)

Parameters

item
The item to check.

Return Value

True if the dataset can be retrieved. False otherwise.
Remarks
Currently only the types listed within ArcGIS.Core.Data.DatasetType are supported. Others items such as network datasets, parcel fabric datasets, BIM datasets will return false.
Example
Geodatabase Content from Catalog selection
// subscribe to event
ProjectWindowSelectedItemsChangedEvent.Subscribe(async (ProjectWindowSelectedItemsChangedEventArgs args) =>
{
  if (args.IProjectWindow.SelectionCount > 0)
  {
    // get the first selected item
    var selectedItem = args.IProjectWindow.SelectedItems.First();

    await QueuedTask.Run(() =>
    {
      // datasetType
      var dataType = ItemFactory.Instance.GetDatasetType(selectedItem);

      // get the dataset Definition
      if (ItemFactory.Instance.CanGetDefinition(selectedItem))
      {
        using (var def = ItemFactory.Instance.GetDefinition(selectedItem))
        {
          if (def is ArcGIS.Core.Data.FeatureClassDefinition fcDef)
          {
            var oidField = fcDef.GetObjectIDField();
            var shapeField = fcDef.GetShapeField();
            var shapeType = fcDef.GetShapeType();
          }
          else if (def is ArcGIS.Core.Data.Parcels.ParcelFabricDefinition pfDef)
          {
            string ver = pfDef.GetSchemaVersion();
            bool enabled = pfDef.GetTopologyEnabled();
          }

          // etc
        }
      }

      // get the dataset
      if (ItemFactory.Instance.CanGetDataset(selectedItem))
      {
        using (var ds = ItemFactory.Instance.GetDataset(selectedItem))
        {
          if (ds is ArcGIS.Core.Data.FeatureDataset fds)
          {
            // open featureclasses within the feature dataset
            // var fcPoint = fds.OpenDataset<FeatureClass>("Point");
            // var fcPolyline = fds.OpenDataset<FeatureClass>("Polyline");
          }
          else if (ds is FeatureClass fc)
          {
            var name = fc.GetName() + "_copy";

            // create
            var featureLayerParams = new FeatureLayerCreationParams(fc)
            {
              Name = name,
              MapMemberIndex = 0
            };
            LayerFactory.Instance.CreateLayer<FeatureLayer>(featureLayerParams, MapView.Active.Map);
          }
          else if (ds is Table table)
          {
            var name = table.GetName() + "_copy";
            var tableParams = new StandaloneTableCreationParams(table)
            {
              Name = name
            };
            // create
            StandaloneTableFactory.Instance.CreateStandaloneTable(tableParams, MapView.Active.Map);
          }
        }
      }
    });
  }
});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also