ArcGIS Pro 3.7 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 Function GetFeatureClass() As FeatureClass
    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
    {
      // Note: call within QueuedTask.Run()
      {
        if (featSceneLayer.HasAssociatedFeatureService)
        {
          using (var fc = featSceneLayer.GetFeatureClass())
          {
            //TODO query underlying feature class
          }
        }
      }
    }
    Use Select or Search with a Spatial Query
    // Note: call within 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)
            {
              oid = feature.GetObjectID();
              //etc.
            }
          }
        }
      }
      MapView.Active.Map.ClearSelection();
    }
    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also