Truss Plugin/Extension


I was working on the hip sets last summer before my neck injury took me out so I’m glad to finally get back to it and at least get one variant knocked out.

I probably should have gotten on to it in January but I was still not feeling 100% so I been only tackling the easy stuff and chipping at those one by one.

I still have all the other variants to complete as well as raised heels, then the plates.

Timber trusses with bolted connector plates is on my hot list as is completion of the attic and gambrel attic trusses.

My full todo list for the plugin is at least two pages of hand written notes so there is plenty more to do.

The holy grail would be to have the plugin convert any complex roof outline (face) into a full truss or rafter roof without any manual editing, that is my target.


Added energy/raised heels for stepdown hip set (3 variants: wedge, slider and vertical w/ strut).

View model here:

Now the possibilities are limitless since you can match the heel height of any other roof (ie. rafter, TJI etc…)

Adding in this feature was not as bad I thought it would be but each truss type in the set must be considered and dealt with separately:

  • Common Trusses
  • Hip Trusses
  • End Jacks
  • Hip Jacks
  • Corner Jacks


I am wondering if any one has some shop drawings for a truss roof like the one below:

I am trying to understand how the trusses are configured where the two roof lines meet at the interior corner.

I’m also looking for a full set of shop drawings for a California Hip Set, I’m seeing a few variations with this hip set I’m trying to determine the most typical way they are put together.


For those not familiar with truss hip sets, here is a primer:

6" raised heel with open end jacks and a drop-in purlin frame.


Version 1.9.3 - 06.25.2017

  • Added Terminal hip set trusses.
  • Enabled advanced options for terminal hip sets.
  • Added energy/raised heels for terminal hip set (3 variants: wedge, slider and vertical w/ strut).
  • Added the option for open vs. closed end jack and single and double ply girders

View model here:

This style of hip set is typically used for spans less than 20 ft.


Here is a model of the L-shaped hip roof I am in question about:

View model here:


I think my love of trusses sometimes blinds me to the fact that most people don’t really care to model the details of their roof. With that being said I don’t think my time was wasted since I have learned an immense amount about programming a SketchUp Plugin and manipulating the API. However, I think it is now time to give the Truss Plugin a rest and focus my efforts on projects that will give me a better return for my investment. I’m not sure what exactly those projects are yet but I’m working on it.


No one ever sees the framing modeling (i use your plugin and love it!) but it gives me confidence to know i am producing a plan that can be built! Your good work is appreciated!


And just reading this thread, and looking at the results, is a pleasure in itself, seeing what can be done with Ruby, the SDK, and other tools.

Increases one’s aspirations!


I agree, programming this plugin has been a blast, even though it has been a lot of hours of coding.

I’m not giving up on its development. I plan on adding features or fixes as requested.

I do have a few loose ends that I plan on finishing up but I will probably switch gears for a while and concentrate on some other plugins and projects that need my attention.


After staring at this image for almost 3 hours I think I’ve devised the straight skeleton algorithm:

It goes something like this:

1.) The user selects a pre-drawn face.
2.) Examine each vertex of the polygon and determine if it is an outside or inside corner based on the angle between the lines on each side of the vertex. Inside corners are always valleys, outside corners are always hips.
3.) Assign a vector from each point extending inward based on the lines on each side of the vertex. The vector direction will always be the same direction as the vector sum of adjacent lines to the vertex.
4.) Create a new array of points moving along the vectors some set increment, there will initially be the same number of points in the new array as the number of vertices in the polygon.
5.) With the new array check for two conditions:
a.) Hip meets hip: Check the distance between points in the array that belong to a hip line, if they are close then use the intersection of the two line to establish the beginning of a ridge.
b.) Saddle Condition: Check valleys with vectors that are negative of each other, there is a possibility that a saddle condition may exist, the details of how to do this are a bit complicated but with orthogonal roofs only 4 saddle condition orientations are possible.
6.) If hip meets hip then create a new ridge vector from ridge point 1 from step 5a. The vector direction will be in the same direction as the vector sum of the two hips. Move a point along the vector incrementally checking against the new array of points until the ridge point is close to one of these other points. The intersect of the ridge line and the valley or hip line will form the 2nd ridge point.
7.) If the intersecting point is on a hip (2 hips) then the ridge is terminal. If the intersecting point is on (2) two valleys then the ridge is again terminal. If the intersecting point is on a single valley then a new vector is created at the 2nd ridge point with the direction 90 degrees from the valley vector, this new vector forms a new hip or flying hip and is added to the new array of points.
8.) In the case of a saddle condition the ridge is non-terminal at both ends. Flying hips will extend from both ridge end points at 90 degrees from each valley.
9.) Repeat steps 4 thru 8 until all points are exhausted from array.

