Configuring buildings
Buildings are used in a variety of signs. Within buildings, you can configure the building itself, its floor maps, and its rooms. Basic building information and room information is displayed on signs for the building as a whole and for a particular room. More advanced information is used for floor map signs.
buildings:
- name: my_building
display_name: My Building
formal_name: My Building Hall
floors:
1:
floor_name: "First Floor"
floor_image: "mybuilding1.svg"
map_data: { "points": { } }
offset_x: 10
offset_y: -80
default_scale: 1.2
min_scale: 0.2
max_scale: 5
you_are_here_detail_scale: 3
north_rotation: 0
allow_rotation: true
rooms:
- name: "101"
display_name: "101"
description: "Nicholas' Classroom"
floor: 1
ems_room_id: 123
- name: "101a"
display_name: "101A"
description: "AV Closet"
floor: 1
ical_url: "https://outlook.office365.com/owa/calendar/.../calendar.ics"
nameis a unique identifier for the building. It's used in sign URLs.display_nameandformal_nameare used visually on signs.display_nameshould be shorter. It's used when referring to a room, such as "My Building 101".formal_nameshould be longer. It's used to refer to the entire building, such as "My Building Hall".
floorsis a map of multiple floors, keyed by an integer. Each floor has:floor_name- a display name for the floor; displayed on signage with mapsfloor_image- the name of the floor map image file stored inbackend/static_secure/maps. Storing it here ensures that only sign users can download the map.map_data- an object produced by the map builder tool to overlay interactive data on the floor map. See Creating floor maps for more information.offset_xandoffset_yare optional offsets for the default position of the map. Positive values push the map right and down; negative values push the map left and up. Both default to 0.min_scaleandmax_scaleare optional restrictions on how far the map can be zoomed in or out. The minimum defaults to 0.5 and the maximum defaults to 10.default_scaleis the optional initial scale that the map will load at. The default value is 1.you_are_here_detail_scaleis the optional scale where the "You are here" point will be shown in full detail (with text and direction as opposed to only an icon). The default value is 2.north_rotationis an optional number of degrees to specify which direction on the map is North. 0 is up, 90 is right, etc. If this isn't specified, the map won't be rotatable and the compass won't display.allow_rotation, if true andnorth_rotationis specified, will allow users to unlock the map's orientation by tapping the compass to rotate the map freely. Defaults to false.
roomsis a list of rooms in the building, each with:name- a unique identifier for the room, usually all lowercase. It's used in API paths.display_name- the name of the room shown on signagedescription- a short description of the room; also shown on signagefloor- an integer to indicate which floor the room is on within the buildingems_room_id- an optional integer, which is this room's ID in the EMS room reservation system. See below for how to get this information from the EMS website.ical_url- an optional string, which is the URL to a live iCalendar file for manual room reservations outside of EMS- If both
ems_room_idandical_urlare specified, the reservations will be aggregated
- If both
Find a room's EMS ID
This technique is the most straightforward I've found, but it still seems hacky. I won't assume you're familiar with browser development tools (as this isn't the developer documentation), so I'll walk you through this step by step. This was tested in Firefox, but should apply to any common browser.
- Log into the UB EMS space request system: https://spacerequest.buffalo.edu/evntwebapp/
- Navigate to the room request page by clicking "book now" on the relevant template for the room you're looking to find the ID for
- Open your browser's development tools (usually F12 regardless of browser choice) and navigate to the "Network" tab in it
- On the left pane of EMS, open the "I know what room I want" section. Search for the room name, such as "Davis 123". You'll see a list of partial matches below the search field. Click the room you want. A modal will pop up; you can ignore it.
- In the devtools, you'll see a POST request to an endpoint ending with "SetupTypeChanged". Click the request to view its details. You'll probably see the headers by default. Switch to the "Request" tab within the details for this request. You'll see a JSON object containing the "roomId" key. The value there is the room ID you should specify in Awesign.