Configure buildings and floors
Microsoft Places depends on a fully established hierarchy of rooms/workspaces, sections, floors, and buildings. This page guides you through the steps.
The Initialize-Places cmdlet parses existing rooms, and workspaces in your organization, and generates the hierarchy on your behalf. Specifically, the cmdlet uses the RoomList information to infer the building and floor name of each room, or workspace. The cmdlet builds a hierarchy of places, allows you to review and revise the results, and upload the final file.
Alternatively, to manually configure all of your buildings, floors, sections, workspaces, and rooms, see the Manual setup section of this article.
Step 1 - Create buildings, floors, and sections hierarchy
Launch PowerShell7 as an Administrator
Run
Install-Module -Name MicrosoftPlaces -Force
if Microsoft Places PowerShell module in not installed. (this step needs to be done once per PC from which you plan to configure Microsoft Places)Run
Connect-MicrosoftPlaces
.Finally, run
Initialize-Places
. You should see the following options:Initialize-Places Please choose the desired option before continuing: 1. Export suggested mapping CSV of rooms and workspaces to buildings/floors/sections. 2. Import mapping CSV to automatically create buildings/floors/sections and mapping of rooms and workspaces. 3. Export PowerShell script with commands to manually create buildings/floors/sections and mapping of rooms and workspaces based on an imported CSV.
Use Option
1
to create a CSV file.
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 more metadata which can help you update your building and floor names.
Remove all columns except InferredBuildingName, InferredFloorName, InferredSectionName and PrimarySmtpAddress.
Save and close this CSV file before moving on to the next step.
Step 3 - Upload the finalized CSV
Run the Initialize-Places cmdlet again and use Option
2
to import your CSV file.The script generates a file summarizing the results, and exports it to the same folder as the imported file.
Buildings should be visible immediately after this step across Microsoft Places experiences (Work plans, Workplace presence, Places 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 account control | |
---|---|
Note
New buildings, floors, and sections 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. This step is optional and can be taken up 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" and a desk pool in "NYC Times Square":
InferredBuildingName | InferredFloorName | InferredSectionName | 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 | |
NYC Times Square | Unknown | Unknown | desks4.1.5@contoso.com |
You should review all building, floor, and section names in the CSV file before uploading it as part of Step 3. In this example, you should fix the floor, and section names in the NYC building (last two rows).
Alternative - Manual setup
In some cases, you might want to manually create buildings, floors, and sections, and link them to your meeting rooms, and/or workspaces. To set up places manually, you need to run individual PowerShell cmdlets to create each building and floor:
Create the building.
Create the floors with ParentId set to a building.
Create sections on all such floors. ParentId of sections should be set to a floor.
Set the room's ParentId to the floor (or section, if desired), as shown in the example. Workspace's ParentId must be set to a section.
Finally, use Set-PlaceV3 to add any extra 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}
For more information, see New-Place and Set-PlaceV3.
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. Changes for a set of buildings, floors, and sections may not reflect if you generate a new CSV file immediately after uploading a CSV file.
Make sure buildings, floors, and sections are spelled the exact same way throughout the list. Any difference results in a new building, floor, or section 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 four-columns as shown in the example. Instead of setting up the buildings, floors, sections, workspaces, 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 > Sections > Rooms/workspaces. If you leave the section empty, the room is parented to the floor however workspaces aren't processed as workspaces always need to be parented to a section.
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 the CSV file is closed before importing it.
I don't see all rooms/workspaces after importing
It can take up to 24 hours for room and workspaces associations to appear in Microsoft Places.