Create Walls using Wall.ByFace from a DirectShape Mass

Hi all,

I have scoured the forum to get the answer bec I assume this is a really simple problem, but with no luck.

Basically, I am just trying to create a wall from a twisting tower. Meaning, walls will be created by either lofting the bottom & top floor plate, OR by by using something like the Wall by Face in Revit (which I thought Wall.ByFace could do).

Here’s what I’ve tried so far:

  1. Split all Surfaces, then created Mass in Revit using Dynamo (DirectShape.ByGeometry), but apparently, it’s still not considered a Revit Mass so the Wall.ByFace node failed.
  2. Created Wall.ByCurveAndHeight and Wall.ByCurveAndLevel but it doesn’t give me the smooth connection that I want.
  3. Created a Lofted Surface and converted the created Geometry into a DirectShape Wall object in Revit which is not really what I want.

I know creating a wall like this requires a mass object when doing it in Revit, but I can’t see anything else that does this except using DirectShape… I’m not sure what other approach there is - I know a lot of people must have been doing this since I have already seen crazy 3d conceptual models done in Dynamo so there should be a way to make them useable in Revit for documentation, right?

I have been using Dynamo for almost a year now but bummed to know that I can’t create something so simple. Can somebody point me to the right direction? Is there something I’m missing? Is this something Python could do?

Hi I am also working on a similar workflow and the spring node here seems to be helpful.
I believe that the node you are using generates meshes and not surfaces.

And for creating Mass objects
One approach I know is by using “Springs.FamilyInstance.ByGeometry” node by passing in a conceptual mass template.

Hope this helps.

1 Like

I can create a mass family of Dynamo geometry using Springs package, which I can then go into Revit and use the Wall By Face tool. But it won’t let me use those same mass faces in Dynamo’s Wall.ByFace, giving me the error “The selected face cannot be used to create a wall. Please use a mass face instead.”

I will try another method in a bit. For now, here is a way to turn your geometry into a mass family:

1 Like

Hi @kennyb6, thank you!

I do have Springs package but didn’t think they have it. I need to look at all the Packages I installed now and test all the nodes they have. :slight_smile: Thanks so much, this should do for now, but I will also wait for your “other method” if you have a better one :slight_smile:

Honestly, I am pretty stuck. I am in a weird loop. Mass created using the springs package I showed above works with the Revit tool Wall By Face but API won’t use its faces for walls. The weird part is that it passes the IsValidFaceReferenceForFaceWall() test so it should work but it gives an error that just says “Could not create a face wall.”

If I use the Revit tool for Place Mass using the family created with nodes, and then run the api script, it works though. So I thought maybe it has something to do with the creation method but I can’t find an explicit create for a place mass family so I am stuck. Maybe someone more experienced like @Konrad_K_Sobon or @Kulkul can help. This is all I have so far for creating walls using mass, which was taken from here:

createmasswall.dyn (9.8 KB)

I would be really curious if you can make your entire building into a single solid/familyinstance using the springs node, then use the place mass tool to place it and try using this script to see if it works.

Hey Kenny,

Is this what you’re seeing? It works fine for a mass made in Revit, but fails with one made from Dynamo?




No, the error I got was specifically saying that “the face is not a mass face, please use a mass face” or something along that line.

I think that graph I attached before is a slightly older version. I can attach the newer one and the Revit file I’m using tomorrow.

the mass created via DirectShape.ByGeometry (both OOTB and Spring) cannot be used via Wall By Face in Revit, is it because it’s created in RVT instead of RFA?


Yes! I just realized this recently. It has to be created as an in-place mass or loadable mass family. :slight_smile: