<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">
    <title>The Topobase Insiders</title>
    
    <link rel="hub" href="http://hubbub.api.typepad.com/" />
    <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/" />
    <id>tag:typepad.com,2003:weblog-1290158</id>
    <updated>2009-10-30T08:25:14-07:00</updated>
    
    <generator uri="http://www.typepad.com/">TypePad</generator>
    <link rel="self" href="http://feeds.feedburner.com/TheTopobaseInsiders" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
        <title>The Topobase Links Compendium</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/topobase-links-compendium.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/topobase-links-compendium.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a63d8cbe970b</id>
        <published>2009-10-30T08:25:14-07:00</published>
        <updated>2009-10-30T08:25:14-07:00</updated>
        <summary>You are searching for Topobase related information? Of course you are already on the right website: The Topobase Insiders. But there are plenty of other websites and resources available. Here are the links: Knowledge Base Online Help Documentation Updates and...</summary>
        <author>
            <name>Andreas Boos</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Announcement" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Weblogs" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="RSS" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Topobase Links" />
        
<content type="xhtml" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>You are searching for Topobase related information? Of course you are already on the right website: <a href="http://topobaseinsiders.typepad.com/">The Topobase Insiders</a>. But there are plenty of other websites and resources available. </p>
<p>Here are the links: </p>
<ul>
<li><a href="http://usa.autodesk.com/adsk/servlet/ps/kb/autoindex?siteID=123112&amp;id=2334144&amp;linkID=9242778">Knowledge Base</a> 
<li><a href="http://docs.autodesk.com/TOPOBSCLNT/2010/ENU/Autodesk%20Topobase%202010%20User%20Documentation/index.html">Online Help</a> 
<li><a href="http://usa.autodesk.com/adsk/servlet/index?siteID=123112&amp;id=11614664">Documentation</a> 
<li><a href="http://usa.autodesk.com/adsk/servlet/ps/dl/index?siteID=123112&amp;id=2334435&amp;linkID=9242779">Updates and Service Packs</a> 
<li><a href="http://discussion.autodesk.com/forums/forum.jspa?forumID=235">Discussion Groups</a> 
<li><a href="http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&amp;id=7230983">White Papers</a> 
<li><a href="http://www.autodeskconsulting.eu/index.php?option=com_content&amp;view=article&amp;id=2706">Subscription Support</a> 
<li><a href="http://www.autodeskconsulting.eu/index.php?option=com_sobi2&amp;Itemid=22">Marketplace</a> 
<li><a href="http://www.tug-ch.ch/">User Group Switzerland</a> 
<li><a href="http://www.topobase-usergroup.eu/">User Group Germany</a> </li>
</li></li></li></li></li></li></li></li></li></ul>
<p>To make it easier to keep all your information in one place – add the Topobase Insiders blog (and other websites) to Outlook – then you’ll always be up to date. Or if you already use another RSS service, add us at <a href="http://feeds.feedburner.com/TheTopobaseInsiders">http://feeds.feedburner.com/TheTopobaseInsiders</a></p>
<p>How to add an RSS Feed through the Microsoft Office Outlook 2007 Account Settings dialog box: </p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a692d9c3970c-pi" style="FLOAT: left"><img alt="Rss" class="asset asset-image at-xid-6a00d834cd50f869e20120a692d9c3970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a692d9c3970c-100wi" style="MARGIN: 0px 5px 5px 0px; WIDTH: 100px" /></a> 1.    Copy this URL to the clipboard <a href="http://feeds.feedburner.com/TheTopobaseInsiders">http://feeds.feedburner.com/TheTopobaseInsiders</a>.<br />2.    On the Tools menu, click Account Settings. <br />3.    On the RSS Feeds tab, click New. <br />4.    In the New RSS Feed dialog box, paste the URL. <br />5.    Click Add. <br />6.    On the RSS Feed Options dialog click OK.<br /></p></div>
</content>


    </entry>
    <entry>
        <title>Topobase User Group in Switzerland</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/topobase-user-group-in-switzerland.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/topobase-user-group-in-switzerland.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a633c7c9970b</id>
        <published>2009-10-29T08:39:00-07:00</published>
        <updated>2009-10-29T08:39:00-07:00</updated>
        <summary>Yesterday I had a chance to attend the Topobase User Group event in Bern, Switzerland. More than 100 customers participated at the event in the Stade de Suisse: ...and no, we didn't play soccer against our customers and partners :-)...</summary>
        <author>
            <name>Andreas Boos</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Announcement" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="Topobase 2010" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Topobase User Group" />
        
