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); });
Solved! Go to Solution.
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.
Got it working. My code was missing the ArcGIS .Desktop.Extensions reference.