Zur Dokumentation springen

Referenz

Die Konfigurationsdatei, Schlüssel für Schlüssel

Eine Konfiguration (.occc) ist eine JSON-Datei: die Layer, Vorgaben und Linienstile eines Projekts und jede Einstellung, die es den Objekten, Darstellungen, Beschriftungen und Höhenkoten eines Modells gibt. Ihr Aufbau, jeder Schlüssel und sein Standardwert, die Regeln, die eine Datei einhalten muss, und die Fehler, die zur Ablehnung führen – um eine Konfiguration zu lesen oder eine von Hand, mit einem Skript oder mit einer KI zu schreiben.

Was eine Konfiguration enthält

Eine Konfiguration enthält die Einstellungen eines Projekts ohne sein Modell: ein JSON-Objekt in UTF-8. Export › Configuration (.occc) schreibt sie, Import › Configuration (.occc) liest sie wieder ein; ein Projekt (.occp) trägt dasselbe Objekt neben seinem Modell, und Ihre Standardkonfiguration ist ebenfalls eine.

  • Einstellungen werden nach Namen abgelegt: Die Einstellungen eines Objekts stehen unter seinem Namen, wie der Modellbrowser ihn zeigt, und gelten für jedes Objekt dieses Namens in jeder Darstellung. Auch Darstellungen, Beschriftungen und Höhenkoten werden nach Namen abgelegt.
  • Eine Konfiguration nennt, was von den Standardwerten abweicht: Ein weggelassener Schlüssel erhält den unten angegebenen Standardwert.
  • Layer, Mustervorgaben sowie die eigenen Linienstärken und Linientypen des Projekts werden einmal in Listen definiert, und die Einstellungen verweisen über ihre id darauf.

Der Aufbau

Die Datei ist ein einziges Objekt. Occlusia schreibt ihre Schlüssel in dieser Reihenfolge, jede Liste und jede Gruppe von Einstellungen eingeschlossen, auch wenn sie leer sind:

{
  "author": "Occlusia",
  "app_version": "0.1.0",
  "app_build": "gbc7dba5",
  "snapshot_plugin_version": "0.1.0+gbc7dba5",
  "created_at": "2026-10-23 08:00:00",
  "saved_at": "2026-10-23 16:54:49",
  "project_layers": [ … ],
  "hatch_presets": [ … ],
  "line_weights": [ … ],
  "line_types": [ … ],
  "objects_settings": { "Facing brick": { … }, … },
  "sections_settings": { "Section A-A": { … }, … },
  "annotations_settings": { "Wall build-up": { … }, … },
  "spot_elevations_settings": { "Ground floor": { … }, … },
  "spot_elevation_datum": { "offset_m": 152.35, "label": "TAW" }
}
author · app_version · app_build
Wer die Datei geschrieben hat: Occlusia, seine Version und sein Build. Nur zur Information: wird nie gelesen.
snapshot_plugin_version
Was das Modell erfasst hat, für das die Einstellungen gemacht wurden. Nur zur Information.
created_at · saved_at
Wann das Dokument angelegt und wann diese Datei geschrieben wurde, YYYY-MM-DD HH:MM:SS in Ortszeit. Nur zur Information.
project_layers
Die DXF-Layer des Projekts: eine Liste. Siehe Layer.
hatch_presets
Die Mustervorgaben: eine Liste. Siehe Mustervorgaben.
line_weights · line_types
Die eigenen Linienstärken und Linientypen des Projekts, neben den Standardwerten: zwei Listen. Siehe Linienstärken und Linientypen.
objects_settings
Die Einstellungen der Objekte, nach Objektnamen. Siehe Objekte.
sections_settings
Die Einstellungen der Darstellungen, nach Namen der Darstellung. Siehe Darstellungen.
annotations_settings
Die Einstellungen der Beschriftungen, nach Namen der Beschriftung. Siehe Beschriftungen.
spot_elevations_settings
Die Einstellungen der Höhenkoten, nach Namen. Siehe Höhenkoten.
spot_elevation_datum
Die Höhe des Modellursprungs im Bezugssystem des Projekts: offset_m in Metern und label, das hinter einem absoluten Wert steht (NGF, TAW). Standardmäßig 0 und leer.

Was eine Datei einhalten muss

