# UserStringProperty
Rhino 插件,用于根据用户自定义 XML 配置,给 Block 实例附加构件属性(UserString)。
## 功能
- 根据 XML 配置文件动态生成属性编辑界面
- 支持 `string` 类型字段(TextBox)和 `list` 类型字段(ComboBox)
- 自动保存到 Rhino Block 的 UserString
- 支持多个 XML 模板同时加载、合并
- 模板自动持久化,Rhino 重启后自动恢复
- 导入时提供四种合并模式(追加、替代、合并更新、智能合并)
## 安装
### 编译
```bash
cd UserStringProperty
dotnet build
```
输出:`UserStringProperty/bin/UserStringProperty.dll`
### 加载到 Rhino
1. 将 `bin/UserStringProperty.dll` 重命名为 `UserStringProperty.rhp`
2. Rhino → `Options` → `Plug-ins` → `Install` → 选择 `.rhp` 文件
### 使用
1. 在 Rhino 中输入命令:`UserstringProperty`
2. 选择要编辑的 Block 实例
3. 默认模板首次启动自动加载;点 **加载XML** 导入自定义模板
4. 在下拉框中选择属性集,编辑各字段值
5. 点击 **保存**
## 模板导入模式
加载 XML 时,如果已有模板,会弹出对话框让选择导入模式:
| 模式 | 说明 |
|------|------|
| 添加为新属性集 | 追加到现有列表末尾 |
| 完全替代现有模板 | 清空所有现有属性集 |
| 合并更新 | 同名属性集覆盖,其他保留 |
| 智能合并 | 同名覆盖,同时追加新属性集 |
## XML 配置格式
插件根据 XML 动态生成 UI。示例参见 `Component_Property_base.xml` 和 `Component_Property_carbon.xml`。
```xml
```
### 字段类型
| type | 控件 | 说明 |
|------|------|------|
| `string` | TextBox | 自由文本输入 |
| `list` | ComboBox | 下拉选项(通过 `