Medeek Wall

Wow, that 3D cladding definitely has me fooled. Quite impressed with how you have made this work and your creative implementation of the plugins.

Very nice.

With such an impressive display of the plugins capabilities let’s give you a free renewal on the Wall and Truss plugins. Email me when you get a moment, so I can make that happen.


Good morning,

I think you already have me for the perpetual license, so no worries about that, but thank you! I keep meaning to post more stuff but I get so up caught modeling all day!

1 Like

Version 2.4.0 - 09.01.2021

  • Fixed a bug with spaced headers when applied to trapezoidal windows.

This bug fix only applies to window headers since there are no sloped headers for doors or garage doors. This fix applies to 2-ply and 3-ply spaced headers.

Casey Builds featured the Wall plugin last year (at the end of his video):

@medeek, I’m testing out some Ruby code to create my own custom quantification tool that’ll read your walls…

Correct me if I’m wrong, but it appears as though Medeek Wall is making all the stud groups point to unique definitions, even when they are identical? See image below, I’m outputting the and separated by a hyphen, for each piece of lumber (for testing purposes). I noticed all the studs were Group6, but they are each unique now.

Wouldn’t it be much more efficient to keep identical studs pointing to the same definition, until you know they should be made unique for whatever reason? You could even use the same definition in other walls where the stud size is the same. Corner studs should reference the same definition too, no? Or is it because of the way you draw the studs with the axes being differently oriented that prevents you from doing this?

Also, is there any metadata I can access inside these groups? I’m imagining some attribute that simply tells me it’s a 2x4 or a 2x6, without having to “measure” the group with Ruby. That would be really handy :wink:

1 Like

I do find that a bit strange that they are not all using the same definition. Here is the exact code to create each new stud instance:

new_instance = Sketchup.active_model.active_entities.add_instance(@studcomponent0, new_transformation)
if @Agn = "STUD#{studi}"

if @Layersoption == "ON"
	new_instance.layer = @Wall_frame_layer
if @Matsoption == "ON"
		MedeekMethods.mat_lumber2 new_instance

I’ll have to look at this further to see what is going on.

Yes, each wall panel/assembly has all of this data at your finger tips (within the attribute library). I would download the Eneroth Attribute Editor so that you can easily view this data.

I am also storing a bunch of metadata for stats purposes, so you don’t even need to count stud numbers or get the lengths of the top or bottom plates etc…

1 Like

Oh wow! This is awesome! I’ve never worked with attributes before in Ruby so this is exciting. I’ll grab that Attribute Editor extension and dive in.

From API docs:

Groups in SketchUp are very similar to components, but can from a user point of view be thought of as unique objects. Groups can be instanced when copied but are silently made unique when edited through the GUI. To honor this behavior, make sure to call #make_unique before modifying a group through the API.

I wonder if this is meant as literal? Like, the only way to instance groups is through the copy command? idk, just a thought.

I see those attributes, but what about studs from rough openings? where do those get reported? Also, what is CR_STUDS?

1 Like

CR_STUDS stands for cripple studs (the short little studs above and below openings. The first entry in the array is just a test variable and you can ignore it (ie. delete it when processing the array). I have left it there for now but eventually will probably remove it after the Medeek Estimator is a bit more mature.

The Sheathing, Cladding and Gypsum is pretty self explanatory. The first value is the net area and the second value is the gross (or total) area of the wall.

With regards to window headers, trimmer studs and king studs I use a slightly different method (at least for now, I may change my method in future).

You will notice that within the medeek_wall_param5 library there will be a listing for each window, door, garage door. Within each array for each opening is stored a number of variables that define the opening, from this info you can determine all of the specs on the king, trimmer and headers for a window opening:

Win_geom, Win_loc, Win_width, Win_height, Win_header, Win_headerhgt, Win_sill_num, Win_king_num, Win_trimmer_num, Win_sill_trimmers, Win_ro_offset, Advwinoptions, Win_arch_radius, Win_king_width, Win_trimmer_width, Win_buh, Win_trimmer_extend, Win_pitch, Win_dir

Doors and garage doors are similar. So far no one has asked me about the attribute libraries so I have not published what all of these entries mean but I can push that information out as required. Basically all of the data in the attribute libraries is what defines the wall in its entirety. The meta data is what allows me to regen a wall from scratch. The actually model/group/wall assembly is merely a physical manifestation of this data found in the attribute libraries.

P.S. Note that the naming convention of windows follows a simple pattern (ie. window1, window2, etc…) The sub-group within the wall group also have the corresponding instance name. This comes in handy if you actually need to run some additional ruby on the sub-group after the fact. I actually do this for windows and doors when analyzing and creating the stats for gable, shed and hip walls.

1 Like

Has anyone else modeled EIFS walls with this module? I guess Wall Sheathing 2 can be used for the insulation. Why did I think there was a blue color for rigid insulation included in the default materials?

1 Like

Version 2.4.1b - 09.09.2021

  • Changed the wall justification hotkey/option from the “Tab” key to the “Alt” key (Option key) for rectangular, shed, gable and hip draw wall tools.

I am pleased with the continual and steady progress made on the Wall plugin over the course of this summer. In light of this recent progress and in hopes of allowing more users access to the features of the plugins I will be immediately offering 10% off of the mdkBIM bundle price using the coupon code LABORDAY21. (Sept. 11, 2021 thru Sept. 30, 2021).

This will reduce the bundle price from $280.00 USD to $252.00 USD. This promo code is also valid when purchasing the Wall plugin separately as well as the Electrical plugin. The offer ends on Sept. 30th and no rain checks will issued thereafter.

1 Like

Matt Donley’s presentation sells it, wow!


I’ve been giving the “wall sandwich” thing some serious thought the last couple of days and I think I can implement a workable system however it will drastically change the way I am currently doing things as well as break any sort of backwards compatibility with previous versions of the plugin and their models.

In the global settings I will probably have a select number of options you can choose from to build your custom wall sandwich (I will also have some standard ones pre-defined). Interior and Exterior walls will be different in that you cannot use wainscot and cladding with interior walls. Interior walls can be asymmetric with this new system so you can have different layers specified on each sides of the wall, unlike the current system which limits interior walls to symmetric configurations only.

Exterior Walls:

Ext. Side:

  • Wainscot
  • Cladding 1
  • Cladding 2
  • Airgap 1, 2, 3 etc…
  • Sheathing 1
  • Sheathing 2
  • Insul 1

Int. Side:

  • Gypsum 1
  • Gypsum 2
  • Gypsum 3
  • Airgap 1,2, 3 etc…
  • Sheathing 1
  • Sheathing 2
  • Insul 1

Interior Walls:

Ext. Side:

  • Gypsum 1
  • Gypsum 2
  • Gypsum 3
  • Airgap 1,2, 3 etc…
  • Sheathing 1
  • Sheathing 2
  • Insul 1

Int. Side:

  • Gypsum 1
  • Gypsum 2
  • Gypsum 3
  • Airgap 1,2, 3 etc…
  • Sheathing 1
  • Sheathing 2
  • Insul 1

The actual layering can be in any order except for wainscot which will always be the outermost layer on an ext. wall. I’m not sure that two layers of cladding are really needed for an ext. wall but I’m just throwing it out there for now and see what sticks.

As far as the framing/wall solid is concerned I only plan on having one layer for framing, if I were to change that up to a variable framing layers things would get very complicated with regards to corner configurations so it is best to not get too ambitious.

The items shown are all of the possible layers for each side of the wall in question, one could theoretically enable all of them or none of them, and the number of air gaps is probably not limited.

Am I missing anything? Thoughts?

Perhaps even this system as outlined is too rigid and somehow not flexible enough?

Your feedback now is important, once I install/implement a new wall sandwich system it will be more difficult to fundamentally change it from the form it originally takes.

If you’re going to allow multiple layers of the same “type”, and let users place the layers in any order they want (with the exception of wainscotting), why limit the number of layers within each “type”?

This is in reaction to your listing only 1 “insulation” layer for exterior walls. I can envision, in fairly cold or hot environments, an exterior wall assembly going something like (from the outside in):

  1. Cladding (Hardi Lap)
  2. Rain Screen
  3. 2" Foam Insulation
  4. 1/2" OSB Sheathing (Structural/Shear)
  5. 1" Foam Insulation

In actuality, I’m envisioning #4 and #5 as the single product - ZipR6 Panels. But I have no problem modeling them as separate layers. No need for you to program the case where a single, physical product is - itself - a sandwich (or at least an open faced sandwich)!

The wider point is: Why limit the options? As long as you’re going to redo with a scheme that allows user definition of the layers, why not make it the user’s choice (again, except for the wainscotting)?

1 Like

Your right. What I have above is kind of my first crack at it but I completely see what you are saying here. I am still rolling the ideas around so feedback like this is very valuable.

As I’ve been thinking about it, it also occurred to me that the only real difference between and ext. and int. wall is the wainscoting option. So really there is no difference if the options on both sides of the wall are completely negotiable.

I need a system flexible enough so the user can choose from a selection of possible layers:

  • wainscot (special)
  • cladding
  • sheathing
  • insulation
  • gypsum
  • air gap (special)
  • rain screen

What other layer types would I need beyond the seven listed here?

Each layer will then have the following seven options except for air gap or wainscot layer:

  • Thickness
  • Corner Configuration
  • Vert. Offset Bottom
  • Vert. Offset Top
  • Material
  • Mat. Vertical Offset
  • Mat. Horizontal Offset

Wainscot has its own set of options, and they are many, perhaps just have the thickness defined in the initial wall sandwich (CUSTOM WALL LIBRARY).

An Air Gap would only have a thickness associated with it.

The next challenge is to create an intuitive interface for creating and specifying these wall sandwiches. The ability to move layers around or insert a layer within the sandwich etc… It’s going to take a bit of programming to achieve all of this.

The menu system will start with the Custom Wall Library similar to the Material Library.

You will have three buttons:

  • Copy Wall
  • Add Exterior Wall
  • Add Interior Wall

When you click on one of the add wall buttons then it will open another window where an SVG representation of the wall with be shown (Framing Layer initially). Every wall will always include one layer which is the framing or base layer, everything else is optional.

This menu will then have four buttons:

  • Add Layer
  • Delete Layer
  • Move Left
  • Move Right

As you mouse over the wall graphic either the left or right side of the wall will highlight and be clickable. Once you have selected one of these clickable areas you can then Add, Delete or Move it.

If you click Add Layer then another smaller window will pop up and you can select the parameters for that specific layer and then click submit.

Once you finish building up and modifying your wall sandwich you click the “Save Wall” button at the bottom of the second window and it adds that wall into the library.

The “Edit Wall” function is essentially the same.


For the wall parameters I will be adding one additional parameter called the wall sandwich, which unlike a wall preset is actually just the wall layer definitions as outlined above.

The “Draw Wall” tool will only allow you to used predefined wall sandwiches, the same rule will apply to saving wall presets.

However, once you have a wall drawn and within the Wall Edit menu I think I will allow a CUSTOM option for the wall sandwich parameter which will then expose all of the parameters for each wall layer and they can be further customized. However, this wall will then no longer be associated with any specific wall sandwich.

However, one could always choose from the drop down list at a later time and re-associate any wall with any given wall sandwich, make sense?

The upside of having walls associated with a wall sandwich is that one could then modify a wall sandwich in the global settings and then regen the walls having that wall sandwich and they would all be updated accordingly.

More thoughts?

It turns out Wainscotting is used both on exterior and interior walls, so the only thing special about it is that it needs to be the layer farthest away from the studs.

One more layer “type”" Membrane! For exterior walls, there are usually 2 - Air barrier on the exterior and Vapor Barrier on the interior.

As membrane layers are (usually) so thin compared to the rest of the layers of the sandwich, their actual thickness often isn’t included in the total thickness as, at construction time, a differences of just a few mills is within the margin of error of the measuring devices used by the people who are pounding nails. They will need SOME thickness, otherwise, inside SketchUp, they’ll just be faces that are coplaner wilth one face of their adjoining layers (and hence exhibit Z-Figiting)

Wainscoting on the interior is problematic. What I mean by that is that it is usually a function of the room and not a function of the wall. A wall may span across multiple rooms and one room may have wainscoting, chair rail etc… and another room may not.

That is the reason I created the “Molding Tool”:

However I still need to add an “interior” wainscoting feature to it.

1 Like

Membranes are needed but do they need to be drawn? is there a way to have them in the menu and if ticked then they show up in the materials list for the estimate, size based on the surface area of it’s adjacent layer? Does this make sense…