ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / FeatureSceneLayer Class / GetFeatureClass Method
Example Version

GetFeatureClass Method (FeatureSceneLayer)
Gets the associated feature class. This method must be called on the MCT. Use QueuedTask.Run.
Syntax
public FeatureClass GetFeatureClass()

Return Value

Exceptions
ExceptionDescription
No associated feature service
This method or property must be called within the lambda passed to QueuedTask.Run.
Remarks
Only FeatureSceneLayers with an associated feature service can return a feature class. Check HasAssociatedFeatureService property to determine if the FeatureSceneLayer has an associated feature service. Calling GetFeatureClass() on a FeatureSceneLayer with no associated feature service will throw a System.InvalidOperationException
Example
Get the Associated Feature class
//var featSceneLayer = ....;
if (featSceneLayer.HasAssociatedFeatureService)
{
  //Must be called on the MCT
  using (var fc = featSceneLayer.GetFeatureClass())
  {
    //TODO query underlying feature class
  }
}
Use Select or Search with a Spatial Query
//var featSceneLayer = ...;
//var sname = featSceneLayer.Name;
await QueuedTask.Run(() =>
{
  if (!featSceneLayer.HasAssociatedFeatureService)
    return;//no search or select

  //Select all features within the current map view
  var sz = MapView.Active.GetViewSize();
  var map_pt1 = MapView.Active.ClientToMap(new System.Windows.Point(0, sz.Height));
  var map_pt2 = MapView.Active.ClientToMap(new System.Windows.Point(sz.Width, 0));

  //Convert to an envelope
  var temp_env = EnvelopeBuilderEx.CreateEnvelope(map_pt1, map_pt2, MapView.Active.Map.SpatialReference);

  //Project if needed to the layer spatial ref
  SpatialReference sr = null;
  using (var fc = featSceneLayer.GetFeatureClass())
  using (var fdef = fc.GetDefinition())
    sr = fdef.GetSpatialReference();

  var env = GeometryEngine.Instance.Project(temp_env, sr) as Envelope;

  //Set up a query filter
  var sf = new SpatialQueryFilter()
  {
    FilterGeometry = env,
    SpatialRelationship = SpatialRelationship.Intersects,
    SubFields = "*"
  };

  //Select against the feature service
  var select = featSceneLayer.Select(sf);
  if (select.GetCount() > 0)
  {
    //enumerate over the selected features
    using (var rc = select.Search())
    {
      while (rc.MoveNext())
      {
        using (var feature = rc.Current as Feature)
        {
          var oid = feature.GetObjectID();
          //etc.
        }
      }
    }
  }

  MapView.Active.Map.ClearSelection();

});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also