<?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 Map To KML (Conversion) with definition query in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536855#M17824</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi All, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My apologies if this should have been posted elsewhere (python maybe?) - please move if it is.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am attempting to use python to iterate a list of properties and run the MapToKML tool so that it will create a KML showing that cadastral parcel and any surrounding data within the other layers in the MXD. The subject lot is specified by using a definition query on the subject/cadastral layer to show ONLY that lot - the extent of the layer is then used with the MapToKML tool so that the surrounds are picked up.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This all works fine. The issue I am having is that the same extents worth of parcels are being exported from the subject layer also - i.e. Map To KML is not honouring the definition query (see attached - the subject layer is the heavier black line). Is there a way to get this to honour the definition query? Should I be using the Layer To KML (Conversion) and iterating over layers individually? Am I going about this whole process in completely the wrong way - I am not sure - any advice/help welcome &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Gino&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 21 May 2014 06:44:50 GMT</pubDate>
    <dc:creator>GinoMellino</dc:creator>
    <dc:date>2014-05-21T06:44:50Z</dc:date>
    <item>
      <title>Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536855#M17824</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi All, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My apologies if this should have been posted elsewhere (python maybe?) - please move if it is.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am attempting to use python to iterate a list of properties and run the MapToKML tool so that it will create a KML showing that cadastral parcel and any surrounding data within the other layers in the MXD. The subject lot is specified by using a definition query on the subject/cadastral layer to show ONLY that lot - the extent of the layer is then used with the MapToKML tool so that the surrounds are picked up.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This all works fine. The issue I am having is that the same extents worth of parcels are being exported from the subject layer also - i.e. Map To KML is not honouring the definition query (see attached - the subject layer is the heavier black line). Is there a way to get this to honour the definition query? Should I be using the Layer To KML (Conversion) and iterating over layers individually? Am I going about this whole process in completely the wrong way - I am not sure - any advice/help welcome &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Gino&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 May 2014 06:44:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536855#M17824</guid>
      <dc:creator>GinoMellino</dc:creator>
      <dc:date>2014-05-21T06:44:50Z</dc:date>
    </item>
    <item>
      <title>Re: Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536856#M17825</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Gino,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since you are using python on this, if you would post your code it would definitely be helpful in trying to find a solution to your problem. Also you say you have a list of properties that you are trying to do this for, are they all seperate files, or individual records in a single attribute table?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 May 2014 11:24:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536856#M17825</guid>
      <dc:creator>IanMurray</dc:creator>
      <dc:date>2014-05-21T11:24:03Z</dc:date>
    </item>
    <item>
      <title>Re: Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536857#M17826</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Ian, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;See below for my code - please excuse my general messiness as I am new to python. The list of cadastral parcels is just a .txt file with a separate description (lot/plan) on each line. Thanks for you reply, any help is appreciated &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Gino&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;#-------------------PARAMETERS--------------------------------------------------
textfilePath = r"C:\_TEMP_SSD_PERFORMANCE\ToKML Test\SLATS1011_LotPlans2.txt"
mxdPath = r"C:\_TEMP_SSD_PERFORMANCE\ToKML Test\ExportToKMZ.mxd"
outputFolder = r"C:\_TEMP_SSD_PERFORMANCE\ToKML Test\Outputs"
#-------------------------------------------------------------------------------

import arcpy
import os
import re


def ReadTextFile(path):
&amp;nbsp;&amp;nbsp;&amp;nbsp; textFile = open(path, "r")
&amp;nbsp;&amp;nbsp;&amp;nbsp; lines = textFile.readlines()
&amp;nbsp;&amp;nbsp;&amp;nbsp; textFile.close
&amp;nbsp;&amp;nbsp;&amp;nbsp; return lines


def Extract(lotplan, extent):
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outKMZ = os.path.join(outputFolder, lotplan + ".kmz")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(outKMZ):
&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; os.remove(outKMZ)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanextent = re.sub('[A-Za-z]', '', str(extent))

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.MapToKML_conversion(mxdPath,"KMZExportMap", outKMZ,"0","NO_COMPOSITE","VECTOR_TO_IMAGE",cleanextent,"1024","96","CLAMPED_TO_GROUND")
&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception, e:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print e.message




# Get parcel description from .txt file
lotplanList = ReadTextFile(textfilePath)

# Get MXD, etc.
mxd = arcpy.mapping.MapDocument(mxdPath)
df = arcpy.mapping.ListDataFrames(mxd, "KMZExportMap") [0]
subjectLayer = arcpy.mapping.ListLayers(mxd,"Subject Area", df)[0]

