我是 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 中看不到任何新的选项卡和面板。它仍然没有捕获任何断点。
我的问题是什么?怎么了?
您的外部应用程序实现
MyTestAddin
对于测试来说完全足够了。不需要进一步的代码,也没有什么用处。加载时应命在 OnStartup
中的断点。唯一剩下的要求是在加载项清单中的 Assembly
标记中指定完整的加载项路径(您似乎正在执行此操作),并将加载项清单放置在 Revit AddIns
文件夹中。有关完整详细信息,请查看Revit API 开发人员指南有关插件集成和插件注册的部分。