events
Revit events handler management.
Attributes
mlogger = get_logger(__name__)
module-attribute
REGISTERED_HANDLERS = {}
module-attribute
HANDLER_UNREGISTERER = FuncAsEventHandler(unregister_exec_handlers, purge=False)
module-attribute
HANDLER_UNREGISTERER_EXTEVENT = UI.ExternalEvent.Create(HANDLER_UNREGISTERER)
module-attribute
Classes
FuncAsEventHandler(handler_func, purge=True)
Bases: IExternalEventHandler
Turns a function into an event handler.
Source code in pyrevitlib/pyrevit/revit/events.py
Attributes
name = 'FuncAsEventHandler'
instance-attribute
handler_group_id = None
instance-attribute
handler_func = handler_func
instance-attribute
purge = purge
instance-attribute
Functions
Execute(uiapp)
Functions
create_handler(handler_func, handler_args_type)
add_handler(event_name, handler_func)
Source code in pyrevitlib/pyrevit/revit/events.py
remove_handler(event_name, event_handler)
Source code in pyrevitlib/pyrevit/revit/events.py
register_handler(event_name, handler_func, handler_group_id)
Source code in pyrevitlib/pyrevit/revit/events.py
unregister_handler(event_name, handler_func, handler_group_id)
Source code in pyrevitlib/pyrevit/revit/events.py
unregister_exec_handlers(handler_group_id)
Source code in pyrevitlib/pyrevit/revit/events.py
delayed_unregister_exec_handlers(handler_group_id)
handle(*args)
Source code in pyrevitlib/pyrevit/revit/events.py
stop_events()
Source code in pyrevitlib/pyrevit/revit/events.py
execute_in_revit_context(func, *args, **kwargs)
Execute a function in Revit API context using ExternalEvent.
Use this helper when calling Revit API from modeless dialogs, background threads, or any non-Revit context where direct API access would raise InvalidOperationException.
The function executes asynchronously - it returns immediately and the function runs when Revit is idle.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
func
|
Function to execute in Revit context |
required | |
*args
|
Positional arguments to pass to the function |
()
|
|
**kwargs
|
Keyword arguments to pass to the function |
{}
|
Example
Note
This function does not return values from the executed function. For return values, use callbacks or shared mutable objects.