Q: how to extract building parts?

R0bst3r, thank you for your answers.

I do not see that it is ignored, and do not understand, how it could be.

Consider the following example:
https://www.openstreetmap.org/way/35546654

in F4: http://demo.f4map.com/#lat=56.3087989&lon=38.1295133&zoom=20&camera.theta=61.616&camera.phi=-27.215

the building structure is the following: cillinder, then dome, then another cillinder, and then pyramidal roof. There is no building part for the lowest tier other than way/35546654, which is also outline. F4, osm2world and kendzi3d does consider it for 3d.

Read it related to the example on the wiki page given:

You have a building outline. Fill it completely with building:parts. No 3D building properties on outline, all on building:parts, otherwise the outline will ‘cover’ the building:part. If it’s getting complex, add a building relation, it’s also a good idea to use this as documentation of your building:parts.

BUT: You are free to use tags on building outline. You are free to use only single building:parts and do no cover the whole outline. Your are also free to don’t use a relation. And the 3D renderers will anyway try to interpret your tags. You can also resign height tags and your building will still get a default height.

OSM is not perfect nor your tagging has to be. The result is the important thing and that’s the task of the 3D renderers.

I’m afraid some of R0bst3r’s statements contradict the documentation. Unlike some parts of OSM that suffer from poorly-defined tags, Simple 3D Buildings is actually quite clear about these things. So in particular:

  • All building:part areas must be entirely inside a building area. The cornice example you linked to is incorrect.

  • The building outline must be entirely covered with building parts. What happens if this rule is not followed varies widely between renderers, and cannot be relied on.

  • You do not need to analyze building parts to find the highest buildings. The height on the building=* area must be the height of the entire building.

Note that the last item means that you ought to never use the same element (e.g. a way) to represent both the building as a whole and one of its parts. The height would inevitably be incorrect for either one or the other.

A minor correction:
All building:part areas must be entirely inside a building area, if a relation type=building isn’t present for the building.

If the relation type=building is present, all building parts must be listed as the relation members with the role=part. The building outline must be listed with the role=outline. The building parts can be located in any possible way relative to the building outline in the presence of the relation type=building.

It makes sense to use the relation type=building only for buildings with parts hanging over the building outline.

I added clarifications for the type=building relation in the Simple 3D Buildings specification:
https://wiki.openstreetmap.org/wiki/Simple_3D_buildings#Building_relations

I’m not sure I agree with that change. The building outline section states: “The building outline represents the area of land covered by the union of all parts of the building.” A statement like that (with slightly different phrasing) has been part of the page since its first version, and there’s zero indication that this would only apply to relation-free buildings.

Tordanik, thank you, that makes perfect sense for me.

I do not have statistics, but it seems that it’s quite common practice for towers with several tiers. But Ok, original intention is clear.

By the way, is osm2world still in development? Do you accept feature requests/bug reports?

Sure! :slight_smile: The best place for bug reports and feature requests is on Github, but you can also contact me directly if you prefer.

Tordanik, that definition is valid for 99% of cases.
However note, that a building outline is also used as the building footprint by 2d renderers.

So we have a problem if the building outline doesn’t correspond to a footprint (in the manner how a mapper perceives the footprint in his head).

Example: Villa Mediterranee in Marseille. I (as an ordinary mapper) would use the building part that touches the ground as the building footprint:

Image Source: https://commons.wikimedia.org/wiki/File:Marseille_-panoramio(9).jpg by Ainars Brūvelis, license: CC BY-SA 3.0

why? :slight_smile:
I, personally, as another ordinary mappper, will use projection.
And it is 100% correct for 2d renders.

Zkir,
that’s how I perceive what a building footprint for that building is.

Zkir,
also note there is one more tiny building beneath the overhanging part as shown on the photo in the website of the Villa Mediterranee.

I’d treat that tiny building as separate and independant from the volume of the Villa Mediterranee. So it can’t be inside the outline of the Villa Mediterranee.

Image from http://www.villa-mediterranee.org

That definition is written (and intended) as a rule, though, not an observation of things people usually do.

So right now, the S3DB page is self-contradicting: It requires that the outline surrounds all building parts (in the outline section), but also mentions the possibility of building parts outside the outline (in the relation section). Mixing the two statements makes no sense, and to maintain internal consistency, we need to either change both sections at the same time – or none of them. For the record, I currently prefer not changing them.

That’s a problem if 2D building areas are supposed to show the ground-level footprint, but I’m not sure that’s actually what people expect.

Many ordinary mappers use aerial imagery for buildings, where drawing the projection often feels more natural. And in the case of “special” buildings with bridges and overhangs, I find that people do in fact often intuitively expect the above-ground sections to be included in the area.

One example from Germany that was discussed on the forums in the past is this restaurant building spanning a motorway:

That’s now mapped as a rectangular area spanning the road, rather than just as a few tiny dots where the load-bearing pillars connect to the ground.

Likewise, bridges connecting multiple building parts tend to be included in building outlines, to the point where some mappers have been complaining that Mapnik renders roads on top of them.

Interesting situation. I’d also consider this a separate building, but as far as I know, there’s no rule that building outlines aren’t allowed to overlap? In fact, I’ve always considered overlapping building outlines the one situation where building relations are necessary at all. (Before the changes being discussed here, that is.)

But they are. If building outlines represent vertical projection, they can be inside one of other, because vertical projections of [non-vertical] buildings can overlap.

I also do not quite understand what is the problem with 2d rendering.
If you use top-down view of a 3D render or just sattelite images, you wil get exactly the same thing.

I am not sure is it relevant or not, but just what I found:

http://constructioncosts.eu/glossary/building-footprint/

From the beginning of the same page:

Definitions:

  1. Building footprint
    The ground area utilized by a building.
    Pay attention to the word “footprint”. It isn’t “bodyprint”, but “footprint”. It’s about the area used by the foot of the building, rather than body of the building.

  2. Building outline
    The area within projection of all building parts onto a horizontal plane.

What should be presented on a 2D map: building outline or building footprint?

I’d like to have both like 2D representation of the Villa Mediterranee (mentioned above) on the image below:

The dotted area on the image represents building overhang.

However all 2D renderers don’t make a distinction between the building outline and building footprint.

A recommendation should be given for a mapper what to provide as a fallback for 2D renderers: building footprint or building outline.

I’m in favour of building footprint rather than building outline. Why?

Imagine that there are benches, trash bins, vending machines and other stuff on the public area beneath the overhang of the Villa Mediterranee. In the case of the building footprint, one would immediately see the public area with all the stuff on it.

Obviously there will be exceptions from this recommendation like the example with the suspended restaurant mentioned by Tordanik.

Exactly.

Let’s consider two building outlines B1 and B2 which have an overlapping area A.

Let’s assume the building B1 has a building part P1 which is entirely located within the area A.

It means that the building part P1 is located within both outlines B1 and B2!!!

The section Building outlines of the Simple 3D Buildings specification isn’t applicable for this case. A mapper should opt to the relation type=building.

How should we edit the the Simple 3D Buildings specification?

Basicallly, I propose to keep it as is right now. I’d add a disclaimer to the Building relations section, that it’s an advanced concept for experienced mappers. If a mapper is new to the Simple 3D buildings, he can safely skip that section. Actualy the concept of relations in OSM requires some mental efforts and practice time to grasp.