Converting Compound Walls to separate Walls

I’ve been searching through the web for a solution of this, but unsuccesfully.

Is it possible to take a compound layered wall (for example plaster-brick-plaster) and divide it into separate walls, leaving them in the same place?

Hi @filip.kabelis,

One workaround is to make parts of yours walls.

Otherwise, it is possible with the Create Compound System FamilyType, Wall CompoundStructureLayersLocation and Get CompoundStructureLayers nodes in Genius Loci package.
Here is an example (it was the opposite case and it was probably more complicated)

Hey, thanks for quick reply

I don’t want to make parts of these walls because parts have limited editing capabilities - and they still are parts - thing is I need independent walls, in place of layers of compound walls I have. Maybe there is way to convert wall Parts into separate Walls?

I see the topic you sent me - It does what I need to do but In reverse - I don’t really see an option to use these nodes backwards? I would call myself a Dynamo Beginner/Intermediate so maybe I don’t see something obvious. Nevertheless - I just got this Genius Loci package and I will try to play around with it a little. Thanks again!

There are a few solutions for this out in the market (paid).

Before you begin on this path please do think about thing like hosted elements in the walls, dimensions/tags referring the original wall, etc.

For me the big one was not being content with generating Wall Types on the fly because of QA/QC rules, I would like to use pre-defined Wall Types to replace the found layers to make sure the Types contain all the (meta)data that is asked in the process.

I know about AGACAD plugin - Smart Walls - that does this exact thing. Downside is that it costs 100+ USD.

My current situation is that I’m working on 4 separate Revit models for one investor, they are a part of one greater scheme.

Goal is to have same walltypes on all 4 - so far on 2 of these the “de-sandwiching” of walls was done by hand - which is a lot of stupid work.

I’ve already established with the investor’s BIM coordinator that remaining 2 models will be given out with walls divided in parts, but I’m still curious if its possible to use Dynamo to do this.

I don’t think it’s worth the cost of spending 100$.
Here is how you can do it with the last update of the Genius Loci package. It remains to work a little on the junctions between the monolayer walls (join the layerlocation curves at the beginning of the process).

Before :

After :


Wow, this is excellent, I will test this out as soon as I can.
Huge thanks! And for the whole Genius Loci package:)

1 Like

Hi !

We’re trying to do the same here, but :

  • We had to change the lacing of GetCompoundStructureLayer to longest to get values - is that normal ?
  • We have some Null values coming from this node for StructuralDeckProfile - is that normal ?
  • Thickness is extracted from the model in meters, can it be reinjected in the same unit ? do we have to change the codeblock in some way ?

Thank you !

Hi Daniel,

The lacing depends on the list structure of your walls. With a flatten list, no need for a longest lacing.
The StructuralDeckProfile is for floors :

The Create Compound System FamilyType node converts the units so no need to convert manaully the thickness :

You can also use the Delete Compound Layer node for this workflow

We have this without lacing modification and with a flatten list

and for the code-block, with longest lacing

Do you see a mistake somewhere ?

For the lacing, I’m assuming some that some of your walls are stacked walls or curtain walls and cause the node to fail in Auto.
For the String.Remove, I’ve no clue. Try with nodes instead of DesignScript.

Hello everyone !
@Alban_de_Chasteigner I reproduced the script you mentionned but i’m not getting the wanted result. The new wall family type created keeps all the propreties of the existent wall type ( thickness , layers , materials) except the name


This is not the same List Level in your graph screenshots as in post 6.
Try with @L1 instead.

1 Like

My bad on that ! thanks for the quick fix

I follow the script you post. But in the node create compound System Family it appears me null.


Which Revit version do you use ? It is working fine with Revit 2022.

We are using Revit version 2021.1.2

Do you have layers with unassigned materials? I had errors of this when i made my version of this script, so i converted uassigned materials to “default”

1 Like

With this solution, it help us to continues to the next node.
Now the node Wall bycurveandlevel does not works.
I think something is missing in the previous node.

It’s probably a matter of lacing.
Try with the longest lacing on the WallByCurveAndLevel.