Skip to main content
Presentation lives outside the model: geometry carries meaning, and this page is the stylesheet turning meaning into width. A line class says what a line means. Twelve, closed, owned by the language: cut, beyond, hidden, above, centerline, datum, boundary, break, match, section, annotation, symbol. The view assigns the class, never the author — a wall outline is cut where a plan slices it, beyond where it only sees it. A role is a finer label a component author may put on part of an element — open, meaningless, there only to be selected. Rows are addressed class.role — cut.layer, cut.hatch, annotation.terminator — or category.class, like door.cut, when a category’s cut or projection differs from the host default. An unknown selector falls back to the class pen, so it still draws. A pen is a width in millimetres from the National CAD Standard table: nine pens, from extra fine (0.13 mm) to xxxx wide (2.0 mm). Every cell below is a pen name; no element, component, or emit site carries a number. NCS’s table is scale-blind; Revit’s Model Line Weights table gives a width per view scale. We keep NCS’s vocabulary and take Revit’s axis: a pen per column over Revit’s six scales, 1” through 1/32” per foot. Each row records its basis — cited (NCS names that use at that pen), revit-parity (Revit’s default, snapped to the nearest NCS pen), practice (convention neither names: our ruling, labelled). The HTML mapping is exact, the names crossed. Our class is the tag: fixed vocabulary, carries meaning, behaviour set by context. Our role is the CSS class: a free label, meaningless alone, there to be styled. Drafting named its semantic layer “class” first, so web readers hear the word backwards here. In Revit, an Object Styles subcategory is close to a role, the projection and cut columns to the class — except you fill both in advance, where here the view computes which applies. A Revit line weight is an index into the project’s table, so a family looks different in two projects; an NCS pen is a width. The real difference is authority: a family author assigns weights, invents subcategories, and bakes appearance into the family. A loft component author assigns roles, never a weight. The component spelling of roles shown here is illustrative until the component definition language ships. The model says what a line means; the standard says how it looks. Components and the compiler emit classes and roles, never weights — so no package can change how a firm draws.

Pens

The NCS pen set (M4 §4.2.7), all nine rows. Every cell in the tables below is one of these names, never a free number. The three heaviest are sheet furniture — titles, borders — and no class draws them yet; they are here so the set is the standard’s, not a subset of it.

Line classes

What a line means, and the pen it takes at each view scale (paper inches per model foot — Revit’s six columns). A scale-blind row repeats one pen across; a view at a scale between columns reads the nearest column. Basis: cited — NCS names this use at this pen; revit-parity — Revit’s default tables, the named pen at each scale, snapped to the nearest NCS pen; practice — drafting convention neither names, our ruling, labelled as such. A reserved class has a row so the table is complete, and nothing draws it.

Overrides

The selectors finer than class. class.role names a part of a class the standard gives its own pen (Revit’s subcategory): layer separators, hatch, terminators, the section’s profile. category.class names a category whose cut or projection differs from the host default (Revit’s per-category Object Styles): a door’s jambs cut three pens below the wall they sit in. A selector the table does not know falls back to the class pen.