<content type="xhtml" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Yesterday I had a chance to attend the Topobase User Group event in Bern, Switzerland. More than 100 customers participated at the event in the Stade de Suisse: </p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633be3d970b-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="Sds" class="asset asset-image at-xid-6a00d834cd50f869e20120a633be3d970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633be3d970b-400wi" style="WIDTH: 400px" /></a> </p>
<p>...and no, we didn't play soccer against our customers and partners :-)</p>
<p>We had one customer who showed his Topobase 2010 implementation (pssst! over Citrix), we had partners (<a href="http://www.cadinsider.ch/">CADPartner</a>, <a href="http://www.mum.ch/">MuM</a>, <a href="http://www.geobox.ch/">Geobox</a> and Intercad) presenting their solutions and we had Autodesk employees showing the new features of Topobase 2010. I personally liked all the presentations and I thought it was a great event with lots of information shared. </p>
<p>Thanks everybody for making that happen! </p>
<p>Here are some pictures: </p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a68a718c970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline" />
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633d977970b-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="TUG 2009 1" class="asset asset-image at-xid-6a00d834cd50f869e20120a633d977970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633d977970b-400wi" style="WIDTH: 400px" /></a> <br /><em>Matthias Liechti in action</em></p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a68a721e970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline" />
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a68a7267970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="TUG 2009 2" class="asset asset-image at-xid-6a00d834cd50f869e20120a68a7267970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a68a7267970c-400wi" style="WIDTH: 400px" /></a> <br /><br /><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633dba4970b-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="TUG 2009 3" class="asset asset-image at-xid-6a00d834cd50f869e20120a633dba4970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633dba4970b-400wi" style="WIDTH: 400px" /></a> <br /><em>Live demo of Topobase 2010 Electric CE <br /></em><br /><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a68a74dd970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline" /><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633dcb2970b-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="TUG 2009 4" class="asset asset-image at-xid-6a00d834cd50f869e20120a633dcb2970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633dcb2970b-400wi" style="WIDTH: 400px" /></a> <br /><br /> </p></div>
</content>


    </entry>
    <entry>
        <title>The Geospatial Navigator</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/the-geospatial-navigator.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/the-geospatial-navigator.html" thr:count="1" thr:updated="2009-10-29T08:03:11-07:00" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a689902e970c</id>
        <published>2009-10-29T07:58:14-07:00</published>
        <updated>2009-10-29T07:58:14-07:00</updated>
        <summary>There is a new geospatial blog in the web! Some weeks ago two of our colleagues at Autodesk, Matthias Liechti and Markus Briglmeir started their own odyssey with their new (german) blog The Geospatial Navigator. We wish all the best...</summary>
        <author>
            <name>Andreas Boos</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Announcement" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Weblogs" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>There is a new geospatial blog in the web! Some weeks ago two of our colleagues at Autodesk, <a href="http://geospatialnavigator.typepad.com/geospatial_navigator/matthias-liechti.html" target="_blank">Matthias Liechti</a> and <a href="http://geospatialnavigator.typepad.com/geospatial_navigator/markus-briglmeir.html">Markus Briglmeir</a> started their own odyssey with their new (german) blog <a href="http://geospatialnavigator.typepad.com/geospatial_navigator/">The Geospatial Navigator</a>. </p>
<p>We wish all the best and a long future! Please do me a favour and <a href="http://geospatialnavigator.typepad.com/geospatial_navigator/">visit</a> them right now. </p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a68a481a970c-pi" style="DISPLAY: inline" /><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633b776970b-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="GeospatialNavigator" class="asset asset-image at-xid-6a00d834cd50f869e20120a633b776970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a633b776970b-400wi" style="WIDTH: 400px" /></a>  <br /><em>From left to right: Derrick, Matthias, Markus, Andreas</em><br /> </p></div>
</content>


    </entry>
    <entry>
        <title>Topobase in the News - Helping Utilities</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/topobase-in-the-news-helping-utilities.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/topobase-in-the-news-helping-utilities.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a60b48a5970b</id>
        <published>2009-10-21T16:56:00-07:00</published>
        <updated>2009-10-21T16:56:00-07:00</updated>
        <summary>An interesting article showed up on the October cover of Utility Products magazine highlighting how computers and software enable progress for utilities. Topobase, as well as Autodesk Utility Design and AutoCAD Map 3D are highlighted in the article. The article...</summary>
        <author>
            <name>Jeff Saunders</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p class="MsoPlainText"&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;An interesting article showed up on the October cover of &lt;em&gt;&lt;a href="http://www.elp.com/index/display/article-display/8420074376/articles/utility-products/volume-6/issue-10/feature-story/power-generator_monitoring.html#" target="_blank"&gt;Utility Products&lt;/a&gt;&lt;/em&gt;
magazine highlighting how computers and software enable progress for
utilities. &lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Topobase&lt;/span&gt;&lt;/strong&gt;, as well as Autodesk Utility Design and AutoCAD Map 3D are
highlighted in the article.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoPlainText"&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;The article
examines the role computers and software play in the progression of utilities
through their incorporation into daily work. The article also highlights how
Autodesk solutions are driving progress in new infrastructure design, aging
assets management and improvements&amp;#0160;for grid
modernization.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText"&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;
Key Quotes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol;mso-bidi-font-weight:bold"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;Ask
anybody who is trying to design new infrastructure, manage aging network
assets, or plan improvements for grid modernization and the great challenge in
many communities is to know what is already in place. Without that information,
progress is difficult. &lt;strong&gt;Utilities need to minimize backlogs quickly and
easily, and they need access to a unified view of infrastructure data. Help from
Autodesk to achieve these goals has been praised frequently.&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;They
(Utilities) are using Autodesk software tools to create and maintain maps,
network layouts, and facility information. With such accurate information the
workers of tomorrow will have far fewer difficulties than they have seen in
recent decades. The software gets the work done more quickly and reduces
errors. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;The
design qualities that may have been inferior in the past can now be first rate.
Using this software, utilities have reported reduced project backlogs, with
some work being accomplished 10 to 15 times faster!&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoPlainText" style="margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1"&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;&lt;span style="font-family: Arial, sans-serif; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol;mso-bidi-font-weight:bold"&gt;&lt;span style="mso-list:Ignore"&gt;·&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;&amp;#0160;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;With
Autodesk (one of the most popular quiet helpers with 9 million professionals
using it in 180+ countries) utilities are bridging the gap between CAD and GIS
to improve design efficiency and extend the accuracy, precision, and value of
infrastructure information in order to design and manage networks more
efficiently than ever before.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol;mso-bidi-font-weight:bold"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:&amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>MailTo Button</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/mail-button.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/mail-button.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a6386372970c</id>
        <published>2009-10-13T13:05:58-07:00</published>
        <updated>2009-10-13T13:02:32-07:00</updated>
        <summary>Here's an easy way to facilitate sending an email from a Topobase form that contains some of the current record attribute values . Just create a script button that forms a mailto: URL and let the default handling of the...</summary>
        <author>
            <name>Derrick Oswald</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Here's an easy way to facilitate sending an email from a Topobase form that contains some of the current record attribute values .&lt;/p&gt;

