Simple 3D Buildings: Difference between revisions

From OpenStreetMap Wiki
Jump to navigation Jump to search
(Undo revision 944133: areas for building parts at different heights can "overlap" , not just "touch")
Line 20: Line 20:
There are three ways to use the area of {{tag|building|}} for 3D Rendering in this case:
There are three ways to use the area of {{tag|building|}} for 3D Rendering in this case:
* Add an additional {{tag|building:part|yes}} tag to the {{tag|building}}. Note, that this method can be used only in case, when building ({{tag|building}}) consists only from one part ({{tag|building:part}}), because if building consists of two or more parts with different attributes ({{tag|height}}, {{tag|building:levels}} or others), we can't mark building outline as building:part, because such tagging means, that maximum height of building (the value, which is tagged at building outline) and other attributes of whole building refers to part of building (and it is incorrect).
* Add an additional {{tag|building:part|yes}} tag to the {{tag|building}}. Note, that this method can be used only in case, when building ({{tag|building}}) consists only from one part ({{tag|building:part}}), because if building consists of two or more parts with different attributes ({{tag|height}}, {{tag|building:levels}} or others), we can't mark building outline as building:part, because such tagging means, that maximum height of building (the value, which is tagged at building outline) and other attributes of whole building refers to part of building (and it is incorrect).
* Cover the whole outline with {{tag|building:part|yes}} areas. These areas may touch each other or may be disjunct, which depends on the actual building.
* Cover the whole outline with {{tag|building:part|yes}} areas. These areas may overlap each other or may be disjunct, which depends on the actual building.
* Use {{tag|building:part|yes}} only for those parts, which differ from the overall building. <br /> This case requires a [[Relation:building|building relation]] where the {{tag|building}} outline has the {{Role|outline}} and the parts {{tag|building:part}} have the {{Role|part}}.
* Use {{tag|building:part|yes}} only for those parts, which differ from the overall building. <br /> This case requires a [[Relation:building|building relation]] where the {{tag|building}} outline has the {{Role|outline}} and the parts {{tag|building:part}} have the {{Role|part}}.



Revision as of 11:18, 17 September 2013

This page describes tags for basic 3D attributes of buildings.

information sign

This is a basic schema for 3D buildings. So it's limited and not every geometry/detail can be described that way. Than you can give propriety extensions (as Kendzi3d) an try, or wait till the next version for complex modeling.
Your welcome to note this complex cases at the Talk page!

The following tagging methods are results of the 2nd 3D Workshop Garching, where most 3D developers agreed on supporting a unified subset of tags in their programs. Basically we describe the volume of a building using two types of areas. Building outlines for the most general area of a complex building and building parts, to describe esp. parts with different height or other attributes.

Building outline

Two building:part areas within a building area

The building outline is represented as an area tagged with building=*. It's the area covered by any part of the building (both as along horizontal, as along vertical axis). Other tags that refer to the entire building (e.g., address if applicable) have to be tagged at this building outline, too. One building should have only one building=* outline, several buildings can not be imbricated in volume.

Building parts

If some parts of the building=* have different attributes (e.g., height), they can be modelled as additional areas, tagged with building:part=yes or building:part=type of building:part.

Note that if a building=* contains at least one area tagged as building:part=*, the building outline is no longer considered for volume rendering.

There are three ways to use the area of building=* for 3D Rendering in this case:

  • Add an additional building:part=yes tag to the building=*. Note, that this method can be used only in case, when building (building=*) consists only from one part (building:part=*), because if building consists of two or more parts with different attributes (height=*, building:levels=* or others), we can't mark building outline as building:part, because such tagging means, that maximum height of building (the value, which is tagged at building outline) and other attributes of whole building refers to part of building (and it is incorrect).
  • Cover the whole outline with building:part=yes areas. These areas may overlap each other or may be disjunct, which depends on the actual building.
  • Use building:part=yes only for those parts, which differ from the overall building.
    This case requires a building relation where the building=* outline has the Role outline and the parts building:part=* have the Role part.

Building relation

A relation tagged with type=building groups building outline and all building parts together. It is highly recommended to use the relation if there is at least one building part. Otherwise an application has to fall back to search for building parts only within the area of the building outline. See also Relations/Proposed/Buildings and User:Aschilli/ProposedRoofLines#Building_Relation.

Tags for buildings outlines and parts

The following tags can be used on both building outlines and building parts.

Height

schematic example of level and height tagging
Key Comment
height=* Distance between the lowest possible position with ground contact and the top of the roof of the building, excluding antennas, spires and other equipment mounted on the roof.
min_height=* Approximate height below the building structure.

Note that when min_height is used, height is still defined as the distance from the ground to the top of the structure. So "bridge" with 3 meters height, where bottom part of the bridge is positioned 10 meters above ground level will have min_height=10, height=13.

building:levels=* Number of floors of the building above ground (without levels in the roof), to be able to texture the building in a nice way.

If you tag new buildings, try to give a height value. Try to use building:levels=* only in addition to an height tag!

building:min_level=* levels skipped in a building part, analogous to min_height

Roof

You can characterize the building roof using a catalogue of well known roof types. Additional roof shapes may be introduced later (S3DB_Proposals), including advanced approaches for manual modelling (e.g., User:Aschilli/ProposedRoofLines or parts of OSM-4D/Roof_table).

Image Roof0 0.jpg Roof1 0.jpg Roof2 0.jpg Roof2 3.jpg Roof2 4.jpg Roof2 5.jpg Roof4 0.jpg Roof4 2.jpg Roof5 6.jpg Saint Sophia Cathedra 2009l.jpg Roof5 0.jpg
roof:shape flat skillion gabled half-hipped hipped pyramidal gambrel mansard dome onion round
Key Comment
roof:orientation=along/across For roofs with a ridge the ridge is assumed to be parallel to the longest side of the building. But it can be tagged explicitly with this tag.
roof:height=* roof height in meters
roof:angle=* Alternatively to roof:height=*, roof height can be indicated implicitly by providing the inclination of the sides (in degrees).
roof:levels=* Number of floors within the roof, which are not already counted in building:levels=*.
roof:direction=* direction from back side of building to front

Again, some roofs (e.g., square buildings) cannot be accurately modelled with the simple techniques described on this page.

Surfaces

Key Comment
building:colour=* Colour of the building facade. See colour=* for possible values.
roof:colour=* Colour of the building roof. See colour=* for possible values.
building:material=* Outer material for the building facade.
roof:material=* Outer material for the building roof.

Demo areas

3D examples

To make it as easy as possible for the community, we started added details already to the following:

Location OpenStreetMap (2D) OSM2World (3D) OSMBuildings (3D)
Passau (GER) Link Link Link
Graz 1 (AT) Link Link Link
Graz 2 (AT) Link Link Link
Rostock Südstadt (GER) Link Link Link
Hagen (GER) Link Link Link
Karlsruhe 1(GER) Link Link Link
Karlsruhe 2 (GER) Link Link Link
Coburg (GER) Link Link Link
Las Vegas (US) Link Link Link
New York (US) Link Link Link
Phoenix (US) Link Link Link
Syracuse (US) Link Link Link
Leipzig (GER) Link Link Link
Bremen (GER) Link Link Link
Schwerin (GER) Link Link Link
Chicago (US) Link Link Link
Helsinki (FIN) Link Link Link

Example Models

Tool support

The following 3D tools make use of this new schema: