<?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 Re: How to create an UniqueValueRenderer? in ArcGIS Pro SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870210#M5134</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Horia, so see if this helps:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Basically, when trying to reverse engineer what is in the CIM - especially the symbology - it is useful to look at the XML in the debugger. So to see how the fill is handled in a polygon symbol, for example, we can use the factory to make a symbol and then disect its parts like so:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CIMStroke outline = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(0, 0, 0, trans), 2.0, SimpleLineStyle.Solid);&lt;BR /&gt; CIMPolygonSymbol fillWithOutline = SymbolFactory.ConstructPolygonSymbol(ColorFactory.RedRGB, &amp;nbsp; &amp;nbsp; SimpleFillStyle.Cross, outline);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;var xml = fillWithOutline.ToXml();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then we can set our breakpoint right after&amp;nbsp;the line: "var xml = ....." (or right after).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now we can inspect the symbol:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="XML Visualizer" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/237204_debug4.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The basic structure is like so:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="Hatch Fill" class="image-2 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/237205_debug3.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;An outline and two hatch fills in this case and we can inspect the hatch fills to see how they are made also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Okay, so now we will use&amp;nbsp;this knowledge in our code to allow us to customize some of the symbol properties. I am using the same "Renderer From Scratch" sample as previously in the other post -&amp;nbsp;&lt;A href="https://github.com/Esri/arcgis-pro-sdk-community-samples/tree/master/Map-Authoring/CIMExamples"&gt;https://github.com/Esri/arcgis-pro-sdk-community-samples/tree/master/Map-Authoring/CIMExamples&lt;/A&gt;&amp;nbsp;- modifying "CreateCIMRendererFromScratch.cs":&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First a method to make a custom hatch fill:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;internal static CIMFill ConstructHatchFillEx(CIMStroke stroke, double angle, double separation, double transparency)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return new CIMHatchFill() {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Enable = true,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Rotation = angle,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Separation = separation,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LineSymbol = new CIMLineSymbol() { SymbolLayers = new CIMSymbolLayer[1] { stroke } }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp;;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Second, a method to make a custom polygon symbol:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;internal static CIMSymbol ConstructPolygonSymbolEx(IEnumerable&amp;lt;CIMFill&amp;gt; hatchPattern, CIMStroke outline = null) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;CIMSymbolLayer&amp;gt; symbolLayers = new List&amp;lt;CIMSymbolLayer&amp;gt;();&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (outline != null)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; symbolLayers.Add(outline);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foreach (var fill in hatchPattern)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;symbolLayers.Add(fill);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new CIMPolygonSymbol() { SymbolLayers = symbolLayers.ToArray() };&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, some code that uses it:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var trans = 50.0;//semi transparent&lt;/P&gt;&lt;P&gt;CIMStroke outline = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(0, 0, 0, trans), 2.0, SimpleLineStyle.Solid);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Some different strokes to play with&lt;/P&gt;&lt;P&gt;var dash = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(255, 170, 0, trans), 1.0, SimpleLineStyle.Dash);&lt;BR /&gt; var solid = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(255, 0, 0, trans), 1.0, SimpleLineStyle.Solid);&lt;BR /&gt; var dashDot = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(85, 255, 0, trans), 1.0, SimpleLineStyle.DashDotDot);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Some different hatch fills to play with&lt;/P&gt;&lt;P&gt;//Mimic cross hatch&lt;BR /&gt; CIMFill[] crossHatch = {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(dash, 0.0, 5.0, trans),&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(dash, 90.0, 5.0, trans)&lt;BR /&gt; };&lt;BR /&gt; //Mimic diagonal cross&lt;BR /&gt; CIMFill[] diagCross = {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(solid, 45.0, 5.0, trans),&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(solid, -45.0, 5.0, trans)&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;CIMFill[] diagonal =&amp;nbsp;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(dashDot, 45.0, 5.0, trans)&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Now we will use them&lt;/P&gt;&lt;P&gt;var alaska = new CIMUniqueValueClass() {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Values = alaskaValues.ToArray(),&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Label = "Alaska",&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Visible = true,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Editable = true,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Symbol = new CIMSymbolReference() { Symbol = ConstructPolygonSymbolEx(crossHatch, outline) }&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;classes.Add(alaska);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;etc, etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="alaska" class="image-3 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/237243_alaska.png" style="width: 620px; height: 417px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note: I wrote a blog post on GeoNet about the CIMViewer -&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.esri.com/groups/arcgis-pro-sdk/blog/2016/08/04/arcgis-pro-cim-viewer"&gt;https://community.esri.com/groups/arcgis-pro-sdk/blog/2016/08/04/arcgis-pro-cim-viewer&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a sample you can download from here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/Esri/arcgis-pro-sdk-cim-viewer"&gt;https://github.com/Esri/arcgis-pro-sdk-cim-viewer&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are instructions on the github on compiling it, etc. It is an Add-in. Once installed you can manually set the properties, etc. you want on the layer or map via the UI and then inspect the CIM with the CIMViewer to see which properties, etc. you need to set in your code to automate what was done with the UI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="CIM Viewer" class="image-4 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/237244_cimviewer.png" style="width: 620px; height: 428px;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 30 Sep 2016 23:47:26 GMT</pubDate>
    <dc:creator>CharlesMacleod</dc:creator>
    <dc:date>2016-09-30T23:47:26Z</dc:date>
    <item>
      <title>How to create an UniqueValueRenderer?</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870207#M5131</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would prefer the method for ArcGIS Desktop described here:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://developers.arcgis.com/net/desktop/guide/symbols-and-renderers.htm" title="https://developers.arcgis.com/net/desktop/guide/symbols-and-renderers.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;Symbols and renderers—ArcGIS Runtime SDK for .NET | ArcGIS for Developers&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But I cannot make it work in ArcGis PRO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead I use&amp;nbsp;the following code:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;
&lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; uniqueValueRendererDef &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;GetUniqueValueRendererDef&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; uniqueValueRenderer &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;CIMUniqueValueRenderer&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;deltaLayer&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;CreateRenderer&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uniqueValueRendererDef&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; classes &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; uniqueValueRenderer&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Groups&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Classes&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
uniqueValueRendererDef &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;GetUniqueValueRendererDef&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;classes&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
uniqueValueRenderer &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;CIMUniqueValueRenderer&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;deltaLayer&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;CreateRenderer&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uniqueValueRendererDef&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
deltaLayer&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;SetRenderer&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uniqueValueRenderer&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;‍‍‍‍‍‍
&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;private&lt;/SPAN&gt; UniqueValueRendererDefinition &lt;SPAN class="token function"&gt;GetUniqueValueRendererDef&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;CIMUniqueValueClass&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; classes &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;null&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;string&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; fields &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt; Model&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;DbFieldOperation&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Key &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//field to be used to retrieve unique values&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; CIMMultiLayerSymbol symbol &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;null&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;switch&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;DeltaLayer&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ShapeType&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;case&lt;/SPAN&gt; esriGeometryType&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;esriGeometryPolygon&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbol &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; SymbolFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;ConstructPolygonSymbol&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ColorFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;GreyRGB&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; SimpleFillStyle&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Solid&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;CIMSolidStroke&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;3.0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Color &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;//CIMColor.CreateRGBColor(0, 0, 0, 127)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ColorFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;BlackRGB
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;break&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; symbolTemplate &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; symbol&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;MakeSymbolReference&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;


