Truss Plugin/Extension


That is awesome! That is a thought that I had as well, but since you are able to generate a new roof so quickly it didn’t bother me too much. But that would make this app even better!!!

Any idea on when you might get to adding the dormers into the program?


After the plugin was configured to hold the parameters of the previously drawn roof it then became less of a nuisance to have to walk back through the menus and recreate a roof, I agree with that statement.

However, you still have to reselect the three points that define the roof and then the time it takes to click back through through all of the menus is precious time lost, time is money.

With an edit panel implemented you simply change one parameter (or more) and click update.


Dormers have been partially implemented but not fully. The current dormer routine will draw the walls of the dormer but nothing else. So much to do…

The update and close button will be at the bottom or the top of the UI and even though you scroll down through all of the parameters the position of these buttons will not change, this will make it quick to change a parameter and then hit update, without having to scroll back to find the update button, when your done you can either x out of the window or hit the close button.


Why don’t you store the 3 points along with all the parameters.

Additionally - keep the outermost container. Delete the old roof details and then create the new roof details within the outermost container. Then the new roof is created exactly where the old one was - even if the user moved the entire roof.

Then of course the user also has the option of deleting the old roof and creating another.


When I initially create the outermost container (group) I create it at the origin and then translate and rotate it into position based on the (3 points selected).

I could either clear out the contents of the group and create the new roof inside the existing group.


I could get the transform of the existing group, delete it, create the new group and then transform the new group into the correct position and rotation.

The original 3 points don’t have any value in my opinion since the user may have moved the assembly (group) after it was created. I often do this myself if I initially create the roof first and then add in the walls and foundation later.


The same scenario works for my cabinets. The user can move and or rotate them where ever they want. Editing is still simple and does NOT require the user to choose points.

All the information that you require are part of the transform.

We can take this off line if you wish


I haven’t looked at the transform in enough detail yet but I need to figure out how to pull out the rotation and origin, all of which I can probably get from some built in methods. I need to peruse the API documentation a little more.


You shouldn’t need to worry about that. In my extension for my porches I base my drawing off of [0,0,0] in the component. Then I transform the component to place at the position the user requested. I can redraw the geometry using the same code later. If the user moves the location of the component I can redraw the geometry and the location of the component doesn’t change, but stays where the user placed it.


So basically you are using method #1 above which clear out the contents of the component or group and then redraws the geometry inside the existing component/group. This does seem like a more logical method than the alternative I’ve given above.

Realistically this update will take at least two full days of work to implement, hopefully not too much rewriting of the main code base but you never know until you really dive into it.


Basically I’m saying you should be able to use the same code you used to do the initial drawing. Where the actual component is located should not really affect your drawing code.



first grab the transformation of the main container
tr = roof.transformation.clone

Create your roof as you normally would and then move the new roof to where the old one was
Then you can erase the old roof


I simply do.

def draw_roof (comp, properties)
  #create new entities to draw roof using provided properties.

unless @old_roof then @old_roof = comp_from_points(points) end
draw_roof (@old_roof, new_properties)

This is faster than deleting a component and creating a new one. Plus you don’t need to worry about the transformation at all.


It always depends what you are actually trying to accomplish.

In my case the time it takes to perfrom erase_entities takes 0 milliseconds - so why fix something if it ain’t broke.


Trying to get some work done on this today. First though I need to create a library for the truss assembly that specifies every single parameter or user option, so that all of this information is stored for each assembly created. Essentially it is a database, its really quite amazing that you can do all of this within SketchUp, I only wish I knew that the API existed years ago, I can only imagine what I would have created by now.


Making some good progress on the “edit” function. I will initially start with the common trusses and then once I am satisfied that those trusses are running stable I will begin to make this feature available for all other truss, rafter and floor assemblies.

I’m a little bogged down with the advanced options (there are too many) but it is just a matter of putting in the time and slogging through all of the data entry and HTML and javascript. Probably by the end of the week I should have something ready to go and I will roll a release so everyone can begin testing it.


Has anyone had much experience with SIP walls? I’ve been looking at the product offering of Eco Panel:

and I am fairly curious about this product.


Interested as well and looked at a number of products, but not much experience as yet. In the '80’s I worked on one project where we used them (called TUPS panels from Homasote) over conventional framing for just the roof. I keep thinking the right use will come along, but not as yet.


Looks like I have the soffit cut function working for the hip rafter roof:

I will roll this out on the next release.


Version 2.1.6 - 03.02.2018

  • Added Soffit Cut within Advanced Options for Hip Rafter Roofs.


Version 2.1.6b - 03.03.2018

  • Added Soffit Cut within Advanced Options for all Shed type Rafter Roofs.
  • Added gutters for all Shed type Rafter Roofs.