Aller à la documentation

Référence

Le fichier de configuration, clé par clé

Une configuration (.occc) est un fichier JSON : les calques, les préréglages et les styles de ligne d’un projet, et chaque réglage qu’il donne aux objets, aux vues, aux notes et aux cotes de niveau d’un modèle. Sa structure, chaque clé et sa valeur par défaut, les règles qu’un fichier doit respecter et les erreurs qui en font refuser un — pour lire une configuration, ou pour en écrire une à la main, avec un script ou avec une IA.

Ce que contient une configuration

Une configuration contient les réglages d’un projet sans son modèle : un objet JSON, en UTF-8. Export › Configuration (.occc) l’écrit et Import › Configuration (.occc) la relit ; un projet (.occp) porte le même objet à côté de son modèle, et votre configuration par défaut en est une aussi.

  • Les réglages sont rangés par nom : les réglages d’un objet sont placés sous son nom, tel que l’explorateur du modèle l’affiche, et s’appliquent à tous les objets de ce nom dans toutes les vues. Les vues, les notes et les cotes de niveau sont elles aussi rangées par nom.
  • Une configuration indique ce qui diffère des valeurs par défaut : une clé omise prend la valeur par défaut indiquée pour elle plus bas.
  • Les calques, les préréglages de motif ainsi que les épaisseurs et types de ligne propres au projet sont définis une fois, dans des listes, et les réglages y renvoient par leur id.

La structure

Le fichier est un seul objet. Occlusia écrit ses clés dans cet ordre, chaque liste et chaque groupe de réglages compris, même vides :

