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

Please check the url in your link.

in https://www.mapbox.com/blog/mapping-3d-buildings/ is a good explanation about buildings with different height parts.

I edited the link. My apology for posting a wrong one. Thank you for pointing this out vvoovv.
Whturner, thank you for the article! Is it possible to comment on this specific way? How can it be separated from the building part which covers exactly the same area/

Using both building=* and building:part=yes for the building outline is completely legitimate and useful.

Recently I added building:part=yes to the outline of a number of buildings including Brandenburg Gates in Berlin and Westminster Palace in London.

The greatest advantage of setting both building=* and building:part=yes is that a mapper doesn’t need to create additional OSM elements.

A disadvantage is that height is related to the part not the whole building. But it’s questionable what to call the height of the whole building if the building is composed of several parts. So it isn’t problem at all.

So set both building=* and building:part=yes for the building outline if it reduces the amount of mapping.

No doubt, but I feel we should still avoid adding incorrect data, and it’s not typically possible to add one height value that is correct for both the building as a whole and one of its parts.

The “height of a building” is a very commonly used concept in the real world, and often comes up regarding skyscrapers, towers, monuments, or pretty much any tall building. Normally this would be the height of the building’s highest point, although one might argue about specifics, such as antennas on top of the roof.

So this piece of information has value independently from 3D rendering, and will be used by applications that are not 3D-aware (such as a map rendering, a listing of the highest buildings in each city, and so on). That kind of use case is what tags on the building outline are intended for. So the building outline should contain the height (and other tags) for the total building, which precludes re-using the building outline as a building part.

Thank you for the useful replies, both vvoovv and Tordanik.

In that case, what will happen with the building part? Another closed way on top of the building outline will have to be created, and be tagged with: “building:part=yes”? Regardless of the fact that now the building outline and building part closed ways coincide with each other?

That would be correct, yes. It doesn’t feel satisfying to do it like that, but that’s ultimately a result of representing 3D data in a 2D format: The building is different from the building part in the vertical dimension (that is, the 3D shapes do not coincide), but it has the same footprint. As a result, the two look identical in your editor, but still need to be distinguished for 3D rendering.

Tordanik,
there is a major drawback for the approach with two overlapping ways.

How to know in the editor that there are two or more overlapping ways?

Normally you can see it on the shared Nodes:

and/or the stronger ways (edit: ways only in new draws).

I wouldn’t rely on the color to find overlapping ways, since:

  1. One has to remember what a normal color is
  2. Many people have problems with distinguishing colors
  3. Monitors may fail to show the correct colors.

The nodes also get bigger if there is more than one way using them, letting you spot shared nodes. Or you can just middle-click on the way(s) and get a list of them.

All this in JOSM, of course.

the color is irrelevant (and it’s my own stylesheet), take a look at the Nodes.

The other alternatives would be

  1. Relations sharing the same way: one relation for the building outline and the other one for the part

  2. Keep building=* and building:part=yes on the same way and introduce new tags, something like total_height and building:total_levels.

Using multipolygons like this is already possible today. After all, way-based areas and relation-based aras are semantically interchangeable. :slight_smile:

Whether that’s better than overlapping ways is a matter of personal preference. I have no problem with this tagging, even though I don’t use it myself.

This would be a possible solution if we want to update the standard to allow this. For backwards compatibility, though, it would be better to keep the regular tags for the total height/levels (after all, tags like height pre-date 3D mapping), and invent new ones for parts.

In spirit, this would be similar to things like bridge:name, which was kind of necessary before man_made=bridge was invented. I feel like this type of solution never really caught on elsewhere, though, and would prefer following the “one feature, one OSM element” rule.

The above solution requires creating 3 OSM elements: one way and two relations.

I think for the most case it’s enough to create 2 OSM elements:

  • a way tagged building=* for the building outline
  • a relation tagged building:part=yes referencing the above way for the building outline

What solution in your opinion is the simplest one?

Thank you for the replies Tordanik, vvoovv, MKnight.

Is this question directed towards me?
I do not know. I am just reading what people are writing in this topic and trying to draw a conclusion from it.

The question is for all.

Ok.

You mean what solution of these two you mentioned:

?

I guess the second one, with only one relation.

I wasn’t aware of this middle-mouse click option + CTRL up until now. This is a huge benefit for me!

What solution in your opinion is the simplest one of the 3 mentioned ones?

  1. Overlapping ways: one for the building outline and the other one for the building part

  2. Relations sharing the same way: one relation for the building outline and the other one for the building part

  3. A way tagged building=* for the building outline, a relation tagged building:part=yes referencing the above way for the building outline

Sorry for the late reply vvoovv. I’m am deadly sick at the moment.

To be honest: I am not sure.

I still haven’t made a single relation, and have to wrap my head around relations a little bit more, even though some of you gave me some good answers in topic about it.

So if I would be biased on this, I would avoid anything related with relations. With that taken into account, me personally as a beginner and somebody who still does not understand relations well enough, I would go with your first option: 1) overlapping ways.

Maybe later if I get comfortable with relations I may go with third option: 3) one relation only and a building outline as closed way.

But I still think my opinion on this is irrelevant, and it is better for me to listen to what you, more experienced users will say/said.