# Iterate parcels, apply definition query and export
for lotplan in lotplanList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanlotplan = lotplan.strip()
&amp;nbsp;&amp;nbsp;&amp;nbsp; whereClause = """"LOTPLAN" = '""" + cleanlotplan + "'"
&amp;nbsp;&amp;nbsp;&amp;nbsp; subjectLayer.definitionQuery = whereClause
&amp;nbsp;&amp;nbsp;&amp;nbsp; extent = subjectLayer.getSelectedExtent(False)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print cleanlotplan

&amp;nbsp;&amp;nbsp;&amp;nbsp; Extract(cleanlotplan,extent)

&amp;nbsp;&amp;nbsp;&amp;nbsp; subjectLayer.definitionQuery = None


del subjectLayer
del mxd
del lotplanList&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 23:18:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536857#M17826</guid>
      <dc:creator>GinoMellino</dc:creator>
      <dc:date>2021-12-11T23:18:40Z</dc:date>
    </item>
    <item>
      <title>Re: Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536858#M17827</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Your code looks good. Try saving a copy of the MXD and pass that into the tool. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;#-------------------PARAMETERS--------------------------------------------------
textfilePath = r"C:\_TEMP_SSD_PERFORMANCE\ToKML Test\SLATS1011_LotPlans2.txt"
mxdPath = r"C:\_TEMP_SSD_PERFORMANCE\ToKML Test\ExportToKMZ.mxd"
outputFolder = r"C:\_TEMP_SSD_PERFORMANCE\ToKML Test\Outputs"
#-------------------------------------------------------------------------------

import arcpy
import os
import re


def ReadTextFile(path):
&amp;nbsp;&amp;nbsp;&amp;nbsp; textFile = open(path, "r")
&amp;nbsp;&amp;nbsp;&amp;nbsp; lines = textFile.readlines()
&amp;nbsp;&amp;nbsp;&amp;nbsp; textFile.close
&amp;nbsp;&amp;nbsp;&amp;nbsp; return lines


def Extract(lotplan, extent, tempMXD):
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outKMZ = os.path.join(outputFolder, lotplan + ".kmz")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(outKMZ):
&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; os.remove(outKMZ)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanextent = re.sub('[A-Za-z]', '', str(extent))

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.MapToKML_conversion(tempMXD,"KMZExportMap", outKMZ,"0","NO_COMPOSITE","VECTOR_TO_IMAGE",cleanextent,"1024","96","CLAMPED_TO_GROUND")
&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception, e:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print e.message




# Get parcel description from .txt file
lotplanList = ReadTextFile(textfilePath)

# Get MXD, etc.
mxd = arcpy.mapping.MapDocument(mxdPath)
df = arcpy.mapping.ListDataFrames(mxd, "KMZExportMap") [0]
subjectLayer = arcpy.mapping.ListLayers(mxd,"Subject Area", df)[0]

# Iterate parcels, apply definition query and export
for lotplan in lotplanList:
&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanlotplan = lotplan.strip()
&amp;nbsp;&amp;nbsp;&amp;nbsp; whereClause = """"LOTPLAN" = '""" + cleanlotplan + "'"
&amp;nbsp;&amp;nbsp;&amp;nbsp; subjectLayer.definitionQuery = whereClause
&amp;nbsp;&amp;nbsp;&amp;nbsp; extent = subjectLayer.getSelectedExtent(False)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print cleanlotplan

&amp;nbsp;&amp;nbsp;&amp;nbsp; #save a copy of the mxd with the updated def query 
&amp;nbsp;&amp;nbsp;&amp;nbsp; tempMXD = os.path.join(arcpy.env.scratchFolder, "tempmxd.mxd")
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.saveACopy(tempMXD)

&amp;nbsp;&amp;nbsp;&amp;nbsp; Extract(cleanlotplan,extent, tempMXD)

&amp;nbsp;&amp;nbsp;&amp;nbsp; #delete that temp mxd
&amp;nbsp;&amp;nbsp;&amp;nbsp; os.remove(tempMXD)

&amp;nbsp;&amp;nbsp;&amp;nbsp; subjectLayer.definitionQuery = None


