DE:OSM-4D/Roof table

From OpenStreetMap Wiki
Jump to navigation Jump to search

Achtung: Seite im Aufbau! Die Definitionen werden laufend ergänzt. Um Anregungen und Mitarbeit wird gebeten. Da die Seite sehr umfangreich geworden ist, findet demnächst ein Umzug der Subteile der Dächer auf separate Seiten statt. Die Seite ist ein Teil der übergreifenden DE:OSM-4D-Definition und der darunter angesiedelten Gebäudedefinition DE:3D building.

Description of allowed roof geometry and building parts for parametric 3D modelling of buildings. Das hier beschriebene Schema ist gedacht und eignet sich primär für allein stehende Gebäude auf rechteckigem Grundriß. Komplexere Bauwerke können natürlich in einzelne Volumenkörper zerlegt und einzeln getaggt werden. Für sehr komplexe Gebäude bitte die DE:OSM-4D-Definition, dort Abschnitt Dach verwenden.

Die Formen werden momentan durch JOSM PlugIn Kendzi3D in der Visualisierung unterstützt.

HINWEIS: Für die korrekte Anwendung dieses Schemas sollte das Gebäude mit dem Dach-tag building:roof:shape=3dr markiert werden.


Flachdächer

3D View

/

Top view + Sideviews

Roof0 0.jpg

Marek2D00.jpg

MarekRoof01description.jpg

Marek2D01.jpg

MarekRoof02description.jpg

Marek2D02.jpg

MarekRoof03description.jpg

Marek2D03.jpg

MarekRoof04description.jpg

Marek2D04.jpg

Typ numerisch (3dr) 0.0 0.1 0.2 0.3 0.4
Typ menschennah flat flat_with_terrace flat_with_two_terraces flat_with_three_terraces flat_with_four_terraces
Parameters height=* H, H1, L1 H, H1, L1, L2 *.a H, H1, L1, L2, L3 *.a H, H1, L1, L2, L3, L4 *.a
Restrictions none L1< depth L1< depth, L2< width L1< depth, L2+L3< width L1+L4< depth, L2+L3< width
Implemented yes yes yes yes yes
Tagging 3dr:type=0.0

H - height=*=<Wert in Meter> Die höchste messbare Fassadenhöhe

vom Oberkante Gelände

bis Oberkante Gebäudewand

ohne Schornsteine, Antennen, kleine Glasskuppel

3dr:type=0.1

H -> height=*=<Gesamthöhe in Meter>


H1-> 3dr:height1 = Höhe des Aufbaugeschosses

L1-> 3dr:lenght1 = erste Terrassenbreite

3dr:type=0.2

H -> height=*=<Gesamthöhe in Meter> H1-> 3dr:height1 = Höhe des Aufbaugeschosses

L1-> 3dr:lenght1= erste Terrassenbreite

L2-> 3dr:lenght2= zweite Terrassenbreite

3dr:type=0.3

H-> height=*=<Gesamthöhe in Meter>

H1-> 3dr:height1 = Höhe des Aufbaugeschosses

L1-> 3dr:lenght1= Erste Terrassenbreite

L2-> 3dr:lenght2= zweite Terrassenbreite

L3-> 3dr:lenght3= dritte Terrassenbreite

3dr:type=0.4

H-> height=*=<Gesamthöhe in Meter>

H1-> 3dr:height1 = Höhe des Aufbaugeschosses

L1-> 3dr:lenght1 = Erste Terrassenbreite

L2-> 3dr:lenght2= zweite Terrassenbreite

L3-> 3dr:lenght3= dritte Terrassenbreite

L4-> 3dr:lenght4= vierte Terrassenbreite

Kommentar Gilt für alle Grundrisse

auch mit Innenhof

Gilt für alle Grundrisse

auch mit Innenhof

Gilt für alle Grundrisse

auch mit Innenhof

Gilt für alle Grundrisse

auch mit Innenhof

Wenn kein L2 Wert eingetragen: MarekRoof03noL2description.jpg

Gilt für alle Grundrisse

auch mit Innenhof


Flachdächer mit Aufbauten. Sonstige Hinweise

  1. Draufsicht: Verhalten vom Dachtyp 0.2 als irregularer Viereck.

Der Startpunkt S an dem wir mit der Grundrisskonstruktion beginnen, sowie die Ausrichtung von dem Gebäudeumriss entscheidet, wie das Dach des Gebäudes in 3D interpretiert wird.