&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; colorRamp &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;CIMFixedColorRamp&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;classes &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;null&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colorRamp&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Colors &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt; ColorFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;RedRGB&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; ColorFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;GreenRGB &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; colors &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;List&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;foreach&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; cls &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; classes&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;switch&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;cls&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Label&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;case&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"DELETE"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colors&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;Add&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;DeltaLayer&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ShapeType &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; esriGeometryType&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;esriGeometryPolygon
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="operator token"&gt;?&lt;/SPAN&gt; ColorFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;CreateRGBColor&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;255&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;128&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; ColorFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;RedRGB&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;break&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;default&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colors&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;Add&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;ColorFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;GreyRGB&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;break&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colorRamp&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Colors &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; colors&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;ToArray&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;var&lt;/SPAN&gt; uniqueValueRendererDef &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;UniqueValueRendererDefinition&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fields&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; symbolTemplate&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; colorRamp&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; uniqueValueRendererDef&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Explanation: The first call to GetUniqueValueRendererDef() in line 2&amp;nbsp;is to obtain the unique values (in line 4.)&lt;/P&gt;&lt;P&gt;The second call in line 5 produces the desired ColorRamp. The efect was described in my question:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.esri.com/thread/183745" target="_blank"&gt;How to use ColorFactory to produce transparent colors for a ColorRamp?&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I cannot simply produce an universal color ramp with 3 (or more) colors because the renter allocates for the second and&amp;nbsp;subsequent values random colors from the ramp when the ramp contains more colors than unique values!&lt;/P&gt;&lt;P&gt;This is inconvenient - I would call it a bug!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, the real problem in this post:&lt;/P&gt;&lt;P&gt;For Polynomial Layers I need transparent symbols - this I have already described in the above question.&lt;/P&gt;&lt;P&gt;However, in line 21 I have also asked for a stroke (solid black - although my first preference was transparent as well) 3 units tick.&lt;/P&gt;&lt;P&gt;Not only the stroke does not come, but neither can be added with the symbol editor!&lt;/P&gt;&lt;P&gt;Look at the effect when using a&amp;nbsp;SimpleFillStyle.Vertical filling (line 21)&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/236380_pastedImage_4.png" /&gt;&lt;/P&gt;&lt;P&gt;The cyan rectangle is the selected polygon, but there are 2 polygons there and without stroke line it is impossible to make the difference. Obviously, any king of filling won't replace the transparency on the symbol, but missing strokes makes thinks even worse!&lt;/P&gt;&lt;P&gt;The Format Polygon Symbol dialog shoes:&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-2 jive-image" src="https://community.esri.com/legacyfs/online/236401_pastedImage_6.png" /&gt;&lt;/P&gt;&lt;P&gt;The solid stroke checkbox came unchecked - why?&lt;/P&gt;&lt;P&gt;When manually checking it, I can see what I want!&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-3 jive-image" src="https://community.esri.com/legacyfs/online/236412_pastedImage_8.png" /&gt;&lt;/P&gt;&lt;P&gt;(Much better!)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 10:51:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870207#M5131</guid>
      <dc:creator>HoriaTudosie</dc:creator>
      <dc:date>2021-12-12T10:51:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an UniqueValueRenderer?</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870208#M5132</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Horia, it looks like the outline is missing from your symbol. Take a look at this:&amp;nbsp;&lt;A href="https://github.com/esri/arcgis-pro-sdk/wiki/ProSnippets-MapAuthoring#how-to-construct-a-polygon-symbol-of-specific-color-fill-style-and-outline"&gt;https://github.com/esri/arcgis-pro-sdk/wiki/ProSnippets-MapAuthoring#how-to-construct-a-polygon-symbol-of-specific-color-fill-style-and-outline&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am not sure about your transparency issue. I will take a look at this.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2016 17:50:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870208#M5132</guid>
      <dc:creator>CharlesMacleod</dc:creator>
      <dc:date>2016-09-30T17:50:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an UniqueValueRenderer?</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870209#M5133</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No, is not: From line 20 to line 26 I,m explicitly define the stoke with black color.&lt;/P&gt;&lt;P&gt;See, the thing is that this is a template used in line 31, that together with the colorRamp instance form in line 51 the Unique...Def.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now: if we create make the line red:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;symbol &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; SymbolFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;ConstructPolygonSymbol&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;
 ColorFactory&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;GreyRGB&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; SimpleFillStyle&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;Solid&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;new&lt;/SPAN&gt; &lt;SPAN class="token class-name"&gt;CIMSolidStroke&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
 Width &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1.5&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;
 Color &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; CIMColor&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;CreateRGBColor&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;255&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;127&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 &lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;When running the application, we get:&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" src="https://community.esri.com/legacyfs/online/237091_pastedImage_1.png" /&gt;&lt;/P&gt;&lt;P&gt;Where we see that the line was&amp;nbsp;correctly defined, but the corresponding checkbox was not enabled.&lt;/P&gt;&lt;P&gt;(And no: it is red but not semitransparent!)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that ConstructPolygonSymbol has another constructor which takes, instead of the first two parameters, a Fill (something) type, in the same way&amp;nbsp;as the stroke. When using that, the fill symbol comes also unchecked!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(On my wish list there are also:&lt;/P&gt;&lt;P&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;Use directly (some sort of) UniqueValuesItems instead of colorRamp and symbolTemplate, as I've mentioned in the second line of my question.&lt;/P&gt;&lt;P&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;Be able to customize the color of the stroke as well,&lt;/P&gt;&lt;P&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;And, as I've already mentioned, make the fill transparent (if&amp;nbsp;possible, the stroke as well.)&lt;/P&gt;&lt;P&gt;#2 and the () in 3# are optional, but without the rest - is not going to work...&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 10:51:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870209#M5133</guid>
      <dc:creator>HoriaTudosie</dc:creator>
      <dc:date>2021-12-12T10:51:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an UniqueValueRenderer?</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870210#M5134</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Horia, so see if this helps:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Basically, when trying to reverse engineer what is in the CIM - especially the symbology - it is useful to look at the XML in the debugger. So to see how the fill is handled in a polygon symbol, for example, we can use the factory to make a symbol and then disect its parts like so:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CIMStroke outline = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(0, 0, 0, trans), 2.0, SimpleLineStyle.Solid);&lt;BR /&gt; CIMPolygonSymbol fillWithOutline = SymbolFactory.ConstructPolygonSymbol(ColorFactory.RedRGB, &amp;nbsp; &amp;nbsp; SimpleFillStyle.Cross, outline);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;var xml = fillWithOutline.ToXml();&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then we can set our breakpoint right after&amp;nbsp;the line: "var xml = ....." (or right after).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now we can inspect the symbol:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="XML Visualizer" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/237204_debug4.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The basic structure is like so:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="Hatch Fill" class="image-2 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/237205_debug3.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;An outline and two hatch fills in this case and we can inspect the hatch fills to see how they are made also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Okay, so now we will use&amp;nbsp;this knowledge in our code to allow us to customize some of the symbol properties. I am using the same "Renderer From Scratch" sample as previously in the other post -&amp;nbsp;&lt;A href="https://github.com/Esri/arcgis-pro-sdk-community-samples/tree/master/Map-Authoring/CIMExamples"&gt;https://github.com/Esri/arcgis-pro-sdk-community-samples/tree/master/Map-Authoring/CIMExamples&lt;/A&gt;&amp;nbsp;- modifying "CreateCIMRendererFromScratch.cs":&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First a method to make a custom hatch fill:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;internal static CIMFill ConstructHatchFillEx(CIMStroke stroke, double angle, double separation, double transparency)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return new CIMHatchFill() {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Enable = true,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Rotation = angle,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Separation = separation,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LineSymbol = new CIMLineSymbol() { SymbolLayers = new CIMSymbolLayer[1] { stroke } }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp;;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Second, a method to make a custom polygon symbol:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;internal static CIMSymbol ConstructPolygonSymbolEx(IEnumerable&amp;lt;CIMFill&amp;gt; hatchPattern, CIMStroke outline = null) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;CIMSymbolLayer&amp;gt; symbolLayers = new List&amp;lt;CIMSymbolLayer&amp;gt;();&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (outline != null)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; symbolLayers.Add(outline);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foreach (var fill in hatchPattern)&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;symbolLayers.Add(fill);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new CIMPolygonSymbol() { SymbolLayers = symbolLayers.ToArray() };&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, some code that uses it:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var trans = 50.0;//semi transparent&lt;/P&gt;&lt;P&gt;CIMStroke outline = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(0, 0, 0, trans), 2.0, SimpleLineStyle.Solid);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Some different strokes to play with&lt;/P&gt;&lt;P&gt;var dash = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(255, 170, 0, trans), 1.0, SimpleLineStyle.Dash);&lt;BR /&gt; var solid = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(255, 0, 0, trans), 1.0, SimpleLineStyle.Solid);&lt;BR /&gt; var dashDot = SymbolFactory.ConstructStroke(CIMColor.CreateRGBColor(85, 255, 0, trans), 1.0, SimpleLineStyle.DashDotDot);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Some different hatch fills to play with&lt;/P&gt;&lt;P&gt;//Mimic cross hatch&lt;BR /&gt; CIMFill[] crossHatch = {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(dash, 0.0, 5.0, trans),&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(dash, 90.0, 5.0, trans)&lt;BR /&gt; };&lt;BR /&gt; //Mimic diagonal cross&lt;BR /&gt; CIMFill[] diagCross = {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(solid, 45.0, 5.0, trans),&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(solid, -45.0, 5.0, trans)&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;CIMFill[] diagonal =&amp;nbsp;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructHatchFillEx(dashDot, 45.0, 5.0, trans)&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//Now we will use them&lt;/P&gt;&lt;P&gt;var alaska = new CIMUniqueValueClass() {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Values = alaskaValues.ToArray(),&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Label = "Alaska",&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Visible = true,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Editable = true,&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Symbol = new CIMSymbolReference() { Symbol = ConstructPolygonSymbolEx(crossHatch, outline) }&lt;BR /&gt; };&lt;/P&gt;&lt;P&gt;classes.Add(alaska);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;etc, etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="alaska" class="image-3 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/237243_alaska.png" style="width: 620px; height: 417px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note: I wrote a blog post on GeoNet about the CIMViewer -&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.esri.com/groups/arcgis-pro-sdk/blog/2016/08/04/arcgis-pro-cim-viewer"&gt;https://community.esri.com/groups/arcgis-pro-sdk/blog/2016/08/04/arcgis-pro-cim-viewer&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a sample you can download from here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/Esri/arcgis-pro-sdk-cim-viewer"&gt;https://github.com/Esri/arcgis-pro-sdk-cim-viewer&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are instructions on the github on compiling it, etc. It is an Add-in. Once installed you can manually set the properties, etc. you want on the layer or map via the UI and then inspect the CIM with the CIMViewer to see which properties, etc. you need to set in your code to automate what was done with the UI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="CIM Viewer" class="image-4 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/237244_cimviewer.png" style="width: 620px; height: 428px;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Sep 2016 23:47:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/how-to-create-an-uniquevaluerenderer/m-p/870210#M5134</guid>
      <dc:creator>CharlesMacleod</dc:creator>
      <dc:date>2016-09-30T23:47:26Z</dc:date>
    </item>
  </channel>
</rss>

