<?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="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/" />
    <id>tag:typepad.com,2003:weblog-1290158</id>
    <updated>2009-07-07T07:15:00-07:00</updated>
    
    <generator uri="http://www.typepad.com/">TypePad</generator>
    <link rel="self" href="http://feeds.feedburner.com/TheTopobaseInsiders" type="application/atom+xml" /><entry>
        <title>The age of your features</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/07/the-age-of-your-features.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/07/the-age-of-your-features.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-66495551</id>
        <published>2009-07-07T07:15:00-07:00</published>
        <updated>2009-05-07T07:45:01-07:00</updated>
        <summary>Some weeks ago I showed you how to develop a DocumentAdminPage. This time I would like to take the same example and extend it a little bit. The new plug-in does a pretty simple job. It goes through the TB_UFID...</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="DocumentAdminPage" />
        <category scheme="http://sixapart.com/ns/types#tag" term="source code" />
        <category scheme="http://sixapart.com/ns/types#tag" term="TB_UFID" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Topobase Administrator" />
        
<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>Some weeks ago I showed you how to develop a <a href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/how-to-develop-a-new-topobase-administrator-page.html">DocumentAdminPage</a>. This time I would like to take the same example and extend it a little bit. </p>
<p>The new plug-in does a pretty simple job. It goes through the TB_UFID table and analyzes when a feature has been modified the last time. The result of this analysis will be shown in the list view at the bottom. The plug-in also lets you decide if you want to analyze all or just some of the feature classes in the document. </p>
<p>Compared to the first version of the sample I have added a list of feature classes, an "Analyze" button and a list containing the results in the UI. </p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156f7f2733970c-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/6a00d834cd50f869e201156f7f2755970c-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/6a00d834cd50f869e201157074f213970b-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="FeatureHistory" class="at-xid-6a00d834cd50f869e201157074f213970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201157074f213970b-400wi" style="WIDTH: 400px" /></a>   </p>
<p>The main logic is implemented in the <font face="Courier">Analyze()</font> method (called from <font face="Courier">btnAnalyze_Click()</font>). </p>
<p><font face="Courier"> /// &lt;summary&gt;<br /> /// Analyzes the TB_UFID table for the selected feature classes. <br /> /// &lt;/summary&gt;<br /> /// &lt;returns&gt;The number of features grouped by &lt;see cref="Age"/&gt;. &lt;/returns&gt;<br /> private HashMap&lt;Age, int&gt; Analyze(IEnumerable&lt;FeatureClass&gt; featureClasses)<br /> {<br />  // create the result hashmap<br />  HashMap&lt;Age, int&gt; results = new HashMap&lt;Age, int&gt;();<br />  ...<br /> }<br /></font><br />The method itself is pretty simple. It executes the following SQL statement: </p>
<p><font face="Courier">  select touch_ts from TB_UFID where f_class_id = {0}</font></p>
<p>for each feature class and then it categorizes the features by age (older than...). </p>
<p>You have now two choices, try to develop it by yourself (~200 lines of code) or download the project file from here: </p>
<p><a href="http://topobaseinsiders.typepad.com/files/Topobase.Insiders.FeatureHistory.zip">Topobase.Insiders.FeatureHistory.zip (10.9K)</a></p>
<p>Of course this sample plug-in is not yet finished! Still a lot of important stuff is missing. For instance the Analyze method is working in the GUI thread which prevents the user from interacting with the Administrator. There is also no progress of the Analyze method visible to the user. The user just has to wait until the method finished. We'll see if we can fix that for the next week :-)<br /></p>
<p>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. </p></div>
</content>


    </entry>
    <entry>
        <title>Google, Bing and the Position Finder</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/06/position-finder.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/06/position-finder.html" thr:count="7" thr:updated="2009-07-03T00:58:43-07:00" />
        <id>tag:typepad.com,2003:post-68398151</id>
        <published>2009-06-23T04:58:04-07:00</published>
        <updated>2009-06-23T04:48:54-07:00</updated>
        <summary>Within Topobase there are plenty of possibilities to find features. The most powerful way is probably using the Topobase Forms. Here you can search for almost everything. Either with a simple filter, an SQL filter, a geographic filter or a...</summary>
        <author>
            <name>Andreas Boos</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Features" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="Generate Graphic" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Position Finder" />
        
<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;Within Topobase there are plenty of possibilities to find features. The most powerful way is probably using the Topobase Forms. Here you can search for almost everything. Either with a simple filter, an SQL filter, a geographic filter or a projection through foreign keys. Another easy way is the Advanced Generate Graphic. This button can be found under the Generate Graphic button in the Home - Display ribbon. Within the Advanced Generate Graphic dialog we put a control called Position Finder. The position finder is a one to many steps guide for finding a feature. For instance the user wants to search for an address, then he starts the address search, selects first the street and in the next step he selects the right building number. After he has done that he generates the graphic around this feature. &lt;/P&gt;
&lt;P&gt;I like the concept of the position finder because it is a guided process where the search will give the user in 100% of the cases the correct result. If he searches for a Hydrant, he'll find it. &lt;/P&gt;
&lt;P&gt;Why not taking the position finder out of the Advanced Generate Graphic dialog and place it somewhere more prominent. We could put it for instance into an AutoCAD palette set. Do you&amp;nbsp;also think that's a good idea? Watch the movie to get an impression how this looks like: &lt;/P&gt;
&lt;P&gt;
&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gAFfmKx9Adw&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gAFfmKx9Adw&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/P&gt;
&lt;P&gt;If you need this gimmick NOW, just go ahead and &lt;A href="http://topobaseinsiders.typepad.com/files/Topobase.Insiders.PositionFinder.exe"&gt;download it here (109.9K)&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;To install the tool you have to copy and paste the file Topobase.Insiders.PositionFinder.dll to your Topobase Client 2010 bin directory (e.g. C:\Program Files\Autodesk Topobase Client 2010\bin). Start Topobase Client, open a workspace and type &lt;strong&gt;NETLOAD&lt;/strong&gt; in the command window, select the file Topobase.Insiders.PositionFinder.dll. In order to load the file automatically with Topobase Client you can type &lt;strong&gt;TBPFRegister&lt;/strong&gt; in the command window (TBPFUnregister removes it from the registry). To start the Position Finder type &lt;strong&gt;TBPF&lt;/strong&gt;. Or just place a new button in the ribbon: &lt;/P&gt;
&lt;P&gt;&lt;A style="DISPLAY: inline" href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20115714751b8970b-pi"&gt;&lt;img  class="at-xid-6a00d834cd50f869e20115714751b8970b " title=Ribbon border=0 alt=Ribbon src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e20115714751b8970b-800wi"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/div&gt;
</content>


    </entry>
    <entry>
        <title>Oracle Data Import - Domains</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/06/oracle-data-import-domains.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/06/oracle-data-import-domains.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-67670587</id>
        <published>2009-06-08T00:45:44-07:00</published>
        <updated>2009-06-05T07:09:58-07:00</updated>
        <summary>In the previous post I explained how to enable a Topobase document for import with the Oracle data import tool (here). In this article you will see how to link domains and their values. In the SIMROSEWATER source schema the...</summary>
        <author>
            <name>Vanessa Rojas</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Features" />
        
        
<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 post 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" title="Oracle Data Import first post">here</a>).  </p>
<p>In this article you will see how to link domains and their values.  In the SIMROSEWATER source schema the material of the pipe is stored in the MATERIAL table.  For each of these values there should be a corresponding value in the Topobase domain table WA_MATERIAL_TBD, and if there is no corresponding value, you will have to add it.  The Oracle data import allows you to add missing values in the target domain tables.</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 />Select the <strong>Domains</strong> tab.  Select <strong>MATERIAL</strong> under Source Domains for SIMROSEWATER, and select <strong>WA_MATERIAL_TBD</strong> under Final Domains for ATORAMIG. Click <strong>Link Domains</strong>.</p>
<p><br />The icon shows that the tables are linked. The link is listed under Linked Domains.</p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e2011570c152ec970b-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_domain" class="at-xid-6a00d834cd50f869e2011570c152ec970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e2011570c152ec970b-320wi" /></a> </p>
<p>Now you will map the values of the domain. Select the <strong>Domain Values</strong> tab.  <br /></p>
<p>First, you need to relate the ID and VALUE of the domain table to the primary key and description of the source table (MAT_CODE and MAT_NAME).  Click <strong>Domain Settings</strong>.</p>
<p><br />Select the <strong>MAT_CODE</strong> Source Key Column and select the <strong>MAT_NAME</strong> Source Caption Column.  Retain the default values for the target columns (<strong>ID</strong> and <strong>VALUE</strong>).<br /></p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e2011570c15571970b-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="Domain_settings" class="at-xid-6a00d834cd50f869e2011570c15571970b " height="178" src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e2011570c15571970b-320wi" width="310" /></a> <a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e2011570c15299970b-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>
<p>Click <strong>Close</strong>.  The Link Domain Values area displays the values of the MATERIAL table listed by MAT_CODE – MAT_NAME.<a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fcc2265970c-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" /> </p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fcc22f0970c-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="Source_values" class="at-xid-6a00d834cd50f869e201156fcc22f0970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fcc22f0970c-320wi" /></a> </p>
<p>Before linking domain values, you need to analyze your data and know which entries you need to create in the Topobase domain table. It is recommended that you copy first the new values to the domain table.  Select the new values in the source table and Click <strong>Copy</strong>.</p>
<p><br />Now you can use the Autolink functionality to match values automatically in the source and target tables.  This process works in three levels:  <br /></p>
<ul>
<li>The string is exactly the same 
<li>Any of the words in the source string are contained in the target string 
<li>Using the soundex algorithm </li>
</li></li></ul>
<p>Autolink matches the column with the first match in the alphabetically ordered list of target values. </p>
<p>Click <strong>Autolink</strong> and the values are linked automatically.</p>
<p>Afterwards, you can review the linked values, unlink any incorrect values or link manually values that were not automatically linked.  The resulting links should appear as shown in the figure below:</p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fcc2e26970c-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="Domain_values" class="at-xid-6a00d834cd50f869e201156fcc2e26970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fcc2e26970c-320wi" /></a> </p>
<p>In the next post I will show you how to link feature classes and attributes.</p></div>
</content>


    </entry>
    <entry>
        <title>TBEXECUTE</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/06/tbexecute.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/06/tbexecute.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-67596465</id>
        <published>2009-06-03T11:50:22-07:00</published>
        <updated>2009-06-03T11:49:09-07:00</updated>
        <summary>One little-used command is TBEXECUTE, which provides access to defined workflows via the AutoCAD Command: line. This means workflows are available to AutoLISP and the menu system of AutoCAD. For example, if you have a workflow called LightStandard, you could...</summary>
        <author>
            <name>Derrick Oswald</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>One little-used command is TBEXECUTE, which provides access to defined workflows via the AutoCAD Command: line. This means workflows are available to AutoLISP and the menu system of AutoCAD.</p>

<p>For example, if you have a workflow called LightStandard, you could invoke it using a menu item like:</p>

<code>
^C^C_tbexecute LightStandard
</code>

<p>or you could create an AutoLISP routine to run it with the definition:</p>

<code>
(defun c:lightstandard () (command "_tbexecute" "lightstandard") (princ))
</code>

<p>A beneficial side-effect of the latter is that the command can then be repeated with the space bar.</p>

<p>This can really increase your speed for often used constructive workflows with only simple interactions that use the command line rather than a GUI.</p></div>
</content>


    </entry>
    <entry>
        <title>Oracle Data Import</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/oracle-data-import.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/oracle-data-import.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-67400715</id>
        <published>2009-05-29T07:41:19-07:00</published>
        <updated>2009-05-29T07:38:12-07:00</updated>
        <summary>Autodesk Topobase 2010 provides a tool to migrate data among Oracle schemas. The source schema could be any Oracle schema; the target schema is a Topobase schema. The user interface of the tool displays the tables of the source and...</summary>
        <author>
            <name>Vanessa Rojas</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Features" />
        
        
