Roofs
Styles
 There are styles of roof which have wellknown meanings in architecture,
although terminology does vary somewhat
 A guide (no longer offline) showed 14 different styles
 flat, salt box,
hip,
gable, kicked eaves
(bonnet), gambrel,
mansard, pyramid,
cross gable, conical, hip and gable, shed, hip with cross
gables
 a
page on roofhelper has illustrations of many of these
 Unfortunately many buildings (especially modern buildings) don't
use a single roof style, but combine many of them, in complex ways
 Roof Plan Components (no longer online) has great explanations and examples
 (part of the book
Architectural
Drafting & Design, Alan Jefferis, Chapter 20)
 lists 8 styles : flat, shed, gable, Aframe (halfstory gable), gambrel,
hip, Dutch hip (hip and gable), mansard
Terminology

mechanicals
are the things (like vents and air conditioners) placed on top of roofs
 a parapet is when a section of roof
extends upward above the height of the building, useful for hiding the mechanicals
 sometimes the highest part of the building's facade
 roof angle (pitch) is conventionally
expressed as a rise/run fraction over 12, e.g. 3/12
 a dormer is a extension of part of the
roof to allow a vertical window to be added (picture on right)
 a cornice is the overhanging part of
the roof (the part that sticks out past the walls), although generally the term
is used more often for horizontal cornice features in classical architecture
 not be confused with a stripe of internal moulding, generally at the ceiling,
also called a cornice
 an eave is the beam ends of the roof
that extend over the walls to allow water to drip off away from the building's
walls  it can be thought of as the structure elements which supports the
cornice
 a fascia is the outwardfacing edge
of the cornice
Roof Materials
 4 general types: rolled roofing, shingles, tiles, panels
Constructing roof geometry for complex polygons : Straight Skeletons

with
a given roof outline, how do you construct a roof in a particular style (hip,
gable, etc.)
 this is relatively easy for rectangular outlines, but very difficult for
more complex polygons
 the solution is in the domain of computation geometry, academically
known as the problem of finding the
straight skeleton,
which in this case is the set of roof lines: "the straight skeleton provides
a canonical way of constructing a polygonal roof above a general layout of ground
walls"
 the straight skeleton can be considered as a "linearization" of a more general
process, finding the
medial axis
 the medial axis of a polygon P is the set of all interior points whose
closest point on P's boundary is not unique
 is P is convex then the straight skeleton and the medial axis are identical
 finding the medial axis is related to finding the Voronoi diagram, but
a straight skeleton is defined not by a distance function but by
a shrinking process
 Designing Roofs
of Buildings by David Bélanger
 great site with overview of all the academic papers and even a live
Java applet which demonstrates finding the straight skeleton, which leverages
some routines from the book
Computational
Geometry in C, Second Edition, Joseph O'Rourke
 the applet is fairly robust, but i was able to consistently create simple
polygons for which it failed to terminate
Academic Papers for Roofs

Towards fully automatic generation of city models (pdf), C. Brenner, July
2000
 main focus is constructing roofs from ground plans, given knowledge
from a hiresolution DSM (elevation points)
 the do a lot of sophisticated extensions of the straight skeleton algorithm
 A Novel Type of Skeleton for Polygons (Gzipped
PostScript,
pdf)
 O. Aichholzer,
D. Alberts, F. Aurenhammer, B. Gärtner, 1995
 describes the straight skeleton and its application to roofs
 states that fast Voronoistyle solutions will fail, so a procedural
process is required to determine it, but does not describe that process
 Straight skeletons for general polygonal figures in the plane (O.
Aichholzer and F. Aurenhammer) 1998 (Gzipped
PostScript)

great
quote: "Even when the slopes of the roof faces are prescribed, a roof is
a highly ambiguous object."
 proposes an algorithm which is "conceptually simple and easy to implement",
with O(n log n) behavior in the typical case
 interestingly, this approach also has an application for constructing
terrain elevation, when your only input is vector data for a coastline and
river map, by making assumptions about the slope at each vector
 Raising roofs,
crashing cycles, and playing pool (David
Eppstein, Jeff Erickson)
1999

Straight
Skeleton Implementation (P. Felkel, Š. Obdržálek) 1998
 has actual pseudocode
 handles convex, nonconvex, even polygons with holes in them
 states that C++ code is available upon request, so 02.08.05 sent in
a request

Automatically
Generating Roof Models from Building Footprints (pdf)

R. G. Laycock, A. M. Day,
University of East Anglia, UK, 2003
 They describe using the Felkel algorithm for generation of roofs, and
observe that it produces poor results for "many vernacular buildings start
their life as simple footprints with few vertices and become more complicated
through the addition of extensions."
 For these buildings, an extended algorithm is described starting with
the straight skeleton, then using rectilinear analysis to guess original
structure and intersect the resulting roofs.
Commercial Software for Roofs
 Etercalc
is a Java application that builds roofs from perimeter
 by a Brazilian roofing company (Eternit) so the site is in Portuguese
 you do have to register at Eternit site to try it

There
was once a package called Roofer, a "a library of routines for generating
the roof geometry of a house given the ground plan and wall parameters".
It was Copyright © 1996 Geometric Software Services Co. Ltd., India. Sadly
it seems to be no longer in existence, nor was it bought or continued by any
other company (?) An old archived copy of their web page is
here.
 ArCon (€230) is architectural
design software which includes a roof editor
 most highend CAD packages (e.g. Nemetschek
Allplan FT and ArchiCAD)
have significant functionality for roof design
 reportedly, BuildersCAD ($1000)
has a very capable Roof Generator and is much less expensive than ArchiCAD or
Allplan