In ArcGIS Pro, there is the option to symbolize a feature dependent on scale. I have several maps I am looking to convert and want to modify the .lyrx file (is JSON format) to accept these alternate symbols.
with an open JSON and a simple dataset I found the alternateSymbols list in
data['layerDefinitions'][0]['renderer']['groups'][0]['classes']['alternateSymbols']
when i try to import my other symbols with minScale and maxScale Values, i get nothing.
If I just dump them into 'classes' they DO show in arcmap, but are not scale dependenent.
this is the function I am using a the moment
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">outload_into_one_file</SPAN><SPAN class="punctuation token">(</SPAN>detail<SPAN class="punctuation token">,</SPAN> normal<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
detail <SPAN class="operator token">=</SPAN> detail
normal <SPAN class="operator token">=</SPAN> normal
out_file <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>splitext<SPAN class="punctuation token">(</SPAN>normal<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"_COMBINED.lyrx"</SPAN>
<SPAN class="keyword token">with</SPAN> open <SPAN class="punctuation token">(</SPAN>detail <SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"r"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> jsonFile<SPAN class="punctuation token">:</SPAN>
detail_data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>load<SPAN class="punctuation token">(</SPAN>jsonFile<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">with</SPAN> open <SPAN class="punctuation token">(</SPAN>normal <SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"r"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> jsonFile<SPAN class="punctuation token">:</SPAN>
normal_data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>load<SPAN class="punctuation token">(</SPAN>jsonFile<SPAN class="punctuation token">)</SPAN>
detail_base <SPAN class="operator token">=</SPAN> detail_data<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'layerDefinitions'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN>
detail_classes <SPAN class="operator token">=</SPAN> detail_base<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'renderer'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'groups'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'classes'</SPAN><SPAN class="punctuation token">]</SPAN>
normal_base <SPAN class="operator token">=</SPAN> normal_data<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'layerDefinitions'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN>
normal_classes <SPAN class="operator token">=</SPAN> normal_base<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'renderer'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'groups'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'classes'</SPAN><SPAN class="punctuation token">]</SPAN>
detail_classes_dict <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">for</SPAN> x <SPAN class="keyword token">in</SPAN> detail_classes<SPAN class="punctuation token">:</SPAN>
detail_classes_dict<SPAN class="punctuation token">.</SPAN>update<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">{</SPAN>x<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"label"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">:</SPAN> x<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> x <SPAN class="keyword token">in</SPAN> normal_classes<SPAN class="punctuation token">:</SPAN>
x<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'maxScale'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="number token">251</SPAN>
x<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'minScale'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="operator token">=</SPAN> <SPAN class="number token">3000</SPAN>
<SPAN class="keyword token">for</SPAN> x <SPAN class="keyword token">in</SPAN> normal_classes<SPAN class="punctuation token">:</SPAN>
cls <SPAN class="operator token">=</SPAN> detail_classes_dict<SPAN class="punctuation token">.</SPAN>get<SPAN class="punctuation token">(</SPAN>x<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'label'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
cls<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'maxScale'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="operator token">=</SPAN><SPAN class="number token">250</SPAN>
cls<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'alternateSymbols'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN>
cls<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'alternateSymbols'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>append<SPAN class="punctuation token">(</SPAN>x<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>out_file<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"w"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> jsonFile<SPAN class="punctuation token">:</SPAN>
json<SPAN class="punctuation token">.</SPAN>dump<SPAN class="punctuation token">(</SPAN>detail_data<SPAN class="punctuation token">,</SPAN> jsonFile<SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>