一、新建MFC DLL项目;
二、插入托管代码:
#using "System.dll"
#using "System.Windows.Forms.dll"
#using "D:\\Program Files\\Autodesk\\Revit 2013\\Program\\revitapi.dll"
#using "D:\\Program Files\\Autodesk\\Revit 2013\\Program\\revitapiui.dll"
using namespace System;
//using namespace System::Windows::Forms;
using namespace System::Collections::Generic;
using namespace System::Linq;
using namespace System::Text;
using namespace Autodesk;
using namespace Autodesk::Revit;
using namespace Autodesk::Revit::DB;
using namespace Autodesk::Revit::UI;
using namespace Autodesk::Revit::ApplicationServices;
using namespace Autodesk::Revit::Attributes;
using namespace Autodesk::Revit::UI::Selection;
using namespace Autodesk::Revit::DB::Mechanical;
using namespace Autodesk::Revit::DB::Structure;
using namespace Autodesk::Revit::DB::ExtensibleStorage;
using namespace Autodesk::Revit::DB::Plumbing;
namespace myvc {
[Transaction(TransactionMode::Automatic)]
[Regeneration(RegenerationOption::Manual)]
public ref class Class1:IExternalCommand
{
public:
virtual Autodesk::Revit::UI::Result Execute(ExternalCommandData ^commandData, String ^%messages, ElementSet ^elements)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
AfxMessageBox("Hello World, created from DevTV");
CMyDlg ld;
ld.DoModal();
return Result::Succeeded;
}
};
}
三、说明:AfxMessageBox即是标准的MFC对话框。
为了测试更多的功能是否能加进Revit,再新建一个对话框,生成类CMyDlg。
在Revit中运行的结果如下图: