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.
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.
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?
Yes, and placing that family into the face of beam by picking this face.
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:
-
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.
-
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.
-
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.
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!
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)
Good point!
Thank you guys very much, i will try step by step
how about by clicking face ? Because i only want modeling formwork for some beam, not entire beam in project.
Try manipulating the below to get what you need
Or this to remove the minimum item node:
putting a sort node in there might be better also
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/#/
thank you very much
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:
I’d explain but the primer has some great resources.