i-savelev/IDSHighlighting
GitHub: i-savelev/IDSHighlighting
一款 Autodesk Revit 插件,用于读取 IDS 检查报告并在模型中快速高亮定位不合规的 BIM 构件。
Stars: 1 | Forks: 0
# IDS.Highlighting
一款用于 Autodesk Revit 的插件,旨在查看 IDS 检查报告并快速高亮显示模型中的问题元素。
## 🛠 环境要求
- Autodesk Revit(2022 及以上版本)
- .NET Framework 4.8
- `RevitLogger` 库
- 命令注册系统 [`PluginsManager`](https://github.com/i-savelev/PluginsManager)
## 💻 安装说明
将 `output_dll` 文件夹中的所有文件放入 `PluginsManager` 的程序集文件夹中。
## 📋 报告准备
本插件使用 `.ods` 格式的检查报告——这是一种与 Excel 兼容的格式(可以在 Excel 中打开)。
您可以使用我的工具 [ifc_checker](https://github.com/i-savelev/ifc_checker) 来生成报告。为此,您需要勾选“以 ODS 格式生成报告”(Генерировать отчеты в формате ODS)选项。
## 🚀 使用方法
1. 从 `ISTools` 选项卡中启动 **“查看 IDS 报告”(Просмотр IDS отчёта)** 命令。
2. 在对话框中选择扩展名为 `.ods` 的报告文件。
3. 在弹出的插件窗口中,查看已分组的检查结果表格。
4. 点击您感兴趣的行(要求)。
5. 点击 **“✅ 高亮元素”(Выделить элементы)** 按钮。
6. 插件将根据元素的 `Tag`(ElementId)查找它们,并在当前的 Revit 视图中高亮显示。状态栏将显示结果(找到的数量 / 未找到的数量)。
## ⚙️ 技术细节
- **元素查找**:通过报告中的数字 `Tag` 进行查找。使用反射机制来安全地创建 `ElementId`(支持 `int` 和 `long` 构造函数)。
- **解析**:忽略包含错误 `"does not match the required data type"` 的行。如果属性名称无法被正则表达式识别,则使用完整的要本文本。
- **直接读取 ODS**:通过 `System.IO.Compression` 直接解析文件(读取 `content.xml`),无需安装 Excel,并且即使文件处于打开状态也不会被锁定。
- **延迟查找**:**仅**在点击高亮按钮时才会在模型中查找元素。这避免了在加载大型报告时导致 Revit 卡顿。
- **数据分组**:显示汇总表格:检查(工作表) → 要求名称 → 元素数量。
- **安全的 UI 交互**:窗体在单独的 STA 线程中运行,并始终保持在 Revit 窗口的最上层(`TopMost`)。元素的高亮显示通过 `ExternalEvent` 执行。
- **日志记录**:通过 `RevitLogger` 对所有阶段进行详细的日志记录。
一款用于 Autodesk Revit 的插件,旨在查看 IDS 检查报告并快速高亮显示模型中的问题元素。
## 🛠 环境要求
- Autodesk Revit(2022 及以上版本)
- .NET Framework 4.8
- `RevitLogger` 库
- 命令注册系统 [`PluginsManager`](https://github.com/i-savelev/PluginsManager)
## 💻 安装说明
将 `output_dll` 文件夹中的所有文件放入 `PluginsManager` 的程序集文件夹中。
## 📋 报告准备
本插件使用 `.ods` 格式的检查报告——这是一种与 Excel 兼容的格式(可以在 Excel 中打开)。
您可以使用我的工具 [ifc_checker](https://github.com/i-savelev/ifc_checker) 来生成报告。为此,您需要勾选“以 ODS 格式生成报告”(Генерировать отчеты в формате ODS)选项。
## 🚀 使用方法
1. 从 `ISTools` 选项卡中启动 **“查看 IDS 报告”(Просмотр IDS отчёта)** 命令。
2. 在对话框中选择扩展名为 `.ods` 的报告文件。
3. 在弹出的插件窗口中,查看已分组的检查结果表格。
4. 点击您感兴趣的行(要求)。
5. 点击 **“✅ 高亮元素”(Выделить элементы)** 按钮。
6. 插件将根据元素的 `Tag`(ElementId)查找它们,并在当前的 Revit 视图中高亮显示。状态栏将显示结果(找到的数量 / 未找到的数量)。
## ⚙️ 技术细节
- **元素查找**:通过报告中的数字 `Tag` 进行查找。使用反射机制来安全地创建 `ElementId`(支持 `int` 和 `long` 构造函数)。
- **解析**:忽略包含错误 `"does not match the required data type"` 的行。如果属性名称无法被正则表达式识别,则使用完整的要本文本。
- **直接读取 ODS**:通过 `System.IO.Compression` 直接解析文件(读取 `content.xml`),无需安装 Excel,并且即使文件处于打开状态也不会被锁定。
- **延迟查找**:**仅**在点击高亮按钮时才会在模型中查找元素。这避免了在加载大型报告时导致 Revit 卡顿。
- **数据分组**:显示汇总表格:检查(工作表) → 要求名称 → 元素数量。
- **安全的 UI 交互**:窗体在单独的 STA 线程中运行,并始终保持在 Revit 窗口的最上层(`TopMost`)。元素的高亮显示通过 `ExternalEvent` 执行。
- **日志记录**:通过 `RevitLogger` 对所有阶段进行详细的日志记录。标签:Autodesk Revit, BIM, IDS检查, 插件, 模型审查