<?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: loop through  a list of mxds (user input) in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439975#M34497</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, there!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The same as above. Thank you very much!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It was so simple, but without you, I couldn't have done it. I learned something!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Much appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Jerome&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;This should solve the issue,&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy

#set new SDE connection
newSdePath = r"Database Connections\myConnection.sde"

#get mxds as input from user
mxdAr = arcpy.GetParameterAsText(0).split(";")

#parse through the list of mxds, dataframes, layers; change data sources
for mxdItem in mxdAr:
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(mxdItem.strip("'"))
&amp;nbsp;&amp;nbsp;&amp;nbsp; for df in arcpy.mapping.ListDataFrames(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd, ""):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.isFeatureLayer== True:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(newSdePath, "SDE_WORKSPACE","", False)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.RefreshActiveView()
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()
del mxd&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;When you add the script as a tool, in its properties, the user input is set as Map Document and Multivalue.&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 19:41:17 GMT</pubDate>
    <dc:creator>JeromeWeis</dc:creator>
    <dc:date>2021-12-11T19:41:17Z</dc:date>
    <item>
      <title>loop through  a list of mxds (user input)</title>
      <link>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439971#M34493</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello, everybody!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have adapted a script that changes the data sources of the layers in one mxd provided by user input. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;All I want is to have this script accept multiple mxds from user and loop through the script.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I know this situations has been described before, however I was not able to implement the advice found here.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am at the very beginning of my python experience, therefore any help on this would be much, much appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I paste in the code with my trial for multiple mxd input:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#set new SDE connection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;newSdePath = r"Database Connections\myConnection.sde"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#get mxds&amp;nbsp; as input from user&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mxdAr = arcpy.GetParameterAsText(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd = arcpy.mapping.MapDocument(mxdAr)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#parse through the list of mxds, dataframes, layers; change data sources&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for mxdItem in mxd.split(";"):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for df in arcpy.mapping.ListDataFrames(mxd):&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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;&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; if lyr.isFeatureLayer== True:&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;&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.replaceDataSource(newSdePath, "SDE_WORKSPACE","", False)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.RefreshTOC()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.RefreshActiveView()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd.save()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del mxd&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The error i get :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;File "D:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 608, in __init__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert (os.path.isfile(mxd) or (mxd.lower() == "current")), gp.getIDMessage(89004, "Invalid MXD filename")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AssertionError: Invalid MXD filename.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Jan 2013 12:48:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439971#M34493</guid>
      <dc:creator>JeromeWeis</dc:creator>
      <dc:date>2013-01-29T12:48:15Z</dc:date>
    </item>
    <item>
      <title>Re: loop through  a list of mxds (user input)</title>
      <link>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439972#M34494</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Jerome,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You could use the &lt;/SPAN&gt;&lt;A href="http://docs.python.org/2/library/glob.html" rel="nofollow noopener noreferrer" target="_blank"&gt;glob&lt;/A&gt;&lt;SPAN&gt; module to do this.&amp;nbsp; Here is an example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, glob

newSdePath = r"Database Connections\myConnection.sde"

for file in glob.glob(arcpy.GetParameterAsText(0) + r"\*.mxd"):
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(file)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for df in arcpy.mapping.ListDataFrames(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd, ""):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.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; lyr.replaceDataSource(newSdePath, "SDE_WORKSPACE","", False)
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()

del mxd&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the above example, set the data type for 'arcpy.GetParameterAsText' as 'Folder'.&amp;nbsp; The above code will then loop through the specified folder and update all MXDs.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 19:41:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439972#M34494</guid>
      <dc:creator>JakeSkinner</dc:creator>
      <dc:date>2021-12-11T19:41:09Z</dc:date>
    </item>
    <item>
      <title>Re: loop through  a list of mxds (user input)</title>
      <link>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439973#M34495</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This should solve the issue,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy

#set new SDE connection
newSdePath = r"Database Connections\myConnection.sde"

#get mxds as input from user
mxdAr = arcpy.GetParameterAsText(0).split(";")

