<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to create a new Coded Value Domain .Net SDK without using Geoprocessing.ExecuteToolAsync in ArcGIS Pro Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-questions/how-to-create-a-new-coded-value-domain-net-sdk/m-p/476920#M20938</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tried to create a new domain and using&amp;nbsp;Geoprocessing.ExecuteToolAsync but the performance and stability his erratic at best.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THis takes many minutes to run and 1 time out of 2 it will display error messages...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there something in the SDK where it would be more conventionnal to add something has simple as this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;BR /&gt; public async Task&amp;lt;bool&amp;gt; ExecuteAddDomainTool(string sdeConnectionFilePath, Dictionary&amp;lt;object, string&amp;gt; dicDom)&lt;BR /&gt; {&lt;BR /&gt; try&lt;BR /&gt; {&lt;BR /&gt; List&amp;lt;object&amp;gt; ps = new List&amp;lt;object&amp;gt;();&lt;BR /&gt; ps.Add(sdeConnectionFilePath);&lt;BR /&gt; ps.Add("myNewDomain");&lt;BR /&gt; ps.Add(string.Empty);&lt;BR /&gt; ps.Add("SHORT");&lt;BR /&gt; ps.Add("CODED");&lt;BR /&gt; ps.Add("DEFAULT");&lt;BR /&gt; ps.Add("DEFAULT");&lt;/P&gt;&lt;P&gt;var parameters = Geoprocessing.MakeValueArray(ps.ToArray());&lt;/P&gt;&lt;P&gt;var env = Geoprocessing.MakeEnvironmentArray(workspace: mainModule.Current.sdeConnectionFilePath);&lt;BR /&gt; var cts = new System.Threading.CancellationTokenSource();&lt;/P&gt;&lt;P&gt;bool addSuccess = true;&lt;/P&gt;&lt;P&gt;var results = Geoprocessing.ExecuteToolAsync("management.CreateDomain",&lt;BR /&gt; parameters, env, cts.Token, (eventName, o) =&amp;gt;&lt;BR /&gt; {&lt;BR /&gt; // MessageBox.Show($"{eventName}: {((IGPMessage[])o).First().Type.ToString()} {((IGPMessage[])o).First().Text}");&lt;BR /&gt; switch (eventName)&lt;BR /&gt; {&lt;BR /&gt; case "OnValidate":&lt;BR /&gt; break;&lt;BR /&gt; case "OnMessage":&lt;BR /&gt; if (((IGPMessage)o).Type == GPMessageType.Error)&lt;BR /&gt; {&lt;BR /&gt; addSuccess = false;&lt;BR /&gt; ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(((IGPMessage)o).Text,&lt;BR /&gt; resPwndAddField.aboutToCreateNewDomainMsgTitle,&lt;BR /&gt; MessageBoxButton.OK,&lt;BR /&gt; MessageBoxImage.Error);&lt;BR /&gt; }&lt;BR /&gt; break;&lt;BR /&gt; case "OnProgressMessage":&lt;BR /&gt; //MessageBox.Show($"{eventName}: {o} %");&lt;BR /&gt; break;&lt;BR /&gt; case "OnProgressPos":&lt;BR /&gt; if (Convert.ToDouble(o) == -1)&lt;BR /&gt; pbValue = 100;&lt;BR /&gt; else&lt;BR /&gt; pbValue = Convert.ToDouble(o);&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; });&lt;BR /&gt; await results;&lt;/P&gt;&lt;P&gt;foreach (KeyValuePair&amp;lt;object, string&amp;gt; kv in dicDom)&lt;BR /&gt; {&lt;BR /&gt; ps = new List&amp;lt;object&amp;gt;();&lt;BR /&gt; ps.Add(mainModule.Current.sdeConnectionFilePath);&lt;BR /&gt; ps.Add("myNewDomain");&lt;BR /&gt; ps.Add(kv.Key);&lt;BR /&gt; ps.Add(kv.Value);&lt;/P&gt;&lt;P&gt;parameters = Geoprocessing.MakeValueArray(ps.ToArray());&lt;/P&gt;&lt;P&gt;cts = new System.Threading.CancellationTokenSource();&lt;/P&gt;&lt;P&gt;results = Geoprocessing.ExecuteToolAsync("management.AddCodedValueToDomain",&lt;BR /&gt; parameters, env, cts.Token, (eventName, o) =&amp;gt;&lt;BR /&gt; {&lt;/P&gt;&lt;P&gt;switch (eventName)&lt;BR /&gt; {&lt;BR /&gt; case "OnValidate":&lt;BR /&gt; break;&lt;BR /&gt; case "OnMessage":&lt;BR /&gt; if (((IGPMessage)o).Type == GPMessageType.Error)&lt;BR /&gt; {&lt;BR /&gt; addSuccess = false;&lt;BR /&gt; ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(((IGPMessage)o).Text,&lt;BR /&gt; resPwndAddField.aboutToCreateNewDomainMsgTitle,&lt;BR /&gt; MessageBoxButton.OK,&lt;BR /&gt; MessageBoxImage.Error);&lt;BR /&gt; }&lt;BR /&gt; break;&lt;BR /&gt; case "OnProgressMessage":&lt;BR /&gt; // MessageBox.Show($"{eventName}: {o} %");&lt;BR /&gt; break;&lt;BR /&gt; case "OnProgressPos":&lt;BR /&gt; if (Convert.ToDouble(o) == -1)&lt;BR /&gt; pbValue = 100;&lt;BR /&gt; else&lt;BR /&gt; pbValue = Convert.ToDouble(o);&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; });&lt;BR /&gt; await results;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;return addSuccess;&lt;BR /&gt; }&lt;BR /&gt; catch (Exception ex)&lt;BR /&gt; {&lt;BR /&gt; MessageBox.Show(ex.ToString());&lt;BR /&gt; }&lt;BR /&gt; return false;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 23 Jun 2020 12:10:42 GMT</pubDate>
    <dc:creator>PierreMasson</dc:creator>
    <dc:date>2020-06-23T12:10:42Z</dc:date>
    <item>
      <title>How to create a new Coded Value Domain .Net SDK without using Geoprocessing.ExecuteToolAsync</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/how-to-create-a-new-coded-value-domain-net-sdk/m-p/476920#M20938</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tried to create a new domain and using&amp;nbsp;Geoprocessing.ExecuteToolAsync but the performance and stability his erratic at best.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THis takes many minutes to run and 1 time out of 2 it will display error messages...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there something in the SDK where it would be more conventionnal to add something has simple as this?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;BR /&gt; public async Task&amp;lt;bool&amp;gt; ExecuteAddDomainTool(string sdeConnectionFilePath, Dictionary&amp;lt;object, string&amp;gt; dicDom)&lt;BR /&gt; {&lt;BR /&gt; try&lt;BR /&gt; {&lt;BR /&gt; List&amp;lt;object&amp;gt; ps = new List&amp;lt;object&amp;gt;();&lt;BR /&gt; ps.Add(sdeConnectionFilePath);&lt;BR /&gt; ps.Add("myNewDomain");&lt;BR /&gt; ps.Add(string.Empty);&lt;BR /&gt; ps.Add("SHORT");&lt;BR /&gt; ps.Add("CODED");&lt;BR /&gt; ps.Add("DEFAULT");&lt;BR /&gt; ps.Add("DEFAULT");&lt;/P&gt;&lt;P&gt;var parameters = Geoprocessing.MakeValueArray(ps.ToArray());&lt;/P&gt;&lt;P&gt;var env = Geoprocessing.MakeEnvironmentArray(workspace: mainModule.Current.sdeConnectionFilePath);&lt;BR /&gt; var cts = new System.Threading.CancellationTokenSource();&lt;/P&gt;&lt;P&gt;bool addSuccess = true;&lt;/P&gt;&lt;P&gt;var results = Geoprocessing.ExecuteToolAsync("management.CreateDomain",&lt;BR /&gt; parameters, env, cts.Token, (eventName, o) =&amp;gt;&lt;BR /&gt; {&lt;BR /&gt; // MessageBox.Show($"{eventName}: {((IGPMessage[])o).First().Type.ToString()} {((IGPMessage[])o).First().Text}");&lt;BR /&gt; switch (eventName)&lt;BR /&gt; {&lt;BR /&gt; case "OnValidate":&lt;BR /&gt; break;&lt;BR /&gt; case "OnMessage":&lt;BR /&gt; if (((IGPMessage)o).Type == GPMessageType.Error)&lt;BR /&gt; {&lt;BR /&gt; addSuccess = false;&lt;BR /&gt; ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(((IGPMessage)o).Text,&lt;BR /&gt; resPwndAddField.aboutToCreateNewDomainMsgTitle,&lt;BR /&gt; MessageBoxButton.OK,&lt;BR /&gt; MessageBoxImage.Error);&lt;BR /&gt; }&lt;BR /&gt; break;&lt;BR /&gt; case "OnProgressMessage":&lt;BR /&gt; //MessageBox.Show($"{eventName}: {o} %");&lt;BR /&gt; break;&lt;BR /&gt; case "OnProgressPos":&lt;BR /&gt; if (Convert.ToDouble(o) == -1)&lt;BR /&gt; pbValue = 100;&lt;BR /&gt; else&lt;BR /&gt; pbValue = Convert.ToDouble(o);&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; });&lt;BR /&gt; await results;&lt;/P&gt;&lt;P&gt;foreach (KeyValuePair&amp;lt;object, string&amp;gt; kv in dicDom)&lt;BR /&gt; {&lt;BR /&gt; ps = new List&amp;lt;object&amp;gt;();&lt;BR /&gt; ps.Add(mainModule.Current.sdeConnectionFilePath);&lt;BR /&gt; ps.Add("myNewDomain");&lt;BR /&gt; ps.Add(kv.Key);&lt;BR /&gt; ps.Add(kv.Value);&lt;/P&gt;&lt;P&gt;parameters = Geoprocessing.MakeValueArray(ps.ToArray());&lt;/P&gt;&lt;P&gt;cts = new System.Threading.CancellationTokenSource();&lt;/P&gt;&lt;P&gt;results = Geoprocessing.ExecuteToolAsync("management.AddCodedValueToDomain",&lt;BR /&gt; parameters, env, cts.Token, (eventName, o) =&amp;gt;&lt;BR /&gt; {&lt;/P&gt;&lt;P&gt;switch (eventName)&lt;BR /&gt; {&lt;BR /&gt; case "OnValidate":&lt;BR /&gt; break;&lt;BR /&gt; case "OnMessage":&lt;BR /&gt; if (((IGPMessage)o).Type == GPMessageType.Error)&lt;BR /&gt; {&lt;BR /&gt; addSuccess = false;&lt;BR /&gt; ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(((IGPMessage)o).Text,&lt;BR /&gt; resPwndAddField.aboutToCreateNewDomainMsgTitle,&lt;BR /&gt; MessageBoxButton.OK,&lt;BR /&gt; MessageBoxImage.Error);&lt;BR /&gt; }&lt;BR /&gt; break;&lt;BR /&gt; case "OnProgressMessage":&lt;BR /&gt; // MessageBox.Show($"{eventName}: {o} %");&lt;BR /&gt; break;&lt;BR /&gt; case "OnProgressPos":&lt;BR /&gt; if (Convert.ToDouble(o) == -1)&lt;BR /&gt; pbValue = 100;&lt;BR /&gt; else&lt;BR /&gt; pbValue = Convert.ToDouble(o);&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; });&lt;BR /&gt; await results;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;return addSuccess;&lt;BR /&gt; }&lt;BR /&gt; catch (Exception ex)&lt;BR /&gt; {&lt;BR /&gt; MessageBox.Show(ex.ToString());&lt;BR /&gt; }&lt;BR /&gt; return false;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Jun 2020 12:10:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/how-to-create-a-new-coded-value-domain-net-sdk/m-p/476920#M20938</guid>
      <dc:creator>PierreMasson</dc:creator>
      <dc:date>2020-06-23T12:10:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a new Coded Value Domain .Net SDK without using Geoprocessing.ExecuteToolAsync</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/how-to-create-a-new-coded-value-domain-net-sdk/m-p/476921#M20939</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Adding DDL (data definition language) operations such as creating domains is on our long-term roadmap for the Pro SDK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For now, using &lt;A href="https://community.esri.com/space/2087"&gt;Geoprocessing&lt;/A&gt;‌ is the only technique to do this. &amp;nbsp;I would post in that group to figure out why you are sometimes getting errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--Rich&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Jun 2020 16:17:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/how-to-create-a-new-coded-value-domain-net-sdk/m-p/476921#M20939</guid>
      <dc:creator>RichRuh</dc:creator>
      <dc:date>2020-06-23T16:17:39Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a new Coded Value Domain .Net SDK without using Geoprocessing.ExecuteToolAsync</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/how-to-create-a-new-coded-value-domain-net-sdk/m-p/476922#M20940</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not getting error anymore but the best time for creating a domain with 4 values is 1m49s...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Jun 2020 18:41:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/how-to-create-a-new-coded-value-domain-net-sdk/m-p/476922#M20940</guid>
      <dc:creator>PierreMasson</dc:creator>
      <dc:date>2020-06-23T18:41:19Z</dc:date>
    </item>
  </channel>
</rss>