Eine Konfiguration ist eine Datei, die Occlusia schreibt. Eine anderswo geschriebene oder bearbeitete – von Hand, von einem Skript, von einer KI – wird beim Öffnen geprüft und als Ganzes abgelehnt, wenn sie eine Regel verletzt: Nichts wird halb übernommen, die aktuellen Einstellungen bleiben, und der Dialog nennt jedes Problem mit seinem Code (siehe Fehler).

  • Ids sind streng. Jeder Eintrag der vier Listen braucht eine id, eindeutig in seiner Liste. Auch die Namen von Layern und Linientypen müssen eindeutig sein, ohne Beachtung der Groß- und Kleinschreibung: Eine DXF-Datei kennt einen Layer und einen Linientyp an seinem Namen.
  • Das Schnittsymbol ist ein festes Wort. Das symbol eines Objekts ist none, cross oder insulation; jedes andere Wort führt zur Ablehnung der Datei.
  • Alle anderen Werte sind frei. Ein weggelassener Schlüssel erhält seinen Standardwert, null gilt als weggelassen, ein Wert falschen Typs wird als Standardwert gelesen, und ein Schlüssel, den Occlusia nicht kennt, bleibt unverändert erhalten und wird zurückgeschrieben.
  • Verweise fallen zurück. Eine Einstellung, die auf einen Layer verweist, den die Datei nicht definiert, zeichnet auf Layer 0; eine, die auf eine fehlende Vorgabe oder einen fehlenden Linienstil verweist, erhält den Standardwert der Einstellung.
  • Namen müssen genau stimmen. Einstellungen erreichen ein Objekt nur, wenn ihr Schlüssel sein Name ist, wie der Modellbrowser ihn zeigt, einschließlich Groß- und Kleinschreibung und Leerzeichen. Einstellungen für einen Namen, den das Modell nicht hat, bleiben ungenutzt erhalten.

Layer

project_layers listet die eigenen Layer des Projekts. Der Standardlayer 0 gehört Occlusia: Er ist immer vorhanden, wird nie geschrieben, und kein Eintrag darf ihn beanspruchen, weder über seine id layer_0 noch über den Namen 0.

{
  "id": "layer_1761134408",
  "name": "A-WALL",
  "description": "Masonry",
  "color": "#D9483B",
  "line_weight": "50",
  "line_type": "solid",
  "transparency": 0,
  "active": true,
  "frozen": false,
  "locked": false,
  "plot": true
}
id
Pflicht. Text, eindeutig in der Liste: das, worauf jede …_layer_id verweist. Occlusia schreibt layer_ und eine Zahl.
name
Pflicht. Der Name des Layers in der DXF-Datei: nicht leer, ohne Leerzeichen am Rand, eindeutig ohne Beachtung der Groß- und Kleinschreibung, nie 0.
description
Freier Text. Standardmäßig leer.
color
#RRGGBB. Standardmäßig #FFFFFF.
line_weight
default oder eine Linienstärke in Hundertstelmillimetern: 25 steht für 0,25 mm. Standardmäßig default.
line_type
Standardmäßig solid, oder ein anderer Linientyp (siehe Linienstärken und Linientypen).
transparency
0 bis 100 %. Standardmäßig 0.
active · frozen · locked · plot
Ein, gefroren, gesperrt, geplottet: standardmäßig true, false, false und true.

Mustervorgaben

hatch_presets listet die Vorgaben des Projekts; none und custom gehören Occlusia und werden nie geschrieben. Ein Objekt, das eine Vorgabe verwendet, nennt sie – template für seine Schnittfüllung, surface_template für seine Flächenfüllung – und behält eine eigene Kopie ihrer Werte.

