<?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: Mass Symbology additions via Python in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162280#M12433</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;BP, it is raster data, with graduated colors.&amp;nbsp; I'm using the latest version.&amp;nbsp; (10)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 12 Jul 2011 12:25:02 GMT</pubDate>
    <dc:creator>ToddGray</dc:creator>
    <dc:date>2011-07-12T12:25:02Z</dc:date>
    <item>
      <title>Mass Symbology additions via Python</title>
      <link>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162278#M12431</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I generally get about a thousand new layers added to a map a few times a week...I was wondering if anyone is aware of a python script that would automate that process of adding the Symbology to all the layers, they are usually always the same cutpoints and colors ect.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for any insight.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Jul 2011 18:47:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162278#M12431</guid>
      <dc:creator>ToddGray</dc:creator>
      <dc:date>2011-07-11T18:47:30Z</dc:date>
    </item>
    <item>
      <title>Re: Mass Symbology additions via Python</title>
      <link>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162279#M12432</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What type of data (vector/raster) and classification (unique value, graduated colours, etc.) are you using? What version of ArcGIS is this for?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jul 2011 10:56:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162279#M12432</guid>
      <dc:creator>BradPosthumus</dc:creator>
      <dc:date>2011-07-12T10:56:39Z</dc:date>
    </item>
    <item>
      <title>Re: Mass Symbology additions via Python</title>
      <link>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162280#M12433</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;BP, it is raster data, with graduated colors.&amp;nbsp; I'm using the latest version.&amp;nbsp; (10)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jul 2011 12:25:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162280#M12433</guid>
      <dc:creator>ToddGray</dc:creator>
      <dc:date>2011-07-12T12:25:02Z</dc:date>
    </item>
    <item>
      <title>Re: Mass Symbology additions via Python</title>
      <link>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162281#M12434</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here's one way of doing it using the comtypes site-package with ArcObjects. The script below opens an MXD, grabs the symbology (renderer) of the first layer of the first data frame, and replaces every other raster layer's symbology (in the same data frame) with it. Essentially you end up with an MXD where all rasters in the first data frame use the exact same symbology. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I noticed a side effect though: the symbology between the rasters is linked, so changing the symbology (e.g. a colour or label value) in one of the rasters will change it in all of them. Changing the renderer type though (e.g. Classified to Stretched) breaks this link.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Comtypes is available here: &lt;/SPAN&gt;&lt;A href="http://sourceforge.net/projects/comtypes/" rel="nofollow noopener noreferrer" target="_blank"&gt;http://sourceforge.net/projects/comtypes/&lt;/A&gt;&lt;SPAN&gt;. Hopefully symbology will be included in future releases of ArcPy so we can avoid these comtypes work-arounds. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Note that I only have access to 9.3 so this is untested in ArcMap 10. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import comtypes.client
esriCarto = comtypes.client.GetModule(r'C:\Program Files\ArcGIS\com\esriCarto.olb')

def openMxd(strMxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """ Opens an MXD and returns an IMapDocument object. """
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objMapDocument = comtypes.client.CreateObject(esriCarto.MapDocument, interface=esriCarto.IMapDocument)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if objMapDocument.IsMapDocument(strMxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objMapDocument.Open(strMxd, "")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return objMapDocument
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0

strMxd = r"C:\workspace\test.mxd"
# Open the MXD
objMapDocument = openMxd(strMxd)
if objMapDocument:
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the first map in the MXD
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objMap = objMapDocument.Map(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the first layer in the map (i.e. data frame) - MUST BE A RASTER
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objSourceLayer = objMap.Layer(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the layer's renderer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objRasterLayer = objSourceLayer.QueryInterface(esriCarto.IRasterLayer)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objSourceRasterRenderer = objRasterLayer.Renderer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Loop through the rest of the layer in the map
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(1, objMap.LayerCount):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objDestinationLayer = objMap.Layer(i)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print objDestinationLayer.Name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Replace the current layer's renderer with the first layer's renderer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&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; objRasterLayer = objDestinationLayer.QueryInterface(esriCarto.IRasterLayer)
&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; objRasterLayer.Renderer = objSourceRasterRenderer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&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; print "Not a raster"
&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; continue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Save the MXD and close it.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objMapDocument.Save()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objMapDocument.Close()
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Error"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objMapDocument.Close()
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:31:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162281#M12434</guid>
      <dc:creator>BradPosthumus</dc:creator>
      <dc:date>2021-12-11T08:31:04Z</dc:date>
    </item>
    <item>
      <title>Re: Mass Symbology additions via Python</title>
      <link>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162282#M12435</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Will this work if you are using a stretched symbology on your rasters?&amp;nbsp; Will it apply the stretced symbology and color scheme, but change the min and max values based on each raster it loops through?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wade&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Aug 2011 13:22:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/mass-symbology-additions-via-python/m-p/162282#M12435</guid>
      <dc:creator>WadeGivens</dc:creator>
      <dc:date>2011-08-05T13:22:13Z</dc:date>
    </item>
  </channel>
</rss>

