Configure buildings and floors

Microsoft Places depends on a fully established hierarchy of rooms/workspaces, floors, and buildings. This page will guide you through the steps.

The Initialize-Places cmdlet will parse existing rooms and workspaces in your tenant, and generate the hierarchy on your behalf. Specifically, the cmdlet leverages the RoomList information to infer the building name of each room or workspace. The cmdlet will build a hierarchy of buildings, floors, and workspaces; allow you to review and revise the results; and upload the finalized list.

Alternatively, to manually configure all of your buildings, floors, and rooms, see the Manual setup section of this article.

Step 1 - Create buildings and floors hierarchy

  • Launch PowerShell7 as an Administrator

  • Run Install-Module -Name MicrosoftPlaces -AllowPrerelease -Force if you haven't done this yet (you'll need to do this once per PC from which you plan to configure Microsoft Places)

  • Run Connect-MicrosoftPlaces

  • Finally, run the Initialize-Places cmdlet. You should see the following options:

    Initialize-Places
    Please choose the desired option before continuing:
    1. Export suggested mapping CSV of rooms to buildings/floors.
    2. Import mapping CSV to automatically create buildings/floors and room mappings.
    3. Export PowerShell script with commands to manually create buildings/floors and room mappings based on an imported CSV.
    
  • Use Option 1 to create a CSV file which will only contain rooms/workspaces that are associated with a RoomList.

Step 2 - Review and revise the CSV

  • Add or correct building and floor names in the first two columns (InferredBuildingName, InferredFloorName). The other columns include additional metadata which can help you update your building and floor names.

  • Remove all columns except InferredBuildingName, InferredFloorName, and PrimarySmtpAddress.

  • Save and close this CSV file before moving on to the next step.

Note

Make sure buildings and floors are spelled the exact same way throughout the list. Any difference will result in additional buildings or floors being created.

Step 3 - Upload the finalized CSV

  • Run the Initialize-Places cmdlet again and use Option 2 to import your CSV file.

  • You'll see progress details in the PowerShell window. When done, the script will generate a file summarizing the results and export it to the same folder as the file you imported.

Buildings should be visible immediately after this step across Microsoft Places experiences (Work plans, Workplace presence, Peek cards, etc.).

Step 4 - Verify

Open the account manager in Microsoft Teams, or the calendar in New Outlook, and check whether you can set your workplace presence to a specific building. For example:

Teams control
Screenshot of Teamscontrol1. Screenshot of Teamscontrol2.

If you don't see buildings, you may have been using an old version of Initialize-Places. You can manually enable buildings by running Set-PlacesSettings -EnableBuildings 'Default:True'. For more details on how to turn buildings on and off in Microsoft Places for your organization, see Set-PlacesSettings.

Note

New buildings and floors should be visible in Microsoft Places right away. However, any changes made to rooms and workspaces may take up to 24 hours to update.

Step 5 - Add metadata

Use Set-PlaceV3 to add additional metadata on buildings, floors, and rooms/workspaces. We recommend adding capacity, A/V equipment, room pictures, etc. You can also choose to do this later.

Check out Set-PlaceV3 for the full list.

Example

Here's what the CSV file generated at step 1 would look like for an organization with meeting rooms in two buildings, "Austin 550" and "NYC Times Square":

InferredBuildingName InferredFloorName PrimarySmtpAddress
Austin 550 Mezzanine baker@contoso.com
Austin 550 1 adams@contoso.com
Austin 550 2 rainier@contoso.com
NYC Times Square Unknown olympus@contoso.com

You should review all building and floor names in the CSV file before uploading it as part of Step 3. In this example, you'll want to fix the floor name in the NYC building.

Alternative - Manual setup

In some cases, you might want to manually create buildings and floors, and link them to your meeting rooms. To do this, you'll need to run individual PowerShell cmdlets to create each building and floor:

  1. First, create the buildings.

  2. Then create the floors with ParentId set to a building.

  3. Then set the room/workspace's ParentId to the floor, as shown in the example below.

  4. Finally, use Set-PlaceV3 to add any additional metadata on buildings, floors or rooms/workspaces.

New-Place -Type Building -Name "Austin 550"
New-Place -Type Floor -Name "1" -ParentId {PlaceId of Austin550}
Set-PlaceV3 -Identity {smtpAddressOfRoom} -ParentId {PlaceId of Floor1}

Refer to New-Place and Set-PlaceV3 for more details on these cmdlets.

Note

Use Exchange PS cmdlets to create new rooms.

Frequently Asked Questions

Can I export all rooms, regardless of whether they're part of a roomlist?

Yes. Use Get-PlaceV3 to export all rooms.

Get-Placev3 -Type Room | Export-Csv -NoTypeInformation "C:\temp\rooms.csv"

Do I have to set up all of my buildings and floors at the same time?

No. You can run Initialize-Places as many times as you want, and for example focus on one building at a time. To do that, trim the rows in the CSV file generated at step 1 to only keep the builds/floors you're working on, and upload that CSV at step 3. Note that changes you're making for a set of buildings and floors may not be reflected if you go through step 1 to generate a new CSV file immediately after you've uploaded a CSV at step 3.

Make sure buildings and floors are spelled the exact same way throughout the list. Any difference will result in a new building or floor being created.

My security department wants to know what PowerShell commands are executed during import

You can use Initialize-Places Option 3 (Export a PowerShell script) to preview the commands that are executed. In this option, you must provide a CSV file with the same three-columns as shown in the example. Instead of setting up the buildings, floors, and rooms, Initialize-Places Option 3 exports a PowerShell script of the commands that would be executed during import. The PowerShell script is exported to the same folder as your import file.

Note

The import file is needed only to generate the PowerShell script. Nothing is imported on your behalf.

You can use the exported PowerShell script to run the commands yourself rather than using Initialize-Places Option 2.

Can I run import with only building names?

No. Microsoft Places depends on a fully established hierarchy with Buildings > Floors > Rooms. If you leave the floor name empty on any row of the CSV file, the rooms will be parented to an "Unknown" floor for that building.

How do I update room data, such as capacity or display name?

You can do this using Set-PlaceV3.

Troubleshooting

I don't see the options described here when I run Initialize-Places

Make sure you're using the latest version of Microsoft Places PowerShell module. PowerShell might attempt to cache the installed module, so it's a good idea to use the -**Force parameter.

Install-Module –Name MicrosoftPlaces –AllowPrerelease -Force

I receive an import error

Make sure that you've saved and closed the CVS file prior to importing it.

I don't see all rooms after importing

It can take up to 24 hours for room associations to appear in Microsoft Places.