Unfolded complication

Morning all, I’m appreciative of all the help I have received so far in exploring dynamo but I am again at a loss and hoping for some assistance. I am simply experimenting with the unfold package because I think it could be extremely useful and so mocked up a rather simple model. I believe that the issues I’m having are simple fixes but I have run out of ideas.

For reference, I’ve been referring to Unfold Surface Not Working - #8 by bayowindapo to attempt this and currently have:

Issue #1
This roof is not complex, but the geometry generated in Dynamo segments the flat planes (highlighted lines are the ones of concern):

Issue #2
I have yet to figure out how to spread the unfolded elements so that they do not stack on top of each other. I’ve blindly changed all the Code Block values individually but have yet to succeed:

Issue #3
The above referenced forum post shows what appears to be a simple string to then output the unfolded geometry into a drafting view using a node called DetailLine.FromCurve. I have not been able to find any reference to that node, nor something similar. What am I missing? I feel this is a rookie question but I have not had the opportunity to export anything from Dynamo into a drafting view so this is completely foreign.

I gladly appreciate any suggestions you all may have, I have loved learning Dynamo and hope to someday be able to contribute instead of asking. Shout out to @Daniel_Hurtubise who has been very helpful to this newbie trying to earn his wings.

1 Like

DetailLine.FromCurve is a core Revit node. As long as you’re using Dynamo for Revit you should have access to it.

As for laying out your pieces, I suggest getting the BoundingBox of each object and then offsetting them (with a buffer) to create an array of pieces.

Yeah I thought I had seen DetailLine.FromCurve but couldn’t find it. I continued trying after posting and DetailCurve.ByCurve seems to have worked.
Not sure if its the best solution, but it is A solution.

I appreciate the quick response @Nick_Boyts. I think I’ve seen a couple posts about BoundingBox but have not used them yet. Anything in particular I need to be aware of before I explore?

Ah, that’s the node. The name must have just changed.

Bounding boxes are pretty straight forward. You can use them to get the min and max point at therefore determine the (orthogonal) extents of the object.

Nice, I like straight forward! I’m playing with Bounding Box now, but have another rookie question… Where do I insert the node? Is it in place of something, or between two nodes?

In my attempts so far, it either does nothing or deletes the geometry entirely.

I did stumble across the Bimorph package while googling for Bounding Box help. Not sure if I’m on the right path, but I made this and trying to understand where to place it:

You want BoundingBox.ByGeometry so that you can get the extents of each of the roof pieces.

Thanks! (hopefully last question :crossed_fingers:)… now what do I do with BoundingBox.ByGeometry?

Dynamo Unfold v4.dyn (455.4 KB)

You would use that on each of the unfolded roof geometries to get a bounding box for each piece. You can then get the min and max points of those bounding boxes to determine the extents (length and width) of each piece. With the extents of each piece, you should then be able to translate each piece (consecutively) into an array of non-overlapping pieces.

Ok, so am I correct in thinking that it goes between the unfoldingObject output (Unfolding.UnfoldListOfSurfaces_AndreturnTransforms) and the unfolding input (Unfolding.PackUnfoldedSurfaces)?

I do appreciate the guidance @Nick_Boyts and sincerely feel bad for asking so many questions, just trying to head around the functionality. And when this finally gets resolved, I will (1) share for others who may have the same issues but more importantly (2) make massive code blocks giving you, and whoever else contributes, all the credit you deserve!

Dynamo Unfold v4.dyn (28.4 KB)

I’m guessing those two nodes have to work together. The bounding box is for whatever geometry you’re left with, either the surfaces or the boundary curves, after everything has been unfolded. All you’re doing now is moving the geometries so they don’t overlap each other when you draw them in your drafting view.

Good explanation, makes sense. And yes, you were correct, those two nodes do still have to be connected.

Now I’m playing with where do place the BoundingBox.ByGeometry node to get results but coming up short. Clearly I’m making a newbie mistake and/or overthinking it. I thought I was so close :pensive:

I assume your goal is to get the unfolded geometry and redraw it in a drafting view. Converting the unfolded boundary curves directly to detail lines would leave them overlapping. Before drawing the new lines in the drafting view, you’ll want to “move” the roof geometries to no longer overlap. This is where you get the bounding box and determine how far you have to move them.

Sounds so clear and easy when said by somebody in the know!

Yeah everything you stated makes perfect sense to me in theory. Not sure what easy thing I’m not doing but I’m determined to figure it out.

Note to Self:

  1. Select Items to unfold
  2. undiscovered magic to bound/move
  3. convert curves to detail lines
  4. appear in Revit view.

The packunfoldedsurfaces node should pack your unfolded parts onto a plane, given that the height and width of the plane you have specified is large enough. Increase the height and width - this will depend on what units you have set in Revit, and how large your surfaces are.

You should not need to manually layout the parts using bounding boxes, that is what the node does.

1 Like

Hey man

The first issue is that you are tesselating already flat surfaces of the roof, resulting in your roof geometry triangulating. As @Michael_Kirschner2 said, you do not need to unpack the surfaces individually. The Unfolding.PackUnfoldedSurfaces node does that for you. See the dyn file and images attached. This should help.
Good luck


Please mark this answer if it is the solution.
Surface Unfold_Planar Faces.dyn (30.5 KB)


ok, so if I’m understanding you right @Michael_Kirschner2, I should delete the Unfolding._TesselateSurfaces, Unfolding.UnfoldListOfSurfaces_AndreturnTransforms nodes and go straight from the Select Face to the unfolding input on Unfolding.PackUnfoldedSurfaces?

When attempted, it returns an error.

Thanks @bayowindapo for the explanation on the first issue. It makes perfect sense about tessellating an already flat object – not sure why I didn’t think of that. I am also grateful for the sample .dyn you added to help guide me.

When I tried it though it returned this error:

Any idea where I messed up?

I can’t tell where the error is. Try replacing all the nodes I have created with the nodes from your dynamo software.

If this is rookie hazing @bayowindapo I’ll be pissed (and slightly entertained), but ok… doing that now