ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMExtensions Class / GetExcludedToolIDs Method
Example

In This Topic
    GetExcludedToolIDs Method
    In This Topic
    Gets the excluded construction tools on the template.
    Syntax
    public static IReadOnlyCollection<string> GetExcludedToolIDs( 
       CIMEditingTemplate templateDef
    )
    Public Shared Function GetExcludedToolIDs( _
       ByVal templateDef As CIMEditingTemplate _
    ) As IReadOnlyCollection(Of String)

    Parameters

    templateDef

    Return Value

    String array of DAML IDs.
    Remarks
    Returns all the non visible tools on the template.
    Example
    Hide or show editing tools on templates
    QueuedTask.Run(() =>
    {
      //hide all tools except line tool on layer
      var featLayer = MapView.Active.Map.FindLayers("Roads").First();
    
      var editTemplates = featLayer.GetTemplates();
      var newCIMEditingTemplates = new List<CIMEditingTemplate>();
    
      foreach (var et in editTemplates)
      {
        //initialize template by activating default tool
        et.ActivateDefaultToolAsync();
        var cimEditTemplate = et.GetDefinition();
        //get the visible tools on this template
        var allTools = et.ToolIDs.ToList();
        //add the hidden tools on this template
        allTools.AddRange(cimEditTemplate.GetExcludedToolIDs().ToList());
        //hide all the tools then allow the line tool
      
        //At 2.x -
        //allTools.AddRange(cimEditTemplate.GetExcludedToolDamlIds().ToList());
        allTools.AddRange(cimEditTemplate.GetExcludedToolIDs().ToList());
        
        //At 2.x - 
        //cimEditTemplate.SetExcludedToolDamlIds(allTools.ToArray());
        //cimEditTemplate.AllowToolDamlID("esri_editing_SketchLineTool");
        
        cimEditTemplate.SetExcludedToolIDs(allTools.ToArray());
        cimEditTemplate.AllowToolID("esri_editing_SketchLineTool");
        newCIMEditingTemplates.Add(cimEditTemplate);
      }
      //update the layer templates
      var layerDef = featLayer.GetDefinition() as CIMFeatureLayer;
      // Set AutoGenerateFeatureTemplates to false for template changes to stick
      layerDef.AutoGenerateFeatureTemplates = false;
      layerDef.FeatureTemplates = newCIMEditingTemplates.ToArray();
      featLayer.SetDefinition(layerDef);
    });
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also