private static void ArcHydroTool_UsingGPDispatch() { try { System.Type pSysType = System.Type.GetTypeFromProgID("esriGeoprocessing.GpDispatch.1"); System.Object objDispatch = Activator.CreateInstance(pSysType); // Set the toolbox pSysType.InvokeMember( "Toolbox", BindingFlags.SetProperty, null, objDispatch, new object[] { @C:\Program Files (x86)\ArcGIS\Desktop10.0\ArcToolbox\Toolboxes\Arc Hydro Tools.tbx } ); // Execute the tool pSysType.InvokeMember( "DEMReconditioning", BindingFlags.InvokeMethod, null, objDispatch, new object[] { @cedar_dem, @stream, @5, @10, @1000, @C:\fzhang\INCIDENTS\INCIDENT_972964\Layers\AgreeDEM16, "NEGATIVE_NO" } ); } catch (Exception err) { //output debug information System.Diagnostics.Debug.WriteLine(err.Message); System.Diagnostics.Debug.WriteLine(err.StackTrace); throw; } }
private static void ArcHydroTool_UsingGPTool() { try { IArcToolboxExtension arcToolboxExt; IArcToolbox arcToolBox; IGPTool arcTool; UID gpUID = new UID(); gpUID.Value = "esriGeoprocessingUI.ArcToolboxExtension"; string gpToolName = "DEMReconditioning"; arcToolboxExt = (IArcToolboxExtension) ArcMap.Application.FindExtensionByCLSID(gpUID); arcToolBox = arcToolboxExt.ArcToolbox; arcTool = arcToolBox.GetToolbyNameString(gpToolName); IArray parameters = arcTool.ParameterInfo; // Iterate through parameters to get data types for (int j = 0; j < parameters.Count; j++) { IGPParameter gparam = (IGPParameter)parameters.get_Element(j); Debug.WriteLine("Parameter name: " + gparam.Name); Debug.WriteLine("Parameter Data Type Display Name: " + gparam.DataType.DisplayName); Debug.WriteLine("Parameter Data Type Name: " + gparam.DataType.Name); Debug.WriteLine("Is Parameter required?: " + gparam.ParameterType.ToString()); // Debug.WriteLine("Parameter Value Data Type: " + gparam.Value.DataType.Name); Debug.WriteLine("Parameter Value as Text: " + gparam.Value.GetAsText()); } arcTool.Execute(parameters, null, null, null); } catch (Exception err) { //output debug information System.Diagnostics.Debug.WriteLine(err.Message); System.Diagnostics.Debug.WriteLine(err.StackTrace); throw; } }
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.