&lt;p&gt;&lt;a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a6385c09970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="float: right;"&gt;&lt;img  alt="Script button" class="asset asset-image at-xid-6a00d834cd50f869e20120a6385c09970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a6385c09970c-300wi" style="margin: 0px 0px 5px 5px; width: 300px;" /&gt;&lt;/a&gt;
Just create a script button that forms a &lt;b&gt;mailto:&lt;/b&gt; URL and let the default handling of the operating system take over. This can be accomplished with script similar to the following:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
&lt;font style='font-size: 90%'&gt;
&lt;span style='color:#0000FF'&gt;Public Overrides Sub&lt;/span&gt; Button_Click()

   &lt;span style='color:#0000FF'&gt;dim&lt;/span&gt; mail &lt;span style='color:#0000FF'&gt;as string&lt;/span&gt;
   &lt;span style='color:#0000FF'&gt;dim&lt;/span&gt; subject &lt;span style='color:#0000FF'&gt;as string&lt;/span&gt;
   &lt;span style='color:#0000FF'&gt;dim&lt;/span&gt; body &lt;span style='color:#0000FF'&gt;as string&lt;/span&gt;
   &lt;span style='color:#0000FF'&gt;dim&lt;/span&gt; circuit_cfg &lt;span style='color:#0000FF'&gt;as string&lt;/span&gt;
   &lt;span style='color:#0000FF'&gt;dim&lt;/span&gt; start_date &lt;span style='color:#0000FF'&gt;as string&lt;/span&gt;
   &lt;span style='color:#0000FF'&gt;dim&lt;/span&gt; url &lt;span style='color:#0000FF'&gt;as string&lt;/span&gt;

   mail = "Fictitious Person &amp;lt;fictitious.person@gmail.com&amp;gt;"
   subject = "Circuit Status"
   &lt;span style='color:#0000FF'&gt;if&lt;/span&gt; (&lt;span style='color:#0000FF'&gt;me&lt;/span&gt;.BoolValue ("IS_CIRCUIT_CONFIGURED")) &lt;span style='color:#0000FF'&gt;then&lt;/span&gt;
      circuit_cfg = "not configured"
   &lt;span style='color:#0000FF'&gt;else&lt;/span&gt;
      circuit_cfg = "configured"
   &lt;span style='color:#0000FF'&gt;end if&lt;/span&gt;
   &lt;span style='color:#0000FF'&gt;if&lt;/span&gt; (&lt;span style='color:#0000FF'&gt;me&lt;/span&gt;.IsNull ("DATE_STARTUP")) &lt;span style='color:#0000FF'&gt;then&lt;/span&gt;
      start_date = " today"
   &lt;span style='color:#0000FF'&gt;else&lt;/span&gt;
      start_date = " on " &amp; me.StrValue ("DATE_STARTUP")
   &lt;span style='color:#0000FF'&gt;end if&lt;/span&gt;
   body = "The circuit is " &amp; circuit_cfg &amp; start_date &amp; "."
  
   subject = System.Uri.EscapeUriString(subject)
   body = System.Uri.EscapeUriString(body)

   url = "mailto:" &amp; mail &amp; "?subject=" &amp; subject &amp; "&amp;body=" &amp; body 
   &lt;span style='color:#0000FF'&gt;me&lt;/span&gt;.Application.OpenUrl(url)

&lt;span style='color:#0000FF'&gt;End Sub&lt;/span&gt;
&lt;/font&gt;
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;The &lt;b&gt;mailto:&lt;/b&gt; protocol is described in &lt;a href="http://ftp.isi.edu/in-notes/rfc2368.txt"&gt;RFC 2368&lt;/a&gt; and on &lt;a href="http://msdn.microsoft.com/en-us/library/aa767737%28VS.85%29.aspx"&gt;MSDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Basically the code forms a single line URL by concatenating various values from the current record of the form. The one trick is to escape the strings to form a valid &lt;b&gt;mailto:&lt;/b&gt; URL. Then the URL is passed to the operating system via &lt;code&gt;OpenUrl()&lt;/code&gt; which (if there is a mail client configured) will prepare an email for sending. The user need only press the &lt;b&gt;Send&lt;/b&gt; button.&lt;/p&gt;

&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>Logging Events</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/logging-events.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/10/logging-events.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a6142825970c</id>
        <published>2009-10-05T01:29:19-07:00</published>
        <updated>2009-10-05T01:29:19-07:00</updated>
        <summary>Two years ago I wrote about the event log of Topobase. We introduced this new feature with Topobase 2008. For every Topobase crash which happens we add an entry in the log file: /log/ApplicationLog.xml. You find further details in the...</summary>
        <author>
            <name>Andreas Boos</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Programming" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="API" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Log4net" />
        <category scheme="http://sixapart.com/ns/types#tag" term="logging" />
        
