Reference, don’t measure. Place elements off grids, levels and other elements, not off project coordinates. A position written asgrid.A + 12'moves when grid A moves. A position written as12'stays where it was typed. Revit keeps that relationship in a locked dimension or an EQ constraint; loft keeps it in the text.
How to write a reference
Types
Declare the types first. The elements below take their type parameters from them.wall EXT-1 W1, door 3070 D1. It stays bare because the keyword already says which kind of type it is; a wall’s type can only be a walltype. wall walltype.EXT-1 W1 also works.
Elements
Everything else is written category first:grid.A, level.L1, wall.W1. To reach one of an element’s datums, add it after a second dot: wall.W1.end, door.D1.jamb.far. Read it left to right as category, id, datum. The dot only separates.
- Ids have no dots.
A.5would read as a reference. Name the half-gridA5and give itlabel "A.5"for the bubble. - Ids are case-sensitive.
wall.w1is notwall.W1. - Keep ids unique across the model. A
wall.W1and awindow.W1should not both exist. - Rooms, room separation lines and views can’t be referenced. They read the model; nothing is placed off them.
room.210in a slot is an error that says so.
in wall.W1 names a door’s host, base level.L1 a wall’s base, of level.L1 a plan view’s level.
Datums: planes and plumb lines
A datum is a plane or a line that other elements are placed from. Loft has two today:- A plane, vertical or horizontal. Grids are vertical planes; levels are horizontal ones.
- A plumb line, a vertical line. In plan it reads as a point, which is why every
(x, y)pair in loft is a plumb line.
grid.A, level.L1.
Projected. Every element gives off datums of its own, the way a Revit family exposes its references. A wall projects planes (centerline, core.centerline, foc, fof, top, base) and a plumb line at each end (start, end). An opening projects jamb, head, sill and centerline, and a door adds hinge. Each category page lists its datums.
Calculated. Arithmetic on datums makes a new one: grid.A + 12', (grid.B - grid.A)/2, wall.W2.centerline + 1'. Two vertical planes that cross make a plumb line: (grid.A, grid.1), (grid.A - 12', grid.1).
Project coordinates such as (4'-6", 1'-2") are the fallback: plain lengths measured from the project origin. Use them when nothing in the model is there to measure from.
Planes are unbounded. A wall’s centerline runs on past the wall’s ends, so it can cut something the wall never touches.
What each slot takes
A slot asks for a shape, not a category. Where it wants a plane, any vertical plane will do, a grid’s or a wall’s. A slot asks for a category only when it names the element to host on or measure within.
Two rules hold in every slot.
- A bare wall is shorthand, and the slot decides the plane. After
left of,right of,pastorshort ofit is the core face on your side. As an extent it is the centerline. In a coordinate it is refused; name the plane. - A bare number is only ever a factor. The
2in/2is arithmetic. Anywhere else a bare1is neither the grid nor a length, and the parser asks which you meant:grid.1or1'.
How to place elements
Each element is fixed in place by one geometric thing: a plane, a line, a point, a wall, a face or a loop. That thing is its method of placement. Walls and room separation lines share one method; doors and windows share another.By a plane — grids and levels
A grid or a level is itself a plane, fixed by one number:at for a grid, elev for a level. A grid is a vertical plane seen edge-on in plan. A level is a horizontal plane seen edge-on in section.
above names the level above when it isn’t the next one up, and height states the story height outright.
Coming: refplane, a reference plane that is neither a grid nor a level.
By a line — walls and room separation lines
Walls and room separation lines (roomline) are placed the same two ways: between two plumb lines, or along a carrier between two extents.
Height is not placement. base, top and height are wall parameters, Revit’s Base and Top Constraint, and they work with either form. See the wall page.
Between two plumb lines
from (a, b) to (a, b). A wall’s end can fill a whole pair, which is how one wall chains off the last.
Along a carrier, between two extents
from <extent> to <extent> along <carrier>
from <extent> to <extent> at <length> left|right of <carrier>
The carrier is where the line is drawn: the plane it rides (along), or the plane it sits a set distance off (at … left of, right of). The extents are where it is cut.
Revit. This is Pick Lines with the offset kept. Revit draws the wall and forgets it came from a grid. Here the grid stays in the text.
along takes a grid today. To run a wall off another wall, use the offset form.
What cuts a carrier
An extent is a plane that intersects the carrier, or a plumb line whose straight line to the carrier is perpendicular to it.What an extent can’t be
error=D0608
error=D0236
error=D0234
along takes a grid, not a wall:
error=D0611
right of, because right picks the side.
error=D0327
error=D0314
By a point — rooms
A room is placed at a plumb line, and its level makes that a point. Rooms take grids and project coordinates only, never walls: a room marks the space its walls enclose, and moving a wall must never move the room.error=D0210
By a wall host — doors, windows and openings
Doors, windows and openings are cut into a host wall (in wall.W1) and placed by a station: a distance along the wall. The station is measured from the wall’s start unless you say otherwise. past measures forward from a datum; short of measures back from one. The station lands on the opening’s center unless you say to jamb, to jamb.far or to centerline.
wall.W5.centerline, or another opening’s datum in the same wall. It can’t measure to a wall’s end. Use one of that wall’s planes.
error=D0322
past or short of. Write the whole station as an expression after at instead.
error=D0213
sill is a parameter, not placement. See the door, window and opening pages.
By a face host
Coming. Sconces, receptacles, ceiling and floor fixtures: the wall-host method with a face as the host and a point on it as the station.By a loop
Coming. Floors, roofs, ceilings and areas are fixed by a closed loop, what Revit calls a sketch.Not placed — views, types and annotations
A view is an element that isn’t placed. It is a query over the model and an instance of itsviewtype. It says what it looks at: of level.L1 for a plan, a cut plane at and a far clip to for a section. It can also crop to a region in model coordinates. Nothing is placed off a view, and each view lives in its own file.