Development and Updates for the Medeek Wall Plugin

Started by Medeek, March 04, 2017, 08:59:31 PM

Previous topic - Next topic

0 Members and 72 Guests are viewing this topic.


The diagrams were not very legible so I created a few details to explain the skirt board end configurations:

Nathaniel P. Wilkerson, P.E.


Some feedback on the other forum with regards to additional height requirements if a finished floor is installed has introduced some complications.  I have given this some extra thought and my observations are thus:

1.)  Where wall-to-wall carpet is being installed the way I have it laid out seems to be correct.

2.)  The first point you select to position the stairs is the "Finished Floor" height.  So if you need an extra 3/4" for a tile or wood flooring you would select a point that is 3/4" higher than the sub-floor.  However, if the skirt boards are supposed to be installed prior to the final flooring then this would not be quite correct since they (their horizontal cut) would need drop 3/4" so that they meet the top landings subfloor.

3.)  Similar sort of issue at the bottom of the stairs but slightly different.  In this case the stringers will rest on the sub-floor, the bottom tread needs an extra 3/4" of rise, and the skirt boards will probably rest on the sub-floor/slab as well. 

Question:  Will the skirt boards always rest on the sub-floor or should they rest on the finished floor?

Conclusion:  I need to add two extra parameters to the module to account for an additional thickness due to finished floors being installed.  Since the finished floor on each level may be a different height (or carpet) we need a separate parameter for top and bottom.  If I include a finished floor offset, the correct way to select the points for the stairs would be sub-floor to sub-floor.

- FF Offset Top  (default to zero or 3/4"?)
- FF Offset Bottom  (default to zero or 3/4"?)


In addition to the three parameters for the skirt boards mentioned above:

* Terminal Height Top
* Terminal Length Top
* Terminal Height Bottom

I will also need to include an offset parameter for the skirt boards since we can't be sure that the designer will want to install the skirt board directly onto the sub-floor (it might rest on the finished floor).  Actually these parameters should be simple YES or NO parameters (with the offset equal to the finished floor offset from the parameters above) but there may exist a situation where the skirt board may be slightly lifted off of the finish floor so they each need to have a dimension associated with them.

- (Skirt) FF Offset Top  (default to zero)
- (Skirt) FF Offset Bottom  (default to zero)
Nathaniel P. Wilkerson, P.E.


The highlighted yellow areas are the new additions to the stair menus (draw/edit):

Nathaniel P. Wilkerson, P.E.


Here is a situation where the finished floor is 2" off of the bottom sub-floor (slab):

Note that the riser heights are correct and that the bottom riser has an additional 2" added to its height.  The question I have is what to do with the riser board itself on this bottom tread?

I've shown it in the configuration where the finished floor can be applied underneath the riser board however is it more common just to extend the riser board to the bottom of the stringer so that it rests on the sub-floor or slab?
Nathaniel P. Wilkerson, P.E.


Looks like I've got the finished floor offsets for top and bottom working correctly and also the side spacers:

Note the overhang of the tread and risers, the gap is either just the gypsum gap or gypsum gap + skirt thickness.

The way it is setup now, you will want to specify the top and bottom points on the sub-floor.
Nathaniel P. Wilkerson, P.E.


Version 0.9.9n - 11.25.2018
- Added the following options to the stair module: side spacers, skirt boards, finished floor offsets.

When selecting the points to define the stairs you will want to pick sub-floor to sub-floor now that the finished floor offsets are enabled.  Stairs created in version 0.9.9m are not backward compatible with this latest version as I have made too many updates and improvements to the code.

Keep sending in your ideas on how to make this module better.

I will be moving back to work on the gable wall module and giving this one a rest for a while unless there is an unresolved bug or critical fix that needs attention.  I have a separate "todo" list just for this module.
Nathaniel P. Wilkerson, P.E.


On a related note I am wondering what the best text book on stair construction is that is out there.  I am not looking for traditional designs or methods per say but would like to have a practical text that covers modern methods and materials.  I would like the stair module to handle 80-90% of most stair designs that are utilized in your typical mid-range homes. 

The elaborate mansions with their spiraling and flaring staircases are probably beyond the scope of the stair module at this time.  If that type of staircase is required I would strongly suggest more specialized stair plugins such as Garry Kernan's Stair Maker. 
Nathaniel P. Wilkerson, P.E.


Version 0.9.9o - 11.26.2018
- Completed the Stairs tab within the global settings.
- Added the ability to draw a "Clearance Envelope" with an additional global parameter for specifying the minimum headroom.
- Added a Building Code layer and an Engineering layer to the Layers tab of the global settings.

The clearance envelope (if enabled) is placed on the "code" layer.  For future reference all code related items and warnings will be placed on this layer.  The engineering layer will be used for engineering callouts, warnings and other related items.

The envelope is placed exactly and if the nosing is rounded then the envelope is translated a specific amount so that the tread line is tangent to the nosing.  If anyone is interested the horizontal translation is given by this expression:

x_trans = r/tan(theta) - r/sin(theta) + r


r = radius of the bullnose or 1/2 tread thickness.
theta = angle of stringer from the horizontal

Hopefully the clearance envelope is useful to designers who want to check that their framed openings for their staircases are code compliant.
Nathaniel P. Wilkerson, P.E.


Now that I'm about halfway down this rabbit hole (stair module), I should probably go a bit further.  Most stairs need a hand rail:

Additional advanced option:  Handrails (Yes or No)

Then the handrail options shall be:

1.) Profile: Circle, Square, Custom1, Custom2 etc...  (or any user defined profiles from sub-folder)
2.) Position:  Left, Right, Both
3.) Height:  36" (default), vertical distance from tread line to top of handrail.
4.) Size:  1.5" (default), only applicable to circle and square profiles.
5.) Clearance: 1.5" (default), distance from inside edge of handrail to wall (gypsum).
6.) End Treatment:  Cut/Vertical/Return (return shown above)
7.) Handrail Material:  Default materials and custom materials from library

