Place generic model family by select face

Hello everyone, i m a beginner at Dynamo. My idea is create formwork for beam by picking a face.
Is it possible to place generic model (family) by select a face (The top beam is the expected result).
The bottom beam is result of my node.
Please give me some advices and instruction.
Thank in advance.

1 Like

Please describe accurately your workflow and the result you get, including a description of your family, so that we can quickly see what could be changed.

Depends how the family is made, you might have to get the length of the curves from the surface perimeter and assign that value to the dimensions in the family (“Surface.PerimeterCurves” + “Curve.Length”). Please show the famiyl.

1 Like

Thank for reply, I have a generic model face base family included two parameter width and length. i want to use dynamo to place this family into face of beam by picking a face and this family could be automatically adjust its dimention to fit with face of beam.

So what you need is only to get the Width and Length of your face and set them to the family appropriate parameters?

1 Like

Yes, and placing that family into the face of beam by picking this face.

@Tom_James? :slight_smile:

2 Likes

as you see above picture,with my nodes i just place my family into face off beam but it wasnt fit to the face :D.

Do you have to use your family or could a new family work as well? Wondering if a ‘FamilyInstance.ByGeometry’ node from the springs package would work here. Not sure if you need to schedule things though.

If you do need to use your specific family I would consider the following:

  1. Don’t make it so you have to click every face - do all faces of the beam at once by getting the beam geometry, exploding it, removing the two smallest area faces, and then discarding the face with a normal equal to the Z axis.

  2. Consider nesting your panel family into a line based family with a constraint for beam width and beam depth. Place these families on the structural beams by getting the beam locations, and the beam width and depth parameter values, create your formwork beam at the same location as the concrete beam, and then set the depth and width to match the values from the structural beam.

  3. If option two isn’t viable, go face by face, get each the surface’s perimeter curves, group them by length, and if you have two groups the largest is your length and the shortest is your depth. If you have 3… well your beam is kinda weird and your formwork likely won’t bend that way anyway so review it manually.

2 Likes

Sorry went for lunch! If you want to use that family then set the parameters for width and length using the two nodes i stated above.

  • Use Surface.PerimiterCurves
  • Use Curve.Length
  • Use List.Max and List.Min to get the width and length
  • Assign these to your width & length parameter

Or read @jacob.small’s comment, came up as i was writing!

2 Likes

Careful with list.min - if your beam has a geometry deformation (say a pipe penetration, column join, or similar) you will get bad results. Beam length, width and depth are likely the best way to go (option 2 above)

1 Like

Good point!

Thank you guys very much, i will try step by step :smiley:

how about by clicking face ? Because i only want modeling formwork for some beam, not entire beam in project.

This is my family, it s simply a panel with width and length

Try manipulating the below to get what you need

Or this to remove the minimum item node:

image

putting a sort node in there might be better also

1 Like

Thank for reply. Could you explain for me about meaning the code block because i m newbie in dynamo ^^

Please follow this advise, if you need some basics, the Primer is here to help:
http://dynamoprimer.com/en/01_Introduction/1_introduction.html
You will also find the explanations about nodes in the Dictionary:
http://dictionary.dynamobim.com/#/

2 Likes

thank you very much :smiley:

Dynamo primer has a good explanation of this:

http://dynamoprimer.com/en/07_Code-Block/7-1_what-is-a-code-block.html

You can greatly decrease the amount of nodes you use by using code blocks:

image

I’d explain but the primer has some great resources.

3 Likes