You are here

Linking GIS Objects to Files

When working with a client recently, we were asked to create a solution to manage the way that external files were linked to certain GIS assets. I’ve seen a few ways that this is accomplished without the use of a tailored tool, but they normally involve managed file shares with manual naming conventions.

We set out to create a tool that would allow users to easily upload files to GIS assets without worrying about renaming, associating, or finding the file share. We wanted the files to be easily sortable and have metadata associated with them, and for administrators to be able to limit permissions in a variety of ways.

The basis for our Hyperlink Manager was an identically-named tool that Telvent had put together for some of its demos. We expanded on this framework and created a versatile solution for creating hyperlinks and associating them with GIS objects. The tool can be opened from any configured GIS object.

The tool’s functionality starts with hyperlink "categories". These categories will often include items such as "Drawings" and "Photos". We wanted to make the categories as versatile as possible, so they drive a large amount of the functionality. A single category will define the following rules:

  • Whether the category supports URLs or not. A category will either hold links to websites, or links to files stored on a network share (or, less than optimally, stored locally).
  • The path where all files from this category are stored.
  • A list of extensions that the category supports. No other type of files will be allowed to be added to this category.
  • Optionally, an Active Directory group name, on your domain, which can be used to verify that a user has permissions to add or modify hyperlinks for this category.
  • The field model name that hyperlinks from this category are tied to.

Hyperlink manager delete

Let’s expand on that last point. Hyperlinks are not necessarily tied to a GIS object in itself. They can be, but don’t have to be.

Hyperlink categories use ArcFM™ model names to determine this. The model name will be assigned to a field. The value of that field is the value that the hyperlink is tied to. So if a hyperlink is attached to "FacilityID", for example, you could view and manage that same hyperlink from any GIS asset with the same facility ID. The tool is opened from a GIS object, but the hyperlinks themselves are tied to values of specific fields.

This can prove useful, as every category can be different. One category can be based on "Field A" and one based on "Field B". If an object has both fields, you will see and can add into both categories. Otherwise, you might see one or the other. That said, most configurations don’t seem to be quite so complex, but the versatility is there if it’s required.

Hyperlink manager add

The field value is used as a default naming convention when adding new hyperlinks, depending on the category. This can be overridden. Our client used the location-based field values for their file names as well, so they needn’t change this value. The files automatically append a letter to ensure unique values. So a file uploaded with a target display name of "1234" will be automatically renamed to "1234-B" if "1234-A" already exists as a hyperlink.

Now our client can easily upload all of the photos from a digital camera without renaming any of them or moving them manually. Maintenance is easy, too, if editing or deleting is required.

The Active Directory security permissions allow restrictions on who gets to add, delete, and edit, but anyone can view. And the ultimate convenience in this scenario is the ability for users to truly have an easy time viewing hyperlinks for a given object. So with a single click, any file opens in your computer’s default program for the file:

Hyperlink manager view

Creating this tool was a great creative process. It’s a great reminder that a lot of time and inconvenience can be saved with the right integration. I find that it’s nice and comfortable to be able to manage everything without the need to ever leave ArcMap. If you have any ideas to expand on this integration, or to apply it to other areas, feel free to share them with us via our contact page.