How to get the Substrate centerline in 3D from Revit walls?

I am trying to get 2 centerlines from a single wall, by getting the centerlines of the substrate of the wall. Is there any way in Dynamo to do that? and I need those lines to be actually in 3D. not 2D. Thanks a lot.
The thing is if I select walls, it will display a list, but for the substrate, is not displaying anything.

1 Like

Hello @moraruandrei29 …always a good idea to share your dataset…I would say is almost impossible to help you without other information…Good luck

Hi @moraruandrei29,

You can retrieve all the wall layers locations with the Wall CompoundStructureLayersLocation node of the Genius Loci package.
Use the ModelCurve.ByCurve node to see them in 3D.

1 Like

Hi @Alban_de_Chasteigner , thanks for your reply. Would you have time to show me a little script?

It doesn’t show me any layers…

Thank you @sovitek!


Try to eliminate the stacked walls or curtain walls of your list of walls.
First do a test with a few walls.

Sorry, what I meant is, if it’s possible to extrude these 2D lines that go through the whole wall.

The nature of lines is that they are always 2D
If you want them to be 3D you have to add the 3rd dimension, in this case that would create a plane.
Here is an old book to study 2D vs 3D
oneside_a4 (1).pdf (601.2 KB)

Hi, I understand that, the question is how to add the 3rd dimension, meaning to extrude the 2D lines.

There is a node that can create a reference plane
There are more ways to create a plane though

I found it, but it gives me this error…

It works with 1 wall only. But this is not actually what I need. I need to actually extrude these 2D lines, not to make them reference planes…

The only way i can think of right now is that you create a family for that purpose, a family that has just one plane in z-axis, the height of the upper line in that plane has to be parametric and related to the Wall
LineFamily.rfa (408 KB)
This is a Mass Family so they don’t show up if the Mass category is turned off.
To place them use Family instance by curve (I’m not sure if that is the correct node name) but something alike.
Once placed you can then get the Wall height and write that into the Instances Height in Dynamo.
You might need an End.Transaction node.