<content type="xhtml" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Two years ago I wrote about the event log of Topobase. We introduced this new feature with Topobase 2008. For every Topobase crash which happens we add an entry in the log file: /log/ApplicationLog.xml. You find further details in the <a href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2007/09/logging-events.html">original blog post</a>. </p>
<p>But the log is not only for crashes, we can also use it to log warnings, information messages or debug information. If you need to trace down a problem on customer side the answer could be in this file. </p>
<p>I'll try to explain how you can also log your events into the log file. Because like every other built-in Topobase functionality you can also access this one from your own plug-in! </p>
<p>First of all you have to add the log4net.dll as a reference to the solution. You find this assembly in the bin directory of the Topobase Client or Administrator. After you have done that you can get the log instance from the LogManager: </p>
<p><font face="Courier">  using log4net;</font></p>
<p><font face="Courier">  ILog log = LogManager.GetLogger(GetType());</font></p>
<p>The log instance now provides different logging methods. You can either log fatal events, errors, warnings, information events or debug events. Here is an example how to log an information message (with the formatting option applied): </p>
<p><font face="Courier">  log.InfoFormat("Date of today is: {0}", DateTime.Now);</font></p>
<p>That's it! </p>
<p>You should be aware that the user defines what should be logged and what not. Depending on the log level this message will now be written into the log file. In this case (an INFO event) the user has to set the log level as high as either ALL, DEBUG or INFO. If the log level is set to ERROR for instance, this message is not written to the log file. That's why you can (and should because of performance) check if the event will be written at all: </p>
<p><font face="Courier">  if (log.IsInfoEnabled)<br />  { <br />    log.InfoFormat("Date of today is: {0}", DateTime.Now);<br /></font><font face="Courier">  }</font></p>
<p>If you need more information about the log4net API you find it in the log4net SDK reference: <a href="http://logging.apache.org/log4net/release/sdk/index.html">http://logging.apache.org/log4net/release/sdk/index.html</a></p></div>
</content>


    </entry>
    <entry>
        <title>Oracle Data Import – Feature classes</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/09/oracle-data-import-feature-classes.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/09/oracle-data-import-feature-classes.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a5f02e91970c</id>
        <published>2009-09-25T08:06:39-07:00</published>
        <updated>2009-09-25T08:08:07-07:00</updated>
        <summary>In the previous posts, I explained how to enable a Topobase document for import with the Oracle data import tool (here) and how to link domains (here). In this article you will see how to link feature classes. The external...</summary>
        <author>
            <name>Vanessa Rojas</name>
        </author>
        
        
<content type="xhtml" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>In the previous posts, I explained how to enable a Topobase document for import with the Oracle data import tool (<a href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/oracle-data-import.html" target="_blank">here</a>) and how to link domains (<a href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/06/oracle-data-import-domains.html" target="_blank">here</a>).  In this article you will see how to link feature classes.</p>
<p><br />The external Oracle schema SIMROSEWATER has the table WMAIN that stores the geometry and attribute data of the water pipes.  You will migrate the pipe attribute data to the table WA_PIPE in the Topobase schema (ATORAMIG).</p>
<p><br />Open the Oracle data import tool. Select the mapping definition that you created in the previous post, and click <strong>Edit</strong>. The Edit Mapping Definition window is displayed.</p>
<p><br />In the Feature Classes tab, select <strong>WMAIN</strong> under Source Feature Classes for SIMROSEWATER.  Select <strong>WA_PIPE</strong> under Final Feature Classes for ATORAMIG. Click <strong>Link feature classes</strong> to link the tables.<br />
<p class="asset asset-image"><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5f03048970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="Link feature classes" class="at-xid-6a00d834cd50f869e20120a5f03048970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5f03048970c-320wi" /></a> </p>
<p><br />Now you will link the attributes.  Select the <strong>Feature Attributes</strong> tab. Note the columns of the WMAIN table on the left side and the columns of the WA_PIPE feature class on the right side.</p>
<p><br />It is recommended that you create all the columns that don’t exist in WA_PIPE by clicking <strong>Copy columns</strong>.  Once the new columns are created you can link columns automatically by clicking  <strong>Autolink</strong>.  In the Auto Link specify that you want to link the columns with the same name.  </p>
<p>Finally you can link manually the columns that were not linked by clicking <strong>Link attributes</strong>.  <br /></p>
<p />
<p>
<p class="asset asset-image"><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a59986fb970b-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="Link feature attributes" class="at-xid-6a00d834cd50f869e20120a59986fb970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a59986fb970b-320wi" /></a> </p>
<p class="asset asset-image">Now you will link the columns that have a relation with a domain.  In the previous post you linked the SIMROSEWATER.MATERIAL table with the Topobase material domain (ATORAMIG.WA_MATERIAL_TBD).  </p>
<p class="asset asset-image"><br />So you need to link the column MAT_CODE with ID_MATERIAL.  Select both columns and click <strong>Link attributes</strong>.  The attributes are linked; the application creates a function converting MAT_CODE  to a numeric value because the target column (ID_MATERIAL) is numeric.  Select the linked entry and click <strong>Edit properties</strong> on the right side<br /></p>
<p class="asset asset-image">
<p class="asset asset-image"><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5f0328d970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="Link attributes with domain" class="at-xid-6a00d834cd50f869e20120a5f0328d970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5f0328d970c-320wi" /></a> </p>
<p class="asset asset-image">The Edit Properties window is displayed. Under Source Attribute or SQL Statement for SIMROSEWATER, replace the function with <strong>MAT_CODE</strong>. From the Select a linked Domain combo box, select the reference to the domain i.e.  <strong>2:MATERIAL.MAT_CODE -&gt; WA_MATERIAL_TBD.ID.</strong></p>
<p class="asset asset-image">
<p class="asset asset-image"><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5f033bc970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="Edit properties" class="at-xid-6a00d834cd50f869e20120a5f033bc970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5f033bc970c-320wi" /></a> </p>
<p>Click <strong>Save</strong>.  The Properties of the link are updated, showing the relation to the domain.</p>
<p />
<p class="asset asset-image">
<p class="asset asset-image"><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5f0341f970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" style="DISPLAY: inline"><img alt="Linked attribute" class="at-xid-6a00d834cd50f869e20120a5f0341f970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5f0341f970c-320wi" /></a> </p>
<p>Once all the feature classes and attributes are linked, you can execute the import.  In the next post you will see how to test and execute the Oracle Data Import tool.</p>
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p /></p></p></p></p></p></div>
</content>


    </entry>
    <entry>
        <title>Annotation Layers</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/09/annotation-layers.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/09/annotation-layers.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a5c7ba17970c</id>
        <published>2009-09-15T13:54:10-07:00</published>
        <updated>2009-09-15T13:52:59-07:00</updated>
        <summary>For many years now, it's been a pet peeve of mine that you couldn't select a label unless the label point was also symbolized. For a Topobase label class, which is supposed to be just a label, this was especially...</summary>
        <author>
            <name>Derrick Oswald</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a style="float: right;" href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5c7fd2c970c-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false"&gt;&lt;img  class="at-xid-6a00d834cd50f869e20120a5c7fd2c970c " style="margin: 0px 0px 5px 5px; width: 300px;" alt="Add to Map" src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5c7fd2c970c-300wi" /&gt;&lt;/a&gt;

