Message 1 of 13
Application Hang after using DockablePane (Top level window is idle)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi all,
One of the users has a problem with using a dockable pane application. (Library window)
The Dockable Pane is a WPF Page with xml data.
After MouseDoubleClick the an IExternalEventHandler Raise and in that event there a prompt to place a familysymbol.
Any ideas?
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Application Hang" />
<EventID Qualifiers="0">1002</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>101</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2024-03-14T11:14:34.1058526Z" />
<EventRecordID>190754</EventRecordID>
<Correlation />
<Execution ProcessID="0" ThreadID="0" />
<Channel>Application</Channel>
<Computer>[ComputerName]</Computer>
<Security />
</System>
- <EventData>
<Data>Revit.exe</Data>
<Data>23.1.30.97</Data>
<Data>277c</Data>
<Data>01da75ffec5ff3c6</Data>
<Data>4294967295</Data>
<Data>C:\Program Files\Autodesk\Revit 2023\Revit.exe</Data>
<Data>cf05ffb2-a754-4417-b9c5-afa3235601e1</Data>
<Data />
<Data />
<Data>Top level window is idle</Data>
<Binary>54006F00700020006C006500760065006C002000770069006E0064006F0077002000690073002000690064006C00650000000000</Binary>
</EventData>
</Event>
This topic is a little bit related to this topic:
Solved: Re: Close Dockable Window EventArgs - Autodesk Community - Revit Products
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Events;
using Autodesk.Revit.UI;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Media;
using System.Xml;
namespace VDS
{
class RevitPane : IDockablePaneProvider
{
// GUID voor DockablePane
public static readonly Guid Id = new Guid("----");
//Variable die toegewezen wordt in app
public static RevitPane Default { get; private set; }
public RevitPane(IExternalEventHandler_Bibliotheek eventHandler, ExternalEvent externalEvent)
{
EventHandler = eventHandler;
ExternalEvent = externalEvent;
}
public IExternalEventHandler_Bibliotheek EventHandler { get; }
public ExternalEvent ExternalEvent { get; }
#region Registratie van panel positie
public static void Register(UIControlledApplication app)
{
var eventHandler = new IExternalEventHandler_Bibliotheek();
var externalEvent = ExternalEvent.Create(eventHandler);
Default = new RevitPane(eventHandler, externalEvent);
var dockablePaneId = new DockablePaneId(Id);
app.RegisterDockablePane(dockablePaneId, "Bibliotheek", Default);
}
#endregion
#region Toggle panel aan/uit
public static void Toggle(UIApplication app)
{
var dockablePaneId = new DockablePaneId(Id);
var dockablePane = app.GetDockablePane(dockablePaneId);
if (dockablePane.IsShown())
{
dockablePane.Hide();
}
else
{
dockablePane.Show();
}
}
public void SetupDockablePane(DockablePaneProviderData data)
{
// wpf object with pane's interface
data.FrameworkElement = new Viewer();
// initial state position
data.InitialState = new DockablePaneState
{
DockPosition = DockPosition.Right
};
}
#endregion
}
}
Void that raised the event
private void LibraryListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
List<FileData> selectedItemsList = new List<FileData>();
foreach (var selectedItem in libraryListView.SelectedItems)
{
if (selectedItem is FileData fileData)
{
selectedItemsList.Add(fileData);
}
}
RevitPane.Default.EventHandler.selectedFileData = selectedItemsList;
RevitPane.Default.ExternalEvent.Raise();
}