#parse through the list of mxds, dataframes, layers; change data sources
for mxdItem in mxdAr:
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(mxdItem.strip("'"))
&amp;nbsp;&amp;nbsp;&amp;nbsp; for df in arcpy.mapping.ListDataFrames(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd, ""):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.isFeatureLayer== True:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(newSdePath, "SDE_WORKSPACE","", False)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.RefreshActiveView()
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()
del mxd&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When you add the script as a tool, in its properties, the user input is set as Map Document and Multivalue.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hello, everybody!&lt;BR /&gt;&lt;BR /&gt;I have adapted a script that changes the data sources of the layers in one mxd provided by user input. &lt;BR /&gt;All I want is to have this script accept multiple mxds from user and loop through the script.&lt;BR /&gt;I know this situations has been described before, however I was not able to implement the advice found here.&lt;BR /&gt;I am at the very beginning of my python experience, therefore any help on this would be much, much appreciated.&lt;BR /&gt;I paste in the code with my trial for multiple mxd input:&lt;BR /&gt;&lt;BR /&gt;import arcpy&lt;BR /&gt;&lt;BR /&gt;#set new SDE connection&lt;BR /&gt;newSdePath = r"Database Connections\myConnection.sde"&lt;BR /&gt;&lt;BR /&gt;#get mxds&amp;nbsp; as input from user&lt;BR /&gt;mxdAr = arcpy.GetParameterAsText(0)&lt;BR /&gt;mxd = arcpy.mapping.MapDocument(mxdAr)&lt;BR /&gt;&lt;BR /&gt;#parse through the list of mxds, dataframes, layers; change data sources&lt;BR /&gt;&lt;BR /&gt;for mxdItem in mxd.split(";"):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for df in arcpy.mapping.ListDataFrames(mxd):&lt;BR /&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; for lyr in arcpy.mapping.ListLayers(mxd, ""):&lt;BR /&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; if lyr.isFeatureLayer== True:&lt;BR /&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; lyr.replaceDataSource(newSdePath, "SDE_WORKSPACE","", False)&lt;BR /&gt;arcpy.RefreshTOC()&lt;BR /&gt;arcpy.RefreshActiveView()&lt;BR /&gt;mxd.save()&lt;BR /&gt;del mxd&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;The error i get :&lt;BR /&gt;File "D:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 608, in __init__&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert (os.path.isfile(mxd) or (mxd.lower() == "current")), gp.getIDMessage(89004, "Invalid MXD filename")&lt;BR /&gt;AssertionError: Invalid MXD filename.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you for your help!&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 19:41:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439973#M34495</guid>
      <dc:creator>ChrisPedrezuela</dc:creator>
      <dc:date>2021-12-11T19:41:12Z</dc:date>
    </item>
    <item>
      <title>Re: loop through  a list of mxds (user input)</title>
      <link>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439974#M34496</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you very much! &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I learned something new.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It worked perfectly! It's not my victory...but feels good!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hi Jerome,&lt;BR /&gt;&lt;BR /&gt;You could use the &lt;A href="http://docs.python.org/2/library/glob.html" rel="nofollow noopener noreferrer" target="_blank"&gt;glob&lt;/A&gt; module to do this.&amp;nbsp; Here is an example:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, glob

newSdePath = r"Database Connections\myConnection.sde"

for file in glob.glob(arcpy.GetParameterAsText(0) + r"\*.mxd"):
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(file)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for df in arcpy.mapping.ListDataFrames(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd, ""):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.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; lyr.replaceDataSource(newSdePath, "SDE_WORKSPACE","", False)
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()

del mxd&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;In the above example, set the data type for 'arcpy.GetParameterAsText' as 'Folder'.&amp;nbsp; The above code will then loop through the specified folder and update all MXDs.&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 19:41:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439974#M34496</guid>
      <dc:creator>JeromeWeis</dc:creator>
      <dc:date>2021-12-11T19:41:14Z</dc:date>
    </item>
    <item>
      <title>Re: loop through  a list of mxds (user input)</title>
      <link>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439975#M34497</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, there!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The same as above. Thank you very much!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It was so simple, but without you, I couldn't have done it. I learned something!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Much appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Jerome&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;This should solve the issue,&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy

#set new SDE connection
newSdePath = r"Database Connections\myConnection.sde"

#get mxds as input from user
mxdAr = arcpy.GetParameterAsText(0).split(";")

#parse through the list of mxds, dataframes, layers; change data sources
for mxdItem in mxdAr:
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = arcpy.mapping.MapDocument(mxdItem.strip("'"))
&amp;nbsp;&amp;nbsp;&amp;nbsp; for df in arcpy.mapping.ListDataFrames(mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in arcpy.mapping.ListLayers(mxd, ""):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.isFeatureLayer== True:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(newSdePath, "SDE_WORKSPACE","", False)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.RefreshActiveView()
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()
del mxd&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;When you add the script as a tool, in its properties, the user input is set as Map Document and Multivalue.&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 19:41:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/loop-through-nbsp-a-list-of-mxds-user-input/m-p/439975#M34497</guid>
      <dc:creator>JeromeWeis</dc:creator>
      <dc:date>2021-12-11T19:41:17Z</dc:date>
    </item>
  </channel>
</rss>

