ruumica documentation

Export profile file

Every key of an export profile, the file that decides layers, symbols, title block and sheet of a delivery.

An export profile is a TOML file in profiles/, named after its id: profiles/ee.default.v1.toml. It holds everything that differs between authorities: layer names and colours, symbols, title block fields, sheet settings and the closeout book template. ruumica’s exporters contain no authority-specific names, so changing a layer name is a profile edit, never a program change. You choose the profile with asbuilt export --profile <id>.

Provisional and production profiles

A profile is either provisional (production = false) or production (production = true).

  • A provisional profile was not written from an authority’s specification. Every file exported with it is marked PROFILE NOT AUTHORITY-VERIFIED, and the export needs --allow-unverified-profile (see PROFILE_UNVERIFIED). ee.default.v1 is provisional.
  • A production profile cites the authority’s specification in authority_spec and records the SHA-256 of a drawing that authority has accepted in sample_dxf_sha256. ruumica refuses production = true while either is PENDING.

A published profile is never edited. Its SHA-256 is part of every manifest made with it, so a change is a new file with a new version: ee.default.v2.toml.

Keys

Every key is required. A key that is not listed here is refused.

Top level

Key Type Meaning
id text The profile’s id. Must equal the file name without .toml.
version text The profile’s version, also part of its id.
production true or false Whether the profile was written from an authority’s specification (see above).
authority_spec text Citation of the authority specification the layers were written from, or PENDING.
sample_dxf_sha256 text SHA-256 (64 lower-case hex digits) of a drawing the authority accepted, or PENDING.
crs_label text The coordinate system as printed in the title block, such as L-EST97 / EH2000.

[sheet]

Key Type Meaning
sheet.scale_denominator whole number The map scale: 500 means 1:500.
sheet.grid_spacing_m number, metres Distance between grid crosses on the map.
sheet.grid_cross_size_m number, metres Arm length of a grid cross, in drawing units.
sheet.text_height_m number, metres Text height in drawing units; at 1:500, 1.0 m is 2 mm on paper.
sheet.north_axis_label text Label of the northing axis. Estonian convention: X.
sheet.east_axis_label text Label of the easting axis. Estonian convention: Y. Must differ from the northing label.

[furniture]

The layers for everything on the sheet that is not part of the network.

Key Type Meaning
furniture.grid_layer layer name Layer of the grid crosses.
furniture.title_layer layer name Layer of the title block.
furniture.label_layer layer name Layer of labels.

[[layers]]

The layer table of the drawing, in the order written. Repeat the section for each layer.

Key Type Meaning
layers[].name text Layer name. Each name once.
layers[].color whole number 1–255 AutoCAD colour index.
layers[].linetype text Line type; only CONTINUOUS is defined in the drawing.

[[blocks]]

Symbols, in drawing units (metres) relative to the insertion point. Repeat the section for each symbol.

Key Type Meaning
blocks[].name text Symbol name. Each name once; must not equal the title block name.
blocks[].primitives list The symbol’s geometry; at least one primitive.
blocks[].primitives[].kind circle or line The kind of primitive.
blocks[].primitives[].r number, metres Radius of a circle, centred on the insertion point.
blocks[].primitives[].x1 number, metres Start of a line, easting.
blocks[].primitives[].y1 number, metres Start of a line, northing.
blocks[].primitives[].x2 number, metres End of a line, easting.
blocks[].primitives[].y2 number, metres End of a line, northing.

[nodes.<node type>]

One section for each node type: HANDHOLE, MANHOLE, CABINET, SPLICE_CLOSURE, POLE, DEPTH_POINT, BEND, STRUCTURE. All eight are required.

Key Type Meaning
nodes.<node type>.layer layer name Layer the node is drawn on.
nodes.<node type>.block symbol name Symbol the node is drawn with.

[spans.<span type>]

One section for each span type the projects use, such as TRENCH or CONDUIT_HDPE_40MM. A span type without a section stops the export with DXF_NO_LAYER.

Key Type Meaning
spans.<span type>.layer layer name Layer the span is drawn on.

[title] and [title.tags]

Key Type Meaning
title.block text Name of the title block definition in the drawing.
title.tags table For each title field, the attribute tag it fills in the drawing. All ten fields are required, and each tag is used once: project, organisation, mtr_code, surveyor, certificate_no, crs, control_points, date, profile, status.

[pdf]

Key Type Meaning
pdf.template text The closeout book template, such as closeout.v1. It must be one that this version of ruumica contains (PDF_TEMPLATE_UNKNOWN).

Rules ruumica checks

A profile that breaks a rule is refused before anything is exported, with a message that names the rule:

  • production = true only when neither authority_spec nor sample_dxf_sha256 is PENDING.
  • Layer names and symbol names are unique; colour indexes are 1–255; every symbol has geometry.
  • Every layer and symbol a node, span or furniture key names is defined in the same profile.
  • Every node type has a section; every title field has a tag; no tag is used twice.
  • Sheet values are positive.

Example

The start of ee.default.v1.toml, shortened:

id = "ee.default.v1"
version = "1"
production = false
authority_spec = "PENDING"
sample_dxf_sha256 = "PENDING"
crs_label = "L-EST97 / EH2000"

[sheet]
scale_denominator = 500
grid_spacing_m = 100.0
grid_cross_size_m = 5.0
text_height_m = 1.0
north_axis_label = "X"
east_axis_label = "Y"

[[layers]]
name = "ASB_NODE_CHAMBER"
color = 5
linetype = "CONTINUOUS"

[nodes.HANDHOLE]
layer = "ASB_NODE_CHAMBER"
block = "ASB_SYM_HANDHOLE"

Exporting the demo project with it. The profile is provisional and the Estonian geoid is not installed, so the export needs both permissions and reports both:

$ asbuilt export --project ee-demo --profile ee.default.v1 --frozen-at 2026-01-01T00:00:00Z --out closeout --allow-grid-absent 'ee.*' --allow-unverified-profile
…
Warning PROFILE_UNVERIFIED: profile ee.default.v1 is provisional (authority_spec = PENDING, sample_dxf_sha256 = PENDING); artifacts are marked "PROFILE NOT AUTHORITY-VERIFIED"
…

Last changed 2026-11-14