OSM-4D/3D building/Dormer

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page collects a list of 3D roof forms. It is part of the OSM-4D-definition and as this part of the 3D building-definition.

Description of dormers

For rectangle base roofs there are following basic geometries for dormers:

3D View

/

Top view + Sideviews

Roof2 0 a.jpg Roof2 0 b.jpg Right side mirrored

half of Type b

left side stays

Marek10bR.jpg

half of Type b

right side stays

Typ Type a Type b Type bleft Type bright
Parameters
Restrictions
Implemented yes, Kendzi3D yes, Kendzi3D no no
3D View

/

Top view + Sideviews

Roof2 0 c.jpg Roof2 0 d.jpg Roof2 0 e.jpg Roof2 0 f.jpg Roof2 0 g.jpg
Typ Type c (gable dormer) Type d Type e Type f Type g (Bat dormer)
Parameters
Restrictions
Implemented yes, Kendzi3D yes, Kendzi3D yes, Kendzi3D yes, Kendzi3D no

Details

Method 1

Dormers are saved as one string. Character means type of dormer base on table XXX. Strings split by dots describing dormers on next places on the roof.

Tag 3dr:dormers

Example:

Roof sample 7.png

Tags:

3dr:type=2.0

3dr:dormers=aa.b


For type 2.0 above example means two type 'a' dormers on place 1 (front wall) and one type 'b' dormer on place 3 (back wall).

Warning. Currently not implemented. Currently dormers can be setup using tag 3dr:type=2.0.aa.b

Method is not very clear (not recommended?)

Method 2

Use different tags for each place on roof. Places on roof are described by rectangle edges. Four places where we can put dormers exist on roof.

Tags:

Places number on roof Tag Tag (Alternative) Description
place 1 3dr:dormers:front 3dr:dormers:1 Front
place 2 3dr:dormers:right 3dr:dormers:2 Right side
place 3 3dr:dormers:back 3dr:dormers:3 Back
place 4 3dr:dormers:left 3dr:dormers:4 Left side

Example

Roof sample 7.png

Tagi

3dr:type=2.0

3dr:dormers:1=aa

3dr:dormers:3=b


For type 2.0 example above means two dormers type 'a' on place 1 (building front) and one dormer type 'b' on place 3 (building back)

Warning Currently not implemented. Currently dormers can be setup using tag 3dr:type=2.0.aa.b

Complex roof shapes

Method 1

Dormers are saved as one string. Character means type of dormer base on table XXX. Strings split by dots describing dormers on next places on the roof. Proposed tag 3dr:dormers

Example

9.0.aa..a..aa..a...aaaa.a.a.aaa...aaaaa.aaa.a.a.aaaa.png

Tags

3dr:type=9.0

3dr:dormers=aa..a..aa..a...aaaa.a.a.aaa...aaaaa.aaa.a.a.aaaa


Warning for many walls it is hard to read

Warning it is not resistance to deletion of node

Warning not recommended

Method 2

Building saved as relation where each wall has assigned dormers and ex. windows.


Advantages: It is possible to assign additional information to wall ex. windows

Disadvantages: Complex and disliked relations...


Warning Currently not implemented.

Own dormers

Table XXX shows predefined dormers. Dormers has defaults sizes, and they lay in default places on roof. By default they are placed in constant distances to each others and on edge of building polygon. Not always it is correct. If real dormer position is different you have to define new dormer with new values of sizes.

Example 1 Dormers don't lay on roof edge:

Roof sample 5.PNG

Tag Description
3dr:type=2.0 roof type
3dr:dormer:1:type=a dormer type for first definition
3dr:dormer:1:depth=1m one meter from roof edge. (different proposal is 3dr:dormer:1:lenght0 (TODO))
3dr:dormer:2:type=b dormer type for second definition
3dr:dormer:2:depth=1m one meter from roof edge. (different proposal is 3dr:dormer:2:lenght0 (TODO))
3dr:dormer:2:widh1=4m not default width for second dormer
3dr:dormers:1=1 1 2 for first place assign three defined dormers. Instead of using character codes use defined indexes separated by a space.

Example 2 Dormers lay in different rows and height:

Roof sample 6.png

Tags Description
3dr:type=2.0 roof type
3dr:dormer:1:type=a dormer type for first definition
3dr:dormer:1:level=1 level 1 for first definition (different proposal is 3dr:dormer:1:row (TODO))
3dr:dormer:2:type=a dormer type for second definition
3dr:dormer:2:level=2 level 1 for second definition (different proposal is 3dr:dormer:2:row (TODO))
"3dr:dormers:1=1 1 1 2 2" for first place assign defined dormers. Instead of using character codes use defined indexes separated by a space.

Position of dormer for each level well be calculated automatically or defined manually in dormer definition. Order of dormers in different level don't mater. So value "3dr:dormers:1=1 1 1 2 2" is equal to "3dr:dormers:1=1 2 1 1 2"

Warning Currently not implemented.

Warning . May change

Method 3

Any proposals ?