gegen Uhrzeigersinn gezeichnet in Uhrzeigersinn gezeichnet
MarekTyp02notRectangularTopView.jpg MarekTyp02notRectangularTopViewClockwise.jpg


Grundriss als beliebiger Viereck

MarekTyp03notRectangularTopView.jpg

Draufsicht: Verhalten vom Dachtyp 0.3 als irregularer Viereck. Der Startpunkt S an dem wir mit der Grundrisskonstruktion beginnen, sowie die Ausrichtung von dem Gebäudeumriss (hier gegen Uhrzeigersinn gezeichnet)entscheidet, wie das Dach in 3D aussiehen wird.


Auslassen eines Parameters auf beliebigem Grundriss

Draufsicht: Verhalten vom Dachtyp 0.3 falls der Parameter L2 nicht eingetragen wird. MarekTyp03notRectangularNoL2TopView.jpg

Bei konkavem Grundriss:

MarekTyp03notRectangularNoL2TKonkavTopView.jpg

Dächer mit einer geneigten Fläche

3D View

/

Top view + Sideviews

MarekRoof10description.jpg MarekRoof11description.jpg

MarekRoof11descriptionSideview.jpg

Typ numerisch 1.0 1.1
Typ menschennah skillion skillion_diagonal
Parameter H1 H1, H2*
Restrictions none none
Implemented yes yes
Tagging
Kommentar Startpunkt und

Umrissrichtung beachten

Startpunkt und

Umrissrichtung beachten


(*a) = keine Höhe H3 erforderlich. Sie ergibt sich aus H1 und H2 da die Dachfläche eben ist!

Dächer mit 2 Ebenen

3D View

/

Top view + Sideviews

Roof2 0 parm.svg

Marek2D12.jpg

Roof2 1 parm.svg

Marek2D13.jpg

Roof2 2 parm.svg

Marek2D22.jpg

Roof2 3 parm.svg

Marek2D23.jpg

Roof2 4 parm.svg

Marek2D24.jpg

Typ numerisch 2.0 2.1 2.2 2.3 2.4
Typ menschennah gabled gabled_irregular side_hipped half-hipped hipped
Parameter H1, L1 *a H1, H2, L1 *a H1, L1, L2 *a, *b H1, H2, L1 *c H1, L1, L2, L3 *a,*b,*d
Implemented yes yes yes yes yes
Tagging
Kommentar

(*a) = if no L1 then symmetry: 2xL1 = width

(*b) = if no L2 then symmetry: L2=L1

(*c) = if only H1 then H2 = 0.5xH1 , L1=0.5 x width

(*d) = if no L3 then L3=L2

3D View

/

Top view + Sideviews

Roof2 5 parm.svg

Marek2D25.jpg

Marek26mass.jpg

Marek2D26.jpg

Marek27mass.JPG

Marek2D27.jpg

Roof2 8.jpg

Marek2D28.jpg

Roof2 9.jpg

Marek2D29.jpg

Typ numerisch 2.5 2.6 2.7 2.8 2.8 (subform)
Typ menschennah pyramidal double_skillion triple_skillion diagonal_pass diagonal_pass
Parameters H1, L1, L2 *a H1, L1 *b H1, L1, L2 *c H1, H2, H3 *d H1, H2, H3 *e
Implemented

(*a) = if no L1 then symmetry: 2xL1 = width, if no L1, L2 then symmetry: 2xL1 = width, 2xL2 = depth

(*b) = if no L1 then L1 = width

(*c) = if no L1,L2 then L1 = L2 = width. If L1+L2> depth then L1=L2=0.5 x depth

(*d) = Only three heights neccesary because the lowest height H, is the defined facade height.. H>H1 and H2>H3

(*e) = Possible subtype when H<H1 and H2<H3

Dächer mit mehreren geneigten Ebenen

Subtype 3

3D View

/

Top view + Sideviews

Roof30description.jpg

Marek2D30.jpg

Roof3 1.jpg

Marek2D31.jpg

Roof3 2.jpg

Marek2D32.jpg

Roof3 3.jpg

Marek2D33.jpg

Roof3 4.jpg

Marek2D34.jpg

Typ numerisch 3.0 3.1 3.2 3.3 3.4
Typ menschennah saltbox double_saltbox corner_saltbox triple_saltbox quadruple_saltbox
Parameter H1, H2, L1 H1, H2, L1, L2 H1, L1, L2 H1, L1, L2, L3 H1, L1, L2, L3, L4
Implemented


