Build and rebuild walls in Revit

Ok so this has been our second week using Dynamo and it has been okay thus far.

The general process up until this point has basically been that we import arc information from grasshopper to dynamo via Mantis Shrimp. Turn that to arcs by 3 points node. Process that into a curve which is then fed into wall by curve and levels node. All up until this point is fine. The walls are created in Revit.



Now the issue that i’m sure someone must have solved already, is that if we update the grasshopper information and the curves which the walls by curve and level are referencing to are revised, one of two things happen. 1) when i toggle the “read GH file” import option on and off, the walls delete from the Revit file. Or 2) the walls of the previous curves remain and completely new walls are placed in revit. Ideally what would happen is that the old walls will simply adjust to the new curves.

This is key because we will maybe be 2 or 3 weeks down the road, have to adjust the curve geometry but at this point we would have tons of doors and windows placed into these walls. Thus when dynamo remakes them, we will loose all the elements placed in the walls as well.

I have a feeling that I need to do something with the wall element ID’s but I am truly lost on this matter and would greatly appreciate some help.


Yes, you need a new node that will update wall location line rather than create a new one every time. Also yes, you would have to register Element Ids of created walls, and then use those to update them. I don’t see Dynamo doing that at the moment.

I created mantis shrimp, so I felt like I have to respond to your post, but in all honesty there is nothing wrong with Mantis Shrimp here. The issue is with Dynamo’s handling of element creation. I will put that down as my to-do, but I cannot guarantee i will be able to get anything back to you in the near future.


Ps. You could try using Lyrebird for Grasshopper.

Wow the creator of Mantis Shrimp himself… massive thanks for the reply and more so for making Mantis Shrimp in the first place.

I had little doubt that the Mantis Shrimp wasn’t the issue here. Glad to hear I am pretty much on track with thinking this was something that Dynamo just wasn’t able to do yet. I suppose I will just build these elements the traditional way until a solution exists. I feel that the ability for Dynamo to do what we have outlined here is fairly critical for designers that need to use this as a tool to update elements throughout the design process. Otherwise we are always taking a big step back each time we have to update the geometry (associated doors and windows are lost, dimension strings lost, etc…)

So if you could look into this I’m certain it’s something many of us that need to produce work in Revit will greatly appreciate.


actually, as far as I’m aware Dynamo does attempt to rebind walls by updating the curve geometry if possible. From glancing at the code, it looks likes there are many cases where it is not possible and a new wall is generated.

It might be worth sending this example as an issue on github to determine if this is a bug or an API limitation.



I just posted a similar issue on the forum today. I am not using Mantis, but wanted to link to this conversation in hopes that something may come up in the future. See link below:

@Konrad… when you say “you need a new node that will update wall location line rather than create a new one every time”, does something like this exist, or does it need to be created still? Is there a work around for this?

I am bringing over points from GH that are being used to instantiate adaptive components. Having the same problem as Bryan above, just with different elements. I also to was thinking that this was most likely due to the fact that keep re-creating the adaptive component every time I run the script (generating a new ID number). Do you think there is a way to re-arrange the workflow/add a portion of script that will allow the adaptive component to be updated, rather than re-created?

Any advice would be most helpful.

@Ron Shavarsman

in the images below I’ve created an adaptive component by points, then I modified an input point, the adaptive component is regenerated and the element Id stays constant. Dynamo attempts to rebind on most elements that we expose as nodes.

I’d be interested in seeing files and workflows that fail to rebind. I’m SURE there are many failure cases, but having reproducible samples would help to improve rebinding. :slight_smile:

Screen Shot 2015-09-01 at 10.11.38 PM

Michael Kirschner, Ron Shvartsman, Bryan Diehl,

I believe that Michael is right. I saw this binding behavior work, but I also believe that Ron and Bryan are correct as well, since I also saw the behavior that they described. Michael, I made the statement above believing that binding is not working and that the case use described above might actually require some special handling. Now, since you are very much interested in getting this fixed i would advise Brian and Ron to submit their files to you for testing. This way the whole community can reap the benefits.

Good luck!

Point Data Migration From GH


Thank you for getting back to me. I tried to perform the same experiment as you and got different results (the ID number changed). Please see images below. Might this have something to do with the fact that my adaptive component node is reading its secondary input as family symbol instead of family type like yours?Also, I have attached the script I am using to migrate points in from excel into dynamo to create my adaptive components so you can see the workflow.

Do you think I should upgrade to the latest version of Dynamo (I have my doubts this is the issue)?

Thanks again…

Dynamo Version


I was able to update and try your experiment again. This time the ID’s remained the same. However when I save, close and re-open, the Element ID was changed and a new component was built on top of the old one (old one not deleted).

@Michael Kirschner Have you tried this experiment with a Revit Project File and Dynamo version Have you tried saving, closing and re-opening the file?

In the meantime, I have created the issue on GIThub. It can be found here:


@Ron Shavartsman - thanks for the issue on github and your analysis, I will file this internally and post the tracking ID in the issue.

@Michael Kirshner

Thanks for your help! This issue seems (to me that is) to be a crucial one, as it stops the interoperability workflow just shy of being something very productive. I will follow the tracking ID when it is posted.

Thanks again…

hello people… any update on this issue?