How to create your CAD floor plan

Steerpath map data is generated using any CAD application with an existing or new building floor plan.

Below are a few steps on how to organize each layer to enable our web service to analyze and activate the indoor navigation and positioning features. The CAD file should be saved as R2013 or R2010 ASCII format and we provide CAD blocks to simplify and speed up the map drawing. Once the analysis has completed you can view the map data and download the NDD data file. Our example iOS app can fetch the NDD data file from a web server by entering the NDD name in the settings view.

Each video covers how to create the layers and gives a working example for each of the CAD blocks.

Additional documentation can be found here.

To enable the popup CAD blocks in DraftSight you must enter the following at the command line
: attdia 1

Walls and GPS anchor points

Before you start here is a zip file containing the demo dxf and floor plan images. The CAD blocks can be downloaded from our documentation section at

In the following example the floor plan is available as two PNG images which I have first inserted into Draftsight. Then I trace the floor plan making sure to include all partitions and obstacles as well as providing an entrance/exit to each room for the users to walk through. Walls should be drawn using the polyline tool.

Note the names for each of the layers, for the walls use "floor 0 walls" then "floor 1 walls" and so on.

It's important to add some GPS anchor points, there must be at least two for each floor using the SteerpathWorldCoordinates CAD block. Enter the latitude, longtitude and floor height. Typical floors will be every 3-4 meters high, but obviously this will vary depending on your location. In the example floor 0 should be 3 meters and floor 1 should be 6 meters. In the video I have both set to 3 meters however you will see I fix that in another video later on.

For the GPS points use "floor 0 gps" then "floor 1 gps" and so on.

Navigation Routes and Stairs

The navigation routes, stairs/escalators/elevators and points of interest are placed on their own layer called "floor 0 routes", "floor 1 routes" and so on.

The routes can be drawn all the way from each point of interest and floor transition covering the areas you wish to navigate. Or you can simplify the process by only drawing the main highways throughout the building and our system will add the joining pathways to each destination. Points of interest support both names and keywords.

Use the relevant CAD block for each of the stairs/escalators/elevators and points of interest.

Points of Interest

Geo Trigger Zones

Geo fence or trigger zones can be added in a "floor 0 zones" "floor 1 zones" layer.

Use the CAD block called SteerpathPIO by attaching it to any part of the zone marker. In the example I use a yellow colored polyline or rectangle to create the trigger zone or geo fence. It can be given a name as well as a dwell time for when to trigger you have entered or exited the zone.

Keepouts and Active areas

The active areas (or areas you wish to enable indoor positioning) should be identified using a green colored zone and keepouts with a red zone. These should be placed on their own layer called "floor 0 keepouts" "floor 1 keepouts" and so on.

NaviBeacons and Movable Beacon Zones

The CAD block SteerpathNaviBeacon is used to mark each position of the infrastructure navigation beacons. These can be any beacon advertising one of the popular packet formats for example iBeacon, Eddystone etc. NaviBeacons positions should match the same place on the map as in reality.

We recommend to advertise non connectable data packets every 350ms.

The Steerpath API can be used to configure the iBeacon UUID or Eddystone UID.

iBeacon major and minor configuration should be given for each beacon CAD block positioned in the CAD drawing.

Eddystone Mapping Description:

Initial Eddystone support is done by mapping eddystone BIDs to iBeacon Major+Minors.

iBeacon major is 2 bytes and minor is 2 bytes. Eddystone beacon id is 6 bytes.
In our system the top 2 bytes of the eddystone id are ignored, the following 2 bytes are read as iBeacon major and the lowest 2 bytes as the iBeacon minor.


Eddystone Beacon ID: 00 00 12 34 ab cd
 —> CAD block: Major: 4660, Minor: 43981

The CAD block SteerpathBeaconZone is used for a movable beacon zones, just like a typical iBeacon or Eddystone Beacon. BeaconZone beacons can be placed on the map in any location however they can be moved anywhere in reality. 

Both require the major, minor data and the RSSI at 1m. The NaviBeacon should also specify the height at which it's installed and the BeaconZones can specify the distance at which a notification should occur. In the example I use 3 meters as they are installed on the ceiling. The amount of beacons will vary depending on the venue size and accuracy you require. As a general rule you can place a NaviBeacon every 100 meters squared or one per room. You can easily add or remove beacons as required.

Online DXF Analysis and NDD creation process

The following video demonstrates how to upload your DXF file, view the analysis report and generate your NDD file. More detailed information about this process can be found here.

Common Default Settings CAD Block

Using the Default CAD Block enables you to apply settings and make changes quickly. This is particularly useful for setting different beacon parameters in the NDD to simplifying switching between multiple locations. It also removes the need to set beacon UUIDs using the Steerpath API.

Note when using the default CAD block matching parameters used in other specific CAD blocks can be left blank.

Testing with the iOS demo app

After installing the beacons you can test the indoor navigation and positioning features using the iOS demo app. Below screenshots show how to get started.