Wall by face error! help .even have mass face

dynamo

#1

I want creat a face wall by a face of wall. But even I creat mass surface by Directsharp.ByGeometry,it’s not work. Shoud I change a nodes?


#2

Hey,

It’s working here?

Maybe try with a very simple mass to see if that works?

If you hover over the top of the yellow node it’ll tell you what the warning is, maybe tell us that?

Hope that helps,

Mark


#3

It might be the same problem I had a few weeks back: Create Walls using Wall.ByFace from a DirectShape Mass

In which case, for some reason any mass created directly through Dynamo is not a valid mass face for use with API or Wall.ByFace nodes. However, they can still be used within Revit using the built in tools. I don’t know if I am just missing something or if it is a bug within Dynamo. Maybe @JacobSmall can tell?


#4

That’s odd… it worked here?


#5

Hmm I just left the office but I will try again using your work flow tomorrow.


#6

I just replied on your other thread :slight_smile: I also get a fail…


#7

I would need the current graph and the associated rvt (even if its a blank file as the template isn’t engliahed based so I wouldn’t know what to pick from the drop downs).


#8

I tried a graph similar to the one in that thread. Same error. This is the error I get when I try to use faces created by dynamo generated mass/generic model elements:
Warning: Wall.ByFace operation failed.
The selected face cannot be used to create a wall. Please use a mass face instead.

But I can take that same element inside Revit to create wall by face using the massing tab’s model by face tool.

Like I mentioned before, the faces of the mass actually do pass the
FaceWall.IsValidFaceReferenceForFaceWall() test but still fail to create a wall.


Here are the Revit and Dynamo files:
Project1.rvt (1.5 MB)
createmasswalls.dyn (29.4 KB)

@JacobSmall


#9

Have had a total of 15 minutes for stuff like this today, and I think I have resolved it. :slight_smile:

The method used in the Springs.FamilyInstance.ByGeometry node which creates the initial family instance. Never poked into this before, but it’s really genius how it works in both it’s simplicity and scale. @Dimitar_Venkov thanks again for a wonderful learning exercise and for keeping the source code visible here. That code is well worth some study time for anyone who’s playing along at home.

The issue is that the geometry is created in a non-parametric way. The basics:

  1. Write geometry to an SAT file written to the temp folder
  2. Import SAT file to a as an import of a rfa file which is written to the temp folder
  3. Load the rfa into the active document
  4. delete the temp files

This makes the geometry a Free Form Element, which is non-parametric in nature, with no way to edit - you can’t even select most edges directly (a face perhaps but not an edge). Wish I had better news, but I doubt it’s doable to modify the content of the Springs node to get something which is constructed of native Revit elements (each sketch line, forming a face, making a surface). It’d likely have too many API limitations to be of use… Perhaps easier to construct a mass family from each face of your original geometry as native bits, but that’s a BIG scary dive into the Family Environment which I don’t think any sane person would want to undertake beyond a POC scale effort.


#10

I think I am a bit lost. The family generated by the springs node is a free form element, but I can still explode the geometry to get faces. And the faces pass as a valid reference for wall by face and will work perfectly fine using the built in tool, but it fails when using API.

The workaround at the moment has been to generate the family using the springs node and creating the walls by hand in revit using the family. Or an alternative is to copy the family and paste aligned to the same place, then use Dynamo to create all of the walls. Both of these will work when I tested it.