I think these seven parameters are enough to define a basic handrail(s) for a straight run of stairs as shown.  The option to have a vertical end treatment will allow the user to insert newel posts, however I am not really giving the option to customize where exactly the handrail will terminate so there may be some manual editing required.

With regards to manual edits, similar to the wall assemblies, the user can include custom groups or components within the stair assembly group and have them retained simply by including the text "custom" or "CUSTOM" somewhere in the instance name.  If the stair assembly is then edited or regenerated by the plugin these custom entities will not be blown away but will maintain their position and properties within the main group.  So theoretically one could insert any number of items such as balusters, newel posts, additional molding etc...
Nathaniel P. Wilkerson, P.E.


There have been a lot of upgrades the last few months and as many of you know when you upgrade you lose your custom materials and also your presets.

The problem with the way it is currently setup is that this data is being stored in sub-folders within the plugin folder.  When you uninstall the plugin the Extension Manager will blow away the entire plugin folder and also all of the custom data within your sub-folders.

Currently to maintain your custom library copy the sub-folder "library_mats" in its entirety to some other location on your computer.  Once you've installed the updated version then copy your library_mats folder back into the plugin folder overwriting the default library_mats sub-folder installed by the Extension Manager.  This will restore all of your saved custom materials and associated JPEG and PNG images.

This same method can also be employed for your wall presets, by copying the "preset" sub-folder and restoring it after an upgrade.

Please feel free to contact me directly via email or phone if you have further questions on this matter.
Nathaniel P. Wilkerson, P.E.


I will include some typical handrail profiles:

The part numbers shown are from LJ Smith and should coincide very closely with their exact geometry from their shop drawings:

I have contacted them in hopes that they can provide me exact DXF or even SketchUp files so that I can include their full handrail profile line within the library.

Adding your own custom profiles is as simple as dropping your SketchUp files into the library/handrail sub-folder.

If you have some accurate profiles that you would like added to the plugin please contact me, I reserve the right to edit any profile for accuracy and/or not include it.
Nathaniel P. Wilkerson, P.E.


Some of these profiles are rather complicated and will add a bit of weight to the model but surprisingly the performance was much better than expected:

A good example is the LJ6010 profile shown above, with something like 80 line segments making up the profile. 

On a related note I am just about to wrap up the handrail piece of the stair module, however I am looking at the end treatment where the user selects the "RETURN" option. 

For a circle profile I typically see a radiused return rather than just a 90 degree return however I am curious as to what the preference is or if there is a typical solution here.
Nathaniel P. Wilkerson, P.E.


Version 0.9.9p - 12.01.2018
- Added handrails to the stair module.

I rewrote a good chunk of the stair module this evening so this release probably resolves some additional issues with metric templates, as such I consider this version a critical update.
Nathaniel P. Wilkerson, P.E.


I've been looking at a lot of stairs and handrails the last couple of days and I've noticed that at that the top of a run of stairs with open treads the handrail often terminates in a single riser or two riser gooseneck.  Usually the two riser gooseneck is used where the handrail takes a ninety degree turn at a landing and then proceeds up another flight of stairs.

The single riser gooseneck is a bit confusing to me though.  I guess it is used so that the handrail can transition to the landing rail height before it encounters the landing newel post.

Using a follow me algorithm is really not to difficult to generate the gooseneck:

What is the typical radius of the gooseneck (up-ramp)?

I've found some interesting and helpful information here:

I was wondering what to do about a handrail on a partially open stairs, now I know:

P.S.  After some further reading it appears that a 4" difference in height is fairly typical between the landing/balcony rail height (38") and the stair handrail height (34").  This explains the need for the gooseneck fitting.  I learn something new everyday with this plugin.
Nathaniel P. Wilkerson, P.E.


This last week I've also had quite a few inquiries about including metal studs (CFS) within the plugin.

Unlike wood framing, metal framing (studs) has a more complex profile (c-shape) with numerous cutouts for wiring/plumbing.

Could one represent metal framing with a simple rectangular member (like wood) but somehow texture it in such a way so that it looks like a metal stud?  Would this be acceptable to those designers that utilize metal framing?

What level of modeling detail is optimal for metal framing?

If you add too much detail and the model becomes heavy.  Obviously one would not show every bend and corrugation in a steel stud  (added to increase stiffness), however even modeling the stud as a c-shape with a lip involves quite a few more polygons than a simple rectangle profile (12 faces vs. 4 faces).

Then there is also the possibility of not modeling it as solid at all but just as edges and faces, so that the thickness of the steel is not represented.  This would certainly cut down on the number of polygons but would break from my long standing practice of representing everything as 3D solids.

I typically use the pushpull or followme method to generate geometry within the API, however an edge/face type model would require a new approach to modeling.

I am open to suggestions.
Nathaniel P. Wilkerson, P.E.