Skip to documentation

Reference

The brief for the AI that styles your project

What an AI needs to write a complete configuration (.occc) for your model: the list of its names, one print scale that sets every text, hatch and symbol, line weights in ranks, one hatch per material, a precise style for the views, and a graphic standard read from an image.

Before you start

An AI assistant can write your project's whole configuration: every object's lines, hatch and symbol, the layers, the views' markers and PDF pages, the notes and the spot elevations. This page is its brief. Give it the brief and your model's list of names, and it writes a file you import as it is.

  1. 01

    Download your names

    Click … at the right end of the MODEL BROWSER title, then Download as Markdown: every group and subgroup, view, note and spot elevation of the model, under the names the configuration must use.

  2. 02

    Give it the brief

    The address of this page, or, for an AI that cannot open web pages, the brief below: this page and The .occc format in one Markdown file. Attach the JSON Schema too if it takes files.

  3. 03

    Say what you want

    The scale the drawings will be printed at, and the standard to follow: your office's rules in words, an image of a drawing in your graphic standard, or the reference on this page. To build on your current settings, attach them as well: Export › Configuration (.occc).

  4. 04

    Import the file

    Import › Configuration (.occc) replaces the project's whole configuration. A file that breaks a rule changes nothing, and the dialog lists each problem with its code: give the list back to the AI. ⌘Z (Ctrl+Z) takes back an import.

To the AI: what you deliver

From here on, this page speaks to you, the AI writing the configuration. You are given the project's list of names — a Markdown file: # and the model's name, then ## Objects, ## Sections, ## Annotations and ## Spot elevations —, a print scale, a standard to follow (words, an image, or none) and sometimes the project's current configuration. Every key, its default and the rules a file must respect are on The .occc format (occlusia.app/docs/occc-format) and in its JSON Schema.

  1. A charter first. Before the file, a short table: each family of names, the look it gets — line weight, hatch, scale, colours, symbol, layer — and why. Then your assumptions: the scale, the standard, what an image did not show.
  2. Then the file. One JSON object in UTF-8, without comments: the whole configuration, ready to import, as a .occc file to download when it is long. The four lists first, then the settings that point at them.
  3. Then what you left. Every name you did not style, and why: a name that says nothing of what it is, a name that stands for two different things.

The names.

  • Use the names of the list exactly, capitals, spaces and accents included. Never translate, correct or invent one: settings under a name the model does not have are kept, unused.
  • How the list reads: a name is the whole line up to what Occlusia adds after it — (×3), the count of objects of that name side by side; after a view's name, its symbol in brackets, then — and what it is; after a note's or a spot elevation's name, — and its texts or altitudes — nothing when a note writes its own name. - Section : Coupe AA (21) — vertical is the view Section : Coupe AA; - HA = #level cm (×3), the note HA = #level cm.
  • A name the list shows in several places is one entry: the same name is drawn the same everywhere.
  • Write an entry under every name you style, groups and the objects inside them alike: in a file, a group's entry styles the group's own faces and never reaches the objects inside it. With hundreds of names, write the file with a script that applies your charter's rules, rather than by hand.
  • A group named for its material (Brick wall) whose objects have neutral names (Layer 1) gives them its material: style them by it. A neutral name found under groups of different materials, or a name that stands for two materials, cannot be styled twice: say so, and suggest renaming one in the model.

The settings.

  • Write every key of the look you chose, even when it equals its default — every styled object's cut_line_weight at least, so that Occlusia shows it as configured.
  • Make a pattern preset of each fill — its id in lower case, _ for spaces: concrete, facing_brick for the cut and facing_brick_bond beyond it, tiles_60 beside tiles_30 — and point the object's template (the cut) or surface_template (beyond the cut) at it. Copy the preset's values into the object's own keys too: Occlusia draws the object's copy, and the preset lets the person change a material everywhere at once. A look without a fill needs no preset.
  • A colour, line weight or line type meant in the DXF too takes its ByLayer key at false; true hands it to the layer. The objects' ByLayer keys: cut_line_weight_bylayer, cut_line_type_bylayer, cut_line_color_bylayer, the same three with surf_ and with symbol_, cut_pattern_color_bylayer and surf_pattern_color_bylayer. A note has color_bylayer; a spot elevation marker_color_bylayer, line_color_bylayer, value_color_bylayer and name_color_bylayer.
  • symbol is none, cross or insulation, nothing else; a hatch is an id of the catalog below; a colour is #RRGGBB.
  • Leave out author, app_version, app_build, snapshot_plugin_version, created_at and saved_at: they are informational, and Occlusia writes them at its next save.

One scale sets every size

Lines are sized on the printed sheet, everything else in the model. A line weight is a width in millimetres on the paper, and so are a line type's dashes: they stay the same at every scale. Text heights, hatch sizes, symbol sizes and lengths are in centimetres of the model: on the sheet they shrink as the scale gets smaller. Choose them for the scale the person prints at — 1:50 if they do not say.

font_size · value_font_size · name_font_size
The height of a capital on the sheet, in mm, × the scale's denominator ÷ 10. 2.5 mm at 1:50: 12.5.
cut_pattern_scale · surf_pattern_scale
The pattern's module (see the catalog) × the scale is a length in centimetres of the model; on the sheet, that length × 10 ÷ the denominator, in mm.
marker_scale · scale
A section marker or a spot elevation in manual size is built on a unit of 10 cm of the model × its scale: on the sheet, 100 × the scale ÷ the denominator, in mm. A spot elevation's triangle is one unit wide, a section marker's disc four. A 3 mm triangle: scale = 3 × the denominator ÷ 100 — 0.6 at 1:20, 1.5 at 1:50, 3 at 1:100. A 10 mm disc: marker_scale = 10 × the denominator ÷ 400 — 0.5, 1.25, 2.5.
max_width · line_length
A note's wrapping width and a spot elevation's line: centimetres of the model.

ISO 3098's text heights on the sheet, and the size that writes them at each scale:

1:20
1.8 mm 3.6 · 2.5 mm 5 · 3.5 mm 7 · 5 mm 10
1:50
1.8 mm 9 · 2.5 mm 12.5 · 3.5 mm 17.5 · 5 mm 25
1:100
1.8 mm 18 · 2.5 mm 25 · 3.5 mm 35 · 5 mm 50
1:200
1.8 mm 36 · 2.5 mm 50 · 3.5 mm 70 · 5 mm 100
  • Texts in ranks. 2.5 mm for the notes and the spot elevations' values, 1.8 mm for secondary labels, 3.5 mm for what is read from afar. A spot elevation's value in bold, its label regular.
  • A note's size is a whole number. Occlusia reads a note's font_size rounded down: write the nearest whole number, rounding up — 13, not 12.5. A spot elevation's sizes take decimals.
  • Section markers size their texts against the marker: marker_number_font_size and marker_name_font_size are factors from 0.5 to 2, 1 by default.
  • Hatch density. A pattern that draws a thing — bricks, blocks, tiles, boards, aggregate — at the thing's real size. Parallel lines no closer than 0.7 mm on the sheet (ISO 128) and never under 0.5 mm, or the hatch prints as grey; a texture — sand, honeycomb, wood grain — may be finer: it reads as a tone.
  • The PDF page. Give each view's pdf the same scale: scale_mode custom and scale_denominator the scale's denominator, with the sheet's format and orientation when the person gives them. Without them, ask; if you cannot, leave them out and say that the sheet is to be chosen in Occlusia — the default, A4, rarely holds a building at 1:50.

Line weights in ranks

What is cut is drawn heavier than what is seen beyond, and the structure heavier than what is built on it. Take ISO 128's series, each step ×√2, one rank per role: cut_line_weight for the cut, surf_line_weight for the edges beyond.

stroke-ultra · 1.00 mm
Rarely: the ground line of an elevation, the heaviest cut at 1:20 and larger.
stroke-heavy · 0.70 mm
The cut structure: concrete, masonry, a wall, slab or column of unknown material, the ground.
stroke-bold · 0.50 mm
The secondary mass: facing brick, thermal-break blocks, glulam, partitions.
stroke-medium · 0.35 mm
What is built in and on: insulation, timber members, joinery, cladding, roofing, screeds, stairs.
stroke-thin · 0.25 mm
Thin layers and fittings: finishes, membranes, sheets, panels, glass, furniture.
stroke-hairline · 0.13 mm
Hatch lines, cut symbols, and the edges seen beyond the cut.