del subjectLayer
del mxd
del lotplanList&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 23:18:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536858#M17827</guid>
      <dc:creator>KevinHibma</dc:creator>
      <dc:date>2021-12-11T23:18:43Z</dc:date>
    </item>
    <item>
      <title>Re: Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536859#M17828</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Kevin, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have plugged an MXD into it and the extraction happens fine...except...the definition query is not honoured by the MapToKML tool. I need the subject lot to be the only parcel from the cadastral layer to be exported to KMZ. At the moment the script will export that parcel and all other parcels from the cadastral layer which are within the extent here. &lt;/SPAN&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt; extent = subjectLayer.getSelectedExtent(False)&lt;/PRE&gt;&lt;SPAN&gt; I think this is just the way the tool works and have now resolved to finding a workaround. The options I am considering are exporting the parcel to a new temporary layer and running MapToKML or attempting to use a uniquevaluerenderer and only add the value for the subject parcel - I am not having any luck with the latter at the moment. When I have a suitable workaround I will post but in the mean time any help is greatly appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Gino&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 May 2014 23:05:54 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536859#M17828</guid>
      <dc:creator>GinoMellino</dc:creator>
      <dc:date>2014-05-22T23:05:54Z</dc:date>
    </item>
    <item>
      <title>Re: Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536860#M17829</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What version are you using?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I just tried in 10.2.2 and a def query on the layer in an mxd is honored.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 May 2014 11:51:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536860#M17829</guid>
      <dc:creator>KevinHibma</dc:creator>
      <dc:date>2014-05-23T11:51:06Z</dc:date>
    </item>
    <item>
      <title>Re: Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536861#M17830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Kevin, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That could be the difference - I am still running 10.1 SP1 as that is what the internal clients I support are running and also I still believe it is the official version for our Dept according to IT &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Perhaps I will need to convince IT to upgrade. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for you help! If I get a workable solution for this in 10.1 I will post it. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Gino&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 25 May 2014 23:11:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536861#M17830</guid>
      <dc:creator>GinoMellino</dc:creator>
      <dc:date>2014-05-25T23:11:40Z</dc:date>
    </item>
    <item>
      <title>Re: Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536862#M17831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Gino,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I dont know if you'll see a difference between 10.1 sp1 and 10.2.2 - I dont recall a lot of issues in regards to KML being fixed there. Most of these issues were fixed in 10.0 sp1-5.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That said, I went back and tested with a cadastral layer as I thought maybe that has something to do with it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not an expert with the fabric layer, but my output KMZ looks the same as the fabric layer inside ArcMap that has a def query.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I put the def query on my yellow colored parcels layer - you can see that the two images look the same. (without the def query all parcels are yellow)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 May 2014 12:07:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536862#M17831</guid>
      <dc:creator>KevinHibma</dc:creator>
      <dc:date>2014-05-26T12:07:01Z</dc:date>
    </item>
    <item>
      <title>Re: Map To KML (Conversion) with definition query</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536863#M17832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Kevin, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;After some re-jigging of the code it appears to be working as you say now, still in 10.1. I believe (not 100% sure on this) the issue was fixed by using the "CURRENT" MXD and making sure .save() was performed on the map document object after the definition query was set. Thank you for your help. I have attached the code in case anyone else may find it useful. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Gino&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;import arcpy import os import re import datetime&amp;nbsp; #-------------------PARAMETERS-------------------------------------------------- textfilePath = arcpy.GetParameterAsText(0) # Path to text file with parcel descriptions. outputFolder = arcpy.GetParameterAsText(1) # Out folder path exportdataCheckbox = arcpy.GetParameterAsText(2) # Checkbox to export data to a geodatabase. #-------------------------------------------------------------------------------&amp;nbsp;&amp;nbsp; def ReadTextFile(path): &amp;nbsp;&amp;nbsp;&amp;nbsp; textFile = open(path, "r") &amp;nbsp;&amp;nbsp;&amp;nbsp; lines = textFile.readlines() &amp;nbsp;&amp;nbsp;&amp;nbsp; textFile.close &amp;nbsp;&amp;nbsp;&amp;nbsp; return lines&amp;nbsp;&amp;nbsp; def ExportKMZ(lotplan): &amp;nbsp;&amp;nbsp;&amp;nbsp; try: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Output file name. If a file of the same name exists then delete it &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # and create a new file&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outKMZ = os.path.join(outputFolder,lotplan, "lot" + lotplan + "_" + today + ".kmz") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(outKMZ): &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; os.remove(outKMZ)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get layer extent rectangle and remove superfluos information. The &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # remaining coordinates should be in format LL UR &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extent = subjectLayer.getSelectedExtent(False)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanextent = re.sub('[A-Za-z]', '', str(extent))&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create KMZ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.MapToKML_conversion(mxd.filePath,"KMZExportMap", outKMZ,"0","NO_COMPOSITE","VECTOR_TO_IMAGE",cleanextent,"1024","96","CLAMPED_TO_GROUND")&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("KMZ exported: " + outKMZ) &amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception, e: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddError(e.message) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print e.message&amp;nbsp;&amp;nbsp; def CreateOutputFolder(cleanlotplan): &amp;nbsp;&amp;nbsp;&amp;nbsp; # Create a project folder if needed &amp;nbsp;&amp;nbsp;&amp;nbsp; global outFolder &amp;nbsp;&amp;nbsp;&amp;nbsp; outFolder = os.path.join(outputFolder,cleanlotplan) &amp;nbsp;&amp;nbsp;&amp;nbsp; if not os.path.exists(outFolder): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.makedirs(outFolder)&amp;nbsp;&amp;nbsp; def ExportSubject(cleanlotplan):&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; # Create a project geodatabase if needed &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not arcpy.Exists(os.path.join(outFolder, "Data_" + today +".gdb")): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFileGDB_management(outFolder, "Data_" + today +".gdb")&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create a subject layer in geodatabase &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; global outGDB # Create object as 'global' as it will be used 'ron &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outGDB = os.path.join(outFolder, "Data_" + today +".gdb") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subjectlayerName = os.path.join(outGDB,"SubjectLot" + cleanlotplan + "_" + today) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(subjectlayerName): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(subjectlayerName)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Export subject features &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CopyFeatures_management(subjectLayer,&amp;nbsp; subjectlayerName ) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Subject parcels exported to: " + subjectlayerName)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del subjectlayerName&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception, e: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddError(e.message) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print e.message&amp;nbsp; def ExportDataToGeodatabase(cleanlotplan): &amp;nbsp;&amp;nbsp;&amp;nbsp; try:&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get extent from 'extent_layer' object &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; desc = arcpy.Describe(subjectLayer) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extent = desc.extent &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.workspace = outGDB &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Old Exten: " + str(arcpy.env.extent)) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.env.extent = extent &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Old Exten: " + str(arcpy.env.extent)) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Iterate layers and export to GDB. Check to see if layer is a &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # featurelayer and is not missing datasources. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layers = arcpy.mapping.ListLayers(mxd)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for layer in layers: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if "Data Group" in layer.longName and layer.isFeatureLayer == True:&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; outlayerPath = os.path.join(outGDB,layer.datasetName +&amp;nbsp; "_" + today) &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.CopyFeatures_management(layer,&amp;nbsp; outlayerPath) &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.AddMessage("Layer (" +&amp;nbsp; layer.name + ") exported to: " + outlayerPath)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Refresh view and TOC &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.RefreshActiveView &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.RefreshTOC&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception, e: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddError(e.message)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; finally: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Reset geoprocessing environment settings &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.ResetEnvironments()&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Subject parcel list: " + textfilePath) arcpy.AddMessage("Output location: " + outputFolder)&amp;nbsp;&amp;nbsp; # Get parcel description from .txt file lotplanList = ReadTextFile(textfilePath)&amp;nbsp;&amp;nbsp; # Get MXD, etc. mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames(mxd, "KMZExportMap") [0] subjectLayer = arcpy.mapping.ListLayers(mxd,"Subject Lot Plan", df)[0]&amp;nbsp; # global variables outFolder = None outGDB = None failedexportList = []&amp;nbsp; # Get date today = re.sub('[-]',"",str(datetime.date.today()))&amp;nbsp; # Iterate items in list for lotplan in lotplanList: &amp;nbsp;&amp;nbsp;&amp;nbsp; try: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Remove whitespace and capitalise lotplan &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanlotplan = lotplan.strip().upper() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Processing lot description: " + cleanlotplan) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; whereClause = """"LOTPLAN" = '""" + cleanlotplan + "'" &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subjectLayer.definitionQuery = whereClause&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Save mxd so the definition query is picked up in the KMZ export &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Use feature count to determine if lot/plan was found. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = int(arcpy.GetCount_management(subjectLayer).getOutput(0))&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Conditional statement to determine if a feature(s) within the subject &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # layer match the lotplan used in definition query. If count is 0 then &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # not matching feature were found - move to next lot/plan. If count &amp;gt; 0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # then the parcel has been found. Call geoprocessing and export routines &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # using the parcels details to create the outputs. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if count &amp;gt; 0: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Found parcel: " + cleanlotplan)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create main output folder for lot description &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateOutputFolder(cleanlotplan)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # If selected export ESRI data &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if str(exportdataCheckbox) == "true": &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; ExportSubject(cleanlotplan) &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; ExportDataToGeodatabase(cleanlotplan)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExportKMZ(cleanlotplan)&amp;nbsp; &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; arcpy.AddWarning("Could not find parcel: " + cleanlotplan) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; failedexportList.append(lotplan)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception, e: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddError(e.message)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; finally: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Always remove deinition query before processing the next lotplan &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subjectLayer.definitionQuery = None&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create text file to store unfound parcel descriptions. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtfilePath = os.path.join(outputFolder,"UnfoundLots_" + today + ".txt") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtFile = open(txtfilePath, "a") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(failedexportList) &amp;gt; 0: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lot in failedexportList: &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; txtFile.write(lot) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtFile.flush() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtFile.close()&amp;nbsp; del txtFile del failedexportList del outFolder del outGDB del subjectLayer del mxd del lotplanList &lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 May 2014 23:26:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/map-to-kml-conversion-with-definition-query/m-p/536863#M17832</guid>
      <dc:creator>GinoMellino</dc:creator>
      <dc:date>2014-05-27T23:26:45Z</dc:date>
    </item>
  </channel>
</rss>

