building=* and building:part=yes

I am confused when building=* is ignored for 3D rendering.

From the Simple 3D buildings:

At the same time it’s written there:

F4 maps and OpenScienceMap additionally apply the following rule:

So when to ignore building=* and when to use it for 3D rendering?

You’re right, that’s a big contradiction there. I would be happy if it could be cleared up.

My preference would be to follow the this section, and to remove the conflicting paragraph. The idea described in that paragraph used to be popular in the very early days of 3D and is actually still supported by OSM2World, but is nowadays obsolete in my opinion.

My english isnt the best, but:

the volume rendering is afaik the rendering of building:levels, heights and so on. And imho its right to ignore.

for example a building:part with 10 levels will break the roof of a building with height 5 levels. There should be ignored the building:level from the building on the place, where the part is.

similar is colour. if part has colour green, then should (it) not be coloured with red from the building.

I suggest to update the Simple 3D buildings specification to reflect gathered practical experience and statistics of usage.

Does it make sense to introduce the following additional rules of F4 maps to the specification?

  • building:part not fully included in a building are ignored.

  • building:part inherits every building* tags from their parent building if they’re not overrided on the part (color, roof shape, height etc).

  • building:part polygons are removed from the outline polygon they intersects unless the outline is tag with building:part=yes.

  • outline with building:part=no or building:parts=vertical/horizontal are ignored.

That basically means: building outline building=* is used in 3D rendering unless it’s tagged with building:part=no.

We’re rendering building outline mainly for backward compatibility. It would be best (easier to understand at least) to not render it if it contains a part, put that would break some buildings which were mapped some years ago.

Right now, we’re removing all the parts from the outline (2D wise) before rendering what’s left of the outline, which is kinda hard to grasp, so not rendering the outline at all would be easier to understand. however, the inherit section is also misleading, applying the roof shape to all parts is confusing sometime, and useful for simple models (with 2 or 3 parts)

I agree with Cactusbone that building outlines would ideally be ignored entirely when rendering. It would be great if we could move the Simple 3D Buildings into that direction, even though the backwards compatibility for old buildings will likely have to remain for quite a while.

As for the open questions:

I believe we should only describe correct tagging in the wiki: All building parts must be fully included in a building. How applications treat invalid input data does not need to be specified.

This is how I’m currently handling it, so you’ll hear no objection from me.

As mentioned above, I would rather ignore all outlines for rendering. I feel that the building:parts tag, in particular, should be discouraged as it does not really offer useful information and is badly named.