| Exception | Description |
|---|---|
| System.InvalidOperationException | Template must be on the active map |
await QueuedTask.Run(() => { // Get all templates for the layer var templates = featureLayer.GetTemplates(); if (templates.Count == 0) return; // Get the first template - alternatively get a specific template var template = templates.First(); // Activate the default tool template.ActivateDefaultToolAsync(); });
await QueuedTask.Run(() => { //hide all tools except line tool on a given feature layer var editTemplates = featureLayer.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 allTools.AddRange(cimEditTemplate.GetExcludedToolIDs().ToList()); cimEditTemplate.SetExcludedToolIDs(allTools.ToArray()); cimEditTemplate.AllowToolID("esri_editing_SketchLineTool"); newCIMEditingTemplates.Add(cimEditTemplate); } //update the layer templates var layerDef = featureLayer.GetDefinition() as CIMFeatureLayer; // Set AutoGenerateFeatureTemplates to false for template changes to stick layerDef.AutoGenerateFeatureTemplates = false; layerDef.FeatureTemplates = newCIMEditingTemplates.ToArray(); featureLayer.SetDefinition(layerDef); });
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)