<?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 arcpy - how to change data source of an annotation feature class? in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/arcpy-how-to-change-data-source-of-an-annotation/m-p/436444#M34335</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a layer file which has a group layer. The group layer has two sub layers, one is a normal SDE feature class, the other is a SDE annotation feature class. My intention is to change the data source of both feature class layers. I have no problem using arcpy to change the data source for the normal feature class, but arcpy treats the annotation class as a group layer, and I am not able to see or change its data source. I am using ArcgIS 10.0. The follow code always gives :"can not describe ... layername" on the annotation layer on desc = arcpy.Describe(lyr).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lyrfile = r"C:\Users\guana\AGS100LayerFiles\Lease_License\Non Nexen Lease - Lexco.lyr"&lt;BR /&gt;target_wspace = r"L:\GIS\GIS_Services\sso@usqa06.sde"&lt;BR /&gt;# where to save the layer files&lt;BR /&gt;savedir = r"C:\Users\guana\AGS100LayerFiles\SSO_QA\Lease_License"&lt;/P&gt;&lt;P&gt;layer = arcpy.mapping.Layer(lyrfile)&lt;/P&gt;&lt;P&gt;for lyr in arcpy.mapping.ListLayers(layer):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hasDataSource = False&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not lyr.isGroupLayer:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Normal layer %s" % (lyr.longName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):&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; hasDataSource = 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; #print lyr.dataSource&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; dest_fname = os.path.join(savedir, lyr.longName)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "%s is a group layer " % (lyr.name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dest_fname = os.path.join(savedir, lyr.name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # see it is an annotation featuer class&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&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; desc = arcpy.Describe(lyr)&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; if desc.dataElement.dataType == "FeatureClass":&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; if (desc.featureType in ["Annotation","CoverageAnnotation"]):&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; print "%s is an annotation layer: dataSource = %s" % (lyr.name, lyr.dataSource)&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; hasDataSource = True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:&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; print "can not describe " + lyr.name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Running this on the annotation feature class always fails:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lyr.replaceDataSource(target_wspace, 'SDE_WORKSPACE', lyr.datasetName, True)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help is greatly&amp;nbsp; apprciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 09 Mar 2015 14:39:59 GMT</pubDate>
    <dc:creator>AllenGuan1</dc:creator>
    <dc:date>2015-03-09T14:39:59Z</dc:date>
    <item>
      <title>arcpy - how to change data source of an annotation feature class?</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-how-to-change-data-source-of-an-annotation/m-p/436444#M34335</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a layer file which has a group layer. The group layer has two sub layers, one is a normal SDE feature class, the other is a SDE annotation feature class. My intention is to change the data source of both feature class layers. I have no problem using arcpy to change the data source for the normal feature class, but arcpy treats the annotation class as a group layer, and I am not able to see or change its data source. I am using ArcgIS 10.0. The follow code always gives :"can not describe ... layername" on the annotation layer on desc = arcpy.Describe(lyr).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lyrfile = r"C:\Users\guana\AGS100LayerFiles\Lease_License\Non Nexen Lease - Lexco.lyr"&lt;BR /&gt;target_wspace = r"L:\GIS\GIS_Services\sso@usqa06.sde"&lt;BR /&gt;# where to save the layer files&lt;BR /&gt;savedir = r"C:\Users\guana\AGS100LayerFiles\SSO_QA\Lease_License"&lt;/P&gt;&lt;P&gt;layer = arcpy.mapping.Layer(lyrfile)&lt;/P&gt;&lt;P&gt;for lyr in arcpy.mapping.ListLayers(layer):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hasDataSource = False&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not lyr.isGroupLayer:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Normal layer %s" % (lyr.longName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if lyr.supports("DATASOURCE"):&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; hasDataSource = 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; #print lyr.dataSource&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; dest_fname = os.path.join(savedir, lyr.longName)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "%s is a group layer " % (lyr.name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dest_fname = os.path.join(savedir, lyr.name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # see it is an annotation featuer class&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&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; desc = arcpy.Describe(lyr)&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; if desc.dataElement.dataType == "FeatureClass":&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; if (desc.featureType in ["Annotation","CoverageAnnotation"]):&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; print "%s is an annotation layer: dataSource = %s" % (lyr.name, lyr.dataSource)&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; hasDataSource = True&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:&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; print "can not describe " + lyr.name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Running this on the annotation feature class always fails:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lyr.replaceDataSource(target_wspace, 'SDE_WORKSPACE', lyr.datasetName, True)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help is greatly&amp;nbsp; apprciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Mar 2015 14:39:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-how-to-change-data-source-of-an-annotation/m-p/436444#M34335</guid>
      <dc:creator>AllenGuan1</dc:creator>
      <dc:date>2015-03-09T14:39:59Z</dc:date>
    </item>
  </channel>
</rss>