What was missing from my original algorithm was the identification of the saddle condition. It took a visual cue (the zigzag nature of the typical saddle) for me to realize that the saddle condition followed a specific pattern and could be easily quantified and a relatively simple check devised.


Here we go again:

After a dismal turnout for the original truss plugin campaign I never thought I would consider another kickstarter campaign. However, I have recently been contacted by various companies/organizations seeing if I could further develop the plugins so they could use them on a almost daily basis. Based on these conversations I can see there is a real need for this type of modeling and the momentum appears to be picking up.

Another critical piece is my own level of knowledge and skill set with the SketchUp API. After spending the last two years working through the truss plugin I feel that I’ve finally reached a point on the learning curve where I am able to bring a lot to bear and ultimately push the development to a critical mass.

My limiting factor now is only my time and in order to devote more time to the project I need some backing.



Quick Summary of Kickstarter campaign:

The Medeek Construction Library (Sketchup plugins)

Kickstarter Ends: 29 August 2017

The Medeek Construction Library combines following SketchUp plugins:

  1. Original Truss Plugin
  2. Foundation Plugin
  3. New Wall Plugin.strong text


Thank-you, to everyone who is supporting me on this latest Kickstarter Campaign. I’m approaching it with guarded optimism.

There is so much more that needs to be done I almost don’t know where to start some days.

This morning I was thinking about a face/polygon tool for the floor joist / floor truss feature in the plugin. I now have all of the widgets in my tool belt to make this happen. That one should actually be a fairly easy endeavor, I might hit it hard this weekend and see if I can knock it out.

The potential complication with a polygon outline and floor trusses is how best to handle the chase that typically runs through the middle third of the truss. With a polygon outline you will have multiple groups of trusses at different spans, does the central chase typically line up across all these various truss spans. Any clarification or examples on what is typically seen in construction would be helpful.

With I-joists and solid sawn floor joists no such problem exists so it is a simple matter to set this up now that I have the boolean operation problem licked.


I’ve been looking at some floor truss layouts and it appears that within a given truss set or assembly the chase will line up across multiple spans as I have shown here:

View model here:

Generating a new truss component for each separate span is not too difficult, similar to generating a new step down hip truss component every 24". One thing to note is that a polygon outline will only work for floor trusses if the angles are all orthogonal, at least the bearing walls where the trusses terminate.

I’m a little unclear how to deal with the ladder trusses at the transition between different spans, perhaps someone has a 3D model or pictures giving me some clarity in these areas.

It took me about 15 minutes to create this complex floor truss set using the rectangular floor truss tool (3 separate truss sets) and the trim tool, not terrible but it would be so much better if I could achieve the same result in a matter of seconds with no manual editing.

Cutting holes in the floor and having the hole cutting tool able to regen the proper trusses is also a hot item related to this discussion. That would make the floor truss feature actually functional as a real world design tool.

Another issue is multiple chases within a truss set. One central chase seems the most typical but two chases positioned within the central third of the truss span also appears to be quite common. So far I have not seen more than two chases in a given floor truss span, probably for good reason. The ability to create two chases rather than just one is now on the “todo” list.


Tutorial 5: Hip Truss Sets (24:32 min.)


