Parameters
- member
| Exception | Description |
|---|---|
| ArcGIS.Core.CalledOnWrongThreadException | This method or property must be called within the lambda passed to QueuedTask.Run. |
// Loads the schema of the specified feature layer and iterates through its attributes, providing access to their properties such as field name, alias, type, and other metadata. await QueuedTask.Run(() => { // create an instance of the inspector class var inspector = new Inspector(); // load the layer inspector.LoadSchema(featureLayer); // iterate through the attributes, looking at properties foreach (var attribute in inspector) { var fldName = attribute.FieldName; var fldAlias = attribute.FieldAlias; var fldType = attribute.FieldType; int idxFld = attribute.FieldIndex; var fld = attribute.GetField(); var isNullable = attribute.IsNullable; var isEditable = attribute.IsEditable; var isVisible = attribute.IsVisible; var isSystemField = attribute.IsSystemField; var isGeometryField = attribute.IsGeometryField; } });
await QueuedTask.Run(() => { var newFieldValues = new object[] { "Value1", 123, DateTime.Now }; // Creates a new editing template for the specified feature layer with the provided field values. var insp = new Inspector(); insp.LoadSchema(featureLayer); insp["Field1"] = newFieldValues[0]; insp["Field2"] = newFieldValues[1]; insp["Field3"] = newFieldValues[2]; 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 = featureLayer.CreateTemplate("My new template", "description", insp, defaultTool, tags, toolFilter); });
// Creates a new annotation template for the specified annotation layer. await QueuedTask.Run(() => { Inspector insp = null; // get the anno feature class var fc = annotationLayer.GetFeatureClass() as ArcGIS.Core.Data.Mapping.AnnotationFeatureClass; // get the feature class CIM definition which contains the labels, symbols var cimDefinition = fc.GetDefinition() as ArcGIS.Core.Data.Mapping.AnnotationFeatureClassDefinition; var labels = cimDefinition.GetLabelClassCollection(); var symbols = cimDefinition.GetSymbolCollection(); // make sure there are labels, symbols if (labels.Count == 0 || symbols.Count == 0) return; // find the label class required // typically you would use a subtype name or some other characteristic // in this case lets just use the first one var label = labels[0]; // each label has a textSymbol // the symbolName *should* be the symbolID to be used var symbolName = label.TextSymbol.SymbolName; int symbolID = -1; if (!int.TryParse(symbolName, out symbolID)) { // int.TryParse fails - attempt to find the symbolName in the symbol collection foreach (var symbol in symbols) { if (symbol.Name == symbolName) { symbolID = symbol.ID; break; } } } // no symbol? if (symbolID == -1) return; // load the schema insp = new Inspector(); insp.LoadSchema(annotationLayer); // ok to assign these fields using the inspector[fieldName] methodology // these fields are guaranteed to exist in the annotation schema insp["AnnotationClassID"] = label.ID; insp["SymbolID"] = symbolID; // set up some additional annotation properties AnnotationProperties annoProperties = insp.GetAnnotationProperties(); annoProperties.FontSize = 36; annoProperties.TextString = "My Annotation feature"; annoProperties.VerticalAlignment = VerticalAlignment.Top; annoProperties.HorizontalAlignment = HorizontalAlignment.Justify; insp.SetAnnotationProperties(annoProperties); var tags = new[] { "Annotation", "tag1", "tag2" }; // use daml-id rather than guid string defaultTool = "esri_editing_SketchStraightAnnoTool"; // tool filter is the tools to filter OUT var toolFilter = new[] { "esri_editing_SketchCurvedAnnoTool" }; // create a new template var newTemplate = annotationLayer.CreateTemplate("new annotation template", "description", insp, defaultTool, tags, toolFilter); });
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)