Quantcast
Channel: All Revit API Forum posts
Viewing all articles
Browse latest Browse all 66694

Re: RegisterDockablePane from Eventhandler

$
0
0

 

Firstly,  you can set the UIControlledApplication object to global variable, then you can access it in OnApplicationInitialized.

Secondly, after registering a dockable pane, you need to call DockablePane.Show() method on document opened event.

The pane's initial position is applied when RegisterDockablePane method called as the specific GUID onto the addin.

 

 

testform m_MyDockableWindow = null;
UIControlledApplication uiapp;
DockablePaneId dpid;

public Result OnStartup(UIControlledApplication UIControlledApp)
{
    uiapp = UIControlledApp;

    uiapp.ControlledApplication.ApplicationInitialized += OnApplicationInitialized;
    uiapp.ControlledApplication.DocumentOpened += OnDocumentOpened;

    return Result.Succeeded;
}

public void OnApplicationInitialized(object sender, Autodesk.Revit.DB.Events.ApplicationInitializedEventArgs e)
{
    testform MainDockableWindow = new testform();

    m_MyDockableWindow = MainDockableWindow;

    dpid = new DockablePaneId(new Guid("{54761517-118C-4A9A-938D-62384E4BAD72}"));

    uiapp.RegisterDockablePane(dpid, "name of dockable pane", MainDockableWindow as IDockablePaneProvider);

}

public void OnDocumentOpened(object sender, Autodesk.Revit.DB.Events.DocumentOpenedEventArgs e) { DockablePane dp = uiapp.GetDockablePane(dpid); dp.Show(); }

 

Third, it is recommended that the dockable dialog in the add-in be the class that implements IDockablePaneProvider and that it be subclassed from System.Windows.Controls.Page.

 

 

public partial class testform : Page, Autodesk.Revit.UI.IDockablePaneProvider
    {
        public testform()
        {
            InitializeComponent();
        }

        public void SetupDockablePane(Autodesk.Revit.UI.DockablePaneProviderData data)
        {
            data.FrameworkElement = this as FrameworkElement;

            data.InitialState = new Autodesk.Revit.UI.DockablePaneState();
            data.InitialState.DockPosition = Autodesk.Revit.UI.DockPosition.Tabbed;
data.InitialState.TabBehind = Autodesk.Revit.UI.DockablePanes.BuiltInDockablePanes.ProjectBrowser; }

 

Best Regards,

Ryuji

 


Viewing all articles
Browse latest Browse all 66694

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>