<?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: Setting Data frame extent in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404323#M31847</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;One quick thought.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Isn't df = arcpy.mapping.ListDataFrames(mxd, "")[0] looing for a df without a name?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Shouldn't you use:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
df = arcpy.mapping.ListDataFrames(mxd)[0]
 &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;or&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;df = arcpy.mapping.ListDataFrames(mxd, "actual df name goes here")[0]
 &lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Jeff&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 18:25:34 GMT</pubDate>
    <dc:creator>JeffBarrette</dc:creator>
    <dc:date>2021-12-11T18:25:34Z</dc:date>
    <item>
      <title>Setting Data frame extent</title>
      <link>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404322#M31846</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a script which updates a layer in a mxd on disc and want to set the extent of the Data Frame to the new layer, so when the mxd is opened the new layer is centered in the frame. I have poured of the web and found to get the extent of the layer to be zoomed to and set the data frame layer to that. ie "df.extent = lyr.getSelectedExtent(). When I run this script I get a RuntimeError DataFrameObject: Error in setting extent.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A simplified extract of my code as follows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd = arcpy.mapping.MapDocument("C:\SRWBA\Braemar1959\Braemar1959.mxd")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;df = arcpy.mapping.ListDataFrames(mxd, "")[0]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for lyr in arcpy.mapping.ListLayers(mxd):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "BenefitArea_Symbology":&lt;/SPAN&gt;&lt;BR /&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; print "found it"&lt;/SPAN&gt;&lt;BR /&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; arcpy.SelectLayerByAttribute_management(lyr)&lt;/SPAN&gt;&lt;BR /&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; print "selected"&lt;/SPAN&gt;&lt;BR /&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; lyr_extent = lyr.getSelectedExtent()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;print df.extent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;print lyr_extent&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent = df.extent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent.XMin = lyr_extent.XMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent.YMin = lyr_extent.YMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent.XMax = lyr_extent.XMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent.YMax = lyr_extent.YMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;print newExtent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;df.extent = newExtent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd.save()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del mxd, lyr&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;print "finished"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have expanded on the code to try and make sense of what is going on. I get the extents I need, but cant seem to set the Data Frame extent. You help will be very appreciated, this is driving me insane as it must be something very simple I am missing. Thanks in advance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers ~ Rory&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Mar 2013 03:24:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404322#M31846</guid>
      <dc:creator>RoryHall</dc:creator>
      <dc:date>2013-03-08T03:24:19Z</dc:date>
    </item>
    <item>
      <title>Re: Setting Data frame extent</title>
      <link>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404323#M31847</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;One quick thought.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Isn't df = arcpy.mapping.ListDataFrames(mxd, "")[0] looing for a df without a name?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Shouldn't you use:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
df = arcpy.mapping.ListDataFrames(mxd)[0]
 &lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;or&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;df = arcpy.mapping.ListDataFrames(mxd, "actual df name goes here")[0]
 &lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Jeff&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:25:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404323#M31847</guid>
      <dc:creator>JeffBarrette</dc:creator>
      <dc:date>2021-12-11T18:25:34Z</dc:date>
    </item>
    <item>
      <title>Re: Setting Data frame extent</title>
      <link>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404324#M31848</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Rory,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; I had success running your code (see below), so your simplification for posting eliminated your error source.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Jim&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[HTML]import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd = arcpy.mapping.MapDocument("F:\TestMap\TestMap.mxd")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;df = arcpy.mapping.ListDataFrames(mxd, "")[0]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for lyr in arcpy.mapping.ListLayers(mxd):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "TstResults":&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "found it"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SelectLayerByAttribute_management(lyr)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "selected"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr_extent = lyr.getSelectedExtent()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;print df.extent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;print lyr_extent&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent = df.extent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent.XMin = lyr_extent.XMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent.YMin = lyr_extent.YMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent.XMax = lyr_extent.XMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newExtent.YMax = lyr_extent.YMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;print newExtent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;df.extent = newExtent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd.save()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del mxd, lyr&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;print "finished"[/HTML]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Mar 2013 16:01:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404324#M31848</guid>
      <dc:creator>JimCousins</dc:creator>
      <dc:date>2013-03-08T16:01:51Z</dc:date>
    </item>
    <item>
      <title>Re: Setting Data frame extent</title>
      <link>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404325#M31849</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you gentlemen,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have run this at home and you are right it works just fine, but the mxd I have been working on at work refuses to play ball. All is not lost, I think and I will check on Monday that maybe I have the document set to a fixed extent, which I am hoping is the problem. And to add, that's what I like about python is there are so many ways to do things, gives newbies like myself a bit of slack when experimenting.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I will post again when I check my mxd at work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers ~ Rory&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ps next time I post code I will follow the guidelines&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Mar 2013 20:23:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404325#M31849</guid>
      <dc:creator>RoryHall</dc:creator>
      <dc:date>2013-03-08T20:23:30Z</dc:date>
    </item>
    <item>
      <title>Re: Setting Data frame extent</title>
      <link>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404326#M31850</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That was the problem. I had the document set to Fixed Extent.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;One needs to think out side the box (or in this case the "Shell")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;my working code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;import arcpy mxd = arcpy.mapping.MapDocument("C:\SRWBA\Braemar1959\test.mxd") df = arcpy.mapping.ListDataFrames(mxd)[0]&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.name == "TestLayer":&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; arcpy.SelectLayerByAttribute_management(lyr)&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; lyr_extent = lyr.getSelectedExtent() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SelectLayerByAttribute_management(lyr, "CLEAR_SELECTION")&amp;nbsp; df.extent = lyr_extent df.scale = df.scale * 1.25 mxd.save() del mxd, lyr print "finished"&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks gentlemen&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 10 Mar 2013 23:31:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/setting-data-frame-extent/m-p/404326#M31850</guid>
      <dc:creator>RoryHall</dc:creator>
      <dc:date>2013-03-10T23:31:51Z</dc:date>
    </item>
  </channel>
</rss>

