Select to view content in your preferred language

Remove all construction tools

713
11
Jump to solution
09-10-2024 08:27 AM
JonathanDewalt
Regular Contributor

Has anybody got this sample to work? I want to be able to remove all construction tools and only use the my custom tools but I can't seem to find a way to remove the default tools without having to manually enter the ID for each and everytool.  This example off ESRI web page shows featLayer.GetTemplates but the GetTemplates function does not exist.

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);
});

   

Tags (1)
0 Kudos
11 Replies
GKmieliauskas
Esri Regular Contributor

Hi,

I have added your class to Esri Community sample AddFeatureTest,  commented 2 lines with rmg.Common.Events.ProgressBarEvents.OnTaskCancelled and compiled without problems.

Check your Visual Studio project, .Net framework version, installed ArcGIS extensions and etc.

0 Kudos
JonathanDewalt
Regular Contributor

Got it working.  My code was missing the ArcGIS .Desktop.Extensions reference.

0 Kudos