How to Set Up a Floor Plan Viewer

Setting up a floor plan viewer in FacilitiesMap requires several steps including proper data cataloging, georeferencing, attribution, and linking criteria. After the datasources are setup the Dynamic Layer filtering can be setup in the FacilitiesMap administrator for a working Floor Plan Viewer.

This How To guide will lead through this process by setting up an example floor plan viewer from start to finish.

Data organization and cleanup is the key to getting this process to work. In most cases floor plan drawings are in DWG format from drafters who had no idea what kind of data links are needed for this system to work. We will need to employ a few strategies to get all the data we need from these drawings into a format we can use for our floor plan viewer. In our sample drawing set we have a high school floor plan set consisting of a site plan drawing containing the outline of the buildings and two floor plan drawings for each floor of the high school containing the room outlines. To start off there is no object data or linked data on any objects on the drawings.

The first step is to catalog our floor plan files in a database so we can apply attributes globally to all objects on a drawing. Each drawing will be listed on a row with other attributes to help with organizing the linking and display of the floor plan system. The additional columns we will be adding and populating are listed below.
  • Group_Title
    • This will be the field that will group the site plan and the floor plan drawings
  • DWG_Name
  • Floor_Title
  • Floor_Name
  • isSelected

We now have a way to attach attribute values globally to all objects on a drawing in a way to organize our floor plans.

The second step is to geolocate the site plan and floor plan DWGs. This can be accomplished by scaling, moving, and rotating all the objects in the drawing so they reference their real world location. Knowing the state plane coordinate system for the area and using other tools like Google Earth can help find the correct geolocation. In our example, an FME script performs these geolocation tasks based on a known coordinate from the floor plan drawings, a known coordinate of the school and a rotation angle.

The third step is to set up the attributes in such a way that the dynamic layer filtering can use them to build the floor plans. To do this we need to understand how the dynamic layer filtering works and use that information to build our attributes so they link correctly.
The dynamic layer filter works on a parent-child relationship with a child attribute being the dynamic filter. When a parent object is selected on the map the dynamic layer option is available in the infobar report. The dynamic layer filtering will create a series of group folders and layers by first filtering those layers based on a parent attribute and then creating a new layers based on a child attribute filter. In our example the site plan building outline will be our parent object. The child objects will be the floor plan room outlines. When the building outline is clicked the dynamic layer filtering will create a new group named by the building name "Dickinson (John) HS" and two more groups named from child room outlines named "First Floor" and "Second Floor". Inside those groups will be layers that will filter their objects first by the parent attribute "Dickinson (John) HS" and then by the child dynamic attribute, floor name, or  "First Floor" and "Second Floor" in our example.

We will need to build the following feature classes with at least these attributes to build our floor plan viewer.
  1. Building Outlines Feature Class
    1. Building Name
      1. This will be the name of the first folder for our floor plans
      2. This will be used to filter the room outlines layer
      3. Must be unique to its specific area
  2. Room Outlines Feature Class
    1. Building Name
      1. This is the linking field to the building outline layer
    2. Floor Name
      1. This is the grouping field and a layer group will be created for each distinct floor name in the feature class
    3. Floor Number
      1. This is used as an ordinal field so all the floors can be sorted by true floor number and not alphabetically.
    4. Default Floor
      1. When this attribute is set to true, it will be the floor that is turned on be default while the others will be left turned off. 
The following attributes were chosen for our example.
  • SitePlans - contains building outline polygons
    • Group_Title - This is the Building Name
  • FloorPlans - contains room outline polygons
    • Group_Title - matches building name
    • Floor_Title - floor name as string
    • Floor_Number - floor number as integer
    • isSelected - boolean field with first floor rooms set to true
Now we have all the necessary feature classes and attributes needed to build our dynamic layer filters in FacilitiesMap.

[Last updated for version 2306 (12/2012)]