On my Kickstarter campaign there was a recent comment regarding the pricing of my plugins. I have been giving this some thought recently and I thought I might also share my remarks on the board as well:

I agree that there is certainly an argument that I charge too little for these plugins and I have wrestled some with this problem. Others have also privately messaged me or emailed me with similar remarks and recommended that I bump my prices, sometimes tenfold.

The current reasoning behind my low pricing structure can be summarized with the following points:

1.) All of these plugins are currently in a developmental phase. Unfortunately, I have not been able to exert my full time efforts at this development so progress has been slow. I find it hard to charge a “fair amount” for a product that in my mind is still flawed and imperfect. My “todo” list is currently about 60 items and written out covers about 2 pages. To charge a “professional” price requires that one provide a “professional” service or product, I don’t feel like I’m there yet.

2.) I have looked at some of the competition such as Pluspec and others who charge considerably more than I do. Again the sophistication of the their product exceeds my own so the price differential is warranted. But more importantly I’m not a huge fan of pricey design software, that is what has led me to SketchUp in the first place. The SketchUp community in general has adopted this mindset (in my opinion) and I don’t feel that they would get behind an expensive solution.

3.) I am also trying to keep the plugin within the reach of the casual user (DIY’er), someone who simply wants to model up a single house or garage for their own personal use. In some cases the trial version of the plugin(s) will work for that but I have recently limited it quite strictly so any serious design work will require a registered license.

4.) I have also considered a subscription model, but my own distaste of that licensing mode has kept me from going down that road. Once your purchase a software you should be able to use it indefinitely as it stands. Additional payment should only be required if you are requesting an update or added functionality.

5.) What better way to discourage copy cats and the competition to price it too low as to make it worth their while. No one in their right mind will try to recreate what I have done with trusses when the payback is so little and the effort is so large.

With all of that being said I do think that the sweet spot, which still meets the requirements of the above points, may still be a bit higher than what I am currently charging. I need to find the correct amount to charge so that the above points are carefully balanced with the fact that I need to be able to justify the amount of time and effort I spend in developing these products.


I think your “sweet spot” will be highly dependent on how limited the free trial is! Since it doesn’t expire, it can be used for real work on an ongoing basis - if the size limits are large enough.

Actually, calling a size limited version a “trial” is, in my opinion, a bit of a misnomer. Most (perhaps all) the “free trials” I’ve seen elsewhere are time limited as their primary limitation (some also restrict features). What you’ve set up is more in the “freemium” model - where the basic functions are available, but limited in some way (in your case, limited in size) with unlimited size available at a premium cost.

I’d recommend that your free version have the following limits - hopefully easy to enforce/calculate:

  • Only 1 driveway cut for slab on grade foundation.
  • Maximum perimeter of foundation (not sure what it should be)
  • Maximum total top plate length (again, not sure what it should be)
  • Maximum number of internal foundation corners - perhaps 3?
  • Maximum number of valleys for roof truss systems - perhaps 3?

If it were my plugin(s), I’d try to find values for the above that limit the usefulness of the free version to people working on their own - not too complex - building. And then charge appropriately for no limits on the assumption that it will be (mostly) professionals who need to exceed the limits of the free version.


I suppose you are right, the “trial” version is more of a limited version of the software, “crippleware”.

My intent with it is to give the user enough latitude so that they can fully test out all of the features and once they are satisfied with the results they can decide to purchase or not. With the trusses I am specifically limiting the span, other than that all other features are available at full strength.

With the foundations I am limiting the overall dimensions of the stemwall, slab-on-grade or slab.

With the size limits in place it makes it really hard to use the plugin in any sort of meaningful way unless your building dimensions just happen to match the size window I have opened up, so I think this is a reasonably good method of handling this.

I have considered a time limit for the trial version but to be perfectly honest I don’t know of a good way of enforcing this time limit, at least a method that could not be hacked by a resourceful user.


If I ever do build my office I was thinking of doing some sort of cedar siding and then putting my logo or some of my other designs on the exterior:

View model here:

Some of my other designs are here: