跳到文档内容

参考

配置文件,逐个键说明

配置(.occc)是一个 JSON 文件:包含项目的图层、预设和线条样式,以及它为模型的对象、视图、注释和标高所做的每项设置。本页介绍其结构、每个键及其默认值、文件必须遵守的规则以及导致文件被拒绝的错误——用于阅读配置,或手写、用脚本或借助 AI 编写配置。

配置包含什么

配置包含项目的设置,但不含模型:一个 UTF-8 编码的 JSON 对象。Export › Configuration (.occc) 写出它,Import › Configuration (.occc) 读回它;项目(.occp)在模型旁边携带同一个对象,您的默认配置也是一个配置。

  • 设置按名称保存:对象的设置位于其名称之下(与模型浏览器显示的名称一致),并作用于所有视图中该名称的每个对象。视图、注释和标高同样按名称保存。
  • 配置只写明与默认值不同之处:省略的键取下文为其列出的默认值。
  • 图层、图案预设以及项目自己的线宽和线型都在列表中定义一次,各项设置通过它们的 id 引用它们。

结构

文件是一个对象。Occlusia 按以下顺序写出各键,每个列表和每组设置都包含在内,即使为空:

{
  "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
写入文件的程序:Occlusia、其版本和构建号。仅供参考:从不读取。
snapshot_plugin_version
采集这些设置所针对模型的程序。仅供参考。
created_at · saved_at
文档的创建时间和本文件的写入时间,格式为 YYYY-MM-DD HH:MM:SS,本地时间。仅供参考。
project_layers
项目的 DXF 图层:一个列表。见“图层”。
hatch_presets
图案预设:一个列表。见“图案预设”。
line_weights · line_types
项目自己的线宽和线型,位于标准样式之外:两个列表。见“线宽和线型”。
objects_settings
对象的设置,按对象名称。见“对象”。
sections_settings
视图的设置,按视图名称。见“视图”。
annotations_settings
注释的设置,按注释名称。见“注释”。
spot_elevations_settings
标高的设置,按名称。见“标高”。
spot_elevation_datum
模型原点在项目参照系中的高程:offset_m(米)和 label(写在绝对值之后,如 NGF、TAW)。默认为 0 和空。

文件必须遵守的规则

配置是由 Occlusia 写出的文件。在别处写出或编辑的文件——手写、脚本或 AI——会在打开时被检查,只要违反一条规则就会被整体拒绝:不会只应用一半,当前设置保持不变,对话框会列出每个问题及其代码(见“错误”)。

  • ID 是严格的。 四个列表中的每个条目都需要一个 id,在其列表中唯一。图层和线型的名称也必须唯一(不区分大小写):DXF 通过名称识别图层和线型。
  • 剖切符号是一个封闭的词。 对象的 symbol 为 none、cross 或 insulation;任何其他词都会导致文件被拒绝。
  • 其他所有值都是自由的。 省略的键取其默认值,null 视为省略,类型错误的值按默认值读取,Occlusia 不认识的键会原样保留并写回。
  • 引用会回退。 指向文件中未定义的图层的设置会绘制在图层 0 上;指向缺失的预设或线条样式的设置取该设置的默认值。
  • 名称必须完全一致。 只有当设置的键正是对象的名称(与模型浏览器显示的一致,包括大小写和空格)时,设置才会作用于该对象。模型中不存在的名称的设置会被保留,但不会被使用。

图层

project_layers 列出项目自己的图层。默认图层 0 属于 Occlusia:它始终存在,从不写出,任何条目都不得占用它,无论是通过其 id layer_0 还是名称 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
必填。文本,在列表中唯一:即每个 …_layer_id 所指向的值。Occlusia 写作 layer_ 加一个数字。
name
必填。图层在 DXF 中的名称:不能为空,两侧不能有空格,不区分大小写时唯一,绝不能为 0。
description
自由文本。默认为空。
color
#RRGGBB。默认为 #FFFFFF。
line_weight
default,或以百分之一毫米为单位的线宽:25 表示 0.25 mm。默认为 default。
line_type
默认为 solid,也可以是其他线型(见“线宽和线型”)。
transparency
0 到 100 %。默认为 0。
active · frozen · locked · plot
打开、冻结、锁定、打印:默认分别为 true、false、false 和 true。

图案预设

hatch_presets 列出项目的预设;none 和 custom 属于 Occlusia,从不写出。使用预设的对象会写明它——剖切填充用 template,表面填充用 surface_template——并保留一份预设值的副本。

{
  "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
必填。文本,唯一,绝不能为 none 或 custom。Occlusia 将名称写为小写,空格写作 _:concrete_block。
label
列表中显示的名称。
fill_pattern
none、hatch_solid,或一种图案:即它在 Fill Type 列表中的名称,小写并加前缀 hatch_,连字符写作 _——ANSI31 为 hatch_ansi31,AR-CONC 为 hatch_ar_conc。
color · color_bylayer
填充图案线条或实心填充的颜色(#000000),以及 DXF 是否改用图层的颜色(true)。
bg
填充图案后方的纯色,或 none(默认)。
line_weight
填充图案线条的线宽:默认为 stroke-hairline。
scale · angle · transparency
大小系数(1)、逆时针旋转角度(0)、透明度 0 到 100(0)。

线宽和线型

凡是需要线宽或线型的设置,都可以指定一个标准样式或项目自己的样式。标准线宽为 stroke-hairline(0.13 mm)、stroke-thin(0.25)、stroke-medium(0.35)、stroke-bold(0.50)、stroke-heavy(0.70)和 stroke-ultra(1.00);标准线型为 solid、dashed、dotted、dash-dot 和 long_dash。对象的线条还可以取 none:完全不画线。

"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- 后接字母、数字、_ 或 -;唯一。
line_weights · name · width
列表中显示的名称,以及以毫米为单位的宽度,范围 0.05 到 2.11(AutoCAD 的范围)。DXF 写入最接近的 AutoCAD 线宽。
line_types · id
custom- 后接字母、数字、_ 或 -;唯一。
line_types · name
线型在 DXF 中的名称:不区分大小写时唯一,两侧不能有空格,最多 255 字节,不能含有 DXF 表拒绝的字符(< > / \ " : ; ? * | , = 以及引号),也不能是 DXF 或 Occlusia 保留的名称:Continuous、ByLayer、ByBlock、标准线型的名称、NONE。
line_types · pattern
虚线的组成,以打印图纸上的毫米为单位,写法与 AutoCAD 相同:正值为线段,负值为间隔,0 为点,最多十二个。[3, -1.5] 表示 3 mm 的线段和 1.5 mm 的间隔。

对象

objects_settings 为每个对象名称(包括组的名称)保存一个条目。每个对象都用自己的条目绘制:界面会把对组所做的更改写入组内每个对象的条目,手写的文件也应如此。所有键都是可选的。演示模型的 Facing brick:

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

线条。 cut_ 开头的键设置视图剖切对象处的轮廓,surf_ 开头的键设置剖切面后方可见的边线。

cut_line_weight · surf_line_weight
默认分别为 stroke-thin 和 stroke-hairline。
cut_line_type · surf_line_type
默认为 solid;none 不画线。
cut_line_type_scale · surf_line_type_scale
线型虚线长度的缩放系数:默认为 1。
cut_line_color · surf_line_color
默认为 #000000。
cut_line_transparency · surf_line_transparency
0 到 100:默认为 0。
…_bylayer
位于线条、图案和符号的每个颜色、线宽和线型旁边:true(默认值)让 DXF 采用图层的值。SVG 和 PDF 始终使用对象自己的值。

填充。 cut_pattern_ 开头的键填充剖切面,surf_pattern_ 开头的键填充剖切面后方可见的表面。

template · surface_template
剖切填充和表面填充的预设:none(默认)、custom(下列值,不绑定任何预设),或某个预设的 id。
fill_pattern · surface_hatch
剖切填充和表面填充:默认为 none,也可以是 hatch_solid 或某种图案(见“图案预设”)。
cut_pattern_color · surf_pattern_color
填充图案线条或实心填充的颜色:#000000。
cut_pattern_bg_color · surf_pattern_bg_color
填充图案后方的纯色,或 none(默认)。
cut_pattern_line_weight · surf_pattern_line_weight
填充图案线条的线宽:stroke-hairline。
cut_pattern_scale · surf_pattern_scale
大小系数:1。
cut_pattern_angle · surf_pattern_angle
旋转角度,逆时针:0。
cut_pattern_transparency · surf_pattern_transparency
0 到 100:0。

符号、图层和渲染。

symbol
none(默认)、cross 或 insulation——仅此而已:其他词会导致文件被拒绝。
symbol_line_weight · symbol_line_type · symbol_line_color · symbol_line_transparency
符号的线条:stroke-hairline、solid、#000000、0。
cut_layer_id · surf_layer_id · hatch_layer_id · cut_symbol_layer_id
剖切线、表面线、填充图案和符号所在的 DXF 图层:某个图层的 id,默认为 layer_0。
draw_order
值越大,绘制得越靠上:默认为 0。
export_block · block_name · block_layer_id
将对象及其包含的内容导出为一个块(false)、块的名称(为空时用对象名称),以及其插入所在的图层(layer_0)。
exclude_from_shadows
No Shadows:既不投射也不接收阴影(false)。
wireframe
只用线条绘制(false)。
hidden
在所有视图中:true 隐藏,false 显示。省略时,对象按模型中的状态显示。

视图

sections_settings 为每个视图名称保存一个条目:其标记(绘制在其他视图中)、在此视图中所做的可见性选择、其阴影和 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 在所有其他视图中隐藏该视图的标记。
marker_style
default(带符号和名称的圆盘)、closed_arrow 或 open_arrow。
marker_color · marker_number_color · marker_name_color
标记头、符号和名称:默认为 #0000FF。
section_line_type · section_line_color
剖切线:默认为 dash-dot 和 #000000。
marker_endpoints
both(默认)、start、end 或 none。
marker_show_number · marker_show_name
绘制符号和名称:true。
marker_size_mode · marker_scale
auto 让标记适应图纸;manual 保持 marker_scale 指定的大小(1)。
marker_number_font_family · marker_number_font_size
符号的字体(Arial)和大小系数(1)。把键中的 number 换成 name 即可设置名称。
marker_layer_id
标记的 DXF 图层:layer_0。
object_visibility
此视图自己的选择,按对象名称:true 表示在此显示,false 表示在此隐藏。它们优先于对象的 hidden。
spot_elevations
标高同理,按名称。
shadow
enabled(false)、sun_mode(manual)、azimuth(从北顺时针的角度,135)、altitude(45)、interiors(true)、pattern(default 或某个预设的 id)以及 layer_id。
pdf
format 从 A4 到 A0(A4),orientation 为 auto、portrait 或 landscape(auto),scale_mode 为 fit 或 custom(比例 1:scale_denominator;默认 fit、50),margins_mm(10),以及 center:图纸在纸上移动后,位于纸张中心的模型点。

注释

annotations_settings 为每个注释名称保存一个条目——即模型赋予注释的名称(OCCTAG#Name),而不是它写出的文字。

"Wall build-up": {
  "font_family": "Arial",
  "font_size": 4.2,
  "font_style": "regular",
  "background": "drawing",
  "layer_id": "layer_1761134400"
}
hidden
true 在所有视图中隐藏该注释。
font_family · font_size · font_style
Arial;大写字母的高度,以图纸单位计(12);regular、bold、italic 或 bold-italic。
color · color_bylayer · transparency
#000000、true、0。
multiline · max_width
按图纸单位的宽度自动换行:false、0。
show_leader
当模型为注释提供引线时绘制引线:true。
background · background_color
none(默认)、solid(以 background_color 填充的框,#FFFFFF)或 drawing(图纸自己的背景)。
layer_id
注释的 DXF 图层:layer_0。

标高

spot_elevations_settings 为每个标高名称(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 在所有视图中隐藏它;视图的 spot_elevations 选择优先。
marker_style · marker_side
triangle(默认)、triangle_half、triangle_open 或 target;文字位于右侧 right(默认)或左侧 left。
marker_color · marker_line_weight
标记的填充(#000000)及其所有线条共用的线宽(stroke-hairline)。
size_mode · scale
auto,或 manual 按 scale 缩放,范围 0.05 到 50(1)。
show_line · line_type · line_weight · line_color · line_length
标高线:关闭(false)、dashed、stroke-hairline、#000000、长 20 个图纸单位——0 表示不画。
show_value · value_display
写出高程(true):relative 为模型自身的高度(+2.90),absolute 为该高度加上 spot_elevation_datum 的 offset_m,后接其 label。
show_name
写出标签:true。
value_font_family · value_font_size · value_font_style
高程文字:Arial、12、bold。
name_font_family · name_font_size · name_font_style
标签文字:Arial、12、regular。
value_color · name_color
#000000。
marker_color_bylayer · line_color_bylayer · value_color_bylayer · name_color_bylayer
每种颜色各自的 ByLayer 选择:true。
layer_id
DXF 图层:layer_0。

借助 AI 编写配置

只要 AI 了解上述规则和您模型中的名称,它就能编写配置——事务所的制图标准、从其他软件迁移过来的样式,或现有文件的变体。

  1. 01

    提供格式

    本页和上方的 JSON Schema:每个键、其类型、默认值和规则。

  2. 02

    提供您的名称

    您的对象、视图、注释和标高的名称,与模型浏览器显示的完全一致——或者从该模型导出的配置。

  3. 03

    只要求与默认值不同的部分

    与默认值不同的键、它们使用的图层和预设,并且不为模型中不存在的名称写条目。

  4. 04

    导入并查看结果

    Import › Configuration (.occc)。违反规则的文件不会改变任何内容,对话框会列出每个问题及其代码:把这份列表交还给 AI。⌘Z(Ctrl+Z)可以撤销一次导入。

错误

被拒绝的文件会弹出 Cannot import this configuration.——项目则为 Cannot open this project.,默认配置则为 Your default configuration was not loaded.。其详细信息列出每个问题:代码、条目和原因。代码的含义永不改变。

OC001
该文件不是配置:其内容不是 JSON 对象,或不是可读取的 JSON。
OC100
project_layers 不是列表。
OC101
某个图层不是对象。
OC102
某个图层没有 id,或其为空。
OC103
两个图层使用了同一个 id。
OC104
某个图层没有 name,或其为空。
OC105
两个图层名称相同(不区分大小写):在 DXF 中它们会合并为一个图层。
OC106
某个图层的名称两侧有空格。
OC107
某个条目占用了默认图层 0,通过 id layer_0 或名称 0。请删除它:默认图层从不写出。
OC200
某个对象的 symbol 不是 none、cross 或 insulation。
OC300
hatch_presets 不是列表。
OC301
某个预设不是对象。
OC302
某个预设没有 id,或其为空。
OC303
两个预设使用了同一个 id。
OC304
某个预设使用了属于 Occlusia 的 id none 或 custom。
OC400
line_weights 不是列表。
OC401
某个线宽不是对象。
OC402
某个线宽的 id 缺失,或不是 stroke-custom- 后接字母、数字、_ 或 -。
OC403
两个线宽使用了同一个 id。
OC500
line_types 不是列表。
OC501
某个线型不是对象。
OC502
某个线型的 id 缺失,或不是 custom- 后接字母、数字、_ 或 -。
OC503
两个线型使用了同一个 id。
OC504
某个线型没有 name,或其为空。
OC505
两个线型名称相同(不区分大小写)。
OC506
某个线型的名称两侧有空格。
OC507
某个线型使用了 DXF 或 Occlusia 保留的名称:Continuous、ByLayer、ByBlock、标准线型的名称、NONE。
OC508
某个线型的名称含有 DXF 表拒绝的字符,或超过 255 字节。