&lt;p&gt;For many years now, it's been a pet peeve of mine that you couldn't select a label unless the label point was also symbolized. For a Topobase label class, which is supposed to be just a label, this was especially annoying. Obviously, there are ways to make the label point unobtrusive and one soon gets used to selecting a label by using a window, but &lt;b&gt;annotation layers&lt;/b&gt; don't have this problem.&lt;/p&gt;

&lt;p&gt;First, a little explanation about how to create annotation layers. If you add layers manually using the Data Connect dialog, you have the opportunity to use &lt;b&gt;Enhanced Stylization&lt;/b&gt; by clicking the little arrow on the right hand side of the &lt;code&gt;Add to Map&lt;/code&gt; button.&lt;/p&gt;

&lt;p&gt;Adding a label class, one that has a name ending in &lt;code&gt;_TBL&lt;/code&gt;, results in the addition of an annotation layer. This even works if you use the Oracle provider. However, if you generate graphics with the default display model, there is no opportunity to specify enhanced stylization... until now.&lt;/p&gt;

&lt;a style="float: left;" href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5717026970b-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false"&gt;&lt;img  class="at-xid-6a00d834cd50f869e20120a5717026970b " style="margin: 0px 5px 5px 0px; width: 250px;" alt="Style Text Layer" src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a5717026970b-250wi" /&gt;&lt;/a&gt;

&lt;p&gt;The style for an annotation layer is meant for rendering text. One could, of course, add a standard label to the label, but that would be counterproductive.&lt;/p&gt;

&lt;p&gt;The style editor for an annotation layer is similar to the standard label style editor, but adds expression builder support for editing the values and a choice of two types of text - MText and Plain.&lt;/p&gt;

&lt;p&gt;If you like the behavior of annotations better than point labels, and are satisfied with the performance, you can make annotations the default for label classes by setting up a layer template.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A word of caution is in order, because this involves modifying the Topobase system tables.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Start by saving an annotation layer. The extension of this template file should probably be changed from &lt;code&gt;.layer&lt;/code&gt; to &lt;code&gt;.LayerDefinition&lt;/code&gt;. Move or copy the file to a location that is accessible by all users or is the same for all users.&lt;/p&gt;

&lt;p&gt;Edit the template file with a text editor - it's XML - and only keep the LayerDefinition:
&lt;pre&gt;&lt;code&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;LayerDefinition&lt;/span&gt; ... &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;LayerDefinition&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;Then add a record to the &lt;code&gt;TB_SETTINGS&lt;/code&gt; table in &lt;strong&gt;TBSYS&lt;/strong&gt; - &lt;em&gt;not the document &lt;code&gt;TB_SETTINGS&lt;/code&gt;&lt;/em&gt;:
&lt;pre&gt;&lt;code&gt;insert into tb_settings (id, user_id, itemthema, itemkey, itemvalue) values &lt;br&gt;(tb_settings_s1.nextval, (select id from tb_user where username='TOPOBASE'),&lt;br&gt;'DISPLAYMODEL', 'PATHLABELTEMPLATE', '&lt;em&gt;&amp;lt;filename&amp;gt;&lt;/em&gt;')&lt;/code&gt;&lt;/pre&gt;
where the filename (itemvalue) is the name of the template file. The username should be adjusted if you aren't using &lt;code&gt;TOPOBASE&lt;/code&gt;. Commit, and this template will be used for creating label feature classes.&lt;/p&gt;

&lt;p&gt;Other possibilities for the itemkey are also possible. This can be very useful when generating display models for large data models, even if you don't keep the templates as the defaults. Here's a small table of the possible values.&lt;/p&gt;

