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(seePROFILE_UNVERIFIED).ee.default.v1is provisional. - A production profile cites the authority’s specification in
authority_specand records the SHA-256 of a drawing that authority has accepted insample_dxf_sha256. ruumica refusesproduction = truewhile either isPENDING.
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 = trueonly when neitherauthority_specnorsample_dxf_sha256isPENDING.- 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"
…