At 1:100 and 1:200, take every cut one rank lighter. A standard that shows other ranks wins; a rank the six weights do not have becomes a line weight of the project's own (line_weights, stroke-custom-…).

One material, one hatch

Read each name for its material, in any language, abbreviated or misspelled: Mur béton 20, Concrete wall, Betonwand, Isolant PIR 120 mm. The material decides the hatch, and wins over the element: Escalier en béton is concrete, not a stair. A name that gives only the element takes the material that element almost always has in the person's practice — a raft, a foundation, a ring beam, a lintel, a floor slab are concrete in Belgium and France — and the charter reports each such reading; when no material is likely, the outline alone, no hatch, at the element's line weight. A number is a size: a thickness, a brick or tile format.

Without a standard of the person's, follow this reference — Belgian and French practice at 1:50: monochrome but for what insulates, in yellow (#FFED00), and glass, in pale grey (#DDE3E8); each mass — concrete, masonry, stone, glulam, screeds, gravel — on an opaque white background, so that it hides what it overlaps. Its scales are for 1:50: adjust them to the print scale by the rules above.

concrete · béton · beton · Beton
AR-CONC at 0.1 on #FFFFFF: 2 cm aggregate. Cut 0.70. Formwork blocks alike.
lean concrete · béton maigre · mager beton · Magerbeton
AR-CONC at 0.2 on #FFFFFF. Cut 0.25. Concrete to falls (béton de pente) alike.
screed · chape · dekvloer · Estrich
AR-SAND at 0.05 on #FFFFFF. Cut 0.35.
mortar, render, plaster · mortier, enduit · mortel, pleister · Mörtel, Putz
AR-SAND at 0.05 on #FFFFFF. Cut 0.25.
sand · sable · zand · Sand
AR-SAND at 0.08 on #FFFFFF. Cut 0.25.
concrete block, silicate · bloc béton, silico-calcaire · betonblok, kalkzandsteen · Betonstein, Kalksandstein
ANSI31 at 1.6 on #FFFFFF: 45° lines every 5.1 cm. Cut 0.70. Masonry of unknown kind alike.
clay block, brick · brique, terre cuite · snelbouwsteen, baksteen · Ziegel
ANSI31 at 1.1 on #FFFFFF: every 3.5 cm. Cut 0.70.
facing brick · brique de parement · gevelsteen · Verblender
Cut: ANSI31 at 1.1 on #FFFFFF. Beyond the cut: AR-BRSTD at 0.095, transparency 40, the bricks at their size. Cut 0.50.
aerated concrete · béton cellulaire · cellenbeton · Porenbeton
HONEY at 0.5 on #FFED00. Cut 0.70.
thermal-break block · bloc isolant · isolerende blok · Wärmedämmstein
ANSI37 at 1.0 on #FFED00. Cut 0.50.
stone masonry · maçonnerie de pierre · natuursteen · Naturstein
GRAVEL at 1.5 on #FFFFFF. Cut 0.70.
sill, bluestone · seuil, pierre bleue · dorpel, arduin · Sohlbank, Blaustein
ANSI36 at 0.8 on #FFFFFF. Cut 0.35.
rigid insulation: PIR, PUR, XPS, EPS · isolant · isolatie · Dämmung
ANSI37 at 1.6 on #FFED00. Cut 0.35. Sprayed and sarking insulation alike.
mineral wool · laine minérale · minerale wol · Mineralwolle
hatch_solid in #FFED00 and the insulation symbol. Cut 0.35.
timber: rafter, joist, stud, batten · bois · hout · Holz
No hatch, the cross symbol. Cut 0.35, boards 0.25.
glulam, CLT · lamellé-collé · gelamineerd hout · Brettschichtholz
LINE at 1.25 on #FFFFFF: its 4 cm lamellae. Cut 0.50.
wood panel: OSB, plywood · panneau · plaat · Holzwerkstoffplatte
JIS_WOOD at 1. Cut 0.25.
timber cladding · bardage bois · houten gevelbekleding · Holzschalung
Beyond the cut: LINE at 3.8, transparency 50; angle 90 for vertical boards, the default, 0 for horizontal ones. Cut 0.35.
parquet · parquet · parket · Parkett
Beyond the cut: AR-PARQ1 at 0.14, transparency 50. Cut 0.25.
façade panel, fibre cement · panneau de façade, fibrociment · gevelpaneel, vezelcement · Fassadenplatte, Faserzement
No hatch; beyond the cut, the colour the name gives. Cut 0.35.
steel · acier · staal · Stahl
hatch_solid: thin sections in black (ISO 128-50). Cut 0.35.
metal sheet, flashing, zinc, gutter, downpipe · tôle, bavette, gouttière, descente · plaatwerk, goot, regenpijp · Blech, Rinne, Fallrohr
hatch_solid. Cut 0.25.
membrane, vapour barrier, EPDM · membrane, pare-vapeur · folie, dampscherm · Abdichtung, Dampfsperre
hatch_solid. Cut 0.25.
plasterboard · plaque de plâtre · gipsplaat · Gipskarton
No hatch. Cut 0.25.
floor tiles · carrelage · tegels · Fliesen
Beyond the cut: NET at 9.45, transparency 50 — 30 cm tiles, or the format the name gives. Cut 0.25.
roof tiles · tuiles · dakpannen · Dachziegel
Beyond the cut: AR-RROOF at 0.2, transparency 50. Cut 0.35.
slates · ardoises · leien · Schiefer
Beyond the cut: LINE at 5, transparency 50 — 16 cm courses. Cut 0.35.
standing seam · joint debout · felsdak · Stehfalz
Beyond the cut: LINE at 15.75, angle 90, transparency 50 — 50 cm seams. Cut 0.35.
green roof substrate · substrat · substraat · Substrat
EARTH at 1.5, angle 45. Cut 0.35.
ground · terrain · grond · Erdreich
EARTH at 5, angle 45. Cut 0.70.
existing ground · terrain naturel · bestaand maaiveld · Urgelände
Its line alone: the cut dashed, #FF0000, 0.35; surf_line_type none; wireframe and exclude_from_shadows true.
gravel, hardcore · gravier, empierrement · grind, steenslag · Kies, Schotter
GRAVEL at 0.5 on #FFFFFF. Cut 0.25.
glass · verre · glas · Glas
Beyond the cut: hatch_solid in #DDE3E8. Cut 0.25.
window, door, stair · fenêtre, porte, escalier · raam, deur, trap · Fenster, Tür, Treppe
No hatch. Cut 0.35.
railing, furniture, sanitary, plants, fittings, solar panels · garde-corps, mobilier, quincaillerie, panneaux solaires · leuning, meubilair, beslag, zonnepanelen · Geländer, Möbel, Beschläge, Solarmodule
No hatch. Cut 0.25.
2D lines · 2D · 2D-lijnen · 2D-Linien
Lines drawn in the model, not volumes: no hatch, cut 0.25 — 0.13 for a name that says fine (fin, thin).
heavy partition · cloison maçonnée · zware binnenwand · Mauerwerkswand
ANSI31 at 1.6 on #FFFFFF. Cut 0.50.
light partition · cloison légère · lichte scheidingswand · Leichtbauwand
No hatch, the insulation symbol for its mineral wool. Cut 0.35.
wall, slab, column, beam · mur, dalle · muur, vloer · Wand, Decke
Material unknown: the outline alone. Cut 0.70; a partition or a roof 0.50.
to demolish · à démolir · te slopen · Abbruch
Over its own look: every line dashed in #FF0000 — the cut, the edges beyond, the symbol, its line solid — and the cut hatch in #FF0000. The objects inside it too.

Draw order. Where objects overlap, the higher draw_order is drawn above: steel 100, concrete members 90, cast concrete 80, sills 75, masonry 70, timber 60, screeds and lean concrete 40, membranes and sheets 35, finishes, claddings and façade panels 30, unknown materials and substrates 20, insulation 10, gravel 5, the ground 0; aerated and thermal-break blocks and heavy partitions 70 as masonry, sand 40, light partitions 30; joinery, glass, fittings and furniture stay at 0.

What else a name says. A colour it names (noir, RAL 7016, zinc, pierre bleue) fills the faces seen beyond the cut, never the cut — surface_hatch hatch_solid, or a pattern's background with its lines in a darker shade of that colour. A size sets a pattern's scale: Carrelage 60x60, NET at 18.9. A direction (horizontal, vertical) sets its angle.

The hatch catalog

fill_pattern and surface_hatch take none, hatch_solid or one of these ids. Each pattern's module is in centimetres of the model at scale 1: the scale that draws a thing at its real size is that size divided by the module — a 20 cm course of concrete blocks with AR-B816 (module 203.2): 0.098.

{
  "hatch_solid": "a flat fill in the pattern's colour",
  "hatch_angle": "angle iron: squares, 6.99",
  "hatch_ansi31": "45° lines, 3.175 apart: masonry, general section",
  "hatch_ansi32": "45° lines in pairs, 9.525 period: steel",
  "hatch_ansi33": "45° lines, solid and dashed, 6.35 period: bronze, brass, copper",
  "hatch_ansi34": "45° lines in fours, 19.05 period: plastic, rubber",
  "hatch_ansi35": "45° lines, solid and dash-dot, 6.35 period: fire brick, refractory",
  "hatch_ansi36": "45° dash-dot lines, 3.175 apart: marble, slate, natural stone",
  "hatch_ansi37": "crossed 45° lines, 3.175 apart: rigid insulation, lead, zinc",
  "hatch_ansi38": "45° lines crossed by dashes, 3.175 apart: aluminium",
  "hatch_ar_b816": "blocks 406.4 × 203.2, running bond",
  "hatch_ar_b816c": "blocks 406.4 × 203.2, running bond, with their joints",
  "hatch_ar_b88": "blocks 203.2 × 203.2, running bond",
  "hatch_ar_brelm": "bricks 203.2 long, English bond, with their joints",
  "hatch_ar_brstd": "bricks 203.2 × 67.73, running bond: brick façades",
  "hatch_ar_conc": "concrete aggregate: 2 cm stones at 0.1",
  "hatch_ar_hbone": "herringbone, 101.6: paving",
  "hatch_ar_parq1": "parquet, 304.8 squares of 50.8 strips",
  "hatch_ar_rroof": "roof tiles in courses, about 25.4",
  "hatch_ar_rshke": "wood shakes, 304.8 courses",
  "hatch_ar_sand": "sand grains: sand, mortar, render, screed",
  "hatch_box": "boxed steel, 25.4",
  "hatch_brass": "lines 3.175 apart, solid and dashed: brass",
  "hatch_brick": "bricks 12.7 × 6.35",
  "hatch_brstone": "brick and stone, 8.38 courses",
  "hatch_clay": "groups of lines, 4.76 period: clay",
  "hatch_cork": "lines and ticks, 3.175: cork",
  "hatch_cross": "small crosses, 6.35",
  "hatch_dash": "dashes, 3.175 apart",
  "hatch_dolmit": "lines and 45° strokes, 6.35: rock layers",
  "hatch_dots": "dots, 1.59 apart",
  "hatch_earth": "crossed groups of short lines, 6.35: earth",
  "hatch_escher": "Escher tiling, 26.4",
  "hatch_flex": "lines and ticks, 6.35: flexible material",
  "hatch_gost_glass": "45° strokes, 6: glass (GOST)",
  "hatch_gost_ground": "45° lines in threes, 10: ground (GOST)",
  "hatch_gost_wood": "grain, 6: wood (GOST)",
  "hatch_grass": "grass tufts, 25.4",
  "hatch_grate": "lines 0.79 apart crossed every 3.175: grating",
  "hatch_gravel": "stones in a 25.4 tile: gravel, stone masonry",
  "hatch_hex": "hexagons, 5.5",
  "hatch_honey": "honeycomb, 2.75: aerated concrete",
  "hatch_hound": "houndstooth, 1.59",
  "hatch_insul": "lines in threes, 9.525 period: insulation",
  "hatch_acad_iso02w100": "lines 5 apart, dashed as ISO line type 02; the same for 03 to 15",
  "hatch_jis_lc_8": "45° lines in pairs, 7.8; also 8a, 20 and 20a",
  "hatch_jis_rc_10": "45° lines in threes, 10: reinforced concrete (JIS); also 15, 18 and 30",
  "hatch_jis_stn_1e": "45° lines and dashes, 1: stone (JIS); also 2.5",
  "hatch_jis_wood": "45° grain, 0.707 apart: wood panels",
  "hatch_line": "lines, 3.175 apart: boards, courses, lamellae",
  "hatch_mudst": "dashes and dots, 6.35: mudstone",
  "hatch_net": "square grid, 3.175: tiles",
  "hatch_net3": "triangular grid, 3.175",
  "hatch_plast": "lines in threes, 6.35: plastic",
  "hatch_plasti": "lines in fours, 6.35: plastic",
  "hatch_sacncr": "45° lines and dots, 2.38: concrete",
  "hatch_square": "dashed square grid, 3.175",
  "hatch_stars": "stars, 5.5",
  "hatch_steel": "45° lines in pairs, 3.175: steel",
  "hatch_swamp": "tufts, 12.7: marsh",
  "hatch_trans": "lines, solid and dashed, 6.35: heat transfer material",
  "hatch_triang": "triangles, 8.25",
  "hatch_zigzag": "steps, 3.175"
}
Every pattern, its module in centimetres of the model at scale 1, and what it is drawn for.