Examples: Marek30Dimensions.jpg 3.0 basic. 3 0DimensionsFreeOutline.jpg 3.0 free outline.

Subtype 4

3D View

/

Top view + Sideviews

Roof4 0.jpg

Marek2D40.jpg

Roof4 1.jpg

Marek2D41.jpg

Roof4 2.jpg

Marek2D42.jpg

Marek421withL5smallerThan03D.jpg

Marek421withL5smallerThan0.jpg

Marek421withL5biggerThan03D.jpg

Marek421withL5biggerThan0.jpg

MarekRoofType4 3.jpg

Marek431Dimensioning.jpg Marek432Dimensioning.jpg

MarekRoofType4 4.jpg

folgt …

MarekRoofType4 5.jpg

folgt …

Typ numerisch 4.0 4.1 4.2 4.2.1 (L5<0) 4.2.1 (L5>0) 4.3 4.4 4.5
Typ menschennah gambrel mansard_onesided mansard thai_cut thai pyramidal_diagonal skilion_windmill double_gabled
Parameter H1, L1, L2, L3 H1, L2, L2, L3 H1, H2, L1, L2, L3, L4* H1, H2, H3, L1, L2, L3, L4, L5 H1, H2, H3, L1, L2, L3, L4, L5 H1, H2 H1 H1, H2, H3
Restrictions
Implemented

(*) Bei Symetrie nur Angabe von L1, L2 notwendig.

Typ 4.2 hat je nach den Werten der Parameter Subformen die kein Mansardendach sind:

4 2subexample1.jpg Seitenansicht:4 2subexample1side.jpg

4 2subexample2.jpg Seitenansicht: 4 2subexample2side.jpg

Subtype 5

3D View

/

Top view + Sideviews

Roof5 0.jpg

Marek2D50.jpg

Roof5 1.jpg

Marek2D51.jpg

Roof5 2.jpg

Marek2D52.jpg

Roof5 3.jpg

Marek2D53.jpg

Roof5 4.jpg

Marek2D54.jpg

Roof5 5.jpg

Marek2D55.jpg

Roof5 6.jpg

Marek2D56.jpg

Typ 5.0 5.1 5.2 5.3 5.4 5.5 5.6
Parameters H1 H1 H1 H1, L1 H1, L1, L2 H1, L1, L2 H1
Restrictions H1<depth/2 L1<width L1+L2<width L1+L2<width H1≤0,5*depth
Implemented

Subtype 6

3D View

/

Top view + Sideviews

Roof6 0.JPG

Marek2D60.jpg

MarekRoofType6 1.JPG Marek3DviewRoof6 2.JPG

MarekRoofType6 2TopView.JPG

MarekRoof6 3.JPG MarekRoof6 4 4.JPG

MarekSubtypesApsis0to9.jpg

Typ 6.0 6.1 6.2 6.3 6.4
Parematers H1, H2, H3, L1 H1, H2, H3, H4, H5, H6, H7 H1 H1, H2, H3, H4, H5 H1, n
Description Dreischiffige Basilika Gebäude auf dem X Grundriß,

Flügel können unterschiedlich lang sein,

Haupt und Kreuzschiff müssen jedoch durchgehend

und jeweils von einer Breite sein.

Fünfschiffige Basilika. Bauwerk mit einer mit Apsis

Values: 0-Halbkreis, 2 bis 9

geben Auflösung von dem Halbkreis an.

Hier n=4

Restrictions
Implemented

Subtype 7

Diese Subform beschreibt Dächer mit wiederholbaren Grundformen. Momentan sind 5 wiederholbare Grundformen vorgesehen.

  • Sägeform einfach geneigt
  • Trapezform
  • Sägeform doppelt geneigt
  • Halbkreis
  • Sinusoide

Die letzte Zahl, n beschreibt die Anzahl wiederholbarer Module innerhalb des Grundrisses.

3D View

/

Top view + Sideviews

Roof7 1 2.jpg

7.1.2

Roof7 1 4.jpg

7.1.4

Marek2D7 19.jpg

7.1.19

Roof7 2 2.JPG

7.2.2

Marek2D723.jpg

7.2.3

Roof7 3 5.JPG

7.3.5

7 4 5.jpg

7.4.5

Marek2D7 43.jpg

