创建一个可停靠窗体,同时wpf上承载的是winform控件
1.类中代码
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
public class RevitdingeForm : IExternalCommand
{
Document m_doc;
public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiApp = commandData.Application;
Autodesk.Revit.ApplicationServices.Application app = uiApp.Application;
m_doc = uiApp.ActiveUIDocument.Document;
string m_mainPageGuid = "fa52df6a-8afe-4e71-8701-a1a0cd544ff9";
Guid retval = Guid.Empty;
try
{
retval = new Guid(m_mainPageGuid);
}
catch (Exception)
{
}
DockablePaneId sm_UserDockablePaneId = new DockablePaneId(retval);
//sm_UserDockablePaneId = new DockablePaneId(retval);
DockablePane pane = uiApp.GetDockablePane(sm_UserDockablePaneId);
pane.Show();
//DockablePaneId sm_UserDockablePaneId = new DockablePaneId(retval);
//sm_UserDockablePaneId = new DockablePaneId(retval);
//DockablePane pane = uiApp.GetDockablePane(sm_UserDockablePaneId);
//pane.Show();
return Result.Succeeded;
}
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
public class DockForm : IExternalApplication
{
static string AddInPath = typeof(DockForm).Assembly.Location;
public Result OnShutdown(UIControlledApplication application)
{
return Result.Succeeded;
}
public Result OnStartup(UIControlledApplication application)
{
try
{
string TabName = "工程定额对话框";
application.CreateRibbonTab(TabName);
string ArchitecturePanelName = "工程定额";
RibbonPanel ArchitecturePanel = application.CreateRibbonPanel(TabName, ArchitecturePanelName);
PulldownButton SetCarporNum = ArchitecturePanel.AddItem(new PushButtonData("工程定额", "工程定额", AddInPath, "RevitDockForm.RevitdingeForm")) as PulldownButton;
//SetCarporNum.ToolTip = "projectDinge";
string m_mainPageGuid = "fa52df6a-8afe-4e71-8701-a1a0cd544ff9";
UserControl1 m_mainPage = new UserControl1();
Guid retval = Guid.Empty;
retval = new Guid(m_mainPageGuid);
DockablePaneId sm_UserDockablePanId = new DockablePaneId(retval);
application.RegisterDockablePane(sm_UserDockablePanId, "RevitDockForm", m_mainPage as IDockablePaneProvider);
return Result.Succeeded;
}
catch (Exception ex)
{
TaskDialog.Show("错误", ex.ToString());
return Result.Failed;
}
}
}
}
2.wpf窗体代码
<