<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>Autodesk Topobase 2010 provides a tool to migrate data among Oracle schemas. The source schema could be any Oracle schema; the target schema is a Topobase schema.</p>
<p><br />The user interface of the tool displays the tables of the source and target schemas; therefore it is easy for the user to link them.  The lookup tables or domains can also be easily linked. The tool provides automatic options to link the tables and fields.  As a result, the tool creates SQL statements for the migration, creates SQL Loader files or makes the inserts through the API.  </p>
<p><br />In this first post, I’d like to show you how to enable a Topobase document for import and I will explain you the interface of the tool.  In the next posts, I will show you how to link domains and feature classes.</p>
<p><br />First, you need to enable the Oracle data import extension in the document.  In Topobase Administrator, select the document, and in the <strong>Document Settings</strong> toggle on <strong>Oracle data import extension</strong>. </p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fba235a970c-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" /></p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e2011570af9194970b-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="Enable_import" class="at-xid-6a00d834cd50f869e2011570af9194970b " height="194" src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e2011570af9194970b-200wi" style="WIDTH: 277px" /></a> </p>
<p>Click <strong>Save</strong>.  The document is updated and the system tables for the import (TB_MIG_*) are created in the document.</p>
<p>Now you have an additional option in the Import menu. Select <strong>Import &gt; Oracle Data</strong>. The Source Document window is displayed, the target document is your current document (i.e. ATORAMIG).  Enter the name of the source document for the import (in this example SIMROSEWATER). <a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fba5099970c-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" /></p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fba1824970c-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" /></p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fba50f6970c-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="Source_document" class="at-xid-6a00d834cd50f869e201156fba50f6970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fba50f6970c-200wi" style="WIDTH: 200px" /></a> </p>
<p>Click <strong>Ok</strong>.  In the <strong>Import Oracle Data</strong> window, click <strong>New</strong> and enter a name for the mapping definition.</p>
<p><br />In the individual tabs you can link the domains and feature classes.  On the left-side you see the source tables displayed and on the right-side you see the target feature classes.  You have the option to link, unlink, do automatic links or copy the tables, attributes or domains in the target document.</p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e2011570af85cb970b-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" /><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fba4e07970c-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="Main_interface_1" class="at-xid-6a00d834cd50f869e201156fba4e07970c " height="168" src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fba4e07970c-200wi" style="WIDTH: 255px" /></a> <br /> </p>
<p>In the next posts I will show you examples on how to link domains and feature classes.</p></div>
</content>


    </entry>
    <entry>
        <title>Starting the third year</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/starting-the-third-year.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/starting-the-third-year.html" thr:count="1" thr:updated="2009-05-27T00:59:04-07:00" />
        <id>tag:typepad.com,2003:post-66975251</id>
        <published>2009-05-26T06:03:58-07:00</published>
        <updated>2009-05-26T06:10:08-07:00</updated>
        <summary>In 10 days the Topobase Insiders blog celebrates it's second anniversary. The first post has been published on the June 6th in 2007 and it was about increasing the productivity. You can find it here. If you are interested in...</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 Insiders" />
        
<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 10 days the Topobase Insiders blog celebrates it's second anniversary. The first post has been published on the June 6th in 2007 and it was about increasing the productivity. You can find it <a href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2007/06/increase_your_p.html">here</a>. If you are interested in other former posts try out the <a href="http://topobaseinsiders.typepad.com/the_topobase_insiders/archives.html">archive</a> or the search on the right hand side. </p>
<p>We also took the opportunity and refurbished the design of the blog. We hope you'll like it! Feedback is of course welcome. </p>
<p>Andreas, Derrick and Jeff would like to thank you and all the other visitors and readers of this blog! </p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fb1772b970c-pi" style="DISPLAY: inline"><img alt="TopobaseInsiders" border="0" class="at-xid-6a00d834cd50f869e201156fb1772b970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156fb1772b970c-800wi" title="TopobaseInsiders" /></a> </p></div>
</content>


    </entry>
    <entry>
        <title>Extending the 1-Click Maintenance</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/rfc-request-for-checks.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/rfc-request-for-checks.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-66678701</id>
        <published>2009-05-19T05:58:00-07:00</published>
        <updated>2009-05-14T03:34:14-07:00</updated>
        <summary>Some days ago I published the 1-Click Maintenance plug-in here. I promised that I will also provide the source code. Here we go: Download source code (171.2K) If you are not a programmer you can stop reading. For all 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="1-Click Maintenance" />
        <category scheme="http://sixapart.com/ns/types#tag" term="source code" />
        
