Hi Brian,

I was very happy to see your message as there doesn't seem to be a lot
of love out there for careful drawing of building shapes.
Understandably, it can be time consuming and I occasionally do some
architectural drafting for a living so I'm definitely biased and in a
better position than many to tackle this. It may help if I list
general tips I've developed to overcome the very limited tools in JOSM
for aiding with this task. Some of them involve improving results by
not using the obvious way, such as using a tool not intended for a
result to ultimately get that result while leaving clean geometry and
tags.

Install the following plugins for JOSM: alignways, building_tools,
terracer, utilsplugin2.

With all of these installed you now have these useful commands to help
create good quality building shapes:

        Orthagonalize Shape [q] (core)
        Create Areas [x] (core)
        Join Overlapping Areas [shift+j] (core) (referred to as 'merging 
shapes')
        Draw Building [b] (building_tools)
        Split-Shape [alt+x] (utilsplugin2)
        Add nodes at intersection [shift+i] (utilsplugin2)
        Terrace a Building [shift+t] (terracer)
        Align Ways (alignways)



I'll run through general techniques I use and I'll answer your
question at the very end. You can skip straight to it but it might
make less sense without the following. I'm basing all techniques from
tracing Bing Maps:



1/ With some exceptions, building are nearly always orthogonal or have
angles that mirror others. It's easiest to draw them as orthagonal and
then create any other angles afterwards where confident.

2/ With the above in mind, I generally draw buildings using a series
of independant rectangles which I then merge into a single shape at
the end. This includes returns and any extrusions. While you can draw
a perfectly perpendicular return from a building by adding two nodes
to a rectangle and extruding the line between them using 'Create
Areas', if you draw the return as a seperate rectangle and merge it to
the main house at the end, you have slightly more flexibility with
moving the return around as seperate rectangle than you do with nuding
points and ways on the same shape if it was extruded.

3/ Get familiar with using the 'Draw Building' too for blocking out
the shape of an entire building using rectangles that overlap. If you
have a rectangle selected and begin drawing a new rectanlge using
'Draw Building' it will keep the new rectangle's angles lined up with
the selected one. This is a huge time-saver and helps with accuracy.
Where a more complex building is not perfectly orthagonal I find I'm
often drawing a group of rectangles that are based on two different
rotations. The 'Draw Building' tool helps me keep to these two
different rotations throughout. The original architects usually
followed patterns with angles and you can spot these pretty quickly.

4/ Don't forget you can quickly orthagonalise a shape by selecting it
and hitting 'Q'. If you select a shape and then select any two nodes
on this shape or another before hitting 'Q' the shape will be
orthagonalised and aligned to the same angle between these two nodes.
Very useful with terraces or quickly using other shapes as angle
guides. If you don't select two other nodes the shape will be
orthaganalised to the average of all the angles in the shape. It's
worth knowing that architects often based the angles of a building on
neighbouring buildings so try using these as guides and see if they
help.

5/ I predomiinantly use 'Create Areas' to nudge entire lines parallel
to their origin rather than using them to extrude lines from others.
So If I've drawn one rectangle as a house and another rectangle as a
return. I'll drag the return into place and resize it by nuding its
boundaries using 'Create Areas' on its lines.

6/ To expand on this tip, if you hold down 'alt' while using 'Create
Areas' to either nudge a line or extrude from between two points it
will create an entirely new shape that's glued to the old. This is
immensely valuable. I use it for creating terraces (I'll elaborate on
this) or for creating guides which I'll later delete (ditto).

7/ One area I do use 'Create Areas' for is extruding a return rather
than drawing a seperate rectangle then merging is at the edge of a
building. It's quite quick to align one rectangle with another if you
zoom in to the full extents and make sure the way of one rectangle
lines up with the way or node of another. If I attempt any merging of
shapes after this JOSM treats this level of alignment as being the
same coordinates on both. However, at the edge of a building it can be
quicker to just extrude a return rather than zoom in and align a
seperate rectangle. My exception to this is if two returns meet on a
terrace (I'll elaborate on this).

8/ I always draw to match the roof-top outline of a building and then
drag the finished outline to match corner where the building meets the
ground. Be careful that the roof edges really are the roof edges and
also make sure that the building corners in Bing are actually ground
level as some confusion has arisen from later finding that Bing was
slightly obscuring the fact that ground meeting point was underground
by another level or vice-versa. It's worth checking if your alignment
doesn't make sense with neighbouring buildings after pulling it into
place.

9/ When dealing with multi-level buildings my practise of drawing the
building as multiple rectangles really helps. Pay careful attention to
shadows on rooftops and on the ground to spot where roof tops aren't
level. If you feel a roof-top is on a different level than others,
only merge the shapes that are on the same height before dragging them
to their respective ground-level corners. Once all levels have been
dragged into place, merge the entire building. You'll get far more
accurate representations of buildings from Bing's skewed angles using
this technique. It's easier said than done but you'll be surprised
with what improvements in accuracy you can spot when you start doing
this.

10/ Terraces are usually made up of completely even building widths
but quite often they're not. If they look pretty exact I test the
'Terrace a Buidling' option first to see if they line-up. If they
don't I use the 'Create Areas' command instead to allow for slight
width variations. The first thing to do is the use the 'Draw Building'
tool for the entire length of the terrace to make sure it will all be
aligned at the end. Next, use 'Create areas' to drag the width of the
rectangle back to the width of the first house. If you've measured the
width of the house using the rooftop, drag it down to its actual
footprint at ground level. With terraces, it's quite easy to align
them using the front and back garden hedges and walls as markers for
the actual start and stop point of each building. Use the 'Create
Areas' tool with the 'alt' option to create the next terrace up to the
next hedge/wall. Repeat until the end of the terrace and you've got a
pretty accurate alignment of the terrace. If you select one of the
buildings and keep tapping 'e' it will select all of the buildings in
the row and you can tag them as a group (such as adding
'building=yes'). What you lose is the ability to quickly assign
individual numbers to the row but you gain more positioning accuracy -
a benefit I prefer.

11/ If repositioning the widths of an existing terrace, you can drag
the two nodes seperating two buildings to their more accurate
position. If you select the whole row and also select two nodes at the
very end of the terrace (that you know were aligned correctly) and hit
'q' the nodes you dragged will be snapped back into alignment with
rest of the terrace.

12/ There is unfortunately currently no easy way to draw terraces that
are not in a straight line but a lot of careful use of 'Align Ways'
goes a long way. I've managed some good results by drawing each
building as an orthagonal building that starts on a node of the
neighbouring one and rotates N amount. At the end, I use 'Add nodes at
intersection' to join neighbouring buildings at their shared
intersection point. It's then pretty trivial to drag the interior,
unwanted nodes to the intersecting nodes, or delete them entirely, and
have a series of trapezoid shaped terrace buildings.

13/ If you want exact symmetrical corners or chamfering in bay
windows, building corners, etc. you can cheat using the 'terrace
buildings' tool. If you think of it as a tool that subdivides a
rectangles longest length in half you can use it to create nodes on
the perimeter of a building at exact 1/2, 1/4, 1/8 points. After
repeatedly subdividing a shape you then merge all the subdivided
shapes back into one you retain the nodes and can use these to make
symmetrical and exact 45 degree corners.

14/ if you need to split unusual shapes that are roughly orthagonal
into several buildings or a terrace, use 'Split-Shape'. Create two
nodes that are as close as possible to the divide line. Select the
whole shape and these two nodes and press 'alt+x' to create two shapes
split on these nodes. It will always be a little bit uneven so select
both shapes and the two nodes that you know are aligned correctly and
press 'q' to align everything to them orthogonally. If the original
building is close to orthoganal but has a bay window or something
similar I temporarily make the angled corners orthagonal before doing
all the previous steps (add a node beteen the two and drag it out to a
corner) and then return it to how it was after (delete the added node
and the line between returns to its angle).

15/ When creating rectangles using the 'Draw Building' tool it will
always add a 'building=yes' tag so make sure to delete this if it's
not relevant. Likewise, creating a new shape from a building using the
'alt' method with 'Create Areas' doesn't retain the 'building=yes' tag
so add this as necessary.
16/ Don't forget you can create guides using the 'draw building',
'create areas' and 'add nodes at intersection' tools. What I mean is
that you can make rectangles that you use to align other nodes with
and then delete that rectangle afterwards. It comes in very useful.



So, after that very long winded run-through (apologies), here's my
method that tackles your question:

I typically draw out a terrace using point 10 above for just the basic
shape without returns. The returns are nearly always a different level
than the main building so I'm happy to align the main building before
dealing with extensions/returns. If a return is not neighbouring
another I'll extrude it out using 'Create Areas' and keeping an eye on
the ground-level meeting point of the extension and making sure it
meets the corner of it. Most returns, however, neighbour another and
I'll do the following:

* Extrude the extension/return out using 'Create Area' with 'alt' held
to make it a new shape. The reason being is that you want a node at
the point it meets the original building.
* Now extrude the neighbouring extension out of this to the left or
right, again using 'alt' so that it's a new shape.
* If it's a different depth from the house you should unglue it,
adjust the depth of the edge using 'Create Area' and reglue it,
creating a new node at the intersection of the first extension.
* You can then merge each return to its respective house.



Hope that helps,

Conor

_______________________________________________
Talk-ie mailing list
Talk-ie@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-ie

Reply via email to