&lt;blockquote&gt;
&lt;table class="MsoTableLightList" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;
 &lt;tbody&gt;&lt;tr&gt;
 &lt;td style="border-style: solid none none solid; border-color: black -moz-use-text-color -moz-use-text-color black; border-width: 1pt medium medium 1pt; padding: 0cm 5.4pt; background: black none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;" valign="top"&gt;
 &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;strong&gt;&lt;span style="color: white;"&gt;ITEMKEY&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
 &lt;/td&gt;
 &lt;td style="border-style: solid solid none none; border-color: black black -moz-use-text-color -moz-use-text-color; border-width: 1pt 1pt medium medium; padding: 0cm 5.4pt; background: black none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;" valign="top"&gt;
 &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;strong&gt;&lt;span style="color: white;"&gt;Purpose&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="border-style: solid none solid solid; border-color: black -moz-use-text-color black black; border-width: 1pt medium 1pt 1pt; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;&lt;strong&gt;PATHLABELTEMPLATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;
 &lt;/td&gt;
 &lt;td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;template file for Label classes&lt;/p&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color black; border-width: medium medium medium 1pt; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;&lt;strong&gt;PATHPOINTTEMPLATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;
 &lt;/td&gt;
 &lt;td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;template file for Point classes&lt;/p&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="border-style: solid none solid solid; border-color: black -moz-use-text-color black black; border-width: 1pt medium 1pt 1pt; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;&lt;strong&gt;PATHLINETEMPLATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;
 &lt;/td&gt;
 &lt;td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;template file for Line classes&lt;/p&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color black; border-width: medium medium medium 1pt; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;&lt;strong&gt;PATHPOLYGONTEMPLATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;
 &lt;/td&gt;
 &lt;td style="border-style: none solid none none; border-color: -moz-use-text-color black -moz-use-text-color -moz-use-text-color; border-width: medium 1pt medium medium; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;template file for Polygon classes&lt;/p&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="border-style: solid none solid solid; border-color: black -moz-use-text-color black black; border-width: 1pt medium 1pt 1pt; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;&lt;strong&gt;PATHCOLLECTIONTEMPLATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;
 &lt;/td&gt;
 &lt;td style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt;" valign="top"&gt;
 &lt;p class="MsoNormal"&gt;template file for Collection
 classes&lt;/p&gt;
 &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you just want Topobase to generate annotation layers and aren't too concerned with the actual style template, you can instead set an itemvalue of '1' for the itemkey 'ANNOTATIONFORLABELFC'. With this set, the default layer for label feature classes (whether they end in &lt;code&gt;_TBL&lt;/code&gt; or not) are annotation layers.&lt;/p&gt;
&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>Extending the Electric Explorer</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/08/extending-the-electric-explorer.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/08/extending-the-electric-explorer.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d834cd50f869e20120a50f4500970b</id>
        <published>2009-08-22T05:40:43-07:00</published>
        <updated>2009-08-22T05:36:38-07:00</updated>
        <summary>Although the Topobase team may seem to have a god-like prescience anticipating functionality you might need, there may be the odd workflow or function that you feel could be added, improved or enhanced. For those rare occasions, the Topobase API...</summary>
        <author>
            <name>Derrick Oswald</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Although the Topobase team may seem to have a god-like prescience anticipating functionality you might need, there may be the odd workflow or function that you feel could be added, improved or enhanced. For those rare occasions, the Topobase API provides a rich environment for customization. This post describes how to augment the functionality of the electric modules. The electric modules differ from other vertical modules in that in addition to a data model, workflows, reports etc. they have the &lt;b&gt;Electric Explorer&lt;/b&gt; panel.&lt;/p&gt;
&lt;a style="float: right;" href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a50f9d61970b-popup" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false"&gt;&lt;img class="at-xid-6a00d834cd50f869e20120a50f9d61970b" style="width: 300px; margin: 0px 0px 5px 5px;" alt="ElectricExplorer" src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20120a50f9d61970b-300wi" /&gt;&lt;/a&gt;
&lt;p&gt;The Electric Explorer provides purpose-built functionality to manipulate conductors, ducts, devices etc. for convenience and data consistency.&lt;/p&gt;
&lt;p&gt;In this sample, two context menu items are added to the Conductor container. The first merges the geometry of two conductors. Unlike the built in Merge Conductors function, it uses conductors selected in the Conductor container rather than requesting the user to select conductors from the graphics screen. This is useful if you don’t have cross sections displayed on every segment - to be able to pick conductors from.&lt;/p&gt;
&lt;p&gt;The second added context menu item operates similar to dragging conductors from the Conductor container onto ducts in the Ducts container. Free standing conductors are assigned to (enclosed in) the ducts, but for this operation the conductor geometry is kept rather than changing it to follow the segment geometry. This provides the ability to have a semi-schematic type of drawing without resorting to a full-blown schematic.&lt;/p&gt;
&lt;p&gt;For these menu items, the ‘hook’ into the Topobase system is – as usual – a PlugIn. This &lt;code&gt;&lt;span style='color:#2B91AF'&gt;DocumentPlugIn&lt;/span&gt;&lt;/code&gt; monitors the &lt;code&gt;&lt;span style='color:#2B91AF'&gt;ElectricExplorerDocumentFlyIn&lt;/span&gt;&lt;/code&gt; waiting for the &lt;code&gt;&lt;span style='color:#2B91AF'&gt;FlyInInitComplete&lt;/span&gt;&lt;/code&gt; event. This event is raised after all the configured containers have been initialized. At that point a reference to the Conductor container can be obtained and the new context menu items added.&lt;/p&gt;
&lt;p&gt;Adding to the &lt;b&gt;Context&lt;/b&gt; menu involves passing an instance of a class to the container's &lt;code&gt;ExtendMenu&lt;/code&gt; method. This class must have event handler methods tagged with a &lt;code&gt;&lt;span style='color:#2B91AF'&gt;FeatureContainerContextMenuItem&lt;/span&gt;&lt;/code&gt; attribute as shown below. There are similar attributes for tagging &lt;b&gt;New&lt;/b&gt; and &lt;b&gt;More&lt;/b&gt; menu handlers.&lt;/p&gt;
&lt;code&gt;
&lt;pre&gt;
[&lt;span style='color:#2B91AF'&gt;FeatureContainerContextMenuItem&lt;/span&gt; (
    &lt;span style='color:#A31515'&gt;"MergeSelectedConductors"&lt;/span&gt;,
    &lt;span style='color:#A31515'&gt;"MergeConductorCaption"&lt;/span&gt;,
    &lt;span style='color:#2B91AF'&gt;FeatureContainerNames&lt;/span&gt;.Conductor,
    &lt;span style='color:#2B91AF'&gt;TBGridViewContextMenuItemState&lt;/span&gt;.DelegateToHandler,
    DisplayIndex = 200,
    GroupName = &lt;span style='color:#A31515'&gt;"21Modify"&lt;/span&gt;,
    ToolTipResourceName = &lt;span style='color:#A31515'&gt;"Merges selected conductors"&lt;/span&gt;,
    IconNameEnum = &lt;span style='color:#2B91AF'&gt;IconNames&lt;/span&gt;.MergeConductors)]
