Wednesday, November 25, 2015

GTech Loader version 10.0.0.27 is Available





















GTech Loader version 10.0.0.27  (for G/Tech 10)

There have been several updates to the GTech Loader lately.  Most of the updates have to do with the new Schema Prefix option, but this update also includes a fix to the form layout (where you could not see some of the items on the form when maximized, or you couldn't resize the form).


-----------
10.00.00.27 - 11/25/15
-----------

- FIX - #7638 - Validation for Oracle Tables was not working with Schema Prefix.

-----------
10.00.00.26 - 11/16/15
-----------

- FIX - #7635 - Form Layout not working correctly when maximizing on some screens.


Friday, November 13, 2015

GTech Loader version 10.0.0.25 is Available





















GTech Loader version 10.0.0.25  (for G/Tech 10)


-----------
10.00.00.25 - 11/13/15
-----------

- NEW - #7634 - Added the SQL Statement for tabular data to the logfile.


-----------
10.00.00.24 - 11/10/15
-----------

- FIX - #7632 - Schema prefix did not work for Alternate SQL.  Token can now be used in alternate SQL statement that will be replaced with schema prefix (or blank if not used).  

-----------
10.00.00.23 - 11/06/15
-----------


- NEW - #7631 - Support for using a different schema with the specified Oracle user.

Thursday, October 22, 2015

GTViewer version 14.0.0.32 is Available



GTViewer version 14.0.0.32 is available.   Most of the updates here are with the Style Manager.

-----------------------
14.00.00.32 - 10/22/15
-----------------------

- FIX - #7621 - Importing a Style Definition or Map (method or GUI) would not set the Session modified flag.

GTech Loader version 10.0.0.22 is Available





















GTech Loader version 10.0.0.22  (for G/Tech 10)


-----------
10.00.00.22 - 10/21/15
-----------

- FIX - #7629 - Shapes and Linestrings with more than 14,000 points would convert incorrectly. They are now converted as a set of linestring segments of 1,000 points or less.

Thursday, October 08, 2015

FME Reader/Writer Update



An updated GTViewer Reader/Writer Plugin for FME 2015  is available.


64 Bit Version


-----------
04.00.00.10 - 10/07/15 
-----------

- FIX - #7627 - The temporary tabular files were not written in the correct directory.  They are not written in the data output directory.

- FIX - #7628 - Filter Out more non-printable characters from Tabular Data.

-----------
04.00.00.09 - 02/11/15 - Sent to Safe
-----------

- NEW - #7511 - Updated to support FME 2015




32 Bit Version

-----------
03.00.00.12 - 10/07/15 
-----------

- FIX - #7627 - The temporary tabular files were not written in the correct directory.  They are not written in the data output directory.

- FIX - #7628 - Filter Out more non-printable characters from Tabular Data.


-----------
03.00.00.11 - 02/11/15 - Sent to Safe
-----------


- NEW - #7511 - Updated for FME 2015

Thursday, September 10, 2015

GTViewer .NET Control for Windows version 9.0.0.39 is Available





The GTViewer .NET Control for Windows version 9.0.0.39 is Available.


------------
09.00.00.39 - 9/10/15
------------

- FIX - #7556 - DFN Font with Shape with Hole elements were not supported.

- FIX - #7571 - The Name token in Feature Strings was not working correctly.




Wednesday, September 02, 2015

GTViewer version 14.0.0.31 is Available



GTViewer version 14.0.0.31 is available.   Most of the updates here are with the Style Manager.

-----------------------
14.00.00.31 - 9/02/15
-----------------------

- FIX - #7616 - The Point Label option in the Dynamic Graphics would not work when the point features was Text or used a True Type font.

- FIX - #7612 - Raster Categories with raster file list files would error out on invalid files in the list.  Changed to ignore them.

- NEW - #7614 - Where Am I expressions can now use the following tokens:  GTI_FILTERID, GTI_FILTERNAME, GTI_CATEGORYNAME, GTI_GIS_FEATURE_NUM, GTI_GIS_FEATURE_NAME, GTI_GIS_COMPONENT_NUM, GTI_GIS_COMPONENT_NUM.


GTVx version 14.0.0.14 is Available



Version 14.0.0.14 of GTVx is available.


-----------------------
14.00.00.14 - 9/02/15
----------------------- 

- FIX - #7613 - Raster Categories with raster file list files would error out on invalid files in the list.  Changed to ignore them.

- FIX - #7617 - The Point Label option in the Dynamic Graphics would not work when the point features was Text or used a True Type font.

- NEW - #7618 - Where Am I expressions can now use the following tokens:  GTI_FILTERID, GTI_FILTERNAME, GTI_CATEGORYNAME, GTI_GIS_FEATURE_NUM, GTI_GIS_FEATURE_NAME, GTI_GIS_COMPONENT_NUM, GTI_GIS_COMPONENT_NUM.

Tuesday, August 18, 2015

GTWeb Server version 11.0.0.34 is Available



GTWeb Server version 11.0.0.34 is available.
  • GTWeb now supports an optional Accept/Decline disclaimer box that a user will be presented with before proceeding to a selected project.   The text of the the disclaimer is specified on the server and can be different for each project.  
  • The SecureOnly flag can now be used in a global mode that will force all connections to use SSL.

-----------
11.00.00.34 - 8/18/15
-----------

- NEW - #7606 - The GetProjectList method will now return a MessageType and MessageFile for each project.  Support in Browser client for Disclaimer Messages is also provided.

-----------
11.00.00.33 - 7/10/15
-----------

- FIX - #7582 - Fixes to ProcessPost.aspx causing browser client to hang when saving notes.

-----------
11.00.00.32 - 6/22/15
-----------

- FIX - #7573 - A bogus ShowRaster instruction messages was in the log file.

- NEW - #7574 - Additional Logging for Non-Category Raster.

-----------
11.00.00.31 - 5/26/15
-----------

- NEW - #7558 - Global SecureOnly flag added.

Thursday, August 13, 2015

GTViewer Add-On Apps Revisited / Query Builder Update (version 1005)


Six sample GTViewer Add-On Apps were introduced with GTViewer version 14.  Many of you have not tried them yet for various reason.  Some of the tools are novelties, users haven't found the need for them, or users just haven't had the time to try them.

The sample add on apps are:

  • Query Builder
  • Feature Tooltip Builder
  • GTSpot Importer
  • Show Google Maps
  • Where Am I?
  • Search Redlines

I am making this post for a couple of reasons.  First, there is an update to the Query Builder that contains a few fixes.   You can get it from:

ftp://gtweb.mobi/demos/GTV_QueryBuilder_1007.zip     (password:  gtviewer)


Second, I don't think enough people out there realize how useful these tools can be.   They are more than just samples.  For example, nobody has made more Query Definition files that I have; however, over the last couple of years of exclusively using the Query Builder to create query definition files, I don't even remember the syntax of the definition files (nor do I need to).   Granted, the Query Builder may seem a little quirky at first, but it does what it does, and it is a lot easier to use a GUI to create a query than do it old way (find a similar query definition file, make a copy, open in Notepad, open up GVData.doc, try to figure out which entries you need, compile query, see if it works, rinse, repeat).  So, if you are still using Notepad as your Query Builder, give the Query Builder a try.

The Feature Tooltip Builder is another under utilized app.   Creating Feature Tooltips is not really hard, but it is very tedious and you may have to do a lot of them.  Also, if you get something wrong in the definition, they just don't do anything and then you have to sift through the logfile to see what is wrong.  Feature Tooltips can also add a lot of value to your data in terms of easily seeing useful information, making this information available to your users is really what this is all about.     So, if you are not using Feature Tooltips, start using them.  If you aren't using the Feature Tooltip Builder, start using it to create them.

Show Google Maps has always been one of the more popular Add-Ons.  Probably because it is so simple in what it does (open up Google Maps and show the same area you are looking at in GTViewer).   However, I use it for a different purpose.  If you are configuring your Coordinate System, it is often difficult to know if you have it correct, but with this Add-On, you can just find an area in your data that is somewhat recognizable (funny looking intersection, water body, river, etc.), then run Show Google Maps.  If the center of what is in the view in GTViewer isn't what you are looking at in Google Maps, then something is wrong with the Coordinate System setup.   Generally, the Coordinate System is either right or really wrong and this method will help determine which category you are in.

Where Am I was so popular that it was just incorporated directly into GTViewer and GTWeb. There may still be users who want to use this app (source code is available) to do very specific or complex Where Am I functionality, but it's usefulness has probably usurped by GTViewer.   A good question would be "Where is the Where Am I Builder?".   This tool doesn't exist yet, but it might one day.   One hack that may help you out in the meantime is that the Feature Tooltip Builder can help you define the difficult to create parts of the syntax (Features Strings, Expressions).   It will also let you pick a boundary feature, and you can see what values are populated, etc.    So, just build a Feature Tooltip of the shape you want to use with Where Am I and borrow (cut and paste) the parts of the definition that apply.

The GTSpot Importer it only useful to those who have GTSpot, but you can use it with our test server to see if it would work for you.

Last but not least, Search Redlines is probably only useful to users with a lot of redlines (session graphics), and those redlines need to have text or embedded data in them to search.  Don't forget that anything highlighted can be easily converted to Session Graphics (Tools/Convert Highlighted to Session Graphics).  Highlight/Thematic Queries and Feature Counting highlight things that you might want to search too.   Also, Dynamic Graphics can be converted to Session Graphics (Tools/Dynamic Graphics to Session Graphics).  Granted, this is only what is in your current view, but GTDGExport is delivered with GTData and it can create a .GTG file for you whole dataset using a DG Action (you can import a .GTG file into Session Graphics using Draw/Import).   Lastly, FME can easily create .GTG files from many different sources, and you can embed data on the graphics (which is also searched by Search Redlines).









Wednesday, August 12, 2015

GTMetaExp version 2.0.0.11 is Available




GT/Metadata Explorer version 2.0.0.11 is available. 

-----------
02.00.00.11 - 08/12/15
-----------

- FIX - #7593 - Copy button on Find Feature tab was not anchored to the top.

- FIX - #7594 - The Length function in the Expression evaluator conflicted with Gtech styles that used Length as an attribute.
ET Decimal type.  

GTech Loader version 10.0.0.21 is Available





















GTech Loader version 10.0.0.21  (for G/Tech 10)


-----------
10.00.00.21 - 08/12/15
-----------

- FIX - #7585 - If a default style rules is not provided in the metadata, there could be a problem generating a style definition name.

- FIX - #7586 - If a feature has no Style Rules defined in the metadata, it will now create a default style for it.

- FIX - #7587 - A tolerance has been added for determining if an Arc is made of colinear points.   It did have to be exact.     Arcs within this tolerance are converted as lines.

- FIX - #7588 - Some of the Arc to Line conversions were not creating the first point correctly in the linear element.

- FIX - #7595 - The Length function in the Expression evaluator conflicted with Gtech style rules that used Length as an attribute.

GTData 14.0.0.3 is Available


GTData version 14.0.0.3 is available.   Normally, a GTData update does not come out so soon (last one was on June 13th).   However, GTSumGtg was corrupt in the last setup and since GTData may change only once or twice a year, it could be a while before another regular update.  There were a couple of new features added as well as a lot of updates to GTVData.doc.

-----------
14.00.00.03 - 8/12/15
-----------

- FIX - #7575 - GTSumGtg - The delivered version of GTSumGtg was broken in previous GTData.

- NEW - #7581 - GTQuery - The "FME:" tag is now supported in the Feature entry.

- NEW - #7596 - GTFilterMod - The -d option added to search Filter Entry description field.

GTVx version 14.0.0.12 is Available



Version 14.0.0.12 of GTVx is available.


-----------------------
14.00.00.12 - 8/12/15
----------------------- 

- FIX - #7570 - The Name token in Feature Strings was not working correctly.

- FIX - #7572 - The Type Library (gtvx.tlb) had the GetCatFilterListFromFeaStr method incorrectly defined.

- FIX - #7597 - Default values for Shape Border Color Id and Value for Style Definitions was not correct.

- FIX - #7598 - Switching between Color Value and Color Id properties would not always remember the last color from the color table to put in the color value.

- FIX - #7599 - StyleManager did not always sense a change in ShapeBorderColorId, ShapeBorderColorValue, TextExtendedStyleColorValue, TextExtendedStyleColorId, and would not save those modifications.

- FIX - #7600 - Copy Button added so Style Manager's Definition Edit dialog.  It will copy the current style definition to the clipboard in the format used by the Style Definition file.

- FIX - #7604 - The AddLocationHistory method was not setting the modified session flag, so it was possible to not save the location history when exiting a session.

-----------------------
14.00.00.11 - 4/21/15
----------------------- 

- FIX - #7544 - The Feature Tooltip expressions were not working with multiple occurrence records.

-----------------------
14.00.00.10 - 3/3/15
----------------------- 

- NEW - #7512 - The GetElementInfo method will now include the Area and Length values if they are available.

- FIX - #7522 - Problem with Feature Counting if you count all Dynamic Graphics, then count Dynamic Graphics in Shape, then go back and count all Dynamic Graphics.

GTViewer 14.0.0.30 is Available



GTViewer version 14.0.0.30 is available.   Most of the updates here are with the Style Manager.

-----------------------
14.00.00.30 - 8/12/15
-----------------------

- FIX - #7569 - The Name token in Feature Strings was not working correctly.

- FIX - #7589 - Default values for Shape Border Color Id and Value for Style Definitions was not correct

- FIX - #7590 - Switching between Color Value and Color Id properties would not always remember the last color from the color table to put in the color value.

- FIX - #7591 - StyleManager did not always sense a change in ShapeBorderColorId, ShapeBorderColorValue, TextExtendedStyleColorValue, TextExtendedStyleColorId, would not save those modifications.

- NEW - #7592 - Copy Button added so Style Manager's Definition Edit dialog.  It will copy the current style definition to the clipboard in the format used by the Style Definition file.

- FIX - #7603 - The AddLocationHistory method was not setting the modified session 
flag, so it was possible to not save the location history when exiting a session.

Tuesday, July 21, 2015

GTViewer Server Box - Part 2





The final version of the GTViewer Server Box is now finished!  Since the prototype, we have gone through a couple of case designs and power configurations.  The intermediate case provided a power/reset button, but it did not seem like it would be survive actual use.  This off-the-shelf case was really meant to sit on a desk and not go to the field.   The final case is custom laser-cut acrylic that both looks nice and is much more durable.  It also houses an integrated power controller that provides true headless operation (no keyboard, monitor, or mouse required).  The evolution of the hardware is shown below:




All of the features provided by the prototype are still available in the final design.  The box runs a special version of the GTViewer Data Server and GTShare, and it does not need a network connection of any kind.  It provides WiFi access to the GTViewer datasets contained on its removable USB drive allowing applications like GTViewer, GTViewer for iOS, and GTViewer for Android to download or update their GTViewer datasets without accessing the internet or corporate intranet (they just need to be in WiFi range of the box).   The GTViewer Server Box is shown below powered by an external cell phone battery pack:







Thursday, July 02, 2015

Advanced Thematic Queries in GTViewer

Thematic Queries (sometimes referred to as Highlight Queries) are special GTViewer queries that will highlight all features with the same attribute values instead of locating on a specific feature.   For example, you could highlight all Primary Conductor with a specified Circuit Id and Phase.
When you create a Thematic Query, you tell it which attributes will be used to create the themes (groups of features to highlight) and it will generate a unique list of all value combinations and associate their features.  For the Highlight by Circuit Id and Phase example, the query will specify both Circuit Id and Phase as prompt values.   You can enter one or both prompts to narrow down the features you wish to highlight. 

If you only enter a Circuit ID, you will get back a list of all Circuit Id/Phase pairs that contain the specified Circuit Id.   

You can select any record in the search results to highlight all features with those attribute values.


If you select one of the records, it will highlight all features that have that Circuit Id and Phase:



I was recently asked if you could also highlight all of the Phases for a Circuit Id without having to create and run a separate that had only Circuit Id as a prompt.  It turns out that you can do this, but it may not be readily obvious how to create such a query.

GTQuery has long supported the appending of Queries to create more powerful searches. For example, if you wanted to search for a variety of features that came from different tables, you create a query for each individual feature while appending them to each other as you go.  GTQuery supports the “–a” option to append the results of the query you create to a specified .qry file.  The only requirement is that the queries be of the same type and have the same number of prompts.

How does this help get a highlight All Phases into my results?   GTQuery also supports a Constant prompt value feature, so I can create another query that does a Highlight By Circuit Id and provide a second prompt for Phase with a constant value of “[All Phases]”.  Constants values do not affect the records put into the query, so it will behave as though you are creating a highlight query with just one prompt.  When the Highlight by Circuit Id and Phase Query is created, the All Phases version is appended, and you will get a result like the following when you run the query and search for a specific circuit (CCT1A in this example):



I just given a brief overview here so that you can see what is possible.  If you need more detail on setting a Thematic Query like I have described, email support for more info.

Monday, June 29, 2015

GTViewer Server Box - Part 1


GTViewer for iOS, GTViewer for Android, and GTViewer (for Windows), are all designed to take your GIS Data to the field.   They do not rely on a connection to a server for normal operation making them ideal for storm/disaster situations where network access is not available, unreliable, or inaccessible.  

With GTViewer for Windows, there are many ways to load and update your GIS Data on a laptop (using SD cards, thumb drives, DVDs, etc.).   With the device versions of GTViewer, their sandboxed environments complicate this process.  The GTViewer Data Server was developed as Web App running under IIS to host your GIS Data so the devices can easily download or update their local copies of the GIS Data.   GTViewer for Windows can also use the GTViewer Data Sever to download and update it GIS Data via the GTViewer Data Client app.   This workflow operates very well except when you need to load or update the GIS Data your devices at critical times (storms, disasters, etc.) and no internet or intranet connectivity is available.  Consequently, these critical time are when GTViewer is most valuable.

Our solution to this problem of updating or loading your GIS Data when no network connectivity is available is GTI’s first venture into the Hardware world.  The GTViewer Server Box is a small, portable, self-contained server running the GTViewer Data Server and GTShare.  GTViewer for iOS, GTViewer for Android, and the GTViewer Data Client on Windows can all connect to the GTViewer Server Box via WiFi and download or update their local GIS data.

The GTViewer Server Box is based on a Raspberry Pi which is a small computer on a single credit card sized board running a flavor of Linux (Raspbian) and a full Apache web server.  The GTViewer Server Box acts as a Wireless Access Point and DHCP server allowing multiple clients to simultaneously connect and interact with a Linux version of the GTViewer Data Server.
 
The GTViewer Server Box had to meet the following criteria:
  •          Support GTViewer Data Server and GTShare.
  •      Require no Internet connection or network connection of any kind.
  •          Support a variety of Power sources: AC Outlet, Car Adapter, Battery, USB.
  •          Appear just like the standard GTViewer Data Sever and GTShare to the clients.
  •          Support iOS, Android, and Windows clients.
  •          Provide enough storage to support a number of GTViewer datasets.
  •          Provide an easy way to update the GIS Data it serves out.
  •          Provide security for the GIS Data.
  •          Require no display, keyboard, or mouse.
  •          Be extremely easy to use, portable, and reliable.

If you have the right WiFi component, a Raspberry Pi can act as a WiFi access point.  With some creative configuration, it can function as a DHCP server and Domain Name server without the need for internet access or any connection to other servers.

The Raspberry Pi is powered by a Micro USB connector opening up a wide variety of cheap and plentiful methods for powering the server.   External Batteries used to charge cells phone are an excellent method for making the Server Box ultra-portable while still allowing power to come from AC Plugs, Car chargers, or even laptops via their USB ports.

A slimmed down version of the GTViewer Data Sever and GTShare were ported to Linux/Apache.   They do not offer all of the features of the regular GTViewer Data Server and GTShare for Windows/IIS, but they provide everything needed to accomplish its task of getting the GIS Data to the clients and sharing redline and collected data.

An iPhone, iPad, Android Phone, Android Table, and Laptop with WiFi all see the GTViewer Server Box as another WiFi Network you can connect to.  When you want to download data, just connect your device or laptop the GTViewer Server Box’s SSID, enter the WiFi password, then interact with the GTViewer Data Server and GTShare like you normal do.

GTViewer datasets are managed on GTViewer Server Box by using a USB Thumb Drive.   Prepare the USB Drive on your PC or Laptop and plug the thumb drive into the Server Box when you are ready to use it.   As these are regular thumb drives, have one plugged into your normal system and copy any updated GTViewer Data Sets to the thumb drive when you update your regular GTViewer Data Server.  This way you will always have an up-to-date set of data ready to go.   Thumb drives are very inexpensive and can hold a large amount of data.

Security on the GTViewer Server Box is primarily based on the WiFi password.  If you do not know it, you will not have access to the data.  User management like that found on the IIS version of the software can also be used, but the WiFi password can be used on its own.    All of the actual data files on the Server Box can be fully encrypted, so losing a GTViewer Server Box would not put the data at risk.

The GTViewer Server Box was designed to be extremely easy to use.  You basically need to plug in the thumb drive containing the GTViewer datasets, plug in the power, and press the On button.   There is no need for a display, keyboard, or mouse for general operation or updating of the GIS Data.  You may want to connect the server to a display, keyboard, and mouse if you want to customize the WiFi SSID, WiFi Password, or Server Domain name.


The photo above shows the prototype GTViewer Server Box plugged into an external battery used to charge cell phones.  This battery is a large one (16800 mAh), but it ran the GTViewer Server Box for over 30 hours (minimal use, but available).   The production version is very similar to the prototype only with a slightly different case sporting an On/Off button.  Range is limited by the WiFi component, but general you need to be in the same room or near the Server Box for high performance downloads.

**** To see the final design, go to this post.


Wednesday, June 17, 2015

Feature Strings

Feature Strings have been around since the introduction of Toolboxes in GTViewer version 8.0 in 2008.   They are simply a way to specify a feature or group of features to do something with.  For Toolboxes, they allow you to turn features on or off using Toolbox button. 

Traditionally, specifying a feature in GTViewer was done with a Category Id/Filter Id pair.  This method worked well for data using instance based symbology like CAD (Microstation, AutoCAD) and some GIS systems like MGE and FRAMME.    However, data using Style Based symbology, like SmallWorld and G/Technology, complicate the use of Filter Ids because many Filter Ids are now associated with a single feature (one for each style used with the feature).  For example, a primary conductor may have 200 different styles associated with it.  Figuring out those 200 Filter Ids, while simple, is tedious.  To compound this problem, only styles that get used are mapped to a Filter Id, so as a feature uses more and more styles (which is very common), the set of Filter Ids associated with the feature will increase requiring constant updating of the Filter Id list used to specify the feature.  This can problem will eventually result in having features that you can’t locate, can’t display, can’t turn off, can’t select, etc.

To solve this problem, the Feature String was created to give a simpler way to specify a feature or set of features by using feature metadata instead of the Filter Ids.  For example, if you want to specify a Pole, you can now say “Pole” instead of finding all of the different Filter Ids associated with every component of a Pole.   If a new style for Poles is used (which will use a new Filter Id), Feature Stirngs will automatically picked up by the Feature String that specifies “Pole”.

Feature String History

This concept of using metadata to find Filter Ids for Features was already used internally by the GTViewer Writer Plugin for FME.  By default, the FME Plugin uses the next available Filter Id anytime a new Style is needed.  To figure out which styles goes with a particular feature, the FME Plugin added to comment to each Filter Id entry in the Fitler File (.flt) to identify which FME_Feature_Type created the entry. 

The Filter Files (.flt) used by GTViewer contain an entry for each Filter Id used in a Category.  Each entry in the Filter File has a Filter Id and the Filter Name plus some other fields.  One of those additional fields is a Description field that has generally been used as a comment area (because it is not shown or used anywhere else), but it can now be used to define metadata about the Filter Id.   This metadata varies depending on the source GIS data and what method was used to convert the data to the GTViewer format.   Several notations are supported in the comment field:

Used by the GTech Loader:

GIS:<G3E_FNO>,<G3E_CNO>,<G3E_SRNo>,<G3E_SRRowNo>,<Style Name>

GIS:<G3E_FNO>,<G3E_CNO>,<G3E_SRNo>,<G3E_SRRowNo>,<Style Name>,<Feature Name>,<Component Name>

GIS:<Feature>,<Component>,<Style Rule Num>,<Style Num>,<Style Name>,<Feature Name>,<Component Name>

Generic Tag (used by newer versions of FME Writer Plugin):

GIS1:<Feature>,<Component>,<Style Name>

Originally Used for SmallWorld Data, but simple and flexible and can be used by custom data converters.

SW:<Feature>
SW:<Feature>,<Component>
SW:<Feature>,<Component>,<Style Name>

Used to Support some older dataset where a Feature Name was provided in the comment:

Feature <Feature>

Used by Older versions of FME Writer Plugin:

FME:<Feature>

With the feature metadata available in the Filter Files, the Feature String were devices to search this information in a variety of ways to pull out the Filter Ids you need based on a more abstract specification.   There are currently 7 different Feature String Items (commands) that you can use to select a list of Filter Ids.  These items can be used by themselves or combined with other.


Feature String Syntax

A Feature String is a list of items or a semicolon (;) delimited list of items:

<Feature String> = <item> [{; <item>}]

An Item can be one of the following:

<item> = Cat(<category Id>)

<item> = Gis(<category Id>, <Fea/Comp String>)

<item> = Flt(<category Id>,<Filter String>)

<item> = Dft(<category id>)

<item> = All(<category id>)

<item> = Contains(<category id>,"<string>")

<item> = Name(<category id>,<mode>,”<filter name>”, ”<feature>”,”<component>”, ”<feature name>”,
”<component name>”, ”<style name>”)

<Fea/Comp String> = <feature>[:<component>][{,<feature>[:<component>]}]

<Filter String> = <Filter Item>[{,<Filter Item>}]

<Filter Item> = <filter Id>
<Filter Item> = <Low Filter id>-<High FilterId>


In the above notation, tokens in square brackets ([]) are optional; tokens in curly braces ({}) can repeat.  This notation is probably over complicating 4 fairly simple entries that are described in plain English below:

·       Cat(<category Id>) – The Cat item will get all Filter Ids for a Category.

o   Cat(1)  = All Filter Ids in Category 1
o   Cat(1);Cat(2);Cat(3) = All Filter Ids in Categories 1, 2, and 3

·       Gis(<category Id>, <Fea/Comp String>) – The GIS item will get a list of Filter Ids for all of the Feature/Components specified in the Fea/Comp String which is a comma separated list of <Feature> or <Feature>:<Component> items.  If only the Feature is specified, then all Component Filter Ids will be retrieved; if a Feature:Component is specified, only the Filter Ids for the specific Feature Component will be retrieved.

o   Gis(2,Pole) = Category 2, All Pole components
o   Gis(2,Pole:Symbol) = Category 2, Only Pole Symbol component

For GTech Data, the Feature and Component fields use the G3E_FNO and G3E_CNO attributes, so they are numbers:

o   Gis(3, 300) = Category 3, Feature 300 (all components)
o   Gis(3, 300, 305, 306) = Category 3, Features 300, 305, and 306 (all components of each)
o   Gis(3, 300:10001, 300:10002) = Category 3, Feature 300 Component 10001 and Feature 300 Component 10002
o   Gis(3, 300:10001, 400, 500)  = Category 3, Feature 300 Component 10001 and Feature 400 and 500 (all components of each).
o   Gis (3,300); Gis(4,900) = Category 3 Feature 300  and Category 4 Feature 900



·       Flt(<category Id>,<Filter String>) – The Flt item will get a list of Filter Ids for the specified category.  The Filter String can be specified as a comma delimited list of Filter Ids, a hyphenated list for a range of Filter Ids, or a combination of the two.

o   Flt(5, 1,3,5) – Category 5 Filter Ids 1, 3, and 5
o   Flt(5, 1-10) – Category 5 Filter Ids 1,2,3,4,5,6,7,8,9,10
o   Flt(5, 1,4,20-23) – Category 5 Filter Ids 1,4,20,21,22,23
o   Flt(5, 1,3,5);Flt(6,30,32-35) – Category 5 Filter Ids 1,3,5  and Category 6 Filter Ids 30,32,33,34,35

·       Dft(<category id>) – The Dft item will get the list of Filter Ids in a specified category that are displayed by default as defined by the category’s Filter File (.flt).

    • Dft(5) – Get all of the filter ids for Category 5 that are Displayed by default


·       All(<category id>) - The All item will get all Filter Ids in the specified category.  This item is functionally equivalent to the Cat item.

    • All(5) – Get all Filter Ids for Category 5

·       Contains(<category id>,"<string>") - The Contains item will find all Filter Ids in the specified category that contain the specified string in the Filter Id’s Name.

    • Contains(5,"[Foreign Owner]") –Category 5 that contain “[Foreign Owner]” in the Filter Name.

·       Name(<category id>,<mode>,"<filter name>","<feature">,"<component>","<feature name>","<component name">,”<style name>") - The Name item will find all Filter Ids in the specified category that meet the search criteria.  This is a very powerful and potentially confusing item to use.   The Mode parameter can be:

-       AND – All of the criteria must be true (or not used) to get the Filter Id
-       OR –  Any one of the criteria can be true to get the Filter Id
-       INVERTAND – If all of the criteria is true, do not get the Filter Id
-       INVERTOR – If any of the criteria is true, do not get the Filter Id

The rest of the parameters can be left empty (don’t use) or a wild-carded string can be specified.  If a wild-card is not specified, the string must match exactly (not case sensitive).  A wild-card can appear at the beginning, end, in the middle, or any combination of these.

    • NAME(800,AND,*,519,966,*,*,"Ln_W_Pipe_Op_*") = Category 800, all Feature 519, Component 966 whose Style Name starts with “Ln_W_Pipe_Op_”

o   Name(5,AND,"*Foreign Owner*") = this is equivalent to the Contains example.



Where Feature Strings are Used

There are a lot of tools and functionality that use Feature String:

o   Feature Tooltips and the Feature Tooltip Builder App can use Feature Strings to specify which feature a tooltip is for.

o   GTPreset is a GTData tool that creates a Display Preset file (.gtp) from a description of what you want display.  This description is composed of Feature Strings.

o   Where Am I functionality in GTViewer and GTWeb uses Feature Strings to specify which shapes to look for.

o   Dynamic Graphics uses Feature Strings to specify which features to operate on.

o   GTViewer and GTVx both have methods exposed in their APIs to use Feature Strings:  GetFilterListFromFeatureString and GetCatFilterListFromFeaStr.

o   The DGN Export Exclude String in GTViewer uses Feature Strings.

o   The GTV Control has two methods that use Feature Strings:  GetCategoryListFromFeatureString and GetFilterListFromFeatureString.

o   GTQuery and the Query Builder App use a subset of the Query String (basically the GIS item) modified to fit the context of the existing Query Definition Files.  

o   Toolboxes in GTViewer use Feature String for the Display Toggle functionality.

o   GTViewer for iOS uses Features String to associate Data Collection forms with features.



Saturday, June 13, 2015

GTData version 14.0.0.2 is Available


GTData version 14.0.0.2 is available.

-----------
14.00.00.02 - 6/9/15
-----------

- FIX - #7347 - GTQuery - The Feature/Component name processing was updated to match the latest in GTViewer.

- CHG - #7407 - GTTextQuery - If a Text string contains just spaces, it will now be omitted.

- FIX - #7408 - GTTextQuery - The OmitString entry was not working.

- FIX - #7409 - GTTextQuery - Text Elements were not trimming the text string and did not match Omit Strings.   Group Elements with text did trim the text.

- NEW - #7413 - GTTile - The FileNameOnlyFlag was added so the embedded data on the range Boxes (DrawBox entry) will just put the filename and not the full path.

- NEW - #7415 - GTTile - The CreateKeys entry has been added to automatically generate key values for the DrawBox shapes.

- NEW - #7501 - GTConv - RangeFileMode entry added to change the format of the range file.

- NEW - #7505 - GTQuery - The OffsetDB query type has been added to provide Integer Pair to Integer Pair lookup without the need of a key file.

- FIX - #7506 - GTQuery - The Offset Query Type was setting the key type incorrectly.

- FIX - #7507 - GTQuery - QueryType was not defaulting to Type 0 as it previously did.

- FIX - #7508 - GTFontEdit - Tab Order on Import Character form was not correct.

- NEW - #7509 - GTFontEdit - Browse button added to Import Character dialog.

- NEW - #7510 - GTSum - The -ct option has been added to generate a list of files that contain Color Table elements.

- NEW - #7541 - GTFormatInfo - The <%CRLF%> token has been added to insert a blank line.

- FIX - #7557 - GTQuery - Prompt queries did not support the Constant token in PromptColumn entries.