Can a closed way be tagged with both: "building", "building:part"?

Can a closed way be tagged with both: “building=yes”, and “building:part=yes”?

Here is an example:
http://www.openstreetmap.org/way/19001815

If it can, then in which cases I would be allowed to use both of upper tags on a single closed way?

Thank you for the reply.

imho its wrong in two cases:

  • there is an relation for the building, the building-summary-tags should be there
  • a bulding:part cannot be an building (that was the easy part…)

Yes, it can.

It serves both as a building outline and a building part.
Since it is a building part, it should be rendered by a 3D application.

It can. See my message above

What do you mean by building-summary-tags.

It’s not logical and not necessary.

housenumber, name and so on should be tagged in the relation, not in the building-line.

Could you elaborate that statement? I see it both logical and necessary, since a mapper doesn’t need to create an extra building:part if he tags the building outline with building:part=yes.

I disagree with you. Housenumber, name and so on should be tagged in the building outline. That is also stated in Simple_3D_buildings:

Remember that 2D renderers use the building outline and they aren’t aware of the building relation. So it seems quite logical that building attributes must be tagged on the building outline.

There are so many ways in 3D …

I would never use building and building:part for the same closed way of a building. There is no necessity although it is possible. Only for multiple building:part within a building it sounds reasonable. Only building:part on a closed way is definitively wrong usage cause it will be ignored by most osm users.

I also prefer to add the address to the outline, even if there is a building relation. Why? Because addresses are most of the time at the outline … But both is correct.

I also divide strictly by building:* and roof:*. Both of them are independent of each other and don’t change if another mapper changes only the height on the outline. But that is just my approach.

The example of bernard1995 is exactly about that: a building is composed of multiple parts.
If a building is composed of only one part, building:part isn’t necessary.

2D renderers aren’t aware of the building relation, since building relation is a 3D feature. So 2D renderers won’t know about building address if it’s placed on the bulding relation. Therefore placing building attributes on the building relation is wrong.

Building attributes must be placed on the building outline.

The Tagging is:
building=yes
(building:part=yes)
height=8

Thats wrong. The whole building is 24m. The building:part is 8.

http://demo.f4map.com/#lat=52.5207499&lon=13.4167610&zoom=19&camera.theta=71.875&camera.phi=-64.458 don’t looks like 24 m and i mean it’s not an error of the f4-map.

You’re right (have tested it now ;)), but … uhm ok it’s another thema.

Thank you for the quick replies, all three of you: MKnight, vvoovv, R0bst3r.
I apologize for not replying back more sooner.

Thank you!!
But what happens with that height issue?

Should this specific way be tagged with the whole building height of 24 meters, or just building part height of 8 meters?

I think MKnight is right. Different height is the reason why building=* and building=yes should be applied to different ways or relations.

Thank you for the reply vvoovv!

Does that mean that when a closed way representing a building outline, completely matches up (coincides) with one of its building parts, then we need to have two different closed ways: one representing the building outline, and another one representing its building part?

No, then a building Tag on one closed way is enough, although both tags can be used (as MKnight showed).

In short:
One closed way. Use building=*, use height (alternate or for more details use building:height and roof:height which summarized is equal to height)

If multiple building:parts, then use building=* for outline and building:part together with building:height for each part. Tag roof with roof:shape etc.

To make it more easy to work with maybe use a relation type=building.
More described in wiki and on simple 3d page.

Why is it easier to use relation type=building?

I see type=building relations primarily as a means to “group” all building:part and the outline together. If you don’t use a type=building relation, there is essentially nothing that tells you that all these parts belong together, they might as well be different buildings. It also helps in navigating the different parts in the OSM editors like JOSM and iD, as you can go “up” to the building relation to see which parts belong to it, and then drill “down” to a specific part if you want to modify something.

Of course you could use just a generic relation, but type=building is already documented, and I think makes sense using in this context and to distinguish it from other types of relations.

I replied mboeringa in the new thread dedicated to the relation type=building.

Thank you for the replies once again R0bst3r, vvoovv, mboeringa.

I checked the Do we need relation type=building topic, and read your replies but I still do not understand what is the final conclusion of this topic?

This:

  *Can a closed way be tagged with both: "building", "building:part"*

question is driving me crazy.
I do not understand the conclusion a couple of you made.

I don’t see any conclusion at all: 2 people want to keep the relation, one wants to keep it for complicated situations, one want to get rid of it. Typical situation for OSM :slight_smile:

Since 3D is not that widespread yet, people will keep on choosing one of the methods until one wins (i.e. gets used a lot more), or all data consumers support both models, in which case the ones that do not want the relation “wins”.

just my .05 cent

It’s usually bad practice to map a building with both building and building:part since the part is usually smaller that the building, and the building tag should also have tags that depict the whole building (full height for example).

So if your building only have ONE part, simply tag using building. if it has MORE THAN ONE part, map the outline with building, and all the parts with part. 2D wise, the sum of all parts should cover the outline.


Relations are useful when it’s not easy to associate a building:part to a building outline, for example when the part overlaps 2 outlines (2D wise). Otherwise it can be convenient to use a relation to sort through the differents parts, but it’s not required.