7.4.3

752.jpg

7.5.2.

Marek752side.jpg

Typ 7.1.n 7.1.n 7.2.n 7.3.n 7.4.n 7.5.n
Parameters H1 H1 H1 H1 H1 H1
Restrictions
Implemented

Inversion und halber Abschluß

Marek752i5.jpg Syntax 7.m.n,5 fügt dem Dach eine halbe "Welle" bzw Abschnitt hinzu

Marek752i5inverted.jpgSyntax 7.m.ni spiegelt die "Wellenform"

Subtype 8

Subtype 8 beschreibt:

8.A

Rotationskörper auf rundem bzw. einem regelmäßigen polygonalem Grundriß. Der Kreis wird in der Standard-Einstellung für die Visualisierung in 24 Segmente aufgeteilt. Momentan fehlen zwar dem OSM Werkzeuge zur Generierung regelmäßiger Polygone es ist jedoch eine Frage der Zeit bis diese Funktionalität implementiert wird.


3D View

/

Top view + Sideviews

Roof8 0.jpg MarekRoof81.jpg MarekRoof82.jpg MarekRoof83.jpg MarekRoof8 0n.jpg

MarekRoof8 0nSection.jpg

Typ 8.0.1 8.0.2 8.0.3 8.0.4 8.0.n
Parameters H1 H1,H2,L2 H1,H2,H3,L2,L3 H1,H2,H3,H4,L2,L3,L4 Sehe Beispiel oben:

Querschnitt

Description Ebener Verlauf

(Kegeldach)

1 x Knick

in dem Dachflächenverlauf

2 x Knicks

in dem Dachflächenverlauf [1]

3 x Knicks

in dem Dachflächenverlauf

n x Knicks in dem Dachflächenverlauf

z.B Zwiebelkuppel

Restrictions
Implemented

8.B

Oberflächen der höheren Grade

3D View

/

Top view + Sideviews

MarekRoof81description.jpg

MarekRoof81descriptionTop.jpg MarekRoof81descriptionSide.jpg

MarekRoof82description.jpg

MarekRoof82with3differentHeights.jpg MarekRoof8 2L1isL2.jpg

MarekRoof8 3.jpg

MarekRoof83descriptionSide.jpg

MarekRoof8 4.jpg MarekRoof8 5.jpg MarekWikipediaEllipticParaboloid.png MarekRoof8 7 draft.jpg soon
Typ Nummerisch (3dr) 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8
Typ menschennah hyperbolic_paraboloid parabolic_cylinder cone elliptic_hyperboloid water drop elliptic_paraboloid circus tent geodesic_dome
Parameters height=*,H1,H2,H3 height=*,H1,H2,H3,L1,L2,ResolutionH, ResolutionV height=*,H1,L1,L2, Twist, ResolutionH, ResolutionV height=*,H1,D1,D2,ResolutionH, ResolutionV, Twist height=*,H1,D1, ResolutionH, ResolutionV,Twist *a height=*,H1, ResolutionH, ResolutionV, Twist *a height=*,H1, D, alpha, ResolutionH, ResolutionV, Twist Type:<dodecaeder,ikosadeder>,triangles:<number of triangles> *b
Description Sehe: [2]

Any floor plan possible

If H1=H2 and L1=L2 dann ist die Form

ein liegender parabollischer Zyllinder (unterstes Bild) Die Höhe H3 wird gemessen im halben Abstand zwischen Mittelachse Gebäude und der Außenkante Gebäude

Any floor plan are possible

Often used in industry The same mathematical definition

like 8.3 but not cut in the middle

Zeltkontruktion

MarekType87descriptionOfParameterDHH1alpha.jpg

Geodesic dome,

examples:[3],[4]

Restrictions MarekTyp82noL2descriptionFrontView.jpg

Einfluss von H2:

MarekTyp82howWorksP3frontView .jpg

Implemented no no no no no no no no

(*a) es muß geklärt werden ob die Parametrisierung ausreicht

(*b) nr of triangles=20*n*n or 60*n*n. For understanding of details see page of Werner Brefeld: [5]

  • Twist -rotation along z axis. Example see: [6]
  • ResolutionH : number of segments of floor plan (when change to regular polygon with n sides wished)
  • ResolutionV : number of segments of building height
links