<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>Some days ago I published the 1-Click Maintenance plug-in <a href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/1click-maintenance.html">here</a>. I promised that I will also provide the source code. Here we go: <a href="http://topobaseinsiders.typepad.com/files/Topobase.Insiders.DBMaintenance.Code.exe">Download source code (171.2K)</a></p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156f8df981970c-popup" onclick="window.open(this.href,'_blank','scrollbars=no,resizable=yes,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/6a00d834cd50f869e201156f8df9e3970c-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="SourceCode" class="at-xid-6a00d834cd50f869e201156f8df9e3970c " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156f8df9e3970c-450wi" style="WIDTH: 425px" /></a>  </p>
<p>If you are not a programmer you can stop reading. For all the others, you're welcome to take a look at the C# project and maybe even extend it...? Extending the plug-in is not that hard. And I know you already have some new database checks in your mind which you want to see in action. </p>
<p>So here is what you have to do in order to implement and run your own checks. Open the project in Visual Studio 2008 and locate the class SampleCheck: </p>
<p><font color="#0000ff">class </font><font color="#2b91af">SampleCheck</font><font> : </font><font color="#2b91af">DatabaseCheck</font><font>, </font><font color="#2b91af">IFixable</font></p>
<p>The sample check gives you an idea what is necessary for a new database check. Just copy and paste this class or extend it. First you have to define the title and the description of the new database check. Then you have to implement the <font face="Courier">Analyze</font> method, that's where the real logic is located: </p>
<p><font color="#0000ff">public override void</font><font> Analyze(</font><font color="#2b91af" size="2">IStatusDisplay</font><font> statusDisplay)</font></p>
<p>Within the Analyze you probably find some issues, just add them to the <font size="2">Results list. If you need to show a message to the user don't show a message box, instead use the Messages property. One reason for that is that we don't want to interrupt the process and it also has to run in batch mode. </font></p>
<p>If your check can also fix the found issues you can implement the IFixable interface for your class. This should add a new method called Fix: </p>
<p><font color="#0000ff">public void</font><font> Fix(</font><font color="#2b91af">IStatusDisplay</font><font> statusDisplay)</font></p>
<p>Within the Fix method make sure you iterate through the Results and fix one after the other. Keep in mind that the user might disable some results, so check the Active property of the result (<font size="2">result.Active</font>). Also in this method you can log messages and errors in the Messages property. </p>
<p>After you have finished implementing your database check class you have to add it to the Controller. Locate the <font face="Courier">Controller.InitializeChecks()</font> method and add a new instance of your class there. </p>
<p>That's it. If you need more detailed information take a look at the other database checks. </p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201156f8df79a970c-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" /><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201157083d6ab970b-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"><img alt="ReferencePath" class="at-xid-6a00d834cd50f869e201157083d6ab970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201157083d6ab970b-200wi" style="MARGIN: 0px 0px 5px 5px; WIDTH: 200px" /></a> In order to compile and run the plug-in you have to set the correct reference path for the Topobase related assemblies (go to Project - Properties - Reference Paths) and the correct build path (Project - Properties - Build - Ouput path). <br /></p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201157083d647970b-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"><img alt="BuildPath" class="at-xid-6a00d834cd50f869e201157083d647970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201157083d647970b-200wi" style="MARGIN: 0px 0px 5px 5px; WIDTH: 200px" /></a>Finally select the Topobase 2010 Administrator executable to start and debug the plug-in (Project - Properties - Debug - Start external program). <br /><br /><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201157083d647970b-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" /></p><br />
<p>You are welcome to send <a href="mailto:andreas.boos@autodesk.com">me</a> any feedback (or new database checks :-)</p>
<p>Thanks! </p>
<p>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. </p></div>
</content>


    </entry>
    <entry>
        <title>1-Click Maintenance</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/1click-maintenance.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/1click-maintenance.html" thr:count="3" thr:updated="2009-05-15T08:29:37-07:00" />
        <id>tag:typepad.com,2003:post-66676005</id>
        <published>2009-05-14T02:36:11-07:00</published>
        <updated>2009-05-19T03:48:29-07:00</updated>
        <summary>We created a new Topobase plug-in for you! It's called 1-Click Maintenance and can be downloaded below. The tool performs some very basic maintenance checks and if possible tries to fix the found issues. As you will see, most of...</summary>
        <author>
            <name>Andreas Boos</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Features" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="1-Click Maintenance" />
        
