Dynamo: request the feature of setting; Force re-calculation mode

Created on 20 Jun 2016  路  12Comments  路  Source: DynamoDS/Dynamo

Dynamo version

Dynamo 1.0.0.1180

Operating system

Windows 10 and 7

Dynamo node seems saves it's calculated result as a cache. And it prevents from re-running from same input.
But dynamo can't see an update of related application such as Revit so this cache mechanism sometimes acts on the dangerous side for system.
It would be better that there is a setting to run whole node every time.

Thank and regards,
Yoji Takahashi

Most helpful comment

@ikeough I've got some 馃槣

  • interacting with an API that provides no events on document or element modification.
  • when you have gotten into a strange state with an API that does provide events and do not wish to close and re-open Dynamo, but you want to be sure of the state that you are in.
  • When your graph is dependent on a root node that is a random number but which will never re-execute because the live-runner cannot anticipate its need to re-execute. (run periodic is a bad solution here, though I guess a node author should dirty this kind of node somehow).
  • when you are using a python node that does things like web requests internally or generates random numbers and should re-run.
  • I'll think of some more.

All 12 comments

hi @birdland007s , actually there is an option to do that, though it doesn't execute all nodes _every time_. If the run mode is switched to Manual, you can force Dynamo to run all nodes through this menu item:

untitled

but you'll have to build from source and use sandbox to use this option I think?

This is by design. We enable third parties to create libraries which force re-execution. But it is not the preferred mode for execution. @birdland007s, can you give an example where you need to force a reexecution of a node?

@ikeough I've got some 馃槣

  • interacting with an API that provides no events on document or element modification.
  • when you have gotten into a strange state with an API that does provide events and do not wish to close and re-open Dynamo, but you want to be sure of the state that you are in.
  • When your graph is dependent on a root node that is a random number but which will never re-execute because the live-runner cannot anticipate its need to re-execute. (run periodic is a bad solution here, though I guess a node author should dirty this kind of node somehow).
  • when you are using a python node that does things like web requests internally or generates random numbers and should re-run.
  • I'll think of some more.

Thanks all and sorry for this late replay.
@ikeough, the node, which I want to re-execute eveytime, is Python Script.
The script reads Revit objects and gets their attributes.
The attributes is cooked after that following nodes.

I can understand this is by design, that is, it is difficult to always re-execute in the situation which Dynamo works together with unspecified apps. But I also think it is possible to implement re-execution mode as standard function on the limited condition and nodes. It is enough for me that re-executed nodes are only user specified node and Manual mode.

Best regards,
Yoji

Also see #3273 & #4603

@mjkkirschner I believe we can add this through a method attribute. Something like [AlwaysReexecute].

exactly what I was thinking!

@birdland007s We will need to do some design to provide a way for the python node to continually re-execute. I do not want to add continuous re-execution to the python node, by default because the python node gives you the power to write a script to do anything including long-running operations that you don't want to execute every time if you can avoid it.

The end result would be similar to some improvements to the python node requested in #3378, regarding using comments in the python node to trigger certain functionality.

Agree with you and the list of #3378.
Thanks a lot.

@ikeough @mjkkirschner is it possible to hash the code inside the Python node and execute it if only there has been changes from the last run? Having it to always re-run is not going to be efficient.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

LuisaCPBR picture LuisaCPBR  路  4Comments

andydandy74 picture andydandy74  路  8Comments

JarodSchultz picture JarodSchultz  路  5Comments

dimven picture dimven  路  10Comments

aliasguru picture aliasguru  路  10Comments