http://de.wikipedia.org/wiki/Ellipsoid http://de.wikipedia.org/wiki/Elliptisches_Paraboloid http://de.wikipedia.org/wiki/Hyperbolisches_Paraboloid -http://de.wikipedia.org/wiki/Hyperbolische_Paraboloidschale http://de.wikipedia.org/wiki/Hyperboloid

Subtype 9

Subtype 9 beschreibt die sog. generischen Formen.

Die Annahme hier: Alle Dachflächen, die in gleicher Höhe beginnen, haben gleiche Neigung. Es werden Dachflächen auf beliebigem Grundriß generiert.

Die Methode ist besonders angenehm zum Taggen, weil wenige Tags ausreichen um die gesamte Dachgeometrie zu beschreiben:

Dachtyp und die Dachneigung (die für das ganze Gebäude konstant ist).

3D View

/

Top view + Sideviews

Roof9 0.jpg Roof9 1.JPG MarekRoofType9 2.jpg
Typ 9.0 9.1 9.2
Parameters alpha AlpfhaInMansarddach.JPG H ist die maximale Höhe und ergibt sich aus der Dachneigung H1, alpha AlpfhaInMansarddach.JPG, H1 ist die Höhe unterer Dachfläche H1, alpha 1
Description Überall gleiche Dachneigung Überall gleiche Dachneigung, Mansardendach Überall gleiche Dachneigung, ab einer Höhe Flachdach
Implemented yes no no

Dachgauben

Um eine hohe Detailtiefe zu erreichen können die Dachflächen mit Dachgauben versehen werden. Eine Beschreibungstabelle befindet sich hier: [7]

Taggingvorschlag inklusive Dachgauben

Abschnitt in Arbeit


Orientierung der Dachausrichtung:

Der Ansatz möchte mit möglichst wenig Tags auskommen, daher als Orientierungspunkt für Tagging gilt der Startpunkt aus dem das Zeichnen des Gebäudes angefangen wurde ( in den Zeichnungen als "S" gekennzeichnet ).

Falls der Editor nicht zeigt, welcher Punkt des Umrisses der erste ist (wie bei Potlatch), muss man das Gebäude in zwei Abschnitte zerlegen (Befehl X bei Potlatch) um zu sehen, an welcher Stelle sich der Anfang befindet.

Alternativ dazu kann man den Punkt entsprechend kennzeichnen. Die Vorschläge hierfür sind willkommen.

Atributt Wert Beschreibung
building yes, * Area Gebäude
building:roof:shape 3dr Code angenommen für diese Art der Tagging
3dr:type z.B. 2.0 Beschreibt die Art des Daches, z.B. 2.0. Für die schnelle, manuelle Eingabe kann um die Beschreibung der Dachgauben ergänzt werden. In der erweiterten Version kann es dann so aussehen: 3dr:type=2.0.a.a
height=* [m] Gesamthöhe Gebäude
height_over_DTM: value [m] Höhe über Gelände. Der Nierdigste erreichbare Punkt wird angegeben
height_over_sea_level [m] Die absolute Höhe über n.n. (Wert praktisch kaum erreichbar)
Parameter für die Art des Daches:
3dr:height1 [m, d] Voreinstellung: m Parameter: beschreibt die erste Höhe (H1) für ein Dachtyp.
3dr:height2 [m, d] Parameter: beschreibt zweite Höhe (H2) für ein Dachtyp.
3dr:heightX [m, %] Parameter: beschreibt analog dritte, vierte usw. Höhe ( H3, H4, H5 ...)...
3dr:length1 [m, %] Voreinstellung: %. Parameter: beschreibt die erste Länge (L1) für ein Dachtyp.
3dr:length2 [m, %] Voreinstellung: %. Parameter: beschreibt zweite Länge (L2) für ein Dachtyp.
3dr:lengthX [m, %] Parameter: beschreibt analog dritte, vierte usw. Länge (L3, L4, L5 ...)...
Gauben
3dr:dormer Z.B.: "aa.a" Das Attributt beschreibt folgende Gauben geordnet in Gruppen. Syntax: Die Gruppen der Gauben werden durch die Punkte getrennt. Die Gruppe zugewiesen werden an:
  • A. Außenkanten des Gebäudeumrisses oder an
  • B. Außenkanten des umschreibenden Rechteckes.

In Falle B. der Zuweisung die Nummer der Gruppe entspricht der Nummer der folgenden Außenkante des Umrisses.

Die Art der Zuweisung beschreibt das Attributt 3dr:donor:type. Voreinstellung: Die Gruppen sind der Außenkante Gebäude zugewiesen.

Kein Attributt bedeutet Zuweisung der Gruppe zur Außenkante Gebäude =rect

Gauben beschrieben mit diesem Attributt sind denen die mit dem Attributt building:roof:3dr:type beschrieben sind, übergeordnet.

Der die Gaube beschreibende Wert aus dem Attributt 3dr:type sollte automatisch übertragen werden zu diesem Feld nach der Beendigung der Edition.

3dr:donor:type "rect" Beschreibt die Art der Zuweisung der Gruppe von Gauben. Werte: Keine Voreinstellung; rect = Zuweisung der Gruppe zur Außenkante Gebäude.
3dr:dormer:width [m] Voreinstellung für alle Gauben eines Daches. Beschreibt die Breite einer Gaube [Voreinstllung: m]
3dr:dormer:heightX [m, d] Voreinstellung für alle Gauben eines Daches. Beschreibt die Höhe einer Gaube [Voreinstellung:m, Für manche Typen sind Winkel in Grad zulässig]
3dr:dormer:lengthX [m, %] Parameter beschreibt weitere Längen einer Gaube

Einheiten

Code Beschreibung
m Meter
d Grad
% Prozent

Beispiel

Einfache Codierung der Dachbeschreibung:

Atributt Beschreibung
building = yes
building:roof:shape=3dr
3dr:type=2.0
3dr:dormer=a.a
3dr:height1=1m
3dr:length1=10%
3dr:dormer:width=2.5
3dr:dormer:height1=2.5m

Weitere Entwicklungen.

Abschnitt in Arbeit

Dächer auf beliebigem Grundriß

Ein Teil der Dachformen basiert in der Grundbeschreibung auf rechteckigem Grundriß und funktioniert nur bei rechteckigem Grundriß. Ein Gebäudegrundriß bzw. Dachdraufsicht muß aber nicht zwangsweise vier Punkte haben und rechtwinklig sein.

Ein Beispiel mit 6 Punkten im Grundriß:

MarekLbuildingwith2 0example2.jpg

Hier kann man mit dem Dach Typ 2.0 arbeiten, da die Dachrinne links und rechts die gleiche Höhe hat.


Sollte man hingegen versuchen, für derartige Form

MarekLbuildingwith2 0example3.jpg

mit dem Dachtyp 2.0 zu arbeiten, müßte die Form leider in zwei Grundrisse gesplittet werden,

da die Höhe der Regenrinnen links und rechts unterschiedlich ist:

Nimmt man stattdessen als Dachdefinition Typ 3.0 so kann der Grundriß stehen bleiben.


Dachdefinitionen die als Grundform auf einem Rechteck basieren und auf mehrere Punkte (beliebige Grundrißform) angewendet werden können sind Dachtypen 1* bis 7*

Beispiele:

Typ 2.1 Typ 5.2 Typ 5.6
MarekExampleType21withFreeGroundFloor.jpg MarekExample52withFreeGroundFloor.jpg MarekExampleType56withFreeGroundFloor.jpg 3D view: MarekExampleType56withFreeGroundFloor3D.jpg


Bei dem Typ 5.6 wird algorithmisch der größte mögliche Kreis innerhalb des Grundrißpolygons gefunden (rote Fläche, Knotenpunkte blau) sowie restliche Dachfläche (grau) als flache Ebene (Typ 0.0) gelassen.

Damit für ein Gebäude mit dem Grundriß welches kein Rechteck ist die 3D Dachform generiert werden kann, muß zuerst dea kleinste mögliche Rechteck das den Gebäudeumriß vollständig umfaßt, generiert werden. Für dieses Rechteck kann die Dachfläche sowie die Dachgauben generiert werden.

Ein Beispiel der Dachgenerierung bei einem komplizierteren Gebäudegrundriß:

MarekHowWorksGenerating ofRoofsForFreeOutlines.jpg MarekDowolnyObrysRzutuZtypem20.jpg

Eigenschaften des Daches

Da die Grundlage für die Dachberechnung eine Bounding Box ist, sind ihre Außenmaße maßgeblich für die Dachberechnung. Jede Dachform hat Parameter die sie beschreiben z.B. 3dr:lenght. Falls diese Maße als Prozentzahlen angegeben werden könnten, würden eigentliche Dimensionen auf der Grundlage der Breite und Tiefe der Bounding Box berechnet. (in Arbeit)

Roof sample 2.svg BoundingBoxwithType20rzut.jpg Gestrichelt: Bounding Box in dem sich das Gebäude befindet

Startpunkt S

Um eindeutig die Dachgeometrie zu rendern muß die Dachausrichtung definiert werden. Die bisherigen Ideen / Vorschläge basieren auf dem Tag: building:roof:orientation= along|across. Leider ist dieser Tag nicht ausreichend weil:

1. Es gibt Gebäudegrundrisse, die quadratisch bzw. fast quadratisch sind. In solchen Fällen ist das Attributt wertlos da es bei einigen Dachtypen zwei bzw. 4 Möglichkeiten der Dachgenerierung gibt. Natürlich kann das Problem gelöst werden indem der User erst mal guckt, ob das Aussehen des Hauses in 3D richtig ist, oder nicht und ggf. die Ausrichtung ändert.

MarekAlongAcrossQuestion1.jpg ... MarekAlongAcrossQuestion2.jpg

2. Es gibt Dächer, die nicht symmetrisch sind und mehr als 2 Richtungen haben, z.B. Typ 2.2


MarekRoofDirections.jpg

3. Für die Beschreibung der Dachgauben ist eine präzise Definition von dem "Anfang" (S) des Daches notwendig.

4. Bei beinahe rechteckigen Grundrissen ist es nicht fehlerresistent: Die Modifikation des Grundrisses kann zur Änderung der Dachausrichtung führen wenn along zu across wird.

Alternativvorschlag:

Um den Anfang des Dachumrisses zu kennzeichnen, muß man festlegen, welcher Punkt von dem Gebäudeumriss der Startpunkt ("S") ist. Es ist nicht erforderlich zusätzliche Attributte für weiter Punkte hinzuzufügen, denn der Gebäudeumriß hat eine festgelegte Reienfolge der Punkte.

Man kann also praktischerweise den Anfang der Polylinie die den Gebäudeumriss darstellt als Startpunkt von der Dachform die wir parametrisieren annehmen.

Achtung. Der Startpunkt "S" ist in den bisherigen OSM Editoren nicht sichtbar! Entweder zeichnet man das Gebäude selbst, oder man muß den Gebäudeumriß splitten, um den Anfang zu sehen.

Ausichtung des Umrisses

Als default Einstellung befindet sich der Gebäudeumriß in kleinster möglicher Bounding Box.

Dies entspricht auch dem typischen Fall. Leider ist in einigen Situationen die Ausrichtung von der Bounding Box nicht gleich mit der gewünschten Dachausrichtung.

Man muß also in solch seltenen Fällen zusätzlich einen Punkt P der zusammen mit dem Punkt S die Ausrichtung von dem Bounding Box definiert, festlegen.

Beschreibung mithilfe von Tags die Gebäudecken zugewiesen sind. Zwei Punkte aus dem Gebäudeumriss erhalten Tags: 3dr:direction=begin|end. Die Methode wird zuverlässig für frei stehende Gebäude, die keine gemeisamen Punkte mit den Nachbarn haben, funktionieren.

Tag Tag (alternatywnie) Opis
3dr:direction=begin Anfangspunkt von dem Gebäudeumriss. Anfang des Vektors der die Dachrichtung beschreibt.
3dr:direction=end 3dr:direction=yes Ende des Vektors der die Dachrichtung beschreibt.
Negativbeispiel MarekBoundingBoxQuestionS.jpg Gewollt ist die Dachausrichtung wie in der grünen Bounding Box. Es fehlt ein zusätzlicher Ausrichtungspunkt für die Länge.

Die kleinste automatisch berechnete Bounding Box wäre also die, die mit rot markiert ist.

Mögliche Lösung MarekBoundingBoxQuestionSP.jpg Ein anderer Anfangspunkt S sowie Tagging von dem Punkt P um eine Bezugskante für die Berechnung

von dem Bounding Box herzustellen.

Tabelle mit Beispielen

2D view 3D view Kommentar
MarekRoofTypeSimpleExample90noDormerTOP1.jpg MarekRoofTypeSimpleExample90noDormer3D1.jpg Alle Dachflächen steigen in gleicher Neigung was an Winkelhalbierenden der Dachflächen zu sehen ist (nur 45° Winkel)

daher nur die Dachneigung und die Dachform Typ 9.0 verwenden.

