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

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

    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