&lt;span style='color:blue'&gt;public void&lt;/span&gt; MergeSelectedConductors (&lt;span style='color:blue'&gt;object&lt;/span&gt; sender, &lt;span style='color:#2B91AF'&gt;MenuItemEventArgs&lt;/span&gt; args)
{
...
&lt;/pre&gt;
&lt;/code&gt;

&lt;p&gt;This attribute has many options which are explained in the help system by pressing &lt;b&gt;F1&lt;/b&gt; in Visual Studio (if you've registered the API help). Of note, the second parameter is the name of a resource in the assembly resources rather than the caption for the menu item directly. This is so the menu item text can be localized by changing the resource associated with the name.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;&lt;span style='color:#2B91AF'&gt;TBGridViewContextMenuItemState&lt;/span&gt;&lt;/code&gt; parameter has a number of options that dictate when the menu item should be enabled or disabled. In this case it is set to &lt;code&gt;DelegateToHandler&lt;/code&gt; which is slightly more complicated and needs some explanation.&lt;/p&gt;
&lt;p&gt;With this option, the handler method is called two ways. The first way is identified when the &lt;code&gt;&lt;span style='color:#2B91AF'&gt;MenuItemEventArgs&lt;/span&gt;.DeclareEnableStatus&lt;/code&gt; is set to true. In this case the method should set the &lt;code&gt;&lt;span style='color:#2B91AF'&gt;MenuItemEventArgs&lt;/span&gt;.EnableMenuItem&lt;/code&gt; to true or false depending on whether the menu should be enabled or not respectively. The second way is when the method should actually do the work associated with the menu item. For example:&lt;/p&gt;
&lt;code&gt;
&lt;pre&gt;
&lt;span style='color:blue'&gt;if&lt;/span&gt; (args.DeclareEnableStatus)
    args.EnableMenuItem = 1 &lt; container.SelectedItems.Count;
else
    ... (do the needful)
&lt;/pre&gt;
&lt;/code&gt;
&lt;p&gt;This would enable the menu if there are at least two items selected in the container. Because this test is supposed to execute quickly so that the context menu appears immediately when the user right-clicks, it is best to leave difficult, deep or time consuming criteria tests to when the user clicks the menu item. Of course an error message is required in that case.&lt;/p&gt;
&lt;p&gt;Once the user clicks the menu item, the actual work begins. For the Merge Selected Conductors operation, it is relatively straight forward to test if all the selected conductors form a continuous linear path with contiguous end points. If this is the case the new geometry is assigned to the first selected conductor and the others are deleted after any relations to ducts and segments have been redirected.&lt;/p&gt;
&lt;p&gt;For the Associate Conductor operation, the operation is much simpler. The original geometry of the conductor is remembered, the out-of-the-box method to move conductors into ducts is called, and then the original geometry is restored.&lt;/p&gt;
&lt;p&gt;This demo is available as a ZIP file which you can download using the link below. To build this project, define the environment variable TopobaseClientDirectory to point to the Topobase Client directory and execute the solution file:&lt;/p&gt;
&lt;code&gt;
&lt;pre&gt;
C:&gt;set TopobaseClientDirectory=C:\Program Files\Autodesk Topobase Client 2010
C:&gt;ElectricExplorerExtension.sln
&lt;/pre&gt;
&lt;/code&gt;
&lt;p&gt;Build the solution. Run Topobase client, open an electric workspace and you should see the new menu items when you right click in the conductor container.&lt;/p&gt;

&lt;p&gt;&lt;quote style="font-size:70%"&gt;
AUTODESK DOES NOT GUARANTEE THAT YOU WILL BE ABLE TO SUCCESSFULLY DOWNLOAD OR IMPLEMENT ANY SAMPLE CODE. SAMPLE CODE IS SUBJECT TO CHANGE WITHOUT NOTICE TO YOU. 
AUTODESK PROVIDES SAMPLE CODE "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
PARTICULAR PURPOSE. IN NO EVENT SHALL AUTODESK OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS 
OF DATA, OR LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, THAT MAY OCCUR AS A RESULT OF IMPLEMENTING OR USING ANY SAMPLE CODE, EVEN IF AUTODESK OR ITS SUPPLIERS 
HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
&lt;/quote&gt;
&lt;/p&gt;
&lt;span class="at-xid-6a00d834cd50f869e20120a50fb20a970b"&gt;&lt;a href="http://topobaseinsiders.typepad.com/files/electricexplorerextension.zip"&gt;Download ElectricExplorerExtension&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>Working with progress bars</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/08/working-with-progress-bars.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/08/working-with-progress-bars.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-66535479</id>
        <published>2009-08-12T04:45:24-07:00</published>
        <updated>2009-05-12T07:45:50-07:00</updated>
        <summary>This is the third post regarding the Feature History Administrator plug-in. In the previous two posts you could learn how to create a new DocumentAdminPage from scratch and then how to extend it with some logic. And as I have...</summary>
        <author>
            <name>Andreas Boos</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Programming" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="BackgroundJob" />
        <category scheme="http://sixapart.com/ns/types#tag" term="StatusDisplay" />
        <category scheme="http://sixapart.com/ns/types#tag" term="StatusForm" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Threading" />
        
<content type="html" xml:lang="en-US" xml:base="http://topobaseinsiders.typepad.com/the_topobase_insiders/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;P&gt;This is the third post regarding the &lt;em&gt;Feature History&lt;/em&gt; Administrator plug-in. In the previous two posts you could learn how to &lt;A href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/how-to-develop-a-new-topobase-administrator-page.html"&gt;create a new DocumentAdminPage&lt;/A&gt; from scratch and then &lt;A href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/07/the-age-of-your-features.html"&gt;how to extend it with some logic&lt;/A&gt;. And as I have already mentioned, I was not happy how it has been implemented :-)&lt;/P&gt;
&lt;P&gt;One important thing for a good user experience is when a process takes more than a few seconds the application has to inform the user about the progress. See also &lt;A href="http://msdn.microsoft.com/en-us/library/aa511486.aspx"&gt;here&lt;/A&gt; for some background information about that. Showing the progress of a function has several benefits: &lt;/P&gt;
&lt;ul&gt;
&lt;li&gt;the user sees that the software is still working (!), &lt;/li&gt;
&lt;li&gt;it shows where the process roughly is and &lt;/li&gt;
&lt;li&gt;it can also give a hint when the process will be finished. &lt;/li&gt;
&lt;/ul&gt;
&lt;P&gt;&lt;A style="DISPLAY: inline" onclick="window.open( this.href, '_blank', 'width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0' ); return false" href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156f81c885970c-popup"&gt;&lt;img  class="at-xid-6a00d834cd50f869e201156f81c885970c " title=StatusDisplay border=0 alt=StatusDisplay src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156f81c885970c-800wi"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;So let's add a progress form to the &lt;font face=Courier&gt;Analyze()&lt;/font&gt; method. The class we can use is the StatusForm and it is located in the Topobase.Data.Util namespace. (There is also a&amp;nbsp;ConsoleStatusDisplay which can be used when you have is a console application). The StatusForm can either act as an infinite progress bar, if you have no idea how long the process takes, or a 0% to 100% progress bar. &lt;/P&gt;
&lt;P&gt;The StatusForm consumes a background job, so let's first create one: &lt;/P&gt;
&lt;P&gt;&lt;font face=Courier&gt;&amp;nbsp;BackgroundJob&amp;lt;IList&amp;lt;FeatureClass&amp;gt;&amp;gt; job = &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controller.Analyze;&lt;br&gt;&amp;nbsp;StatusForm&amp;lt;IList&amp;lt;FeatureClass&amp;gt;&amp;gt; form =&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new StatusForm&amp;lt;IList&amp;lt;FeatureClass&amp;gt;&amp;gt;(job);&lt;/font&gt;&lt;/P&gt;
&lt;P&gt;The &lt;font face=Courier&gt;Analyze()&lt;/font&gt; method has to look like this: the first parameter is the StatusDisplay (to update the progress bar) followed by list of objects: &lt;/P&gt;
&lt;P&gt;&lt;font face=Courier&gt;&amp;nbsp;public void Analyze(IStatusDisplay statusDisplay,&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;params IList&amp;lt;FeatureClass&amp;gt;[] parameters)&lt;/font&gt;&lt;/P&gt;
&lt;P&gt;The StatusForm and its background job can be cancelable. In our plug-in we would like to let the user be able to cancel the process, so let's set the right property: &lt;/P&gt;
&lt;P&gt;&lt;font face=Courier&gt;&amp;nbsp;form.CancelButtonEnabled = true;&lt;/font&gt;&lt;/P&gt;
&lt;P&gt;We have to let the background job know which feature classes it has to analyze. Since it can't access the other properties from this class (cross-thread) we have to pass such information to the background job. Therefore we need to define it accordingly when we instantiate the StatusForm. In our example we need a list of Feature classes (StatusForm&amp;lt;IList&amp;lt;FeatureClass&amp;gt;&amp;gt;). &lt;/P&gt;
&lt;P&gt;&lt;font face=Courier&gt;&amp;nbsp;// pass the list of selected feature classes &lt;br&gt;&amp;nbsp;// to the background job. &lt;br&gt;&amp;nbsp;form.SetParameters(this.SelectedFeatureClasses);&lt;/font&gt;&lt;/P&gt;
&lt;P&gt;&lt;font face=Courier&gt;&amp;nbsp;// show the progress form, &lt;br&gt;&amp;nbsp;// this method starts the background job&lt;br&gt;&amp;nbsp;form.ShowDialog(this);&lt;/font&gt;&lt;/P&gt;
&lt;P&gt;After calling the ShowDialog method the background job is started in a new thread. The GUI thread is now paused until the background job has finished. &lt;/P&gt;
&lt;P&gt;If you take a look at the updated sample you will notice that I moved the &lt;font face=Courier&gt;Analyze() &lt;/font&gt;method to a new class called Controller. This is not necessary for the StatusForm, but I thought it would make sense to extract the logic from the UI and also improve the overall&amp;nbsp;readability. Like the previous DocumentAdminPage samples this one is also written in C# and compatible with the official Topobase 2010 version. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://topobaseinsiders.typepad.com/files/Topobase.Insiders.FeatureHistory.StatusForm.zip"&gt;Download&amp;nbsp;project&amp;nbsp;(16.1K)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Feel free to contact me for any questions or comments about this sample. &lt;br&gt;&lt;/P&gt;
&lt;P&gt;AUTODESK DOES NOT GUARANTEE THAT YOU WILL BE ABLE TO SUCCESSFULLY DOWNLOAD OR IMPLEMENT ANY SAMPLE CODE. SAMPLE CODE IS SUBJECT TO CHANGE WITHOUT NOTICE TO YOU. AUTODESK PROVIDES SAMPLE CODE "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL AUTODESK OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF DATA, OR LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, THAT MAY OCCUR AS A RESULT OF IMPLEMENTING OR USING ANY SAMPLE CODE, EVEN IF AUTODESK OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. &lt;/QUOTE&gt;&lt;/P&gt;&lt;/div&gt;
</content>


    </entry>
 
</feed><!-- ph=1 --><!-- nhm:dynamic-ssi -->
