How to use the Revit 2023 API in a WPF solution (.NET Framework 4.8)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello,
I recently started using the Revit API.
I've already been able to carry out a first plug-in test using a "Class Library" project.
I'm developing a WPF application that interfaces with several software packages. I'm trying to connect it to Revit via the API, but I'm facing a number of problems.
To carry out my tests, I start from a blank application.
I add the references "AdWindows/RevitAPI/RevitAPIUI/UIFramework" from "C:\Program FilesAutodesk\Revit 2023".
In my project properties I uncheck the "Prefer 32-bit" option.
I add my manifesr.addin :
<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
<AddIn Type="Command">
<Name>Nom de l'app</Name>
<FullClassName>TEST_WPF_REVIT.Class1</FullClassName>
<Text>ExtractConcreteData</Text>
<Description>Description du plug-in</Description>
<VisibilityMode>AlwaysVisible</VisibilityMode>
<Assembly>TEST_WPF_REVIT.dll</Assembly>
<AddInId>E3694029-EF96-45E2-B5A6-36D3C1B810FB</AddInId>
<VendorId>ADSK</VendorId>
<VendorDescription>Autodesk, Inc, www.autodesk.com</VendorDescription>
</AddIn>
</RevitAddIns>
I add a class to my project and name it "Class1.cs":
using System;
using System.Collections.Generic;
using System.Linq;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using System.Numerics;
namespace TEST_WPF_REVIT
{
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
class Class1 : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Autodesk.Revit.DB.Document doc = uidoc.Document;
return Result.Succeeded;
}
}
}
I call this class in MainWindow.cs :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Autodesk.Revit.DB;
namespace asuppp
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Class1 test = new Class1();
Close();
}
}
}
When I run my code, I get the following error:
FileNotFoundException : Unable to load file or assembly 'RevitAPIUI, Version=23.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The specified file cannot be found.
Would you have a solution to my problem please ?
I thank you in advance and I apologize if I have not respected some rules of the forum do not hesitate to tell me so I can improve me in the future.