MarekRoofTypeSimpleExample90noDormerTOP2.jpg MarekRoofTypeSimpleExample90noDormer3D2.jpg Gebäude mit Anbau. Beide Teile können separat getaggt werden: Anbau als Typ 0.0, Hauptgebäude als Typ 2.0 mit einer Gaube.
MarekRoofTypeSimpleExample90noDormerTOP3.jpg MarekRoofTypeSimpleExample90noDormer3D3.jpg Dach der Anbaufläche fräst sich in das Hauptgebäude hinein. Entweder in 2 Teile trennen

und separat Taggen (Typ 2.0 Haptteil und 1.0 Subteil) oder Roof Lines zum Modellieren verwenden.

MarekRoofTypeSimpleExample90noDormerTOP4.jpg MarekRoofTypeSimpleExample90noDormer3D4.jpg Das Gebäude kann entweder in 2 rechteckige Teile zerlegt werden

wobei das kleinere Teil mit einem Dach von Typ 2.6 modelliert wird, oder die Dachform mithilfe von Roof Linesnachzeichnen.

MarekRoofTypeSimpleExample90noDormerTOP5.jpg MarekRoofTypeSimpleExample90noDormer3D5.jpg Dachtyp 2.6 verwenden.
MarekRoofTypeSimpleExample90noDormerTOP6.jpg MarekRoofTypeSimpleExample90noDormer3D6.jpg Das Gebäude kann entweder in 2 rechteckige Teile zerlegt werden

wobei das Hauptteil als Typ 2.3 mit einer Gaube Typ B und das Subteil als Typ 2.0 modelliert wird, oder mithilfe von Roof Linesnachzeichnen.

Details Dachausprägung

Tagging von:

  • Dachüberstand
  • Dachstärke
  • Subform Dachgeometrie

wird detailiert in dem Proposal Dachüberstand behandelt.

Texturierung

hier folgen Beispiele mit Ausrichtung, Skalierung etc...

Resolution: Auflösung der Oberflächen

Für die Auflösung der gekrümmten Oberflächen die rechnerisch in mehrere Dreiecke aufgeteilt werden steht der Tag:

resolution=<natürliche Zahl>2>

Beispiel:

MarekRoof81resol4.jpg Resolution = 4

MarekRoof81resol8.jpg Resolution = 8

Exkursion, Methodenvergleich

Die Arbeit mit einer Dachlibrary führt schnell zur Erkenntnis, dass sich nicht alle Dachformen damit darstellen lassen. Eine Kurzübersicht mit Stärken und Schwächen einzelner Techniken befindet sich hier: [8]

Translationstabelle

Ursprunglich war die Zuweisung der Nummer als Beschreibung für einzelne Dachformen nur deswegen verwendet, um überhaupt einen Namen für diese Formen während weiterer Überlegung zu haben. Natürlich ist für einen Menschen leichter sich das Wort Flachdach, statt "0.0" zu merken. Es wird jedoch schwierig für alle erdenkliche Dachformen eine entsprechende Bezeichnung zu finden bzw. ze Erfinden, weil es sie nicht gibt. Auch die Welt der Architekten beschränkt sich auf die Benennung einzelner Grundformen.

Die nummerische Beschreibung einiger Dachtypen entspricht folgender menschennahen Beschreibung die z.B. in [9] zu lesen ist:

"roof table" "building attributes"
0.0 flat
1.0 skillion
1.1 skillion_diagonal
2.0 gabled
2.3 half-hipped
2.4 hipped
2.5 pyramidal
3.0 saltbox
3.1 double_saltbox
3.2 corner_saltbox
3.3 triple_saltbox
3.4 quadruple_saltbox
4.0 gambrel
4.1 , 4.2 mansard
4.3 helm
5.0 round
5.2 half_round
5.6 dome
6.0 three_aisled
6.2 crosspitched
6.3 five_aisled
7.1.n sawtooth
7.2.n trapeze
7.3.n gabled_row
7.4.n round_row
7.5.n wave
8.1 Hyperbolic_paraboloid
8.8 geodesic_dome


Diese Attribute weden in dem Viewer genauso wie die entsprechenden 3dr Attribute behandelt und angezeigt.

Vergleichstabelle

zum Ausdrucken mit: Bild - roof_table - building attributes unter: Dachformen.pdf --Geri-oc 18:40, 7 December 2011 (UTC)