How to: Obtain Faces of a Void Element, Then model a Generic model to fit the extent of all surfaces

Good Afternoon All,

I have successfully created Voids within a slab at clash points. Now i would like to place a generic model family on the internal faces of the slab (or possibly on the faces of the voids might be easier?)

I have tried with the attached workflow but there are many issues with it;

  1. I have told the workflow to pick only 1 vertex point from each face so that it doesn’t place 4 versions of the family on each face. It seems the point is random (ie. could be top left of face or bottom right etc). This means the placed family is all over the place.

  2. The workflow currently ignores the fact that i want the placed family to be the same extent as the face.

  3. Only the internal faces (where the voids are) should be picked. Currently the perimeter faces are also being picked. (this point is irrelevant if i gather the void family faces instead)

Workflow dyn:
Apply Isolation Joint to Face of Floor Voids.dyn (23.1 KB)

Workflow Image:

It may be that the workflow I’m trying to adapt is really not ideal for what i want to achieve?

… Hence the title of this subject, i feel it would be easier to obtain the faces of the void elements that actually create the holes in the slab. Then i would need to be able to ignore the top and bottom surfaces (just need the sides) and place the family on the remaining faces. I can fix elevation of the family later if needed. Currently when i try to obtain faces of a void family it cant retrieve any… which i guess is because its not a solid so technically there is no faces :slight_smile:

Will continue my work on this later but any feedback/suggestions in the meantime would be perfect.

you can try this node, its from the clockwork package.

Hello again @Marcel_Rijsmus!

Thanks for your input,

I have tried this node but unfortunately no luck with it.

This is the void family.

Generic Model Void - Variable Square.rfa (284 KB)

I’m coming to the realisation that the family i’m trying to place on the face of these voids isn’t really setup to work with this sort of workflow as the orientation is “set” within the family too.

Will give it some more thought but think time spent on this may eventually out-weight the time saved.

Thanks for any further advice though.

The little program inside the node may need more inputs
Now you only feed it elements only
Try it with a boolean node on ReturnGeometryWithoutInserts aswell
If you hover your mousepointer over the inputs it tells you what it needs
And List@Level maybe?

1 Like

Ah ofcourse! How stupid of me, had completely overlooked that.

So there are 15 voids which it has picked up correctly.
The next step is where i’m a little unsure of the best way forward.

The aim is to place an “Isolation joint” family on the faces of the cut slab pockets.
However, the currently isolation joint family i’m using just places the family where you put it with a set extent / orientation.

So i believe i need to go through a lot of vertices manipulation?

I’d need to first eliminate the top and bottom surfaces.
Then gather the height and width of the remaining faces.
Then place the isolation joint in the right place (can i take a list of points and calculate a centre-point?, the origin of my family is top centre)
Then ensure the isolation joint is in the right orientation.
Then match the isolation joint width and height to that of the face.

Brain is a little fried but at least i’m possibly a bit closer?!

Isolation Joint Family attached for reference: PEP_Isolation Joint.rfa (292 KB)

Thanks @Marcel_Rijsmus

If you would make the isolation joint a line based family, you could get the curves of your void family to place them, and have quantities in one go

Progress once again thanks to you!

So now the families are being placed at the mid points of the faces.
Unfortunately as i’d predicted the family orientation stays the same + the southern face (on plan as above) isn’t aligned properly either.

I think, as you’ve suggested, i may need to try and re-create this family with a line-base template.
That makes a lot of sense in my head!

Then i would just need to obtain the top surface of the void family and use the curves to place them as you’d said. What did you mean by having the “quantities in one go” as well?

I will go and make a line-based family, might not be today though, then i’ll see what i can do with it!

Thanks for all of your help @Marcel_Rijsmus (for this post and my previous post!)

I meant line based families have a lenght so you can calculate how much of that is in your project (think costs)

Gotcha!

Just a little bit of prior thinking before i re-make the family as a line-based family.

After i have gathered the curves for the line placement, how will i be able to make sure that the isolation joint is modelled on the correct side of the “line” (so it’s actually on the face of the slab rather than inside it)

I guess it’s just a case of setting the primary ref plane to one side of the family, trying the dynamo and then if its on the wrong side then just change the ref plane to the other side? Could it be that simple?

Also, do you happen to have a really basic example of how you would place a line based family (say to suit a single rectangle) at a given level?

I shall of-course try myself anyway, just thinking ahead :slight_smile:
cheers.

Jack.

All primeter curves you extract from geometry (surface) are allways startpoint to endpoint which is the startpoint of the next curve so clockwise/anticlockwise.
If you create the line based family you will see instantly if it needs to be recreated in a mirrored state.

1 Like

Success!
The New joint family needs a cleanup but i have achieved what i set out to achieve!

One final thanks to you @Marcel_Rijsmus.

I shall mark your last comment as the solution.

Jack.

P.S. looks like the dynamo camera capture for the workflow is somewhat broken since its showing half the node information!

1 Like

Great!
for a good quality capture, zoom in until you can read a few of the nodes, then click the camera.
glad it worked