{
  "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
Qui a écrit le fichier : Occlusia, sa version et son build. Informatif : jamais lu.
snapshot_plugin_version
Ce qui a capturé le modèle sur lequel les réglages ont été faits. Informatif.
created_at · saved_at
Quand le document a été créé et quand ce fichier a été écrit, YYYY-MM-DD HH:MM:SS en heure locale. Informatif.
project_layers
Les calques DXF du projet : une liste. Voir Calques.
hatch_presets
Les préréglages de motif : une liste. Voir Préréglages de motif.
line_weights · line_types
Les épaisseurs et types de ligne propres au projet, à côté des standards : deux listes. Voir Épaisseurs et types de ligne.
objects_settings
Les réglages des objets, par nom d’objet. Voir Objets.
sections_settings
Les réglages des vues, par nom de vue. Voir Vues.
annotations_settings
Les réglages des notes, par nom de note. Voir Notes.
spot_elevations_settings
Les réglages des cotes de niveau, par nom. Voir Cotes de niveau.
spot_elevation_datum
L’altitude de l’origine du modèle dans le système de référence du projet : offset_m, en mètres, et label, écrit après une valeur absolue (NGF, TAW). 0 et vide par défaut.

Ce qu’un fichier doit respecter

Une configuration est un fichier qu’écrit Occlusia. Un fichier écrit ou modifié ailleurs — à la main, par un script, par une IA — est vérifié à l’ouverture, et refusé en entier s’il enfreint une règle : rien n’est appliqué à moitié, les réglages en cours restent, et la boîte de dialogue liste chaque problème avec son code (voir Erreurs).

  • Les identifiants sont stricts. Chaque entrée des quatre listes a besoin d’un id, unique dans sa liste. Les noms des calques et des types de ligne doivent aussi être uniques, sans tenir compte de la casse : un DXF connaît un calque et un type de ligne par leur nom.
  • Le symbole de coupe est un mot fermé. Le symbol d’un objet vaut none, cross ou insulation ; tout autre mot fait refuser le fichier.
  • Toutes les autres valeurs sont libres. Une clé omise prend sa valeur par défaut, null compte comme une clé omise, une valeur du mauvais type se lit comme la valeur par défaut, et une clé qu’Occlusia ne connaît pas est conservée telle quelle et réécrite.
  • Les références se replient. Un réglage qui renvoie à un calque que le fichier ne définit pas dessine sur le calque 0 ; un réglage qui renvoie à un préréglage ou à un style de ligne manquant prend la valeur par défaut du réglage.
  • Les noms doivent correspondre exactement. Des réglages n’atteignent un objet que si leur clé est son nom, tel que l’affiche l’explorateur du modèle, majuscules et espaces compris. Les réglages d’un nom que le modèle n’a pas sont conservés, inutilisés.

Calques

project_layers liste les calques propres au projet. Le calque par défaut, 0, appartient à Occlusia : il est toujours là, jamais écrit, et aucune entrée ne peut le revendiquer, ni par son id layer_0, ni par le nom 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
Obligatoire. Du texte, unique dans la liste : ce que désigne chaque …_layer_id. Occlusia écrit layer_ suivi d’un nombre.
name
Obligatoire. Le nom du calque dans le DXF : non vide, sans espaces autour, unique sans tenir compte de la casse, jamais 0.
description
Texte libre. Vide par défaut.
color
#RRGGBB. #FFFFFF par défaut.
line_weight
default, ou une épaisseur en centièmes de millimètre : 25 vaut 0,25 mm. default par défaut.
line_type
solid par défaut, ou un autre type de ligne (voir Épaisseurs et types de ligne).
transparency
0 à 100 %. 0 par défaut.
active · frozen · locked · plot
Allumé, gelé, verrouillé, imprimé : true, false, false et true par défaut.

Préréglages de motif

hatch_presets liste les préréglages du projet ; none et custom sont ceux d’Occlusia et ne sont jamais écrits. Un objet qui utilise un préréglage le nomme — template pour son remplissage de coupe, surface_template pour son remplissage de surface — et garde sa propre copie des valeurs du préréglage.

{
  "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
Obligatoire. Du texte, unique, jamais none ni custom. Occlusia écrit le nom en minuscules, _ pour les espaces : concrete_block.
label
Le nom qu’affichent les listes.
fill_pattern
none, hatch_solid, ou un motif : son nom dans la liste Fill Type, en minuscules après hatch_, un trait d’union écrit _ — ANSI31 devient hatch_ansi31, AR-CONC devient hatch_ar_conc.
color · color_bylayer
La couleur des traits de hachure ou du remplissage uni (#000000), et si le DXF prend plutôt la couleur du calque (true).
bg
Une couleur unie derrière la hachure, ou none (par défaut).
line_weight
L’épaisseur des traits de hachure : stroke-hairline par défaut.
scale · angle · transparency
Facteur de taille (1), rotation en degrés dans le sens antihoraire (0), transparence de 0 à 100 (0).

Épaisseurs et types de ligne

Partout où un réglage prend une épaisseur ou un type de ligne, il nomme un standard ou l’un de ceux du projet. Les épaisseurs standard sont stroke-hairline (0,13 mm), stroke-thin (0,25), stroke-medium (0,35), stroke-bold (0,50), stroke-heavy (0,70) et stroke-ultra (1,00) ; les types standard sont solid, dashed, dotted, dash-dot et long_dash. Les lignes d’un objet acceptent aussi none : aucune ligne.

"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- suivi de lettres, de chiffres, de _ ou de - ; unique.
line_weights · name · width
Le nom qu’affichent les listes, et la largeur en millimètres, de 0,05 à 2,11 (la plage d’AutoCAD). Le DXF écrit l’épaisseur AutoCAD la plus proche.
line_types · id
custom- suivi de lettres, de chiffres, de _ ou de - ; unique.
line_types · name
Le nom du type de ligne dans le DXF : unique sans tenir compte de la casse, sans espaces autour, 255 octets au plus, sans caractère qu’une table DXF refuse (< > / \ " : ; ? * | , = et les apostrophes), et pas un nom que le DXF ou Occlusia réserve : Continuous, ByLayer, ByBlock, le nom d’un type standard, NONE.
line_types · pattern
Les tirets, en millimètres sur la feuille imprimée, à la manière d’AutoCAD : une longueur positive est un trait, une négative un espace, 0 un point, douze au plus. [3, -1.5] est un trait de 3 mm suivi d’un espace de 1,5 mm.

Objets

objects_settings contient une entrée par nom d’objet, groupes compris. Chaque objet est dessiné avec sa propre entrée : l’interface écrit un changement fait sur un groupe dans l’entrée de chaque objet qu’il contient, et un fichier écrit à la main fait de même. Toutes les clés sont facultatives. Le Facing brick du modèle de démonstration :

"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"
}

Lignes. Les clés cut_ règlent le contour là où la vue coupe l’objet, les clés surf_ ses arêtes vues au-delà du plan.

cut_line_weight · surf_line_weight
stroke-thin et stroke-hairline par défaut.
cut_line_type · surf_line_type
solid par défaut ; none ne dessine aucune ligne.
cut_line_type_scale · surf_line_type_scale
Un facteur sur les longueurs de tirets du type : 1 par défaut.
cut_line_color · surf_line_color
#000000 par défaut.
cut_line_transparency · surf_line_transparency
0 à 100 : 0 par défaut.
…_bylayer
À côté de chaque couleur, épaisseur et type des lignes, des motifs et du symbole : true, la valeur par défaut, laisse le DXF prendre la valeur du calque. Le SVG et le PDF dessinent toujours celle de l’objet.

Remplissages. Les clés cut_pattern_ remplissent les faces coupées, les clés surf_pattern_ les faces vues au-delà du plan.

template · surface_template
Le préréglage du remplissage de coupe et celui du remplissage de surface : none (par défaut), custom — les valeurs ci-dessous, liées à aucun préréglage — ou l’id d’un préréglage.
fill_pattern · surface_hatch
Le remplissage de coupe et le remplissage de surface : none par défaut, hatch_solid ou un motif (voir Préréglages de motif).
cut_pattern_color · surf_pattern_color
La couleur des traits de hachure ou du remplissage uni : #000000.
cut_pattern_bg_color · surf_pattern_bg_color
Une couleur unie derrière la hachure, ou none (par défaut).
cut_pattern_line_weight · surf_pattern_line_weight
L’épaisseur des traits de hachure : stroke-hairline.
cut_pattern_scale · surf_pattern_scale
Facteur de taille : 1.
cut_pattern_angle · surf_pattern_angle
Rotation en degrés, dans le sens antihoraire : 0.
cut_pattern_transparency · surf_pattern_transparency
0 à 100 : 0.

Symbole, calques et rendu.

symbol
none (par défaut), cross ou insulation — rien d’autre : un autre mot fait refuser le fichier.
symbol_line_weight · symbol_line_type · symbol_line_color · symbol_line_transparency
Les lignes du symbole : stroke-hairline, solid, #000000, 0.
cut_layer_id · surf_layer_id · hatch_layer_id · cut_symbol_layer_id
Les calques DXF des lignes de coupe, des lignes de surface, des hachures et du symbole : l’id d’un calque, layer_0 par défaut.
draw_order
Plus la valeur est haute, plus l’objet est dessiné au-dessus : 0 par défaut.
export_block · block_name · block_layer_id
Exporte l’objet et ce qu’il contient comme un seul bloc (false), son nom — vide : celui de l’objet — et le calque de son insertion (layer_0).
exclude_from_shadows
No Shadows : n’en projette aucune, n’en reçoit aucune (false).
wireframe
Dessiné par ses seules lignes (false).
hidden
Dans toutes les vues : true masqué, false affiché. Sans cette clé, l’objet est tel que le modèle le montre.

Vues

sections_settings contient une entrée par nom de vue : son repère, dessiné dans les autres vues, les choix de visibilité faits dans cette vue, ses ombres et sa page PDF.

"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 masque le repère de la vue dans toutes les autres vues.
marker_style
default (un disque avec le symbole et le nom), closed_arrow ou open_arrow.
marker_color · marker_number_color · marker_name_color
Les têtes, le symbole et le nom : #0000FF par défaut.
section_line_type · section_line_color
Le trait de coupe : dash-dot et #000000 par défaut.
marker_endpoints
both (par défaut), start, end ou none.
marker_show_number · marker_show_name
Dessiner le symbole et le nom : true.
marker_size_mode · marker_scale
auto adapte le repère au dessin ; manual garde la taille marker_scale (1).
marker_number_font_family · marker_number_font_size
La police du symbole (Arial) et son facteur de taille (1). Les mêmes clés avec name règlent le nom.
marker_layer_id
Le calque DXF du repère : layer_0.
object_visibility
Les choix propres à cette vue, par nom d’objet : true affiché ici, false masqué ici. Ils l’emportent sur le hidden des objets.
spot_elevations
De même pour les cotes de niveau, par nom.
shadow
enabled (false), sun_mode (manual), azimuth en degrés dans le sens horaire depuis le nord (135), altitude (45), interiors (true), pattern — default ou l’id d’un préréglage — et layer_id.
pdf
format de A4 à A0 (A4), orientation auto, portrait ou landscape (auto), scale_mode fit ou custom au 1:scale_denominator (fit, 50), margins_mm (10), et center, le point du modèle au centre de la feuille une fois le dessin déplacé dessus.

Notes

annotations_settings contient une entrée par nom de note — le nom que le modèle donne à la note (OCCTAG#Name), pas le texte qu’elle écrit.

"Wall build-up": {
  "font_family": "Arial",
  "font_size": 4.2,
  "font_style": "regular",
  "background": "drawing",
  "layer_id": "layer_1761134400"
}
hidden
true masque la note dans toutes les vues.
font_family · font_size · font_style
Arial ; la hauteur d’une lettre capitale, en unités de dessin (12) ; regular, bold, italic ou bold-italic.
color · color_bylayer · transparency
#000000, true, 0.
multiline · max_width
Renvoyer le texte à la ligne à une largeur en unités de dessin : false, 0.
show_leader
Dessiner la ligne de rappel quand le modèle en donne une à la note : true.
background · background_color
none (par défaut), solid — un cadre de background_color, #FFFFFF — ou drawing, le fond propre du dessin.
layer_id
Le calque DXF de la note : layer_0.

Cotes de niveau

spot_elevations_settings contient une entrée par nom de cote de niveau (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 la masque dans toutes les vues ; le choix spot_elevations d’une vue l’emporte.
marker_style · marker_side
triangle (par défaut), triangle_half, triangle_open ou target ; les textes à droite, right (par défaut), ou à gauche, left.
marker_color · marker_line_weight
Le remplissage du repère (#000000) et l’épaisseur unique de ses lignes (stroke-hairline).
size_mode · scale
auto, ou manual à l’échelle scale, de 0,05 à 50 (1).
show_line · line_type · line_weight · line_color · line_length
La ligne de niveau : désactivée (false), dashed, stroke-hairline, #000000, longue de 20 unités de dessin — 0 n’en dessine aucune.
show_value · value_display
Écrire l’altitude (true) : relative, la hauteur propre du modèle (+2.90), ou absolute, cette hauteur plus l’offset_m de spot_elevation_datum, suivie de son label.
show_name
Écrire le libellé : true.
value_font_family · value_font_size · value_font_style
Le texte de l’altitude : Arial, 12, bold.
name_font_family · name_font_size · name_font_style
Le texte du libellé : Arial, 12, regular.
value_color · name_color
#000000.
marker_color_bylayer · line_color_bylayer · value_color_bylayer · name_color_bylayer
Une décision ByLayer par couleur : true.
layer_id
Le calque DXF : layer_0.

Écrire une configuration avec une IA

Une IA peut écrire une configuration — une charte graphique de bureau, les styles d’un autre logiciel repris, une variante d’un fichier existant — dès qu’elle connaît les règles ci-dessus et les noms de votre modèle.

  1. 01

    Donnez-lui le format

    Cette page et le JSON Schema ci-dessus : chaque clé, son type, sa valeur par défaut et ses règles.

  2. 02

    Donnez-lui vos noms

    Les noms de vos objets, vues, notes et cotes de niveau exactement tels que l’explorateur du modèle les affiche — ou une configuration exportée du modèle.

  3. 03

    Demandez ce qui diffère

    Les clés qui diffèrent des valeurs par défaut, les calques et préréglages qu’elles utilisent, et aucune entrée pour un nom que le modèle n’a pas.

  4. 04

    Importez-la et lisez la réponse

    Import › Configuration (.occc). Un fichier qui enfreint une règle ne change rien, et la boîte de dialogue liste chaque problème avec son code : rendez cette liste à l’IA. ⌘Z (Ctrl+Z) annule un import.

Erreurs

Un fichier refusé ouvre Cannot import this configuration. — Cannot open this project. pour un projet, Your default configuration was not loaded. pour la configuration par défaut. Ses détails listent chaque problème : le code, l’entrée, et pourquoi. Un code ne change jamais de sens.

OC001
Le fichier n’est pas une configuration : son contenu n’est pas un objet JSON, ou n’est pas du JSON lisible.
OC100
project_layers n’est pas une liste.
OC101
Un calque n’est pas un objet.
OC102
Un calque n’a pas d’id, ou en a un vide.
OC103
Deux calques partagent un id.
OC104
Un calque n’a pas de name, ou en a un vide.
OC105
Deux calques ont le même nom, sans tenir compte de la casse : dans un DXF, ils ne feraient qu’un.
OC106
Le nom d’un calque a des espaces autour.
OC107
Une entrée revendique le calque par défaut 0, par l’id layer_0 ou par le nom 0. Retirez-la : le calque par défaut n’est jamais écrit.
OC200
Le symbol d’un objet n’est pas none, cross ou insulation.
OC300
hatch_presets n’est pas une liste.
OC301
Un préréglage n’est pas un objet.
OC302
Un préréglage n’a pas d’id, ou en a un vide.
OC303
Deux préréglages partagent un id.
OC304
Un préréglage prend l’id none ou custom, qui appartiennent à Occlusia.
OC400
line_weights n’est pas une liste.
OC401
Une épaisseur de ligne n’est pas un objet.
OC402
L’id d’une épaisseur de ligne manque, ou n’est pas stroke-custom- suivi de lettres, de chiffres, de _ ou de -.
OC403
Deux épaisseurs de ligne partagent un id.
OC500
line_types n’est pas une liste.
OC501
Un type de ligne n’est pas un objet.
OC502
L’id d’un type de ligne manque, ou n’est pas custom- suivi de lettres, de chiffres, de _ ou de -.
OC503
Deux types de ligne partagent un id.
OC504
Un type de ligne n’a pas de name, ou en a un vide.
OC505
Deux types de ligne ont le même nom, sans tenir compte de la casse.
OC506
Le nom d’un type de ligne a des espaces autour.
OC507
Un type de ligne prend un nom que le DXF ou Occlusia réserve : Continuous, ByLayer, ByBlock, le nom d’un type standard, NONE.
OC508
Le nom d’un type de ligne contient un caractère qu’une table DXF refuse, ou dépasse 255 octets.