Creating Revit element, repetitive runs, keeping new elements permanent

I have a Dynamo graph that requires the user to ‘Select Model Elements’.
Then a Level and Family Type should be specified from the dropdowns.

When this graph is run, new elements (of the Family Type) are placed directly on top of the original selected elements, using FamilyInstance.ByPointAndLevel

I have found this graph to be useful for ‘replacing’ very incorrect elements, like when someone places generic annotation, instead of a real model object.

That being said, I can’t seem to keep the newly created elements in the Revit file, when this graph is run again. I have tried combinations of closing Dynamo, synchronizing the Revit model and then re-opening and re-running the Dynamo graph - to no avail. This graph only wants to keep the most recently placed elements.

I have tried using the Transaction.Start & End nodes, but couldn’t get anywhere.
Any advice would be appreciated.

Closing Dynamo should fix the problem. Have you tried running it through Dynamo Player? Both of those options should clear out any element binding. If not, you could try recreating the graph from scratch (since it’s only a few nodes).

If none of that seems to make a difference then post the graph and a small example model here for us to test.

Closing & reopening Dynamo doesn’t seem to fix anything.

However, using Dynamo Player works. I guess Ill just set it up, close down the graph, and run using Dynamo Player.

In lieu of anything I can add to the graph itself, to get it to behave differently, I will just use the Player.


Did you try rebuilding the graph in a new file? It sounds like you might have some element binding stuck in the file itself.

Can I just copy/paste all nodes into a blank file?

I’d create everything from scratch just to be sure.

Hi @Hal if you are into custom nodes you could try tis one here from spring…

@sovitek now thats a solution! just replacing the OOTB with this node and setting track to false is EXACTLY the solution I was looking for.


For reference this is element binding at play. You can read more on it here: Element Binding in Revit

Beyond the custom node, you can also try using a Function.Apply node to circumvent the bindings.