mcpField
R
revit-api

revit-api

github.com/hopesy開発279 回インストール3 日前に更新
リポジトリ

revit-api について

revit-apiは、Revit 2026開発者向けのAPIリファレンススキルで、型、メンバー、名前空間を検索するスクリプトを備えています。曖昧な質問は先に具体化し、バージョン限定の文書でAPI情報を確認することで、記憶に頼った推測を避けます。

主な機能

  1. 01Revit 2026のAPI文書を収録
  2. 02型・メンバー・名前空間を検索
  3. 03シグネチャ、説明、継承情報を抽出
  4. 0411の主要な開発パターン例を収録
  5. 05曖昧な質問とAPI識別子の検証を要求

活用シーン

  1. 01Revitのクラス、メソッド、プロパティの使い方を調査
  2. 02名前空間とその型を一覧
  3. 03メンバーが属するクラスを特定
  4. 04主要パターンを一般的な開発課題に適用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hopesy/skills --skill revit-api

インストール後、Claude Code で/revit-apiを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

data/pages/
_orphan.json
(Default Namespace).json
Autodesk.Revit.ApplicationServices.json
Autodesk.Revit.Attributes.json
Autodesk.Revit.Creation.json
Autodesk.Revit.DB.DirectContext3D.json
Autodesk.Revit.DB.Events.json
Autodesk.Revit.DB.ExtensibleStorage.json
Autodesk.Revit.DB.ExternalService.json
Autodesk.Revit.DB.Fabrication.json
Autodesk.Revit.DB.IFC.json
Autodesk.Revit.DB.Infrastructure.json
Autodesk.Revit.DB.Lighting.json
Autodesk.Revit.DB.Macros.json
Autodesk.Revit.DB.Plumbing.json
Autodesk.Revit.DB.PointClouds.json
Autodesk.Revit.DB.Steel.json
Autodesk.Revit.DB.Visual.json
Autodesk.Revit.Exceptions.json
Autodesk.Revit.UI.Events.json
Autodesk.Revit.UI.Macros.json
Autodesk.Revit.UI.Mechanical.json
Autodesk.Revit.UI.Plumbing.json
Autodesk.Revit.UI.Selection.json
references/
core-patterns.md
namespace-overview.md
scripts/
extract_page.py
search_api.py

詳細

プロジェクトの README より

Revit 2026 API 参考

基于 RevitAPI.dll v26.0.4.0 的完整 API 文档,覆盖 30 个命名空间、2724 个类型。

查询流程

第 0 步:需求预研(模糊问题必须执行)

当用户提出的问题不包含明确的类名、方法名或命名空间时(如"实现 DMU"、"链接更新阶段"、"怎么监听模型变化"、"做一个参数化族"),必须先完成预研,再进入后续查询。

判断标准:用户问题中是否包含可直接搜索的 Revit API 标识符(如 IUpdater、DocumentChanged、FilteredElementCollector)。如果没有,执行以下步骤:

  1. 解析业务意图:将用户的模糊需求拆解为具体的技术概念。

    • 示例:"实现 DMU" → Dynamic Model Update 机制 → 需要 IUpdater 接口、UpdaterRegistry 类
    • 示例:"链接更新阶段" → Revit 链接文档的加载/更新事件 → 需要 LinkedFileStatus、RevitLinkType、TransmissionData
  2. 网络搜索验证:使用 WebSearch 搜索 Revit API + <技术概念> 确认涉及的核心类和命名空间。

    搜索示例:"Revit API Dynamic Model Update IUpdater"
    搜索示例:"Revit API linked file update phase event"
    
  3. 提取关键词列表:从搜索结果中提取 2-5 个具体的类名/接口名/方法名,作为后续查询的输入。

  4. 进入第 1 步:带着明确的 API 标识符继续。

重要:禁止跳过预研直接凭经验回答模糊问题。即使你认为自己知道答案,也必须通过预研确认后再用本知识库验证。

第 1 步:判断问题类型
问题类型示例执行路径
查询特定 API"XX 类怎么用"、"XX 方法的参数"路径 A
浏览命名空间"XX 命名空间有什么"、"XX 模块的类"路径 B
查找成员归属"哪个类有 XX 方法"、"XX 属性在哪里"路径 C
通用开发问题"怎么创建墙"、"事务怎么用"路径 D
第 2 步:执行对应路径
路径 A:搜索特定 API(最常用)
  1. 先搜索定位:
python scripts/search_api.py search "关键词"
  1. 查看类的成员概览:
python scripts/search_api.py class "Autodesk.Revit.DB.ClassName"
  1. 需要完整文档时(签名、Remarks、继承链):
python scripts/extract_page.py --type "Autodesk.Revit.DB.ClassName"
  1. 查看成员级详情(属性/方法签名):
