You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何附加到Revit实例进程并测试Revit API?获取Document对象

附加到已运行的Revit进程并获取Document对象

首先要明确:Revit API本身不支持跨进程直接访问,它是基于.NET的单进程API,所有操作必须在Revit进程内部执行。你无法直接从外部进程获取Revit的Document对象,必须通过在Revit进程内加载的插件来实现调试和交互。

以下是具体实现步骤:

1. 配置插件调试为“附加到进程”

  • 打开你的C# Revit插件项目,右键项目→属性→调试选项卡
  • 取消“启动外部程序”的路径设置,勾选“附加到进程”
  • 先手动启动Revit并打开目标项目(只需一次,之后保持Revit处于打开状态)
  • 在Visual Studio中点击调试按钮,选择正在运行的Revit进程完成附加

2. 通过Revit API获取当前活动Document

附加成功后,插件代码会在Revit进程内执行,直接调用Revit API即可获取Document对象:

using Autodesk.Revit.DB;
using Autodesk.Revit.UI;

public class MyTestCommand : IExternalCommand
{
    public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
    {
        // 获取当前活动的UIDocument和Document
        UIDocument uiDoc = commandData.Application.ActiveUIDocument;
        Document doc = uiDoc.Document;

        // 这里编写你的测试逻辑,例如输出文档信息
        TaskDialog.Show("调试信息", $"当前文档名称:{doc.Title}\n文档路径:{doc.PathName}");

        return Result.Succeeded;
    }
}

3. 快速重载插件(无需重启Revit)

修改代码后无需关闭Revit,直接:

  • 在Visual Studio中重新编译项目
  • 切换到Revit,在“附加模块”选项卡中点击“重新加载”,加载最新的插件DLL
  • 再次运行命令即可看到修改后的效果

4. 关键注意事项

  • 确保插件项目的目标.NET框架与对应Revit版本匹配:Revit 2023/2024对应.NET 6,Revit 2025对应.NET 7
  • 可将插件输出目录设置为Revit的附加模块文件夹,或在Revit中手动加载DLL
  • 多Revit进程并存时,附加要选择正确的进程(可通过进程ID或窗口标题区分)

内容的提问来源于stack exchange,提问作者user2514185

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:52:04