> **本文回答**：实体的"属性"分两类：① 对象属性 `color / layer / lineType / lineTypeScale / lineWeight / visible / transpMgr`；② 默认属性 `setDefaults()` 套用 `Engine.CECOLOR / CELTYPE / CELTSCALE` + `Engine.currentDoc.CLAYER`（`Engine.CLAYER` 不存在），并把透明度重置为 ByLayer，不碰线宽；不调用时为构造默认 `color=256 / lineType='ByLayer' / lineTypeScale=1 / lineWeight=-1 / 图层 '0'`；扩展数据走 `entity.setExtData(appName, dataObj)` 与 `entity.extData / hasExtData / clearExtData`。

## 一、按子主题挑

| 想做的 | 子主题 |
|---|---|
| 颜色（ACI / RGB） / 线型 / 线宽 | [color-linetype](color-linetype.md) |
| 透明度 / 可见性 | [transparency-visibility](transparency-visibility.md) |
| `setDefaults()` 套用系统默认 | [set-defaults](set-defaults.md) |
| 扩展数据 XData（DWG 兼容） | [xdata](xdata.md) |

## 二、最常用属性速查

```js
ent.color = 1;                       // ACI
ent.color = 0x1000000 + 0xFF8000;    // RGB
ent.layer = '墙体';                  // 图层不存在时静默落到 '0'，先 Engine.createLayer
ent.lineType = 'HIDDEN';
ent.lineTypeScale = 1.5;
ent.lineWeight = 50;                 // = 0.50mm；-1 = ByLayer
ent.visible = false;                 // DXF 60，对实体级别隐藏
ent.transpMgr.setTp100(50);          // 透明度 0~90（>90 钳为 90，完全隐藏用 visible=false）
ent.transpMgr.setValue(-1);          // ByLayer 透明度
ent.setExtData('MyApp', { ... });    // 扩展数据
```

MCP 参考：`vjcad/example/property/01color.js` ~ `08visibility.js`、`vjcad/doc/property/index.md`。

## 三、修改属性后的刷新策略

| 改了... | 是否需要 `Engine.regen()` |
|---|---|
| `color` / `lineType` / `lineWeight` 等绘制属性 | **不会自动**：setter 只 `setModified()` 标脏，改完须 `Engine.regen()` |
| `visible` | 必须 `Engine.regen()` |
| `move/rotate/scale/mirror` 几何变换 | 必须 `Engine.regen()` |
| `setExtData` / 业务字段 | 不影响显示，可不刷新 |

## 参考（官方文档 MCP）

- 文档：`vjcad/doc/property/index.md`
- 示例：`vjcad/example/property/01color.js` ~ `08visibility.js`