python scripts/extract_page.py --id "P:Autodesk.Revit.DB.Wall.Flipped"
python scripts/extract_page.py --id "M:Autodesk.Revit.DB.Wall.Flip"
python scripts/extract_page.py --id "M:Autodesk.Revit.DB.FilteredElementCollector.#ctor(Autodesk.Revit.DB.Document)"
python scripts/extract_page.py --id "Overload:Autodesk.Revit.DB.FilteredElementCollector.#ctor"
  1. 当 member 命令返回空结果时,优先检查是否把“类型名”当成了“成员名”:
python scripts/search_api.py member "FilteredElementCollector"  # 会提示改用 class/search
python scripts/search_api.py class "Autodesk.Revit.DB.FilteredElementCollector"
路径 B:浏览命名空间
  1. 列出所有命名空间:
python scripts/search_api.py namespaces
  1. 查看特定命名空间的类型列表:
python scripts/search_api.py namespace "Autodesk.Revit.DB"
  1. 或直接读取 references/namespace-overview.md 获取完整导航。
路径 C:查找成员归属
  1. 跨类搜索成员名称:
python scripts/search_api.py member "GetParameters"
  1. 从结果中定位目标类后,按路径 A 的第 2-4 步获取详情。
路径 D:开发模式速查
  1. 直接读取 references/core-patterns.md,包含 11 个核心模式的 C# 代码示例。
  2. 若需进一步查看模式中涉及的 API 细节,按路径 A 继续查询。
第 3 步:组织回答
  1. 优先展示与用户问题直接相关的 API 签名和用法。
  2. 附带简要的代码示例(参考 core-patterns.md 中的模式)。
  3. 如有相关联的类或方法,补充提示。

核心类速查

类命名空间用途
DocumentDB当前 Revit 文档,所有操作的入口
ElementDB所有模型元素的基类
ElementIdDB元素的唯一标识符
FilteredElementCollectorDB元素查询/过滤器(必学)
TransactionDB模型修改的事务管理
WallDB墙体元素
FloorDB楼板元素
FamilyInstanceDB族实例(门窗等)
FamilySymbolDB族类型定义
ParameterDB元素参数读写
XYZDB三维坐标点
Line / Arc / CurveLoopDB几何曲线
Solid / Face / EdgeDB几何实体
LevelDB标高
View / ViewPlan / View3DDB视图
UIApplicationUIUI 层应用对象
UIDocumentUIUI 层文档(选择交互)
ExternalCommandDataUICommand 执行上下文
TaskDialogUI消息对话框
SelectionUI.Selection用户选择交互

命名空间导航

核心(每天用):

  • Autodesk.Revit.DB — 数据库核心:元素、几何、参数、事务
  • Autodesk.Revit.UI — 用户界面:Ribbon、对话框、选择
  • Autodesk.Revit.ApplicationServices — 应用服务:Application、ControlledApplication
  • Autodesk.Revit.Creation — 工厂方法:创建文档、几何对象
  • Autodesk.Revit.Attributes — 特性标记:Transaction、Regeneration

专业领域:

  • DB.Architecture — 建筑:房间、楼梯、栏杆
  • DB.Structure — 结构:梁、柱、基础
  • DB.Mechanical — 暖通:风管、设备
  • DB.Electrical — 电气:线路、配电盘
  • DB.Plumbing — 给排水:管道、卫浴

高级:

  • DB.ExtensibleStorage — 自定义数据存储
  • DB.ExternalService — 外部服务框架
  • DB.Events / UI.Events — 事件系统
  • DB.DirectContext3D — 自定义 3D 渲染
  • DB.Visual — 材质与渲染外观
  • Autodesk.Revit.Exceptions — 异常类型

禁止事项

  • 禁止对模糊问题跳过第 0 步预研,直接凭记忆回答 API 细节
  • 禁止在未经搜索验证的情况下猜测 API 名称或签名,必须通过预研 + 脚本查询确认
  • 禁止直接编辑 data/ 目录下的 JSON 数据文件
  • 禁止向用户提供未在文档中出现的 API 用法,若文档不足应明确说明
  • 禁止混淆不同 Revit 版本的 API,本文档仅覆盖 Revit 2026(v26.0.4.0)

注意事项

  • 所有脚本基于 Python 标准库,无需额外安装依赖
  • 脚本路径相对于此 skill 目录,使用 scripts/ 前缀
  • 数据已预提取为按命名空间的 JSON 文件(data/pages/*.json),无需原始 HTML
  • 索引文件 data/api_index.json 由 build_index.py 生成
  • extract_page.py 支持 --id 参数直接查询成员级文档(前缀:T=类型, P=属性, M=方法, E=事件)

脚本增强(v1.1.1)

  • extract_page.py 支持 Overload: 前缀,能自动展开到一个可渲染重载并列出全部重载 ID。
  • 当 _lookup 缺失或不完整时,extract_page.py 会尝试从 Help ID 推断命名空间并直查 data/pages/<namespace>.json。
  • extract_page.py 查询失败时会输出同命名空间的候选 ID,便于快速修正拼写/参数签名。
  • search_api.py member 在无成员命中时,会提示可能的类型候选和替代命令(class/search)。

コメント