using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ArcGIS.Core.CIM; using ArcGIS.Core.Data; using ArcGIS.Core.Geometry; using ArcGIS.Desktop.Catalog; using ArcGIS.Desktop.Core; using ArcGIS.Desktop.Editing; using ArcGIS.Desktop.Extensions; using ArcGIS.Desktop.Framework; using ArcGIS.Desktop.Framework.Contracts; using ArcGIS.Desktop.Framework.Dialogs; using ArcGIS.Desktop.Framework.Threading.Tasks; using ArcGIS.Desktop.Mapping; using ArcGIS.Desktop.Core.Geoprocessing; namespace ProAppModule1 { internal class Button2 : Button { public enum EnumFeatureClassType { POINT, MULTIPOINT, POLYLINE, POLYGON } public static async Task CreateFeatureClass(string featureclassName, EnumFeatureClassType featureclassType, SpatialReference pSpatialReference) { List<object> arguments = new List<object> { // store the results in the default geodatabase CoreModule.CurrentProject.DefaultGeodatabasePath, // name of the feature class featureclassName, // type of geometry featureclassType.ToString(), // no template "", // no z values "DISABLED", // no m values "DISABLED" }; await QueuedTask.Run(() => { // spatial reference // arguments.Add(SpatialReferenceBuilder.CreateSpatialReference(3857)); arguments.Add(pSpatialReference); }); IGPResult result = await Geoprocessing.ExecuteToolAsync("CreateFeatureclass_management", Geoprocessing.MakeValueArray(arguments.ToArray())); } protected override async void OnClick() { var mv = MapView.Active; SpatialReference pSpatialReference= mv.Map.SpatialReference; EnumFeatureClassType featureclassType = EnumFeatureClassType.POLYGON; string featureclassName = "gisoracle"; await CreateFeatureClass(featureclassName, featureclassType, pSpatialReference); // } } }