ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Editing.Templates Namespace / EditingRowTemplate Class
Members Example

In This Topic
    EditingRowTemplate Class
    In This Topic
    Defines how a new row is created for a particular MapMember.
    Object Model
    EditingRowTemplate ClassCIMEditingTemplate ClassCIMSymbolReference ClassReadOnlyToolOptions ClassInspector ClassLayer ClassMap ClassMapMember ClassStandaloneTable Class
    Syntax
    Remarks
    This implementation of EditingTemplate defines the attributes necessary to create a row within a single MapMember.
    Example
    Find edit template by name on a layer
    ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
    {
      //get the templates
      var map = ArcGIS.Desktop.Mapping.MapView.Active.Map;
      if (map == null)
        return;
    
      var mainTemplate = map.FindLayers("main").FirstOrDefault()?.GetTemplate("Distribution");
      var mhTemplate = map.FindLayers("Manhole").FirstOrDefault()?.GetTemplate("Active");
    });
    Find table templates belonging to a standalone table
    ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
    {
      var map = ArcGIS.Desktop.Mapping.MapView.Active.Map;
      if (map == null)
        return;
      //Get a particular table template
      var tableTemplate = map.FindStandaloneTables("Address Points").FirstOrDefault()?.GetTemplate("Residences");
      //Get all the templates of a standalone table
      var ownersTableTemplates = map.FindStandaloneTables("Owners").FirstOrDefault()?.GetTemplates();
      var statisticsTableTemplates = MapView.Active.Map.GetStandaloneTablesAsFlattenedList().First(l => l.Name.Equals("Trading Statistics")).GetTemplates();
    });
    Change Default Edit tool for a template
    public Task ChangeTemplateDefaultToolAsync(ArcGIS.Desktop.Mapping.FeatureLayer flayer,
                      string toolContentGUID, string templateName)
    {
      return ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
      {
    
        // retrieve the edit template form the layer by name
        var template = flayer?.GetTemplate(templateName) as ArcGIS.Desktop.Editing.Templates.EditingTemplate;
        // get the definition of the layer
        var layerDef = flayer?.GetDefinition() as ArcGIS.Core.CIM.CIMFeatureLayer;
        if ((template == null) || (layerDef == null))
          return;
    
        if (template.DefaultToolID != this.ID)
        {
          bool updateLayerDef = false;
          if (layerDef.AutoGenerateFeatureTemplates)
          {
            layerDef.AutoGenerateFeatureTemplates = false;
            updateLayerDef = true;
          }
    
          // retrieve the CIM edit template definition
          var templateDef = template.GetDefinition();
    
          // assign the GUID from the tool DAML definition, for example
          // <tool id="TestConstructionTool_SampleSDKTool" categoryRefID="esri_editing_construction_polyline" ….>
          //   <tooltip heading="">Tooltip text<disabledText /></tooltip>
          //   <content guid="e58239b3-9c69-49e5-ad4d-bb2ba29ff3ea" />
          // </tool>
          // then the toolContentGUID would be "e58239b3-9c69-49e5-ad4d-bb2ba29ff3ea"
    
          //At 2.x -
          //templateDef.ToolProgID = toolContentGUID;
          templateDef.DefaultToolGUID = toolContentGUID;
    
          // set the definition back to 
          template.SetDefinition(templateDef);
    
          // update the layer definition too
          if (updateLayerDef)
            flayer.SetDefinition(layerDef);
        }
      });
    }
    
    Create New Template using layer.CreateTemplate
    var layer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>().FirstOrDefault();
    if (layer == null)
      return;
    QueuedTask.Run(() =>
    {
      var insp = new Inspector();
      insp.LoadSchema(layer);
    
      insp["Field1"] = value1;
      insp["Field2"] = value2;
      insp["Field3"] = value3;
    
      var tags = new[] { "Polygon", "tag1", "tag2" };
    
      // set defaultTool using a daml-id 
      string defaultTool = "esri_editing_SketchCirclePolygonTool";
    
      // tool filter is the tools to filter OUT
      var toolFilter = new[] { "esri_editing_SketchTracePolygonTool" };
    
      // create a new template  
      var newTemplate = layer.CreateTemplate("My new template", "description", insp, defaultTool, tags, toolFilter);
    });
    Create New Table Template using table.CreateTemplate
    var table = MapView.Active.Map.GetStandaloneTablesAsFlattenedList().FirstOrDefault();
    if (table == null)
      return;
    QueuedTask.Run(() =>
    {
      var tableTemplate = table.GetTemplate("Template1");
      
      var definition = tableTemplate.GetDefinition();
      definition.Description = "New definition";
      definition.Name = "New name";
      //Create new table template using this definition
      table.CreateTemplate(definition);
    
      //You can also create a new table template using this extension method. You can use this method the same way you use the layer.CreateTemplate method.
      table.CreateTemplate("New template name", "Template description", tags: new string[] { "tag 1", "tag 2" });
    });
    Inheritance Hierarchy
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also