{
  "id": "concrete",
  "label": "Concrete",
  "fill_pattern": "hatch_ar_conc",
  "color": "#000000",
  "color_bylayer": true,
  "bg": "#BBBBBB",
  "line_weight": "stroke-medium",
  "scale": 0.15,
  "angle": 0,
  "transparency": 0
}
id
Pflicht. Text, eindeutig, nie none oder custom. Occlusia schreibt den Namen in Kleinbuchstaben, _ für Leerzeichen: concrete_block.
label
Der Name, den die Listen zeigen.
fill_pattern
none, hatch_solid oder ein Muster: sein Name in der Liste Fill Type, kleingeschrieben nach hatch_, ein Bindestrich als _ – ANSI31 wird hatch_ansi31, AR-CONC wird hatch_ar_conc.
color · color_bylayer
Die Farbe der Schraffurlinien oder der Vollfüllung (#000000) und ob die DXF-Datei stattdessen die Farbe des Layers übernimmt (true).
bg
Eine Vollfarbe hinter der Schraffur oder none (Standard).
line_weight
Die Stärke der Schraffurlinien: standardmäßig stroke-hairline.
scale · angle · transparency
Größenfaktor (1), Drehung in Grad gegen den Uhrzeigersinn (0), Transparenz von 0 bis 100 (0).

Linienstärken und Linientypen

Wo eine Einstellung eine Linienstärke oder einen Linientyp verlangt, nennt sie einen Standardwert oder einen des Projekts. Die Standardstärken sind stroke-hairline (0,13 mm), stroke-thin (0,25), stroke-medium (0,35), stroke-bold (0,50), stroke-heavy (0,70) und stroke-ultra (1,00); die Standardtypen sind solid, dashed, dotted, dash-dot und long_dash. Die Linien eines Objekts kennen außerdem none: gar keine Linie.

"line_weights": [
  { "id": "stroke-custom-fine", "name": "Fine", "width": 0.18 }
],
"line_types": [
  { "id": "custom-hidden_edge", "name": "Hidden edge", "pattern": [3.0, -1.5] }
]
line_weights · id
stroke-custom-, gefolgt von Buchstaben, Ziffern, _ oder -; eindeutig.
line_weights · name · width
Der Name, den die Listen zeigen, und die Breite in Millimetern, von 0,05 bis 2,11 (der Bereich von AutoCAD). Die DXF-Datei schreibt die nächstliegende AutoCAD-Linienstärke.
line_types · id
custom-, gefolgt von Buchstaben, Ziffern, _ oder -; eindeutig.
line_types · name
Der Name des Linientyps in der DXF-Datei: eindeutig ohne Beachtung der Groß- und Kleinschreibung, ohne Leerzeichen am Rand, höchstens 255 Bytes, ohne ein Zeichen, das eine DXF-Tabelle ablehnt (< > / \ " : ; ? * | , = und die Anführungszeichen), und kein Name, den DXF oder Occlusia selbst verwenden: Continuous, ByLayer, ByBlock, der Name eines Standardtyps, NONE.
line_types · pattern
Die Striche, in Millimetern auf dem gedruckten Blatt, wie AutoCAD sie schreibt: Eine positive Länge ist ein Strich, eine negative eine Lücke, 0 ein Punkt, höchstens zwölf. [3, -1.5] ist ein Strich von 3 mm und eine Lücke von 1,5 mm.

Objekte

objects_settings enthält einen Eintrag je Objektname, Gruppen eingeschlossen. Jedes Objekt wird mit seinem eigenen Eintrag gezeichnet: Die Oberfläche schreibt eine Änderung an einer Gruppe in den Eintrag jedes Objekts darin, und eine von Hand geschriebene Datei tut dasselbe. Jeder Schlüssel ist optional. Facing brick aus dem Demomodell:

"Facing brick": {
  "template": "custom",
  "fill_pattern": "hatch_ansi31",
  "cut_pattern_color": "#000000",
  "cut_pattern_color_bylayer": false,
  "cut_pattern_bg_color": "#f2d4a6",
  "cut_pattern_line_weight": "stroke-hairline",
  "cut_pattern_scale": 1.0,
  "cut_pattern_angle": 0,
  "cut_pattern_transparency": 0,
  "surface_template": "custom",
  "surface_hatch": "hatch_ar_brstd",
  "surf_pattern_color": "#000000",
  "surf_pattern_color_bylayer": false,
  "surf_pattern_bg_color": "#F2D4A6",
  "surf_pattern_line_weight": "stroke-hairline",
  "surf_pattern_scale": 0.11,
  "surf_pattern_angle": 0,
  "surf_pattern_transparency": 0,
  "cut_line_weight": "stroke-bold",
  "cut_layer_id": "layer_1761134408",
  "surf_layer_id": "layer_1761134408",
  "hatch_layer_id": "layer_1761134404"
}

Linien. Die Schlüssel cut_ gestalten den Umriss, wo die Darstellung das Objekt schneidet, die Schlüssel surf_ seine Kanten, die hinter der Ebene sichtbar sind.

cut_line_weight · surf_line_weight
Standardmäßig stroke-thin und stroke-hairline.
cut_line_type · surf_line_type
Standardmäßig solid; none zeichnet keine Linie.
cut_line_type_scale · surf_line_type_scale
Ein Faktor auf die Strichlängen des Typs: standardmäßig 1.
cut_line_color · surf_line_color
Standardmäßig #000000.
cut_line_transparency · surf_line_transparency
0 bis 100: standardmäßig 0.
…_bylayer
Neben jeder Farbe, Stärke und jedem Typ der Linien, Muster und des Symbols: true, der Standardwert, lässt die DXF-Datei den Wert des Layers übernehmen. SVG und PDF zeichnen immer den des Objekts.

Füllungen. Die Schlüssel cut_pattern_ füllen die geschnittenen Flächen, die Schlüssel surf_pattern_ die Flächen, die hinter der Ebene sichtbar sind.

template · surface_template
Die Vorgabe der Schnittfüllung und der Flächenfüllung: none (Standard), custom – die Werte unten, an keine Vorgabe gebunden – oder die id einer Vorgabe.
fill_pattern · surface_hatch
Die Schnittfüllung und die Flächenfüllung: standardmäßig none, hatch_solid oder ein Muster (siehe Mustervorgaben).
cut_pattern_color · surf_pattern_color
Die Farbe der Schraffurlinien oder der Vollfüllung: #000000.
cut_pattern_bg_color · surf_pattern_bg_color
Eine Vollfarbe hinter der Schraffur oder none (Standard).
cut_pattern_line_weight · surf_pattern_line_weight
Die Stärke der Schraffurlinien: stroke-hairline.
cut_pattern_scale · surf_pattern_scale
Größenfaktor: 1.
cut_pattern_angle · surf_pattern_angle
Drehung in Grad, gegen den Uhrzeigersinn: 0.
cut_pattern_transparency · surf_pattern_transparency
0 bis 100: 0.

Symbol, Layer und Darstellung.

symbol
none (Standard), cross oder insulation – sonst nichts: Ein anderes Wort führt zur Ablehnung der Datei.
symbol_line_weight · symbol_line_type · symbol_line_color · symbol_line_transparency
Die Linien des Symbols: stroke-hairline, solid, #000000, 0.
cut_layer_id · surf_layer_id · hatch_layer_id · cut_symbol_layer_id
Die DXF-Layer der Schnittlinien, der Ansichtslinien, der Schraffuren und des Symbols: die id eines Layers, standardmäßig layer_0.
draw_order
Höher wird darüber gezeichnet: standardmäßig 0.
export_block · block_name · block_layer_id
Exportiert das Objekt und seinen Inhalt als einen Block (false), seinen Namen – leer: der des Objekts – und den Layer seiner Einfügung (layer_0).
exclude_from_shadows
No Shadows: wirft keinen und empfängt keinen (false).
wireframe
Nur durch seine Linien gezeichnet (false).
hidden
In jeder Darstellung: true ausgeblendet, false angezeigt. Ohne diesen Schlüssel erscheint das Objekt so, wie das Modell es zeigt.

Darstellungen

sections_settings enthält einen Eintrag je Name einer Darstellung: ihre Marke, die in den anderen Darstellungen gezeichnet wird, die Sichtbarkeitsentscheidungen in dieser Darstellung, ihre Schatten und ihre PDF-Seite.

"South elevation": {
  "marker_style": "default",
  "marker_color": "#000000",
  "marker_number_color": "#000000",
  "marker_name_color": "#000000",
  "section_line_color": "#000000",
  "marker_layer_id": "layer_1761134400",
  "shadow": {
    "enabled": true,
    "sun_mode": "manual",
    "azimuth": 225,
    "altitude": 40,
    "interiors": false,
    "pattern": "default",
    "layer_id": "layer_1761134400"
  },
  "spot_elevations": { "Ground level": false, "Ceiling": false }
}
hidden
true blendet die Marke der Darstellung in allen anderen Darstellungen aus.
marker_style
default (eine Scheibe mit Symbol und Namen), closed_arrow oder open_arrow.
marker_color · marker_number_color · marker_name_color
Die Köpfe, das Symbol und der Name: standardmäßig #0000FF.
section_line_type · section_line_color
Die Schnittlinie: standardmäßig dash-dot und #000000.
marker_endpoints
both (Standard), start, end oder none.
marker_show_number · marker_show_name
Symbol und Namen zeichnen: true.
marker_size_mode · marker_scale
auto passt die Marke der Zeichnung an; manual behält die Größe marker_scale (1).
marker_number_font_family · marker_number_font_size
Die Schrift des Symbols (Arial) und sein Größenfaktor (1). Dieselben Schlüssel mit name gestalten den Namen.
marker_layer_id
Der DXF-Layer der Marke: layer_0.
object_visibility
Die eigenen Entscheidungen dieser Darstellung, nach Objektnamen: true hier angezeigt, false hier ausgeblendet. Sie haben Vorrang vor dem hidden der Objekte.
spot_elevations
Dasselbe für Höhenkoten, nach Namen.
shadow
enabled (false), sun_mode (manual), azimuth in Grad im Uhrzeigersinn ab Norden (135), altitude (45), interiors (true), pattern – default oder die id einer Vorgabe – und layer_id.
pdf
format von A4 bis A0 (A4), orientation auto, portrait oder landscape (auto), scale_mode fit oder custom im Maßstab 1:scale_denominator (fit, 50), margins_mm (10) und center, der Modellpunkt in der Blattmitte, sobald die Zeichnung auf dem Blatt verschoben wurde.

Beschriftungen

annotations_settings enthält einen Eintrag je Name einer Beschriftung – der Name, den das Modell ihr gibt (OCCTAG#Name), nicht der Text, den sie schreibt.

"Wall build-up": {
  "font_family": "Arial",
  "font_size": 4.2,
  "font_style": "regular",
  "background": "drawing",
  "layer_id": "layer_1761134400"
}
hidden
true blendet die Beschriftung in jeder Darstellung aus.
font_family · font_size · font_style
Arial; die Höhe eines Großbuchstabens in Zeichnungseinheiten (12); regular, bold, italic oder bold-italic.
color · color_bylayer · transparency
#000000, true, 0.
multiline · max_width
Den Text bei einer Breite in Zeichnungseinheiten umbrechen: false, 0.
show_leader
Die Führungslinie zeichnen, wenn das Modell der Beschriftung eine gibt: true.
background · background_color
none (Standard), solid – ein Kasten in background_color, #FFFFFF – oder drawing, der eigene Hintergrund der Zeichnung.
layer_id
Der DXF-Layer der Beschriftung: layer_0.

Höhenkoten

spot_elevations_settings enthält einen Eintrag je Name einer Höhenkote (OCCLEVEL#Name).

"Ground level": {
  "marker_style": "triangle_half",
  "value_font_size": 4.6,
  "name_font_size": 4.2,
  "layer_id": "layer_1761134400",
  "marker_side": "left",
  "size_mode": "manual",
  "scale": 2.0
}
hidden
true blendet sie in jeder Darstellung aus; die Entscheidung spot_elevations einer Darstellung hat Vorrang.
marker_style · marker_side
triangle (Standard), triangle_half, triangle_open oder target; die Texte rechts, right (Standard), oder links, left.
marker_color · marker_line_weight
Die Füllung der Marke (#000000) und die eine Stärke ihrer Linien (stroke-hairline).
size_mode · scale
auto oder manual mit scale, von 0,05 bis 50 (1).
show_line · line_type · line_weight · line_color · line_length
Die Höhenlinie: aus (false), dashed, stroke-hairline, #000000, 20 Zeichnungseinheiten lang – 0 zeichnet keine.
show_value · value_display
Die Höhe schreiben (true): relative, die eigene Höhe im Modell (+2.90), oder absolute, diese Höhe plus offset_m aus spot_elevation_datum, gefolgt von dessen label.
show_name
Die Bezeichnung schreiben: true.
value_font_family · value_font_size · value_font_style
Der Text der Höhe: Arial, 12, bold.
name_font_family · name_font_size · name_font_style
Der Text der Bezeichnung: Arial, 12, regular.
value_color · name_color
#000000.
marker_color_bylayer · line_color_bylayer · value_color_bylayer · name_color_bylayer
Eine ByLayer-Entscheidung je Farbe: true.
layer_id
Der DXF-Layer: layer_0.

Eine Konfiguration mit einer KI schreiben

Eine KI kann eine Konfiguration schreiben – einen Bürostandard, übernommene Stile einer anderen Software, eine Variante einer bestehenden Datei –, sobald sie die Regeln oben und die Namen in Ihrem Modell kennt.

  1. 01

    Geben Sie ihr das Format

    Diese Seite und das JSON Schema oben: jeder Schlüssel, sein Typ, sein Standardwert und seine Regeln.

  2. 02

    Geben Sie ihr Ihre Namen

    Die Namen Ihrer Objekte, Darstellungen, Beschriftungen und Höhenkoten genau so, wie der Modellbrowser sie zeigt – oder eine aus dem Modell exportierte Konfiguration.

  3. 03

    Fragen Sie nach dem, was abweicht

    Die Schlüssel, die von den Standardwerten abweichen, die Layer und Vorgaben, die sie verwenden, und kein Eintrag für einen Namen, den das Modell nicht hat.

  4. 04

    Importieren und die Antwort lesen

    Import › Configuration (.occc). Eine Datei, die eine Regel verletzt, ändert nichts, und der Dialog nennt jedes Problem mit seinem Code: Geben Sie die Liste an die KI zurück. ⌘Z (Ctrl+Z) nimmt einen Import zurück.

Fehler

Eine abgelehnte Datei öffnet Cannot import this configuration. – Cannot open this project. bei einem Projekt, Your default configuration was not loaded. bei der Standardkonfiguration. Die Details nennen jedes Problem: den Code, den Eintrag und den Grund. Ein Code ändert nie seine Bedeutung.

OC001
Die Datei ist keine Konfiguration: Ihr Inhalt ist kein JSON-Objekt oder kein lesbares JSON.
OC100
project_layers ist keine Liste.
OC101
Ein Layer ist kein Objekt.
OC102
Ein Layer hat keine id oder eine leere.
OC103
Zwei Layer haben dieselbe id.
OC104
Ein Layer hat keinen name oder einen leeren.
OC105
Zwei Layer haben denselben Namen, ohne Beachtung der Groß- und Kleinschreibung: In einer DXF-Datei wären sie ein Layer.
OC106
Der Name eines Layers hat Leerzeichen am Rand.
OC107
Ein Eintrag beansprucht den Standardlayer 0, über die id layer_0 oder den Namen 0. Entfernen Sie ihn: Der Standardlayer wird nie geschrieben.
OC200
Das symbol eines Objekts ist nicht none, cross oder insulation.
OC300
hatch_presets ist keine Liste.
OC301
Eine Vorgabe ist kein Objekt.
OC302
Eine Vorgabe hat keine id oder eine leere.
OC303
Zwei Vorgaben haben dieselbe id.
OC304
Eine Vorgabe trägt die id none oder custom, die Occlusia gehören.
OC400
line_weights ist keine Liste.
OC401
Eine Linienstärke ist kein Objekt.
OC402
Die id einer Linienstärke fehlt oder ist nicht stroke-custom-, gefolgt von Buchstaben, Ziffern, _ oder -.
OC403
Zwei Linienstärken haben dieselbe id.
OC500
line_types ist keine Liste.
OC501
Ein Linientyp ist kein Objekt.
OC502
Die id eines Linientyps fehlt oder ist nicht custom-, gefolgt von Buchstaben, Ziffern, _ oder -.
OC503
Zwei Linientypen haben dieselbe id.
OC504
Ein Linientyp hat keinen name oder einen leeren.
OC505
Zwei Linientypen haben denselben Namen, ohne Beachtung der Groß- und Kleinschreibung.
OC506
Der Name eines Linientyps hat Leerzeichen am Rand.
OC507
Ein Linientyp trägt einen Namen, den DXF oder Occlusia selbst verwenden: Continuous, ByLayer, ByBlock, den Namen eines Standardtyps, NONE.
OC508
Der Name eines Linientyps enthält ein Zeichen, das eine DXF-Tabelle ablehnt, oder ist länger als 255 Bytes.