Kaart: Building Tagging Guide

Introduction
In this document you will learn about how to tag OSM building polygons. This will include:
- Building tagging basics
- building:part tag
- Skybridges/skyways
- Objects that are not buildings
- Other common building tags
- Layers
- Levels
- Address tags
Prerequisites
For editing you will need an OSM account and the latest version of JOSM instaled on your computer. You should also be familiar with basic JOSM editing, how OSM tags work, and how to draw in buildings.
Building Tagging Basics
The definition of a building is “a structure with a roof and walls, such as a house, school, store, or factory.” In OSM, most buildings will fit the same definition, but the OSM building tag is quite broad and might sometimes include features you would not consider as a normal building in everyday life, such as storage tanks and houseboats.
The most basic tag for building is building=yes, which simply indicates that yes, this feature is a building. From there, the building tag value can be changed to provide more information about the type of building. These values range from broad labels like building=religious, to more specific labels like building=synagogue. The Buildings OSM page contains a list of many valid building tags. Here arree just a few examples:
Building Parts
Buildings parts should be used for instances where the building is separated into sections/areas that have differing attributes or functions. A good example would be a strip mall: it is one large building structure containing several individual stores within it. The stores are separate spaces and each requires different labels, but they all share one roof and are still part of the same single building structure.
The tag used for these spaces is building:part=*.
Note: The tag building:part=* is not the same as a shared wall. If you have independent buildings that happen to share a wall, or part of a wall, these should be drawn as regular buildings that are connected where they attach. See the Kaart: Building Geometry Guide for more info.
Any valid building value can be used as a building:part value, but may not always be the correct value to use.
- For example,
building:part=houseis NOT a valid tag in most cases because it is a part of the house and does not contain the house. - In another case,
building=roofis used for "roofs which are open at least at two sides". For roof features which are part of another building usebuilding:part=roof.- Note: Because a part is on the roof does not make it a
building:part=roof.
- Note: Because a part is on the roof does not make it a
Here's an example of a building with multiple buildng parts on the roof that aren't considered building:part=roof.
In most cases we will want to use the tag building:part=yes as it is universally a correct tag, but we can use more specific values if the information is verifiable.
How to Map
- Draw the base building(unless there is an existing one).
- Use available resources to verify each building part.
- Satellite/ground imagery
- Local knowledge
- Draw the area of each building part within the main building.
- Attach these to the main building where appropriate.
- Add
building:part=*to each building part.building:part=yes- for building attributes(height/level).building:part=(type of building)- for a different building function(roof/retail)- Note: Attributes may be different on this as well.
- Add additional tags to each building part as needed.
- You can also combine existing POI nodes with the building part to create one feature.
- This university building is broken up into five separate parts, each with a different name and purpose, in the same building.
For more information and examples see the Buildings: Building Parts(link) presentation.
Skybridge's/Skyways
A building may occasionally cross over a road to connect buildings on either side. This is called a skybridge or skyway. Sometimes they are already mapped with level tags; This is useful in determining how far above the road the skybridge may be.
Skybridge's require a building=bridge tag and a layer=* tag. If level tags are already present on the adjacent buildings, they can be used on the skybridge as well with building:min_level=* indicating the bottom and lowest level of the bridge and building:levels=* indicating the highest and top level of the bridge.
For more information about how to tag these see the Pedestrian Features(link) doc.
building=bridge + layer=1
|
Objects that aren't Buildings
In many cases buildings or parts of a building are incorrectly labeled. Solar panels should not be labeled building=* as they exist separately from the building. Please see Tag:generator:source=solar for instructions on how to map solar panels.
Additionally, an area covered by one address, like a school and its playground, should not be labeled as a building just because it contains one or more buildings. The area polygon itself can be labeled as a landuse=education with a amenity=school tag for example and then the buildings should be outlined separately or marked with a node.
The same can be said for residential areas that contain buildings.
Other Common Tags used on Buildings
Layer Tags
The layer=* tag is one of several methods used to describe vertical relationships between crossing or overlapping features. The vertical ordering established by the layer values is valid exactly only in the precise location(not marked by a node) where the ways cross or objects overlap.
Level Tags
According to the Key:layer page, "level=* is used for the physical vertical arrangement of levels(floors, walkways) inside structures. Use level:ref=* for the human readable signage used to identify physical levels(e.g. elevator buttons, multistory parkade levels)".
When we come across a multistory parking structure with a highway=service drawn in and around it, we can differentiate and mitigate any crossing issues with the level=* tag to denote the vertical arrangement of each way. You would still connect the road to the building where necessary(where the level changes usually) and split the way at the connection but we will use levels instead of layers and they should correspond to the floor number to the best of your ability.
To determine the appropriate level number, ground view imagery or local knowledge is necessary. According to the Key:level page, wee would treat the ground level as 0 and then the floor above that as 1, basement levels would be -1, etc. If you cannot determine what floor or level the road is mapped to, then pulling the road back to the entrance is the better option. Here's an example.
Address Tags
Address tags are often added to buildings/building parts. If you are creating or editing a building polygon, address information for it may already exist on a floating address node. In this case you will need to verify the correct address placement and then merge the node to the building it matches with, as it is preferred to have only one object per feature in OSM. When you merge the data, make sure that there is only one value per key and that the remaining value is the correct one. There are many different address tags, including but not limited to:
addr:housenumber=*addr:street=*addr:unit=*addr:city=*addr:state=*addr:postcode=*
You can read more about address tagging on these pages:
Practical Application
Use this knowledge for any project that may involve building editing. The capability to read and understand building tags can often be helpful when evaluating community data, even if buildings are not the main focus of the project.
Suggested Bookmarks
- Buildings - An overview of OSM buildings along with a helpful list of valid building tag.
- Simple Indoor Tagging - An overview of indoor tagging.
- Key:building:levels - A page that describes building levels and how to use them.
- Key:building:part - Page that describes the building:part tag and how to use it.
- Addresses - Overview of how to add address information in OSM.