OSM-4D/3D building/Dormer
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 |
|||||
---|---|---|---|---|---|
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:
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
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
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:
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:
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 ?