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:SSen 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, etlabel, é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
symbold’un objet vautnone,crossouinsulation; tout autre mot fait refuser le fichier. - Toutes les autres valeurs sont libres. Une clé omise prend sa valeur par défaut,
nullcompte 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 écritlayer_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.#FFFFFFpar défaut.- line_weight
default, ou une épaisseur en centièmes de millimètre :25vaut 0,25 mm.defaultpar défaut.- line_type
solidpar 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,falseettruepar 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
nonenicustom. 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èshatch_, un trait d’union écrit_— ANSI31 devienthatch_ansi31, AR-CONC devienthatch_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-hairlinepar 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-thinetstroke-hairlinepar défaut.- cut_line_type · surf_line_type
solidpar défaut ;nonene 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
#000000par 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’idd’un préréglage. - fill_pattern · surface_hatch
- Le remplissage de coupe et le remplissage de surface :
nonepar défaut,hatch_solidou 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),crossouinsulation— 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’
idd’un calque,layer_0par 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 :
truemasqué,falseaffiché. 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
truemasque le repère de la vue dans toutes les autres vues.- marker_style
default(un disque avec le symbole et le nom),closed_arrowouopen_arrow.- marker_color · marker_number_color · marker_name_color
- Les têtes, le symbole et le nom :
#0000FFpar défaut. - section_line_type · section_line_color
- Le trait de coupe :
dash-dotet#000000par défaut. - marker_endpoints
both(par défaut),start,endounone.- marker_show_number · marker_show_name
- Dessiner le symbole et le nom :
true. - marker_size_mode · marker_scale
autoadapte le repère au dessin ;manualgarde la taillemarker_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 avecnamerè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 :
trueaffiché ici,falsemasqué ici. Ils l’emportent sur lehiddendes objets. - spot_elevations
- De même pour les cotes de niveau, par nom.
- shadow
enabled(false),sun_mode(manual),azimuthen degrés dans le sens horaire depuis le nord (135),altitude(45),interiors(true),pattern—defaultou l’idd’un préréglage — etlayer_id.formatdeA4àA0(A4),orientationauto,portraitoulandscape(auto),scale_modefitoucustomau 1:scale_denominator(fit, 50),margins_mm(10), etcenter, 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
truemasque 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,italicoubold-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 debackground_color,#FFFFFF— oudrawing, 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
truela masque dans toutes les vues ; le choixspot_elevationsd’une vue l’emporte.- marker_style · marker_side
triangle(par défaut),triangle_half,triangle_openoutarget; 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, oumanualà l’échellescale, 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), ouabsolute, cette hauteur plus l’offset_mdespot_elevation_datum, suivie de sonlabel. - 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.
- 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.
- 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.
- 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.
- 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_layersn’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’idlayer_0ou par le nom0. Retirez-la : le calque par défaut n’est jamais écrit. - OC200
- Le
symbold’un objet n’est pasnone,crossouinsulation. - OC300
hatch_presetsn’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
noneoucustom, qui appartiennent à Occlusia. - OC400
line_weightsn’est pas une liste.- OC401
- Une épaisseur de ligne n’est pas un objet.
- OC402
- L’
idd’une épaisseur de ligne manque, ou n’est passtroke-custom-suivi de lettres, de chiffres, de_ou de-. - OC403
- Deux épaisseurs de ligne partagent un
id. - OC500
line_typesn’est pas une liste.- OC501
- Un type de ligne n’est pas un objet.
- OC502
- L’
idd’un type de ligne manque, ou n’est pascustom-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.