Skip to main content

Microsoft Places - Manual Map Setup

Exporting IMDF from Spaceti and Mapping it to Microsoft Places (Manual Setup)

Updated over a week ago

This guide explains how to manually export floor plan data from Spaceti and upload it to Microsoft Places using the IMDF (Indoor Mapping Data Format) workflow.

The process consists of three main steps:

  1. Prepare Microsoft Places (buildings, floors, spaces)

  2. Export IMDF data from Spaceti

  3. Correlate Spaceti map features with Microsoft Places IDs and upload the map

Once completed, Microsoft Places will display the building floor plan with desks and rooms correctly positioned.


Prerequisites

Before starting the IMDF export and mapping process, ensure the following requirements are met:

  • Microsoft Places is enabled in your Microsoft 365 tenant.

  • Your account has the required Microsoft Places administrative permissions to manage buildings, spaces, and maps. See Microsoft documentation on configuring admin roles:

  • PowerShell is installed on your machine so you can run Microsoft Places management commands.

Once these requirements are met, you can proceed with preparing Microsoft Places and exporting the IMDF map from Spaceti.


Step 1: Create Building Structure in Microsoft Places

Before uploading the floor plan, the building hierarchy must exist in Microsoft Places.

Create the following structure manually:

  • Building

  • Floor

Next, create desks and rooms either manually or using PowerShell.

Example:

New-Place -DisplayName '<desk-name>' -Type Desk -ParentId <section-or-floor-id> -Mode @{Name='Reservable'}

Repeat this step until all desks, rooms, and other reservable spaces are created.


Step 2: Export Microsoft Places Space IDs

Each resource in Microsoft Places has a unique Place ID.

These IDs will be used to map the IMDF features exported from Spaceti.

Get building IDs

Get-PlaceV3 -Type Building

Export all places in a building

Get-PlaceV3 -AncestorId <building-id> | Export-Csv <path-to-export-file>.csv -NoTypeInformation

This file contains all spaces (desks, rooms, etc.) and their corresponding Place IDs.


Step 3: Export IMDF from Spaceti

In the Spaceti Admin Portal:

  1. Navigate to Building Settings

  2. Click Export IMDF

This downloads an IMDF package:

<spaceti-imdf-export>.zip

The IMDF file contains spatial information about the building such as:

  • Floors

  • Spaces

  • Desks

  • Layout structure

  • Markers


Step 4: Generate the Map Correlation File

Microsoft Places requires a mapping between IMDF features and Place IDs.

Run the following command:

Import-MapCorrelations -MapFilePath <spaceti-imdf-export>.zip

This command generates the file mapfeatures.csv.

The CSV contains all map features detected in the IMDF package.


Step 5: Map IMDF Features to Microsoft Places IDs

Open the generated file mapfeatures.csv.

Update the file manually by inserting the correct Place IDs, Name, Type from the Microsoft Places export.

This creates the correlation between:

  • Spaceti spatial objects

  • Microsoft Places resources


Step 6: Generate the Correlated IMDF File

Once mapfeatures.csv is updated, run the command again with the correlations file:

Import-MapCorrelations -MapFilePath <spaceti-imdf-export>.zip -CorrelationsFilePath mapfeatures.csv

This generates a new IMDF package imdf_correlated.zip

This file now contains the mapping between IMDF features and Microsoft Places resources.


Step 7: Upload the Map to Microsoft Places

Upload the correlated IMDF package using:

New-Map -BuildingId <building-id> -FilePath imdf_correlated.zip

Microsoft Places will process the uploaded map and associate it with the specified building.


Processing Time

After uploading the map:

  • Initial Microsoft Places synchronization may take up to 24 hours

  • Floor plans may take additional time before they appear in Microsoft Places


Result

After processing completes:

  • The building floor plan appears in Microsoft Places

  • Desks and rooms are positioned on the map

  • Users can locate and reserve spaces directly from the map interface

Did this answer your question?