<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>We created a new Topobase plug-in for you! It's called 1-Click Maintenance and can be downloaded below. <br /> <br />The tool performs some very basic maintenance checks and if possible tries to fix the found issues. <br />As you will see, most of these checks can already be executed within the Topobase Client or Administrator, but not all of them in one single place. And that’s exactly the goal of this plug-in. I hope it can also help you maintaining your Topobase documents on a regular basis! </p>
<p>
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/LsdxciuUd0E&amp;hl=en&amp;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" />
<embed allowfullscreen="true" allowscriptaccess="always" height="344" src="http://www.youtube.com/v/LsdxciuUd0E&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" width="425" /></object></p>
<p>The tool is implemented as a plug-in for the Topobase Administrator and it works with the official Topobase 2010 version. The tool runs against any Topobase document, no matter which modules or extensions are applied. It also works against job-enabled and job-disabled documents. </p>
<p>But before you run the plug-in, please make sure no user is connected to this document. And make sure you have an up-to-date backup of your documents before you start fixing the issues.<br /> <br />You find all the detailed information about the tool and how to run it in the readme: </p>
<p><a href="http://topobaseinsiders.typepad.com/files/Topobase.Insiders.DBMaintenance.Readme.pdf">Download Readme (884.3K)</a></p>
<p><a href="http://topobaseinsiders.typepad.com/files/Topobase.Insiders.DBMaintenance.exe">Download Plug-in (136.5K)</a></p>
<p>Maybe you know other pitfalls within a Topobase document which are not yet addressed by this tool? If yes, you will be able to implement new checks! I will share the full source code of this tool soon. Stay tuned!  </p>
<p>Disclaimer (we give no support for this tool): <br />AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. <br />AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC. DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR FREE.<br /></p></div>
</content>


    </entry>
    <entry>
        <title>How to develop a new Topobase Administrator page</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/how-to-develop-a-new-topobase-administrator-page.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/05/how-to-develop-a-new-topobase-administrator-page.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-66493577</id>
        <published>2009-05-07T06:03:19-07:00</published>
        <updated>2009-05-07T06:03:19-07:00</updated>
        <summary>Since a few releases it's possible to not only extend the Topobase Client and Web applications with own plug-ins. Developers can now also extend the Topobase Administrator with new functionality. The easiest way to do that is to create a...</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="AdminPage" />
        <category scheme="http://sixapart.com/ns/types#tag" term="Topobase Administrator" />
        
<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>Since a few releases it's possible to not only extend the Topobase Client and Web applications with own plug-ins. Developers can now also extend the Topobase Administrator with new functionality. The easiest way to do that is to create a new DocumentAdminPage or an ApplicationAdminPage. The only difference between them is wether they relate to one document or not. All the AdminPages are listed in the tree on the left side of the Topobase Administrator. Of course , the DocumentAdminPages are not loaded and displayed until the user opens a workspace with at least one document. </p>
<p>I'll show you a step by step guide how to develop such a DocumentAdminPage. </p>
<p>After you have setup a new solution and project you can add a new class inherited from DocumentAdminPage: </p>
<p><font face="Courier"> public partial class MyAdminPage : DocumentAdminPage</font></p>
<p>The DocumentAdminPage is in the namespace Topobase.Forms.Desktop:</p>
<p><font face="Courier"> using Topobase.Forms.Desktop;</font></p>
<p>Within the constructor you have to set the name of your DocumentAdminPage:</p>
<p><font face="Courier"> this.Text = "myAdminPage";</font></p>
<p>Please note that within the constructor you don't have access to the Document or the Connection instance. </p>
<p>If you would like to access an open Topobase connection you have to catch the event ActivatedFirstTime. Therefore open your DocumentAdminPage in the designer, in the properties window of the MyAdminPage switch to the Events and double click the ActivatedFirstTime event. Visual Studio now generates a new method where you can implement your initialization logic. </p>
<p><font face="Courier"> private void MyAdminPage_ActivatedFirstTime(object sender, EventArgs e)<br /> {<br /> }</font></p>
<p>Like for every other plug-in you also need a TBP file to let Topobase know that there is a new plug-in available. Within the new TBP file add the following node: </p>
<p>  &lt;DocumentAdminPage ClassName="MyAdminPage" /&gt;</p>
<p><a href="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201157074a995970b-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"><img alt="MyAdminPage" class="at-xid-6a00d834cd50f869e201157074a995970b " src="http://topobaseinsiders.typepad.com/.a/6a00d834cd50f869e201157074a995970b-200wi" style="MARGIN: 0px 0px 5px 5px; WIDTH: 200px" /></a> That's it. You should now be able to compile the DLL and copy it together with the TBP to the Topobase Administrator bin directory and test it. If that doesn't work try to download the following sample project. I have developed it in C# against the released version of Topobase 2010 (7.00.41). </p>
<p><a href="http://topobaseinsiders.typepad.com/files/MyAdminPage.zip">Download MyAdminPage.zip (7.2K)</a></p>
<p>I plan to provide more How-To posts in the next couple of weeks to show you step by step how to develop a nice AdminPage. <br /></p></div>
</content>


    </entry>
    <entry>
        <title>Model I/O</title>
        <link rel="alternate" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/04/model-io.html" />
        <link rel="replies" type="text/html" href="http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/04/model-io.html" thr:count="2" thr:updated="2009-05-11T21:22:25-07:00" />
        <id>tag:typepad.com,2003:post-66205187</id>
        <published>2009-04-30T11:29:03-07:00</published>
        <updated>2009-04-30T11:28:29-07:00</updated>
        <summary>The Topobase Administrator provides an easy way to manually create and maintain the data model for each document. However, there is a need to be able to accurately and repeatably replicate a data model, for example when moving from a...</summary>
        <author>
            <name>Derrick Oswald</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Tips and tricks" />
        
        
<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;The Topobase Administrator provides an easy way to manually create and maintain the data model for each document. However, there is a need to be able to accurately and repeatably replicate a data model, for example when moving from a development to a testing or production environment. Topobase has a very rich API for this purpose and a mechanism called &lt;b&gt;structure update&lt;/b&gt;. This is used by vertical modules to ensure that the expected data model is present when they are added to the document. But somebody has to write the code to create the structure update.&lt;/p&gt;
&lt;p&gt;With this use-case in mind, the open source project &lt;a href='http://sourceforge.net/projects/modelio/'&gt;ModelIO&lt;/a&gt; comes to the rescue. It provides a way to extract a Topobase data model to an &lt;a href='http://www.omg.org/technology/documents/formal/xmi.htm'&gt;XMI&lt;/a&gt; file, and conversely, generate a data model based on an XMI data file - so no one has to write the code. The project also includes an &lt;a href='http://fdo.osgeo.org/'&gt;FDO&lt;/a&gt; utility to perform the same actions on an FDO data store.&lt;/p&gt;
&lt;p&gt;Although &lt;a href='http://modelio.svn.sourceforge.net/viewvc/modelio/root/documentation/Model%20IO%20Tutorial.pdf?revision=10'&gt;documentation&lt;/a&gt; is a little scarce at the moment, a &lt;a href='http://sourceforge.net/project/showfiles.php?group_id=244718'&gt;new version&lt;/a&gt; targeting &lt;a href='http://topobaseinsiders.typepad.com/the_topobase_insiders/2009/04/autodesk-topobase-2010-has-been-released.html'&gt;Topobase 2010&lt;/a&gt; has been created. Give it a try.&lt;/div&gt;
</content>


    </entry>
 
</feed><!-- ph=1 --><!-- nhm:dynamic-ssi -->
