I know, and the basic specification does include a proper “outline” feature for 2D maps. However, the way it should exactly be implemented, is not entirely clear and may be confusing, and the Wiki pages don’t give an exact and complete tagging example of a specification conforming simple 3D building to help new 3D tagging users.
What I meant to say with “destroy” is that in many cases, there is no outline feature defined as part of a relation of the type=building. Also, in many cases, simple 3D tagged buildings incorrectly are of the type=multipolygon relation type, instead of type=building as per specification (http://wiki.openstreetmap.org/wiki/Tag:type%3Dbuilding).
Note that in the specification, the outline feature can (and most likely will be) be a geometry of the type=multipolygon class, but it should be tied to a super-relation of type=building, together with all building:part geometries, to form a conforming simple 3D building.
In addition to this outline issue, many parts of the 3D buildings are often incorrectly tagged with a “building=x” tag (e.g. “building=office”), instead of using a “building:part=x” tag (e.g. “building:part=office”).
The problem with this is that it causes multiple overlapping features in 2D maps, e.g. like in this example of the Pałac Kultury i Nauki:
where essentially each building:part=x is seen as a separate building=x feature, as it is tagged this way.
E.g. this building part:
should have been tagged building:part=hall instead of building=hall, and then the building:part=hall should have been made part of a relation of type=building to tie it in with all the other parts, including a ground level outline.
NOTE: some people may actually “like” the look of overlapping building parts, but I personally really consider this an error from a cartographic “2D” point of view, and it is not conform the specification. Renderers that do not sort the building parts based on size, are also likely to show an incomprehensible jumble of overlapping parts. Unfortunately, carto(?), or more likely, osm2pgsql “hide” such problems by stacking based on size.
A second problem is that the actual most important tags, are often not associated with the outline feature, as recommended by the specification, but with an arbitrary outer way. See this excerpt of the Simple 3D Buildings Wiki page (http://wiki.openstreetmap.org/wiki/Simple_3D_Buildings):
“The building outline is represented as an area tagged with building=. It’s the area of land, or footprint, covered by any part of the building. Other tags that refer to the entire building (e.g., address) have to be tagged on this building outline, too.*”
So, a couple of issues I could sum up for the Pałac Kultury i Nauki:
- No relation of type=building defined to tie all 3D parts together as per specification
- Incorrect use of building=x tags on what should be building:part=x features that should carry a tag of role=part and be made part of the super relation of type=building.
- Main tags (name etc), not associated with the multipolygon relation (http://www.openstreetmap.org/relation/1319250), but with the outer way of the multipolygon (http://www.openstreetmap.org/way/7305241#map=17/52.23177/21.00485)
- Multipolygon not set as a simple 3D tagging scheme “outline” feature by defining a role=outline tag and making it part of the super relation of type=building.
If you want to see an example of what I consider a correctly defined simple 3D building, you can have a look at the Bode Museum in Berlin. It defines the different building:parts correctly, and has a defined multipolygon with role=outline, and everything tied together on a type=building relation. Main tags are also placed on the multipolygon with role=outline, meaning the main tags (name, address etc.) are available for both 2D and 3D mapping / rendering:
Bode Museum Berlin:
Drill down the links on the webpage from this type=building relation to see how it is tagged…