revit-addincommandbinding-override-commands

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

要重写/拦截/禁用 Revit 内置命令时调用:CreateAddInCommandBinding() + RevitCommandId 绑定, 订阅 BeforeExecuted / CanExecute / Executed 三事件(CanExecute 返回 false 即灰化命令)。命令 ID 用 LookupCommandId("ID_XXX") 查找,可从 Revit 日志 Jrn.Command 条目提取;先查 CanHaveBinding。程序触发命令请用 PostCommand。Trigger:"禁用/重写内置命令"。

一句话选型结论

按资料字段整理

revit-addincommandbinding-override-commands是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_1d1a7603/revit-addincommandbinding-override-commands
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_1d1a7603仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791619877
正文体量6.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
revit-addincommandbinding-override-commands当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

6.3 KB
模型实际读到的说明书原文,来自技能仓库

重写 Revit 命令(AddInCommandBinding)框架

R — 原文 (Reading)

> "AddInCommandBinding 类可用于重写现有 Revit 命令。它有三个替换现有命令实现有关事件:BeforeExecuted……CanExecute……Executed……要创建命令绑定,调用 UIApplication.CreateAddInCommandBinding()……"
>
> — 宦国胜,第5章 5.7(约p363-365)


I — 方法论骨架 (Interpretation)

AddInCommandBinding 让插件"接管"内置命令的行为,是命令级的扩展点。

  • 三个事件构成完整的命令生命周期钩子:
  • BeforeExecuted:命令执行前触发(可做前置准备/记录)。
  • CanExecute:返回 false 时命令被禁用(按钮灰化)——上下文条件禁用的标准手段。
  • Executed:命令执行后触发(可做后处理)。
  • 创建流程:
    1. 找到命令 ID:RevitCommandId.LookupCommandId("ID_XXX") 按 ID 字串查,或 LookupPostableCommandId(PostableCommand 枚举)。
    2. 找不到 ID 字串时,从 Revit 日志的 Jrn.Command 条目里挖(用户手动操作一次,日志里就有)。
    3. 确认可绑定:commandId.CanHaveBinding——不是所有命令都能被重写。
    4. UIApplication.CreateAddInCommandBinding(commandId) 创建绑定并订阅事件。
  • 生命周期:绑定在 OnStartup 建立,OnShutdown 中移除。
  • 典型用途:特定上下文禁止命令(CanExecute 返回 false)、给内置命令加前后钩子。

A1 — 书中的应用 (Past Application)

案例 1: 禁止在特定上下文执行"编辑设计选项"

  • 问题: 插件要在特定模型状态下阻止用户执行"编辑设计选项"内置命令。
  • 方法论的使用: 从 Revit 日志的 Jrn.Command 条目提取命令 ID(如 "ID_EDIT_DESIGNOPTIONS"),LookupCommandId 取得 RevitCommandId,CanHaveBinding 确认后 CreateAddInCommandBinding,订阅 CanExecute 在禁用上下文返回 false。
  • 结论: 命令入口被灰化,无需轮询拦截。
  • 结果: 用户在不允许的状态下无法启动该命令,其他时候命令正常。

案例 2: 给内置命令加执行后钩子

  • 问题: 想在用户每次执行某内置命令后自动做检查。
  • 方法论的使用: 绑定后订阅 Executed 事件,回调中执行检查逻辑(遵守事件只读约束)。
  • 结论: 三个事件覆盖命令前/可否/命令后三个切点。
  • 结果: 检查随命令自动执行,用户无感知接入。

A2 — 触发场景 (Future Trigger) ★

用户会在什么情境下需要这个 skill?

  1. 要禁用/灰化某些内置命令(防止用户在受控模型里乱改)。
  2. 要在内置命令前后注入逻辑(校验、日志、联动)。
  3. 不知道目标内置命令的 ID 字串怎么获取。

语言信号 (用户的话里出现这些就应激活)

  • "禁用/重写/拦截 内置命令"(disable / override built-in command)
  • "AddInCommandBinding / CanExecute / BeforeExecuted"
  • "LookupCommandId / RevitCommandId / 命令 ID 从日志里找"(find command id from journal)

与相邻 skill 的区分

  • 与 revit-postcommand-single-limit 的区别:本 skill 是向内拦截/接管 Revit 命令(AddInCommandBinding);该 skill 是向外发起命令(PostCommand),两者共用 RevitCommandId 体系但方向相反。
  • 与 revit-cancelable-events-propagation 的区别:事件取消是操作发起后否决;CanExecute 灰化是事前禁用入口,体验更干净。

E — 可执行步骤 (Execution)

当 skill 被激活后, agent 应按以下步骤执行:

  1. 定位命令 ID
    - 优先 LookupPostableCommandId(枚举);否则从日志 Jrn.Command 提取 ID 字串后 LookupCommandId。
    - 完成标准: 拿到非空 RevitCommandId,记录其来源。

  2. 确认可绑定并创建绑定
    - commandId.CanHaveBinding == true 才继续;OnStartup 中 CreateAddInCommandBinding 并按需求订阅三事件;OnShutdown 移除。
    - 完成标准: 绑定创建成功且生命周期成对。
    - 判停条件: 若 CanHaveBinding 为 false,告知用户该命令不可重写,改用事件拦截或 UI 移除方案,到此停止。

  3. 实现目标行为并验证
    - 禁用场景:CanExecute 按上下文返回 false;钩子场景:BeforeExecuted/Executed 写逻辑。
    - 完成标准: 目标上下文中命令灰化(或钩子按预期触发),非目标上下文行为不变。


B — 边界 (Boundary) ★

不要在以下情况使用此 skill

  • 只想"替用户执行"某命令 → 用 PostCommand,不要绑死命令。
  • 要拦截的是文档级操作(保存/关闭)→ 用可取消事件,不必动命令。

作者在书中警告的失败模式

  • 未检查 CanHaveBinding 直接绑定 → 部分命令绑定失败或行为未定义。
  • OnShutdown 不移除绑定 → 会话状态残留。

作者的盲点 / 时代局限

  • 书基于 Revit 2014;部分核心命令(如保存相关)在新版中不可绑定或行为有调整;日志格式在不同版本间有差异。

容易混淆的邻近方法论

  • IExternalCommandAvailability(第1章):控制的是你自己的外部命令何时可用;CommandBinding 控制的是Revit 内置命令——对象不同。

相关 skills

  • revit-postcommand-single-limit(发布命令(PostCommand)的限制与检查 · contrasts-with)— CommandBinding 是向内拦截/接管命令,PostCommand 是向外发起命令,两者共用 RevitCommandId。

审计信息

  • 验证通过: V1 ✓ / V2 ✓ / V3 ✓
  • 测试通过率: {{%}} (详见 test-prompts.json)
  • 蒸馏时间: 2026-08-27

常见问题

5 问
答案由本站依据条目字段整理
revit-addincommandbinding-override-commands怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_1d1a7603/revit-addincommandbinding-override-commands。安装方式为未标注。装完刷新技能列表或重开客户端。

revit-addincommandbinding-override-commands支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

revit-addincommandbinding-override-commands权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

revit-addincommandbinding-override-commands收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

revit-addincommandbinding-override-commands用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。