<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal-compose;
        font-family:"Arial","sans-serif";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>I love creating dynamically placed labels, and Maplex to this day is one of my favorite things to work with in ArcMap. Unfortunately, not everyone likes or has the patience to orchestrate and fine tune an ecosystem of beautifully placed labels so we are stuck maintaining geodatabase annotation.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>If any of you have ever needed to reproject an annotation feature class you may have noticed that if you use the project tool your newly created annotations be poorly aligned/improperly transformed etc. When you are going from “NAD27 Florida West US Feet,” to “NAD83 HARN US Feet” the shift is both apparent and embarrassing. So what do you do when the tools fail you? You find some other tools and bend them to your mercy…<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>I found an old document on the web outlining roughly how to do these steps manually:<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:12.0pt'><a href="http://support.esri.com/en/knowledgebase/techarticles/detail/27857">http://support.esri.com/en/knowledgebase/techarticles/detail/27857</a> (It says that the current project tool fixes this issue, but I don’t believe it does).<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>…but I’ve got a whole bunch of annotation datasets that I need to regularly consume and no time to babysit them so we have the result below:<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><img border=0 width=1489 height=621 id="_x0000_i1029" src="cid:image005.jpg@01CCD76A.CA0C7120" alt="Export Graphic.jpg"></span><span style='font-family:"Arial","sans-serif";color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>The Iterate Feature Classes tool allows you to specify a workspace and recursively search for specific data types. In this case I’m looking for annotation feature types. The output of the iterator is a name variable that gives the dataset’s name. Since I’m in SDE I have a prefix in my Name variable that I want to strip out. With the parse path tool I chose the option file extension because I want everything to the right of the period in my name. So for instance Name = ‘EGIS.data’ but Data Name will = ‘data’ only. Not everyone is going to need to go this far to pass the correct name variable to the output location so you will need to adjust accordingly.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>Now, since there isn’t a geoprocessing tool to create an empty annotation feature class (That I know of) I’m using the Feature Class to Feature Class tool with a selection query: OBJECTID is null, to create an empty annotation feature class in the data source’s NAD27 Florida West US Feet projection. I had originally tried the Make Feature Layer tool, however the Project step afterwards would actually project the entire dataset first, then honor my definition query of OBJECTID is null to produce the empty dataset so the Feature Class to Feature Class tool was more advantageous. Next, the Project tool takes my empty dataset and creates a new copy of the data in the desired output location in NAD83 HARN Florida West US feet projection I also set the transformation here since I can reuse the variables in the Append Annotation tool (Attached as environmental Variables). I had also tested moving the data over and just using the Define Projection tool to overwrite the settings, but the results were a bit flakey, and I actually received a ST_SRID geometry error at one point, but this could have been a database related issue. …There are always options </span><span style='font-family:Wingdings;color:black'>J</span><span style='font-family:"Arial","sans-serif";color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>After the data dataset get’s created where we want it, and has the correct projection I delete my temporary feature class, and run the Append Annotation tool. I am using the Select Data Model Builder only tool as an intermediate step to pass data from the source to the Append Annotation Feature Classes tool because this particular tool does not like to be connected directly to the iterator (It just won’t validate). In the final step I’m using the Model’s workspace environment (Set in the Model Properties dialog box), and variable substitution to supply the correct output dataset: “Database Connections\some_db.sde\schema.%Data Name%”<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>Some of this may be a bit confusing but if you read through the manual steps it should help. As a special note, you MUST set the environment variables on the Append Annotation Feature Classes tool or it will NOT work as intended. I don’t think it’s any documentation explicitly or implied so you have been warned…<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>Small dashes are preconditions, long dashes are the environment variable connectors, and the double dash from Name is a connection and precondition.<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'>Have fun, and I hope this helps anyone beleaguered with annotation!<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'>Jason Griffin</span></b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'><br>GIS Developer<br>Pinellas County Business Technology Services<br>400 S Fort Harrison Ave, Clearwater FL 33756<br>Phone (727) 453-3613<br>Cell (727) 600-6634<br></span><a href="mailto:jgriffin@pinellascounty.org"><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue'>jgriffin@pinellascounty.org</span></a><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'><br><br>Follow Pinellas County: <br></span><a href="http://twitter.com/pinellasconews" target="_blank"><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue;text-decoration:none'><img border=0 width=32 height=32 id="Picture_x0020_1" src="cid:image001.gif@01CCD693.D258E700" alt="cid:image001.gif@01CCD693.D258E700"></span></a><a href="http://www.facebook.com/PinellasCountyNews" target="_blank"><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue;text-decoration:none'><img border=0 width=32 height=32 id="Picture_x0020_2" src="cid:image002.gif@01CCD693.D258E700" alt="cid:image002.gif@01CCD693.D258E700"></span></a><a href="http://www.youtube.com/pcctv1" target="_blank"><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue;text-decoration:none'><img border=0 width=32 height=32 id="Picture_x0020_3" src="cid:image003.gif@01CCD693.D258E700" alt="cid:image003.gif@01CCD693.D258E700"></span></a><a href="http://www.pinellascounty.org/social-networking.htm"><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue;text-decoration:none'><img border=0 width=32 height=32 id="Picture_x0020_4" src="cid:image004.gif@01CCD693.D258E700" alt="cid:image004.gif@01CCD693.D258E700"></span></a><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'><br></span><a href="http://www.pinellascounty.org/"><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue'>www.pinellascounty.org</span></a><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'><br></span><a href="http://www.pinellascounty.org/news_subscription.htm"><i><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue'>Subscribe to county updates and news</span></i></a><i><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'><br><br></span></i><i><span style='font-size:8.0pt;font-family:"Arial","sans-serif";color:black'>All government correspondence is subject to the public records law.</span></i><span style='color:black'><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>