Node refresh if change is detected

I am using a rhythm node called “Parametric Graphic Scale” to change the title block to match the “View Scale” parameter value in a view, the graph only works once, afterwards the user has to disconnect and reconnect the “Document.Views” node for the graph to work again. I am trying to automate this graph so that when the user changes the “View Scale” the Title Block automatically changes, but am receiving mixed results, are there any suggestions on processes or nodes that can help me accomplish this?

I have found a node from SpringUI called “SpringsUI.Refresh” that lets the user refresh the graph but this is still a manual process that the user must go through, is there a way for this node to refresh when View Scale is changed?

More information on the “Parametric Graphic Scale” can be found here:

Any help will be greatly appreciated, Thanks!

Hi,

Umm… no, I don’t think so, Dynamo can’t know something has changed unless you tell it.

You can set your graph to periodic or you can use player and refresh the whole graph, but Dynamo isn’t ‘listening’ for a change to be made, sorry.

If the scale change is made using Dynamo, the rest can fire off from there?

Or maybe someone has a cunning solution :slight_smile:

Apologies,

Mark

Yeah, what you’re looking for is something to trigger every time the Revit database updates. Such a thing exist in Revit (called iUpdater or Dynamic Model Update if I recall correctly), but not in Dynamo and for good reason - too many memory issues and too many ties into external data and Revit transactions. It gets really ugly really fast.

Player is likely what you want. Run it when you make enough changes. Or periodically throughout the day.

That said, if you’re really feeling like causing a ruckus, go ahead and try using periodic run. This will trigger the .dyn to execute as often as you define in the file, but it defaults to 1000ms. If your graph takes longer then that to run, set the value to a higher number. You want to always be like 20x the total runtime otherwise it can get hard to use as while Dynamo is doing its thing, you’ll be stopped from using Revit unless a complex transaction is underway.

All you should have to do (though it looks like you need some package updates so I may be wrong), is swap the SpringsUI.Refresh node for a DateTime.Now node. Set the run mode to periodic, and let us know how it works. Be sure to save first as I expect this to be VERY unstable and perhaps even frustrating from a UX standpoint.