<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blair Services &#187; Uncategorized</title>
	<atom:link href="https://blairservices.net/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>https://blairservices.net</link>
	<description>GIS Solutions</description>
	<lastBuildDate>Wed, 31 Jan 2018 20:07:59 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>“Pause” for Map Configuration Performance</title>
		<link>https://blairservices.net/pause-for-map-configuration-performance/</link>
		<comments>https://blairservices.net/pause-for-map-configuration-performance/#comments</comments>
		<pubDate>Sun, 06 Sep 2015 14:24:47 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=1026</guid>
		<description><![CDATA[<p>Configuring your ArcMap Map Documents and/or Stored Displays and getting tired of the redrawing that occurs after every change you make that affects your layer symbology or labeling? So has just about everyone who’s configured a Map Document or Stored Display. One way to minimize the impact of the redraw is zoom in to a [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/pause-for-map-configuration-performance/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/pause-for-map-configuration-performance/">“Pause” for Map Configuration Performance</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Configuring your ArcMap Map Documents and/or Stored Displays and getting tired of the redrawing that occurs after every change you make that affects your layer symbology or labeling?  So has just about everyone who’s configured a Map Document or Stored Display.</p>
<p>One way to minimize the impact of the redraw is zoom in to a very large scale where there are no features so the redraw occurs very fast.</p>
<p>But a better way, actually a way better way is to use the “Pause” button on the scroll bar at the bottom of either the Data View or Layout View.  (If you don’t see it, it may be that your Scroll Bars are toggled off.  Turn them on by selecting from the Main Menu View | Scroll Bars command.)</p>
<p><a href="https://blairservices.net/wp-content/uploads/Pause_000.png"><img src="https://blairservices.net/wp-content/uploads/Pause_000.png" alt="Pause_000" width="656" height="284" class="alignnone size-full wp-image-1027" /></a></p>
<p>How does this work?  Well, clicking Pause suspends all drawing.  And in fact blanks the entire display area while Pause is in effect.  There is no ambiguity about when display is Paused.  Clicking Pause again toggles display back on.</p>
<p>So when you need to  make a number of map configuration changes – say, adding layers, removing layers, changing layer symbology, adding or changing map labels and so forth &#8212; your work flow is simple.</p>
<p>1. Click “Pause”<br />
2. Make your changes<br />
3. Click “Pause”<br />
4. Repeat if necessary</p>
<p>Pretty simple.  But only if you know about it.</p>
<p>Hope this helps!</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/pause-for-map-configuration-performance/">“Pause” for Map Configuration Performance</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/pause-for-map-configuration-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ArcFM Feeder Manager Switching: De-Energize First</title>
		<link>https://blairservices.net/arcfm-feeder-manager-switching-de-energize-first/</link>
		<comments>https://blairservices.net/arcfm-feeder-manager-switching-de-energize-first/#comments</comments>
		<pubDate>Sun, 21 Jun 2015 22:30:14 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=980</guid>
		<description><![CDATA[<p>Here&#8217;s an oldie but a goodie. It applies if you&#8217;re using ArcFM Feeder Manager 1.. but not 2. In fact if you&#8217;re using FM 1 it&#8217;s pretty important. This is the scenario. Say your operations department has decided to perform a seasonal load transfer and serve a neighborhood from feeder Magenta102 instead of Green102. This [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/arcfm-feeder-manager-switching-de-energize-first/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcfm-feeder-manager-switching-de-energize-first/">ArcFM Feeder Manager Switching: De-Energize First</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s an oldie but a goodie.  It applies if you&#8217;re using ArcFM Feeder Manager 1.. but not 2. In fact if you&#8217;re using FM 1 it&#8217;s pretty important.</p>
<p>This is the scenario.  <a href="https://blairservices.net/wp-content/uploads/DeEnergizeFirst_000.png"><img src="https://blairservices.net/wp-content/uploads/DeEnergizeFirst_000.png" alt="DeEnergizeFirst_000" width="395" height="341" class="alignright size-full wp-image-983" /></a></p>
<p>Say your operations department has decided to perform a seasonal load transfer and serve a neighborhood from feeder Magenta102 instead of Green102.  This involves moving the location of a tie point between the adjacent feeders.  Our starting point situation is illustrated at the right with the tie point near the top of the illustration and upstream switch on Green102 at the bottom.</p>
<p>In practice what operations will do is temporarily close the tie switch and then open the upstream switch.  In this way no customers will be without power at any point in the switching operation.</p>
<p>However, mimicking these steps in ArcFM  will result in undesirable consequences.</p>
<p>The illustration at the below shows the results of opening the closed tie point as the first step and the opening the upstream switch as the second step.  What’s happened is that all segments, and all devices connected to those segments were after the first step fed by both feeders.  While after the second step the network as we want the problems with following the sequence are:</p>
<ol>
<li>The first edit will take a long time to complete.  Possibly a very long time depending on the number of features present in the two feeders.</li>
<li>There will be many edits present in your versioned Geodatabase Adds and Deletes tables, potentially leading to conflicts on reconcile.</li>
</ol>
<p><a href="https://blairservices.net/wp-content/uploads/DeEnergizeFirst_001.png"><img src="https://blairservices.net/wp-content/uploads/DeEnergizeFirst_001.png" alt="DeEnergizeFirst_001" width="739" height="373" class="alignright size-full wp-image-984" /></a></p>
<p>If these steps are reversed, so that the upstream switch is opened leaving equipment between the switches temporarily de-energized, we accomplish the same goal though this time the edit operation is much faster and there are fewer features edited and subject to possible reconcile conflicts.</p>
<p><a href="https://blairservices.net/wp-content/uploads/DeEnergizeFirst_002.png"><img src="https://blairservices.net/wp-content/uploads/DeEnergizeFirst_002.png" alt="DeEnergizeFirst_002" width="713" height="313" class="alignnone size-full wp-image-985" /></a></p>
<p>Simple change in work steps, but de-energizing the sections to be changed can make a big difference in editing performance and in the long-term health of your Geodatabase.</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcfm-feeder-manager-switching-de-energize-first/">ArcFM Feeder Manager Switching: De-Energize First</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/arcfm-feeder-manager-switching-de-energize-first/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ArcMap Annotation: Put it on the Bottom</title>
		<link>https://blairservices.net/arcmap-annotation-put-it-on-the-bottom/</link>
		<comments>https://blairservices.net/arcmap-annotation-put-it-on-the-bottom/#comments</comments>
		<pubDate>Sun, 12 Apr 2015 18:21:38 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=940</guid>
		<description><![CDATA[<p>One of the tips we heard at last month’s Schneider Electric Link 2015 conference was about putting annotation at the bottom of your ArcMap table of contents to improve overall display performance. The rationale goes like this: The annotation display engine uses a technique that can take into account the presence of other graphic elements [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/arcmap-annotation-put-it-on-the-bottom/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcmap-annotation-put-it-on-the-bottom/">ArcMap Annotation: Put it on the Bottom</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>One of the tips we heard at last month’s Schneider Electric Link 2015 conference was about putting annotation at the bottom of your ArcMap table of contents to improve overall display performance.  The rationale goes like this:</p>
<p><i><br />
The annotation display engine uses a technique that can take into account the presence of other graphic elements already present in the active view.  If graphics for geometries such as points, lines or polygons are already rendered at the time annotation display occurs this technique will be applied, otherwise it won’t.</i></p>
<p>
We decided to test this notion with a dataset containing a rich set of annotation classes.  In an ArcGIS <b>10.1</b> environment we assembled a map with group layer containing point and line features representing land base features and a group layer with 8 annotation classes with a total of approximately 1 million annotation features.</p>
<p>
First test was a timed display of all features/annotations, first with the group of annotation layers at the top and second at the bottom.  Here were the results.</p>
<p><a href="https://blairservices.net/wp-content/uploads/AnnoAtTheBottom.png"><img src="https://blairservices.net/wp-content/uploads/AnnoAtTheBottom.png" alt="AnnoAtTheBottom" width="573" height="107" class="alignnone size-full wp-image-942" /></a></p>
<p>
In this case putting the annotation at the bottom of the TOC saved 391 seconds, or 27% of the display time compared with anno at the top.  May be worth considering.
</p>
<p>
To be thorough we performed the same test in a <b>10.2.1</b> environment.  In this case performance was not noticeably different with annotation at the top or bottom of the TOC.</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcmap-annotation-put-it-on-the-bottom/">ArcMap Annotation: Put it on the Bottom</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/arcmap-annotation-put-it-on-the-bottom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don’t Edit the ArcFM DUCTDEFINITION Table</title>
		<link>https://blairservices.net/dont-edit-the-arcfm-ductdefinition-table/</link>
		<comments>https://blairservices.net/dont-edit-the-arcfm-ductdefinition-table/#comments</comments>
		<pubDate>Mon, 30 Mar 2015 21:44:00 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=926</guid>
		<description><![CDATA[<p>This one comes to us courtesy of our friends at RAMTeCH Geospatial.  And it’s pretty straightforward. Don’t edit the ArcFM DUCTDEFINTION table.  Don’t even try to.  And by that we mean don’t assign AutoUpdaters to it and don’t enable ArcGIS Editor Tracking on it. The consequences are subtle, but significant.   Especially if you’re using both [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/dont-edit-the-arcfm-ductdefinition-table/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/dont-edit-the-arcfm-ductdefinition-table/">Don’t Edit the ArcFM DUCTDEFINITION Table</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>This one comes to us courtesy of our friends at <a href="http://ramtech-corp.com/">RAMTeCH Geospatial</a>.  And it’s pretty straightforward.</p>
<p>Don’t edit the ArcFM DUCTDEFINTION table.  Don’t even try to.  And by that we mean don’t assign AutoUpdaters to it and don’t enable ArcGIS Editor Tracking on it.</p>
<p>The consequences are subtle, but significant.   Especially if you’re using both ArcFM Underground Facility Manager and Conduit Manager.  Let’s just say your edit operations won’t complete as expected.</p>
<h3>Why, you ask?</h3>
<p>The DUCTDEFINITION table is used only as a template for defining properties of ducts shown in the conduit manager user interface.  It’s not intended to hold actual data.</p>
<p><a href="https://blairservices.net/wp-content/uploads/DUCTDEFINITION.png"><img class="alignnone size-full wp-image-929" src="https://blairservices.net/wp-content/uploads/DUCTDEFINITION.png" alt="DUCTDEFINITION" width="782" height="405" /></a></p>
<p>So, where is the actual data stored?  It’s in the CONFIGURATION Blob field on the ConduitSystem feature.</p>
<p>So that’s it.  Short and sweet.</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/dont-edit-the-arcfm-ductdefinition-table/">Don’t Edit the ArcFM DUCTDEFINITION Table</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/dont-edit-the-arcfm-ductdefinition-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ArcFM Feeder Manager 2.0 Synchronization and Conflicts</title>
		<link>https://blairservices.net/arcfm-feeder-manager-2-0-synchronization-and-conflicts/</link>
		<comments>https://blairservices.net/arcfm-feeder-manager-2-0-synchronization-and-conflicts/#comments</comments>
		<pubDate>Mon, 30 Mar 2015 19:49:24 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=910</guid>
		<description><![CDATA[<p>This post summarizes a discussion we initiated on the Schneider Electric Exchange Community site on expectations a user might have for versioned conflicts arising from implementation of the ArcFM Feeder Manager 2.0 Synchronization process. First a little background ArcFM Feeder Manager (1.0) dynamically maintains feeder information through the course of editing operations – including switching [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/arcfm-feeder-manager-2-0-synchronization-and-conflicts/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcfm-feeder-manager-2-0-synchronization-and-conflicts/">ArcFM Feeder Manager 2.0 Synchronization and Conflicts</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>This post summarizes a discussion we initiated on the <a href="https://infrastructurecommunity.schneider-electric.com/welcome">Schneider Electric Exchange Community </a>site on expectations a user might have for versioned conflicts arising from implementation of the ArcFM Feeder Manager 2.0 Synchronization process.</p>
<h3>First a little background</h3>
<p>ArcFM Feeder Manager (1.0) dynamically maintains feeder information through the course of editing operations – including switching changes. This is critical information for maintaining integrity of an electric system model. The result of the process is that a value is stored in the FEEDERID field of all features participating in the electric network.<a href="https://blairservices.net/wp-content/uploads/FeederManager2_3.png"><img class="alignright wp-image-919 size-full" src="https://blairservices.net/wp-content/uploads/FeederManager2_3.png" alt="FeederManager2_3" width="487" height="222" /></a></p>
<p>Storing the value in the FEEDERID field can take some time and also result in version conflicts, so SE built Feeder Manager 2.0 which discovers feeder ID values when needed by the application and uses a separate memory structure to hold feeder ID values. The result is a dramatic improvement in some editing operations and elimination of conflicts resulting from feeder updates. And, there is no need for a FEEDERID field on network classes.</p>
<p>However, while there is a lot to like about FM 2.0, some users need a FEEDERID field – in many cases to support legacy applications such as interfaces to operations or asset management systems. To meet this need SE created a “Feeder Sync” process that stores the FEEDERID value – but does it in a way that doesn’t affect user editing performance and *should* minimize version conflicts.</p>
<h3>This is where our post picks up</h3>
<p>The question is, “are we in danger of introducing conflicts by using the FM 2.0 Feeder Sync?” And, as in many cases, the answer is, “it depends.”</p>
<p>Here’s why. The FM 2.0 Feeder Sync makes updates to FEEDERID fields directly in the SDE.DEFAULT version and, by configuration, can operate either with AutoUpdaters in effect or not.</p>
<p>Here’s a scenario in which the FM 2.0 Feeder Sync would likely generate conflicts – and probably many of them.</p>
<ul>
<li>Implement FM 2.0 Feeder Sync with AutoUpdaters enabled and use the “ArcFM User Name” and “ArcFM Current Date” AU’s. (These are sometimes referred to as “meta-data AutoUpdaters”.)</li>
<li>Reconcile child version with SDE.DEFAULT – using either row level or field level conflict detection. Conflicts will be detected on LAST_USER and/or DATE_MODIFIED fields in any case where a feature in the child version was changed and the FEEDERID updated in SDE.DEFAULT.</li>
</ul>
<p>In contrast, the following scenario will only result in conflicts if the same value on the same feature was changed in SDE.DEFAULT and a child version (a “true” conflict):</p>
<ul>
<li>Implement FM 2.0 Feeder Sync with AutoUpdaters disabled.</li>
<li>Reconcile child version with SDE.DEFAULT – using field level conflict detection. Conflicts will result only where the same field was updated in both versions. And since FEEDERID is updated only in SDE.DEFAULT there will be no conflicts on FEEDERID.</li>
</ul>
<p>In addition, this scenario should also void all but “true” conflicts:</p>
<ul>
<li>Implement FM 2.0 Feeder Sync with AutoUpdaters enabled with ArcGIS Editor Tracking used to maintain meta-data information instead of the “ArcFM User Name” and “ArcFM Current Date” AU’s.</li>
<li>Reconcile child version with SDE.DEFAULT – using field level conflict detection. Conflicts will result only where the same field was updated in both versions, and may include any updates resulting from non-meta data AutoUpdaters.</li>
</ul>
<h3>Summary</h3>
<p>Depending on your work flow and requirements the FM 2.0 Sync process could result in many unwanted conflicts. However, if you don’t need AutoUpdaters firing during the sync process or are using ArcGIS Edit Tracking instead of the ArcFM meta-data auto-updaters then these conflicts can be avoided.</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcfm-feeder-manager-2-0-synchronization-and-conflicts/">ArcFM Feeder Manager 2.0 Synchronization and Conflicts</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/arcfm-feeder-manager-2-0-synchronization-and-conflicts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ArcFM Structure Relate Search Tolerance</title>
		<link>https://blairservices.net/arcfm-structure-relate-search-tolerance/</link>
		<comments>https://blairservices.net/arcfm-structure-relate-search-tolerance/#comments</comments>
		<pubDate>Sun, 08 Mar 2015 18:42:42 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=894</guid>
		<description><![CDATA[<p>If you’ve got an ArcGIS/ArcFM dataset and you’re maintaining relationship(s) between devices and the structure that supports them, then we’re guessing you use the ArcFM “Structure Relate” auto-updater (AU) to do much of the work. It’s a pretty straightforward piece of logic in the core ArcFM solution. When you place a device – say a [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/arcfm-structure-relate-search-tolerance/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcfm-structure-relate-search-tolerance/">ArcFM Structure Relate Search Tolerance</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>If you’ve got an ArcGIS/ArcFM dataset and you’re maintaining relationship(s) between devices and the structure that supports them, then we’re guessing you use the ArcFM “Structure Relate” auto-updater (AU) to do much of the work. It’s a pretty straightforward piece of logic in the core ArcFM solution. <a href="https://blairservices.net/wp-content/uploads/StructureRelate_000.png"><img src="https://blairservices.net/wp-content/uploads/StructureRelate_000.png" alt="StructureRelate_000" width="235" height="389" class="alignright size-full wp-image-898" /></a>When you place a device – say a fuse or transformer or switch in an electric dataset, or overhead splice or slack loop in a fiber dataset &#8212; the AU performs a spatial query using a standard radius to find a thing designated as a structure. </p>
<p>If a structure is found, then its primary key value is assigned to the foreign key field on the device and viola you’ve got a relationship. The “designation” of a structure is achieved by assigning the class model name “STRUCTURE.”</p>
<p>And yes, if multiple structures fall within the search tolerance of a new device feature the relationship will be established with the closest one – as we see at the right. If you want the relationship to be defined to the structure farther way, then simply use the attribute editor to make the update.</p>
<p><em>As an aside, what you call a structure might not be what everyone else calls a structure. See, for example, our recent post on <a href="https://blairservices.net/case-studies/pole-conductor-relationships/" title="Pole-Conductor Relationships">pole-conductor relationships</a> for examples where the structure location and not the structure itself is defined as the “structure.”</em></p>
<p>Now, when the structure relate AU fires the default search tolerance is 25 map units. Which is fine if your mapping conventions call for devices to fall within 25 feet of a structure. What if they don’t? Then SE has provided an option under the “Editing” tab of the “ArcFM Options” dialog where you can change it!</p>
<p><a href="https://blairservices.net/wp-content/uploads/StructureRelate_001.png"><img src="https://blairservices.net/wp-content/uploads/StructureRelate_001.png" alt="StructureRelate_001" width="401" height="202" class="alignnone size-full wp-image-899" /></a></p>
<p>Here are a few more tidbits on the structure relate auto-updater which apply at least as of version 10.2.1a.</p>
<ul>
<li>The target structure class and associated device class must exist within the same feature dataset.</li>
<li>To be able to assign the “ArcFM Structure Relate” auto-updater to a class there must be, 1) a feature class already present in the feature dataset with the class model name STRUCTURE, and 2) a relationship between the structure class and class to which your assigning the AU.  The relationship typically has the cardinality of one-to-many.</li>
<li>It does work with polygons as the target “structure.”  Per the example below, say you assign the STRUCTURE model name to your gas regulator station polygon class and create a relationship from regulator station to valve, then creating a valve that falls within the station boundary will establish the relationship.</li>
</ul>
<p><a href="https://blairservices.net/wp-content/uploads/StructureRelate_002.png"><img src="https://blairservices.net/wp-content/uploads/StructureRelate_002.png" alt="StructureRelate_002" width="560" height="322" class="alignnone size-full wp-image-900" /></a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcfm-structure-relate-search-tolerance/">ArcFM Structure Relate Search Tolerance</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/arcfm-structure-relate-search-tolerance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No Pressure ArcFM Water Tracing</title>
		<link>https://blairservices.net/no-pressure-arcfm-water-tracing/</link>
		<comments>https://blairservices.net/no-pressure-arcfm-water-tracing/#comments</comments>
		<pubDate>Sun, 08 Mar 2015 18:29:49 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=885</guid>
		<description><![CDATA[<p>As a good friend and longtime industry veteran has often reminded, in order to get a correct result for a valve isolation analysis you need to know all of the sources that feed the point you’re inspecting.  Otherwise you can get false positives – valves you think you ned to operate but don’t really. Of [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/no-pressure-arcfm-water-tracing/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/no-pressure-arcfm-water-tracing/">No Pressure ArcFM Water Tracing</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>As a good friend and longtime industry veteran has often reminded, in order to get a correct result for a valve isolation analysis you need to know all of the sources that feed the point you’re inspecting.  Otherwise you can get false positives – valves you think you ned to operate but don’t really.</p>
<p>Of course my good friend is right.  And that is why the ArcFM valve isolation traces expect pressure information at sources and on pipe themselves.</p>
<p>However, the thing is, all companies don’t know the inlet and outlet pressures of all pumps and regulators in the water and/or gas networks.  At least this information is not always present in their GIS.  And in some cases the effort to obtain that information can be a daunting task.</p>
<p>Luckily, ArcFM provides an option for performing traces without pressure information, in which case it simply looks for valves bounding the point of inquiry.  <a href="https://blairservices.net/wp-content/uploads/WaterValveIsolation_003.png"><img class="alignright wp-image-887 size-full" src="https://blairservices.net/wp-content/uploads/WaterValveIsolation_003.png" alt="WaterValveIsolation_003" width="358" height="178" /></a>On the “ArcFM Water Traces” toolbar just click “Options.” The “Use Pressure” check box option is available on the “Water Traces” tab. </p>
<p>Below is an example.  We’ve initiated a water valve isolation trace just beyond a water booster pump station and our trace has identified valves to be operated.  Though there are not additional sources beyond the station the non-pressure trace identifies valves (indicated by arrows) not actually required to isolate the location.<br />
<a href="https://blairservices.net/wp-content/uploads/WaterValveIsolation_004.png"><img src="https://blairservices.net/wp-content/uploads/WaterValveIsolation_004.png" alt="WaterValveIsolation_004" width="770" height="425" class="alignnone size-full wp-image-891" /></a><br />
In summary, the non-pressure valve isolation trace can be convenient since it doesn’t require pressure values.  Just beware that the results will possibly include more valves than really need to be operated.</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/no-pressure-arcfm-water-tracing/">No Pressure ArcFM Water Tracing</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/no-pressure-arcfm-water-tracing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ArcMap Joins and File Geodatabases</title>
		<link>https://blairservices.net/arcmap-joins-file-geodatabases/</link>
		<comments>https://blairservices.net/arcmap-joins-file-geodatabases/#comments</comments>
		<pubDate>Sun, 08 Mar 2015 18:16:21 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=879</guid>
		<description><![CDATA[<p>File Geodatabases are great.  Since they don’t support multi-user editing or long transactions or any of the rigor of a formal database management system you of course can’t use them to directly support an enterprise implementation.  But, if you’re providing extracts for analysis or viewing or whatever, they’re ready-to-use, can hold a basically unlimited amount [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/arcmap-joins-file-geodatabases/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcmap-joins-file-geodatabases/">ArcMap Joins and File Geodatabases</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>File Geodatabases are great.  Since they don’t support multi-user editing or long transactions or any of the rigor of a formal database management system you of course can’t use them to directly support an enterprise implementation.  But, if you’re providing extracts for analysis or viewing or whatever, they’re ready-to-use, can hold a basically unlimited amount of data, and for most purposes they are fast.  Very fast.</p>
<p>However, in our experience there is one scenario where they are not so fast.  And that’s when you need to make extensive use of “join layers”.  Here’s an example.</p>
<ul>
<li>Feature Class: 51,000 polyline features</li>
<li>Related Table: ~50,000 with 1 to 1 relationship with polyline features</li>
<li>ArcMap map join keeping only matched records</li>
<li>Symbolize ArcMap layer based on field in the related table</li>
</ul>
<p><a href="https://blairservices.net/wp-content/uploads/JoinLayers_000.png"><img class="alignnone size-full wp-image-880" src="https://blairservices.net/wp-content/uploads/JoinLayers_000.png" alt="JoinLayers_000" width="588" height="95" /></a></p>
<p><span style="color: #000000; font-family: Calibri; font-size: medium;">Add a definition query to the joined layer based on a character field in the joined table and we get these results.</span></p>
<p><a href="https://blairservices.net/wp-content/uploads/JoinLayers_001.png"><img class="alignnone size-full wp-image-881" src="https://blairservices.net/wp-content/uploads/JoinLayers_001.png" alt="JoinLayers_001" width="586" height="75" /></a></p>
<p>Finally, as a measure of analysis function performance we opened the layer’s attribute and performed a “Summarize” to get a count of unique values for a character field in the related table.  Here are the results.</p>
<p><a href="https://blairservices.net/wp-content/uploads/JoinLayers_002.png"><img class="alignnone size-full wp-image-882" src="https://blairservices.net/wp-content/uploads/JoinLayers_002.png" alt="JoinLayers_002" width="586" height="76" /></a></p>
<p>The absolute numbers we report above clearly aren’t that large, but on a percentage basis operations on the join layer in MS-Access are about 5 times faster than the same operation in the File Geodatabase.</p>
<p>Don’t get us wrong, we still love file Geodatabases.  And if you’re comparing them with PGDB’s remember the 2DB MS-Access limitation.  However, if what you need is fast performance for feature classes joined to related tables, consider the good old MS-Access Personal Geodatabase.</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/arcmap-joins-file-geodatabases/">ArcMap Joins and File Geodatabases</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/arcmap-joins-file-geodatabases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quality Assurance and Performance</title>
		<link>https://blairservices.net/quality-assurance-performance/</link>
		<comments>https://blairservices.net/quality-assurance-performance/#comments</comments>
		<pubDate>Sat, 14 Feb 2015 20:53:49 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=843</guid>
		<description><![CDATA[<p>While we’d like to think everything going into our Geodatabase was done correctly – I mean no one purposely enters invalid data, right? In practice we need to perform QA on a regular basis. It’s really just a given. As we know in our ArcGIS/ArcFM solution stack there are two ways to perform QA, ArcFM [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/quality-assurance-performance/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/quality-assurance-performance/">Quality Assurance and Performance</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>While we’d like to think everything going into our Geodatabase was done correctly – I mean no one purposely enters invalid data, right? In practice we need to perform QA on a regular basis. It’s really just a given.</p>
<p>As we know in our ArcGIS/ArcFM solution stack there are two ways to perform QA, ArcFM “<strong>Run QA/QC</strong>” and ArcMap “<strong>Validate Features</strong>.” Both operate on a selected set of features. The ArcFM QA gives us a progress dialog, a list of errors we can inspect or write to a file, and most importantly, returns *all* errors found for a feature and any related records. The ArcMap “Validate Features” runs silently and removes valid features from the selection set leaving only invalid features selected.</p>
<p>In general, we like to use the ArcFM QA to get benefit from its completeness – but the price is performance. Here’s an example comparison of QA times for a sample set of approximately 45,000 complex edge features that we’ve found to be pretty representative:</p>
<p><a href="https://blairservices.net/wp-content/uploads/Quality_000.png"><img class="alignnone size-full wp-image-845" src="https://blairservices.net/wp-content/uploads/Quality_000.png" alt="Quality_000" width="565" height="74" /></a></p>
<p>That’s 15 minutes difference.</p>
<p>Knowing the performance difference and the results returned one strategy to consider is this:</p>
<p>1. Execute ArcMap “Validate Features” on your large selection set<br />
2. Execute ArcFM “Run QA/QC All” on the remaining features in the selection set known to have at least one error</p>
<p>The following table offers a breakdown of times for an example of 26,000 simple junction features:</p>
<p><a href="https://blairservices.net/wp-content/uploads/Quality_001.png"><img class="alignnone size-full wp-image-846" src="https://blairservices.net/wp-content/uploads/Quality_001.png" alt="Quality_001" width="774" height="119" /></a></p>
<p>In this case our strategy saved us about 10 minutes for a QA run. If this is a task you run repeatedly, it might represent an opportunity.</p>
<p>Of course, if all or a large majority of your feature have QA errors this strategy won’t save but cost you time. Nonetheless, in our experience cases where *all* features in a class have QA errors is relatively rare.</p>
<p>In the end, we hope this strategy might be able to save you some time in your QA processing going forward.</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/quality-assurance-performance/">Quality Assurance and Performance</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/quality-assurance-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CamelCase != ORACLE_CASE</title>
		<link>https://blairservices.net/camelcase-oracle_case/</link>
		<comments>https://blairservices.net/camelcase-oracle_case/#comments</comments>
		<pubDate>Tue, 10 Feb 2015 00:52:41 +0000</pubDate>
		<dc:creator><![CDATA[Ed Blair]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://blairservices.net/?p=812</guid>
		<description><![CDATA[<p>&#160; This is as much a reminder as a &#8216;tip or trick,&#8217; and the reminder is directed as much at ourselves as anyone. &#160; A common tenet of modern software engineering is to use descriptive names for variables and fields. For example, if you have the need to store a transformer &#8216;s serial number you&#8217;d [...]<br /><a class="btn btn-purple read-more" href="https://blairservices.net/camelcase-oracle_case/"> Read more &#187;</a></p>
<p>The post <a rel="nofollow" href="https://blairservices.net/camelcase-oracle_case/">CamelCase != ORACLE_CASE</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>&nbsp;<br />
This is as much a reminder as a &#8216;tip or trick,&#8217; and the reminder is directed as much at ourselves as anyone.<br />
&nbsp;<br />
A common tenet of modern software engineering is to use descriptive names for variables and fields. For example, if you have the need to store a transformer &#8216;s serial number you&#8217;d do well to create a field or variable named &#8220;SerialNumber&#8221;.  <a href="https://blairservices.net/wp-content/uploads/CamelCase_000.png"><img class="alignright size-full wp-image-813" src="https://blairservices.net/wp-content/uploads/CamelCase_000.png" alt="CamelCase_000" width="254" height="291" /></a>Seems self-evident, but you may remember programmers who would use a name like &#8220;n1&#8243; or &#8220;i1&#8243; and argue it&#8217;s efficient &#8212; though deep down you knew it was about their view on job security.<br />
&nbsp;<br />
It&#8217;s also common to use change in case to denote word separation. The technique is sometimes referred to as &#8220;Camel Case&#8221;&#8230; conjuring the hump image thing. You see it everywhere, including standard data models, a snippet of one you see to the right.<br />
&nbsp;<br />
Thing is, some databases honor case and some don&#8217;t.<br />
&nbsp;<br />
Below for example are tables created from the same Transformer UML model snippet, one in MS-Access and the other in Oracle. As you can see, once the names have been forced to upper case in Oracle our clever CamelCase convention doesn&#8217;t look so clever.</p>
<p><a href="https://blairservices.net/wp-content/uploads/CamelCase_001.png"><img class="alignnone size-full wp-image-814" src="https://blairservices.net/wp-content/uploads/CamelCase_001.png" alt="CamelCase_001" width="721" height="228" /></a></p>
<p>So, the point is this. When naming fields, do so with the end environment in mind. And if the end environment forces names to upper case, consider separating distinct words in field names with something like an underscore, so the thing you hoped would appear as &#8220;SerialNumber&#8221; but actually appears as &#8220;SERIALNUMBER&#8221; will in fact appear as &#8220;SERIAL_NUMBER&#8221;.</p>
<p>The post <a rel="nofollow" href="https://blairservices.net/camelcase-oracle_case/">CamelCase != ORACLE_CASE</a> appeared first on <a rel="nofollow" href="https://blairservices.net">Blair Services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blairservices.net/camelcase-oracle_case/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
