Editing areas in one layer so their boundaries align, either all or in part, with boundaries of areas in a different layer is a common task in GIS and CAD. For example, we might want area boundaries in a layer with different zoning areas for tax or regulatory purposes to be guided by the boundaries of administrative jurisdictions, such as the boundaries of cities, in a different layer.
There are many ways to do that in Manifold, so we can pick a fast workflow for a particular task. In this example, we apply a fast, simple workflow using basic tools. With experience, such edits can be done very rapidly. The example shows a CAD-style use of GIS, but the techniques shown apply in purely geographic tasks, like editing parcels, in exactly the same way.
Our example uses a map with different layers that show the positioning of masonry interior walls on different floors of a building. Walls are drawn using area objects. Our task is to edit areas in one layer so the structures on that floor align with the layout of walls in a lower floors. That will simplify construction and will increase load-bearing strength.
The building illustrated is typical European construction, where the framework and floors of the building are reinforced poured concrete and interior walls are primarily block masonry, with reinforced poured concrete support columns as necessary in key spots. Designs will often position load-bearing walls in an upper floor above those in a lower floor.
In the illustration above the First Floor layer shows the first floor layout of interior, load-bearing walls in a building. The walls were originally drawn using a horizontal and vertical grid on 20 cm centers. The areas use a diagonal line hatch pattern, where the "color" between the hatch lines is transparent color. The Second Floor layer, which shows the second floor layout of walls, is turned off in the illustration, so we can more clearly see the first floor layout.
In the Illustration above, we have turned off the First Floor layer and have turned on the Second Floor layer, so we can clearly see the layout of the second floor interior walls.
Turning on the First Floor layer as well, we can see how the walls in the second floor do not exactly align with walls in the first floor. The orange-brown walls are the second floor walls and the gray-brown walls are on the first floor. We can see where walls overlap where the hatch patterns overlap in an X pattern.
Not having the second floor walls lined up with the first floor walls is a minor matter, but for a better design we will adjust the second floor walls and door openings to align with those in the first floor.
We zoom in for a closer look. To guide our drawings, we will use snap modes. We will use Snap to Coordinates mode, the default snap mode.
We begin by editing the second floor section of wall in the upper middle of the view. We Alt-click that area to pick it.
The area appears in picked blue outline, with small boxes at the coordinates (vertices) that define it. We click the vertex in the lower right corner, to put the area into Move Coordinates mode, the default editing mode.
The vertex we clicked appears with a large box, indicating we are Move Coordinates mode and the vertex we clicked is the active vertex. We can drag it to a new location. When we drag the vertex to a new location, we want it to snap to the location of vertices in the layer below, to make sure we drag the vertex exactly on top of the vertex in the layer below
By default, snapping works with objects in the active layer only. We can change that to use all visible layers by turning off Snap to Active Layer Only, the default setting. We can do that either by pressing the A key on the keyboard (mnemonic for "All") or we can Right-click to call up a context menu.
In the context menu we check that Snap is on, and then we click the Snap to Active Layer Only choice, to toggle that off. An experienced user would probably have just pressed the A key, but while we are learning we can use the context menu, until keyboard shortcuts become automatic.
The first two keyboard shortcuts most people learn for snapping is the spacebar, which toggles snapping off and on, and the A key, which toggles snapping to the active layer only off and on.
Turning off the Snap to Active Layer Only setting will now cause snaps to happen to objects in the First Floor layer as well as the Second Floor layer. We can drag the active vertex down to the lower right corner of the wall in the lower layer.
Next, we click the next vertex in the object we are editing. The rhythm for editing is we click a vertex and then we drag it to a new position.
We drag that vertex down to the lower left corner of the wall in the lower layer. As we drag it near, it snaps into place.
We click the next vertex.
We move that down as well, allowing it to snap into position based on the vertex in the object in the lower layer.
We click on the next vertex...
And drag it down to snap into position. When many vertices are nearby, we may find the cursor snapping to nearby vertices, until we position the cursor down to one side where there is only one vertex nearby to which it can snap.
In such cases, an experienced user would use keyboard shortcuts like G to switch to Snap to Grid mode, so the cursor snaps to rectangular grid locations 20 centimeters apart horizontally and vertically, or C to switch back to Snap to Coordinates mode, so the cursor snaps to existing objects in visible layers. Being able to instantly switch to whichever mode works best for a particular desired location helps make workflow very fast, once we gain the muscle memory to use such shortcuts automatically.
We click the next vertex...
...and drag it into position, allowing it to snap exactly to the location of the vertex in the layer below.
We click the final vertex to be moved.
We drag that to snap into position as well.
The blue preview outline shows the changes we have made. If we like those, not seeing any errors, we right-click and choose Save Changes. Many experienced users would simply press Ctrl-Enter, the keyboard shortcut to save changes.
The changes are applied and the object now takes the new shape specified by the edits we made. We now Alt-click on the next object to be edited.
The object appears in picked preview mode. We click on the upper right vertex to shift into editing mode using Mode Coordinates (this step not illustrated).
We then drag the vertex to where it can snap into position, aligned to the vertex in the object below.
We click on the next vertex (step not illustrated) and then drag that vertex to snap into position based on the object in the layer below.
We press Ctrl-Enter to save changes. Or, we right-click and choose Save Changes from the context menu.
We Alt-click on the last object to be edited, to pick it.
To switch it into Move Coordinates editing mode, we click the vertex in the lower right corner. We will use that vertex as a handle to drag the entire object down and to the right.
When we Shift-drag the vertex, the entire object will be moved.
When our Shift-drag mouse motion moves into range of a snap to the lower right corner of the object in the layer below, the entire object will snap into position.
We can see how the preview of where the area will move has been snapped exactly over top of the object in the layer below. We press Ctrl-Enter to apply the change. Or, we can right-click and choose Save Changes from the context menu.
The object moves into position. It is still picked, so we can un-pick it by alt-clicking anywhere in the drawing outside of any object.
We have now moved the object in the Second Floor layer so it is aligned with the wall object in the First Floor layer below.
If we zoom back out, we can see we still have a bit of editing to do, since the wall in the second floor is not as long as the wall in the first floor. We moved it into alignment, but now we can see a gap, indicated with an arrow in the illustration above, where it does not quite reach the outer wall. We can zoom in and with a few quick editing moves extend the second floor wall to close the gap.
Masonry inner walls? Yes, as is typical in European construction, including for single-family homes. The framework of the structure is steel bar ("rebar") reinforced concrete, poured to form a monolithic structure of load-bearing columns and poured, concrete slab floors. Walls between the poured, monolithic structure are filled in using blocks, usually with thicker outer walls and thinner inner walls. Autoclaved, aerated concrete blocks are now popular in many European countries, in addition to traditional use of insulating (many voids) hollow brick or hollow concrete blocks.
Exterior facades are typically a layer of insulation with stone, brick, stucco or other weather-proofing, finish layer. This is a different construction technique than wood-based construction used in the US: It results in much thicker interior walls, but it produces very durable, fire-resistant buildings that can last for centuries.
How do they route wires through masonry walls? Wire and plumbing conduits are placed in forms before floors and columns are poured. For accessory wiring, aerated concrete or void brick walls are easily routed with power tools that dig a channel wherever desired, into which wires are placed, and then covered with a layer of stucco. Walls are then finished smooth as desired.
User Interface Basics
Example: Draw Lines, Areas and Points - Simple example of using basic mouse moves to add points, lines and areas to a drawing.
Example: Trace an Area in a Map over an Image Background - In a map with a drawing layer above an image layer, create an area object in the drawing by tracing over the outlines of something seen in the image layer below.
Example: Edit Coordinates While Creating an Object - When creating an object in a map using a tool such as Create Area, right in the middle of the process we can edit coordinates in the Info pane Coordinates tab. This example shows the step by step process.
Example: Edit Attributes and Move a Point - We look at the attributes for a point in a drawing layer and edit one of the attributes using a more expanded Edit dialog. We then move the point to a new location. Easy!
Example: Create a Multipoint - This topic provides two examples: First we create a multipoint and then next we create a multipoint having two branches. The purpose of this topic is to help teach the implementation of geometry in Manifold and other spatial packages using an unusual and rarely met object type, the multipoint, which combines what appear to be many separate points into a single multipoint object.
Example: Change the Shape of Areas - Step-by-step editing of an existing area in a drawing: changing the shape by moving a vertex, by moving several vertices together, by moving the entire object, by deleting a vertex and by adding a vertex.
Example: Add Vertices in the Middle of a Line being Created - During the creation of a new object we can go back and make corrections, additions and deletions to coordinates already marked. In this example we start creating a new line, and then notice we have skipped over some locations we wanted to click. We go back to add those vertices (coordinates), and then we continue with creating the line.
Example: Edit Covered Objects - Working with drawings where some areas completely cover smaller areas is a bad idea, but sometimes we have to work with data in that form whether we like it or not. This topic shows techniques that can help us select and edit objects that are completely hidden by higher objects.