ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / FeatureLayer Class / GetFeatureClass Method
Example

In This Topic
    GetFeatureClass Method (FeatureLayer)
    In This Topic
    Returns the underlying FeatureClass that the feature layer is pointing to. A FeatureClass is a collection of spatial entities, modeled as objects with properties and behavior. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    Public Function GetFeatureClass() As FeatureClass
    public FeatureClass GetFeatureClass()

    Return Value

    Exceptions
    ExceptionDescription
    This method or property must be called within the lambda passed to QueuedTask.Run.
    Example
    Create Annotation Template
    // Creates a new annotation template for the specified annotation layer.
    await QueuedTask.Run(() =>
      {
        Inspector insp = null;
        // get the anno feature class
        var fc = annotationLayer.GetFeatureClass() as ArcGIS.Core.Data.Mapping.AnnotationFeatureClass;
    
        // get the feature class CIM definition which contains the labels, symbols
        var cimDefinition = fc.GetDefinition() as ArcGIS.Core.Data.Mapping.AnnotationFeatureClassDefinition;
        var labels = cimDefinition.GetLabelClassCollection();
        var symbols = cimDefinition.GetSymbolCollection();
    
        // make sure there are labels, symbols
        if (labels.Count == 0 || symbols.Count == 0)
          return;
    
        // find the label class required
        //   typically you would use a subtype name or some other characteristic
        // in this case lets just use the first one
    
        var label = labels[0];
    
        // each label has a textSymbol
        // the symbolName *should* be the symbolID to be used
        var symbolName = label.TextSymbol.SymbolName;
        int symbolID = -1;
        if (!int.TryParse(symbolName, out symbolID))
        {
          // int.TryParse fails - attempt to find the symbolName in the symbol collection
          foreach (var symbol in symbols)
          {
            if (symbol.Name == symbolName)
            {
              symbolID = symbol.ID;
              break;
            }
          }
        }
        // no symbol?
        if (symbolID == -1)
          return;
    
        // load the schema
        insp = new Inspector();
        insp.LoadSchema(annotationLayer);
    
        // ok to assign these fields using the inspector[fieldName] methodology
        //   these fields are guaranteed to exist in the annotation schema
        insp["AnnotationClassID"] = label.ID;
        insp["SymbolID"] = symbolID;
    
        // set up some additional annotation properties
        AnnotationProperties annoProperties = insp.GetAnnotationProperties();
        annoProperties.FontSize = 36;
        annoProperties.TextString = "My Annotation feature";
        annoProperties.VerticalAlignment = VerticalAlignment.Top;
        annoProperties.HorizontalAlignment = HorizontalAlignment.Justify;
    
        insp.SetAnnotationProperties(annoProperties);
    
        var tags = new[] { "Annotation", "tag1", "tag2" };
    
        // use daml-id rather than guid
        string defaultTool = "esri_editing_SketchStraightAnnoTool";
    
        // tool filter is the tools to filter OUT
        var toolFilter = new[] { "esri_editing_SketchCurvedAnnoTool" };
    
        // create a new template 
        var newTemplate = annotationLayer.CreateTemplate("new annotation template", "description", insp, defaultTool, tags, toolFilter);
      });
    Gets the count of a Table or FeatureClass
    {
      //Must be called within QueuedTask.Run()
      void GetCount(FeatureLayer featureLayer)
      {
        // Row count in a Table
        Table table = featureLayer.GetTable();
        long count = table.GetCount();
    
        // Feature count in a FeatureClass
        FeatureLayer lyr = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>().FirstOrDefault();
        FeatureClass featureClass = lyr.GetFeatureClass();
        count = featureClass.GetCount();
      }
    }
    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also