The ids written out above stand for their families: hatch_acad_iso03w100 to hatch_acad_iso15w100, hatch_jis_lc_8a, hatch_jis_lc_20, hatch_jis_lc_20a, hatch_jis_rc_15, hatch_jis_rc_18, hatch_jis_rc_30 and hatch_jis_stn_2.5 exist too.

The style of the views

sections_settings takes one entry per name of ## Sections. The list says what each view is — plan, cut at 1.20 m, ceiling view, or vertical for a section or an elevation, which its name tells apart. A vertical view whose name says façade or elevation — Façade, Élévation, Gevel, Ansicht, Elevation, or their initials, FAR, FD — is an elevation; any other, a section. Write the same marker style under every view, so that all are marked alike, then each view's own choices. In the reference: default, black, the cut line dash-dot in black, heads at both ends, the symbol and the name written; a plan's marker hidden, its cut line would cross every section.

marker_style
default, a disc with the view's symbol and name; closed_arrow or open_arrow, arrows at the ends of the cut line.
section_line_type · section_line_color
The cut line drawn across the other views: dash-dot in ISO 128.
marker_endpoints · marker_show_number · marker_show_name
Heads at both ends, the start, the end or none; the symbol and the name written or not.
marker_size_mode · marker_scale
manual, at a scale proportional to the print scale: every marker one size on every sheet.
marker_number_font_family · marker_name_font_family
A family of the font list (see Notes and spot elevations).
marker_color · marker_number_color · marker_name_color
Blue (#0000FF) by default: write black, or the standard's colour.
hidden
true for a view whose marker must not appear in the others.
object_visibility
By object name, false hides it in this view: the ground and the foundations in a plan, the furniture in a section. Name every object to hide, those inside a group included.
shadow
In elevations: enabled true, azimuth 135 or 225, altitude 40 to 45, interiors false. In plans and sections, usually off.
pdf
format, orientation, scale_mode custom and scale_denominator at the print scale; margins_mm 10.

Notes and spot elevations

annotations_settings takes one entry per name of ## Annotations, spot_elevations_settings one per name of ## Spot elevations. Give every note one style and every spot elevation another, unless the standard sets some apart. In the reference: Arial; notes 2.5 mm regular, the drawing cleared behind them; spot elevations a triangle of 3 mm, the texts on the right, the value 2.5 mm bold, the label 1.8 mm regular, no line.

font_family
A family of the font list: Arial, Helvetica, Times New Roman, Courier New, Verdana, Tahoma, Inter, Roboto, Open Sans, Lato, Montserrat, Poppins, Source Sans 3, Carlito, Lora, Merriweather, Playfair Display, Source Serif 4, JetBrains Mono, Source Code Pro, osifont (ISO 3098 lettering), Architects Daughter and Caveat (handwritten). Another name is not drawn as written.
font_size · font_style
A whole number, from the scale (see above); regular, bold, italic or bold-italic.
background
drawing clears the drawing behind the text, for a note laid over hatches; solid, a box of background_color.
multiline · max_width
Long notes wrap at a width in centimetres of the model: 6 cm on a 1:50 sheet is 300.
marker_style · marker_side
triangle, triangle_half, triangle_open or target; the texts on the right or the left.
size_mode · scale
manual, at a scale proportional to the print scale.
value_font_size · name_font_size
From the scale (see above), decimals allowed; the value bold, the name regular.
value_display
relative, the height in the model (+2.90); absolute adds spot_elevation_datum.
spot_elevation_datum
Only from the person: the altitude of the model's origin, in metres (offset_m), and its reference (label): TAW in Belgium, NGF in France, NAP in the Netherlands, NHN in Germany.

Layers

Layers organise the DXF. Use the standard's layer names when it gives them; otherwise choose one of two schemes, and put each object's cut lines, edges beyond, hatches and symbol on them (cut_layer_id, surf_layer_id, hatch_layer_id, cut_symbol_layer_id).

  • By pen, the way an office plots through a colour table: a layer per cut line weight (Cut 0.70, Cut 0.50…), one for the edges beyond the cut, one for the hatches and the symbols. Each layer's line_weight is its pen, in hundredths of a millimetre (70), and its colour the one a pen table maps to it: 1.00 #FF0000, 0.70 #00FF00, 0.50 #0000FF, 0.35 #00FFFF, 0.25 #FF00FF, 0.13 #808080.
  • By element, after ISO 13567 or the AIA's names: A-WALL, A-FLOR, A-INSL, A-GLAZ, A-HATCH, A-ANNO, as in the demo model's configuration.
  • Notes, spot elevations and markers on one layer of their own, apart from the objects: 0.25 by pen, the hatches and symbols' layer 0.13. Never a layer 0, nor the id layer_0: the default layer is Occlusia's.

A graphic standard from an image

When the person attaches an image of a drawing in their standard — a section, a detail, a plan, a legend —, reproduce its look, not its content: how each material is drawn, how heavy each line is, how the texts and marks are set. Read it in this order:

  1. 01

    Find its scale

    A size you know — a brick course of 6.5 cm and its joint, a 2.10 m door, a 2.6 to 3 m storey — gives the image's centimetres of the model; the scale written on it, or a scale bar, gives the scale it was printed at. With no scale written, take it as drawn at the scale the person prints at, and say so.

  2. 02

    Sort the lines into ranks

    Group the thicknesses you see from the heaviest to the finest, and give each group a rank of the series by their ratios: a pixel says nothing of a millimetre. The heaviest cut is the structure. When fewer than three groups can be told apart, keep the reference's ranks.

  3. 03

    Name every material

    For each hatch, its family — 45° lines, crossed lines, dots, stones, aggregate, bricks, solid, none —, its angle and its density: count the lines across a thickness you know, and turn the spacing into a scale with the catalog's modules. A pattern the catalog does not have takes the nearest family: circles HONEY or DOTS, a basket weave AR-PARQ1, wavy batting the insulation symbol.

  4. 04

    Pick the colours

    Fills, backgrounds and lines as #RRGGBB: near-black is #000000, near-white #FFFFFF, a scan's greys rounded to a few. A standard has a short palette. The image's colours replace the reference's white backgrounds.

  5. 05

    Read the texts and the marks

    The kind of lettering — sans serif, serif, technical, handwritten — gives the nearest family of the list; its height against the scale, the size; a box behind a note, background. The section markers' shape gives marker_style, the spot elevations' symbol their marker_style and marker_side.

  6. 06

    Write the charter, then the file

    For each material and each mark, what the image shows and the setting you chose; what the image does not show comes from the reference above, and the charter says so. Then apply it to the names of the list: an element the image draws in a material — the inner window board in bluestone — takes it even when its name does not say it.

Before you hand it over

  • The file is valid JSON: one object, no comments, no trailing commas.
  • Every key under objects_settings, sections_settings, annotations_settings and spot_elevations_settings is a name of the list, written exactly.
  • Every name of the list is styled, or reported with its reason.
  • Every …_layer_id, template and line style points at an entry of the lists; ids are unique, and so are layer and line type names, ignoring case; no layer 0.
  • Every symbol is none, cross or insulation; every hatch is an id of the catalog; every colour is #RRGGBB.
  • Text sizes, hatch scales, marker scales and the views' pdf follow one print scale; a note's size is a whole number.
  • One material has one look, under every name that says it.

Occlusia checks the file as it is imported and refuses it whole if it breaks a rule, with a code from OC001 to OC508 (The .occc format, Errors). When the person gives you the codes back, correct exactly what each one says, and give the whole file again.