如何从某个特定文件夹加载Revit插件?

问题描述 投票:0回答:1

我是 Revit 插件开发的新人。我有一个问题。目前,Revit 2023 不加载我的自定义 C# 插件。

所以,我只有一个 DLL 文件,名为 MyTestAddin.dll。它位于 D:\WorkingProjects\MyTestAddin\x64\Debug\MyTestAddin.dll 路径中。

还有下一堂课:

namespace MyTestNamespace
{
    public class MyTestAddin : IExternalApplication
    {
        public MyTestAddin()
        {
        }

        public Result OnStartup(UIControlledApplication application)
        {
            return Result.Succeeded;
        }

        public Result OnShutdown(UIControlledApplication application)
        {
            return Result.Succeeded;
        }
    }
}

我创建一个 MyAddin.addin 文件并将其放置在 C:\ProgramData\Autodesk\Revit\Addins�3 文件夹中。这是我的清单文件的代码:

<?xml version='1.0' encoding='utf-8'?>
<RevitAddIns>
  <AddIn Type="Application">
    <Name>My Addin</Name>
    <Assembly>D:\WorkingProjects\MyTestAddin\x64\Debug\MyTestAddin.dll</Assembly>
    <ClientId>D784D34F-774E-4707-A313-B1C999A18544</ClientId>
    <FullClassName>MyTestNamespace.MyTestAddin</FullClassName>
    <VendorId>SomeVendor</VendorId>
    <VendorDescription>Some Description about Vendor</VendorDescription>
  </AddIn>
</RevitAddIns>

一切看起来都与 Revit 指南中的一样。 Assembly 标记具有我的 DLL 的完整路径,FullClassName 标记具有包含命名空间的完整类名。

我将Revit的完整路径添加到项目的“调试”选项中的“启动外部程序”中。我在构造函数和方法中创建了一个断点。但是当我从 Visual Studio 运行 Revit 时,它没有捕获任何断点。所以看起来我的插件没有加载到 Revit 中。

因此,我从一些随机指南中添加了一些测试代码,这些代码应该创建一个带有新面板和按钮的新选项卡:

// Create a custom ribbon tab
string tabName = "This Tab Name";
application.CreateRibbonTab(tabName);

// Create two push buttons
PushButtonData button1 = new PushButtonData("Button1", "My Button #1", "SomePath", "SomeCommand");
PushButtonData button2 = new PushButtonData("Button2", "My Button #2", "SomePath", "SomeCommand");

// Create a ribbon panel
RibbonPanel m_projectPanel = application.CreateRibbonPanel(tabName, "This Panel Name");

// Add the buttons to the panel
List<RibbonItem> projectButtons = new List<RibbonItem>();
projectButtons.AddRange(m_projectPanel.AddStackedItems(button1, button2));

但在这种情况下,我仍然在 Revit 中看不到任何新的选项卡和面板。它仍然没有捕获任何断点。

我的问题是什么?怎么了?

c# add-in revit-api
1个回答
0
投票

您的外部应用程序实现

MyTestAddin
对于测试来说完全足够了。不需要进一步的代码,也没有什么用处。加载时应命在
OnStartup
中的断点。唯一剩下的要求是在加载项清单中的
Assembly
标记中指定完整的加载项路径(您似乎正在执行此操作),并将加载项清单放置在 Revit
AddIns
文件夹中。有关完整详细信息,请查看Revit API 开发人员指南有关插件集成插件注册的部分。

© www.soinside.com 2019 - 2024. All rights reserved.