Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

start using new 2013 External Events framework to handle modeless interaction wiht Dynamo #20

Closed
tatlin opened this issue Sep 10, 2012 · 1 comment

Comments

@tatlin
Copy link
Contributor

tatlin commented Sep 10, 2012

External Events framework
The External Events framework is a new API framework tailored for asynchronous processing such as that which is needed to support modeless dialogs. It operates similarly to the Idling event with default frequency.
With this framework, instead of implementing an event handler and implementing the handler to do nothing when there is no activity in your dialog, instead you do the following:

  1. Implement an external event by deriving from the interface:
    • IExternalEvent
  2. Create an ExternalEvent with
    • ExternalEvent.Create()
  3. When an event happens in your modeless UI where a Revit action needs to be taken, call
    • ExternalEvent.Raise()
  4. Revit will wait for an available Idling timecycle and call the implementation of your event:
    • IExternalEvent.Execute()
    This framework is more useful for modeless dialog developers because you can skip the default no-op implementation when nothing has happened, and tell Revit when there is some work you need to do in Revit. It also saves on the time required for Revit to make repeated calls to the Idling event when there is no actual work to be done.
@Steell
Copy link
Contributor

Steell commented Sep 12, 2012

Most of this is accomplished using the IdlePromise class, which does the same thing that the External Events framework does (from my understanding.) We should definitely change to External Events once we are certain that we can maintain the same amount of control over the execution that is given to us via IdlePromise.

ellensi pushed a commit to ellensi/Dynamo that referenced this issue Feb 18, 2014
add the migration method for some of the list nodes
sharadkjaiswal pushed a commit to sharadkjaiswal/Dynamo that referenced this issue Mar 31, 2014
add the migration method for some of the list nodes
@ikeough ikeough closed this as completed Jul 16, 2014
@ColinDayOrg ColinDayOrg mentioned this issue Nov 2, 2018
15 tasks
BogdanZavu pushed a commit to BogdanZavu/Dynamo that referenced this issue May 18, 2021
Custom Property Control Add/Edit/Delete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants