记录一下接触.net和c#时遇到过的问题,开发工具使用的是Visual Studio 2022。
当我想写一个简单的revit插件时,根据官网代码:
Help | Walkthrough: Hello World | Autodesk
使用vs创建了一个C#类项目,代码如下:
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using nettest;
namespace nettest
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit,
ref string message, ElementSet element)
{
TaskDialog.Show("revit", "你好 revit");
return Autodesk.Revit.UI.Result.Succeeded;
}
}
}
放到C:\ProgramData\Autodesk\Revit\Addins\20xx文件夹的addin文件如下:
<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
<AddIn Type="Command">
<Assembly>E:\source\nettest\bin\Debug\net8.0\nettest.dll</Assembly>
<ClientId>7d4e1893-3a27-4df2-8075-4fa3754537aa</ClientId>
<FullClassName>hellorevit.class1</FullClassName>
<VendorDescription>adsk</VendorDescription>
<VendorId>ADSK</VendorId>
</AddIn>
</RevitAddIns>
但导入revit后无论我怎么改始终提示:
经过一番排查终于发现是vs的.net框架使用不对,revit api需要 Microsoft .NET Framework 4.8,但是我创建的项目类型不对,应该选择后面带.NET Framework框架的类库项目,
如果没找到这个项目类型,就打开Visual Studio Installer勾选.net桌面开发,等待vs修改好后再次新建项目,此时就能看到.NET Framework框架的类项目选项。
使用官方代码和重新引入dll依赖生成项目后,这次插件能成功运行了!