Replicate Timber Framing Extension With a Dynamo Script

Please I need help with this noble purpose. Maybe you have notice that the legendary extension Timber Framing is no longer available for newest versions of Revit any more. These amazing tool has been replaced with pay plugins… however maybe most users need a tool that give us this very useful functionality for free.

The objective is to create a script that take the geometry of a sloped roof and draw for us the timber framing.

I try to use the real revit’s isoparametric curves of the surface as a baseline to create the beams. But here I found this odd behavior in dynamo. It turns out that the uv system of flat surfaces are distorted in dynamo and this can be seen in the picture below. Anybody can help with an method more affordable to achieve this purpouse. Thanks for your time.

Instead of isocurves on the surface, I would parameterize the curves which define it. Select your ridge, select your rakes, and go. :slight_smile:

thanks for your reply. But if I select thouse lines you said as a reference to develop my script, it will becomes more complex becouse not every time the conditions of the those lines will be the same… for example if those lines get broken, then the whole script will become useless. Instead, the isocurves are uniform across all surface independently of the boundaries of the surface

See if you can build up on this …

roofFraming.dyn (7.7 KB)

spcng = 5;

//Roof Top Surfaces
rfSr1 = List.FilterByBoolMask(elm.Faces,List.Flatten((elm.Solids).DoesIntersect(elm.Faces.Translate(0,0,0.1)<1>),-1))["out"];

//Bottom Edges
rfCr1 = rfSr1.PerimeterCurves();
rfLv1 = Math.Round(rfSr1.PerimeterCurves().PointAtParameter(0.5).Z);
rfCr2 = List.FirstItem(List.SortByKey(rfSr1.PerimeterCurves()<1>,rfLv1<1>)["sorted list"]<1>);

rfPl1 = List.DropItems(List.RestOfItems(rfCr2.PlaneAtSegmentLength(0..rfCr2.Length..~spcng)<1>)<1>,-1);
rfFr1 = List.Flatten(rfSr1.Intersect(rfPl1)<1>,-1);

Thanks!!! I learned a lot of things with your script. But what I feared happened. The problem of using the surface’s boundaries lines is that not always the conditions are the same. When I use openings, the resulting layout is not always the same.

I try to achieve a layout similar to what I would get if I had use the Slope Glazing Roof, wish is correct because I think it follow the real isoparametric surfaces curves that use Revit to construct roof geometry surfaces. What I don’t understand is why Dynamo distort the uv layout on flat surfaces. Maybe the only way is duplicate the roof geometry and create a Slope Glazing Roof and use the grid layout to my script in Dynamo.

1 Like

The Iso-curves aren’t consistent across surfaces.
You could consider to create bounding boxes aligned to the surfaces (the OOTB Bounding Box is axis aligned and won’t serve the purpose here) and then create iso-curves aligned to them.