Question-and-Answer Resource for the Building Energy Modeling Community
Get s tarted with the Help page
Ask Your Question

Change floor height in OpenStudio

asked 2015-03-03 08:04:38 -0500

I've used the "Create spaces from diagram" method, and I entered 3 meters as the floor height, and I modeled number of floors as 6.

After a while, I realized the floor height is actually 3.6 meters for all my floors.

Is there an easy way to do so in OpenStudio?

Using the push/pull tool after going into each of my zones doesn't really cut it.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2015-03-03 11:02:32 -0500

updated 2015-03-03 11:12:42 -0500

So the ideal way to do this, in particular if you want to use it for a parametric analysis is to write a measure. The SketchUp Plugin has a user script to alter the height of interior partitions. You could do something similar to similar for base surfaces and skylights. Here is the code for that user script, with the relevant section highlighted.

# loop over all interior partitions
interior_partition_surfaces = model.getInteriorPartitionSurfaces
interior_partition_surfaces.each do |interior_partition_surface|

  # create a new set of vertices
  newVertices =

  # get the existing vertices for this interior partition
  vertices = interior_partition_surface.vertices
  vertices.each do |vertex|

    # initialize new vertex to old vertex
    x = vertex.x      
    y = vertex.y
    z = vertex.z

    # if this z vertex is not on the z = 0 plane
    if (z - 0.0).abs > 0.01
      z = height

    # add point to new vertices
    newVertices <<,y,z)

  # set vertices to new vertices


The trick to doing this to change floor height is to loop through stories. Then for each story above the first not only do you need to change the "z" height of vertices with non-0 values, but you need to move the space origin up as well do adjust for taller stories below. This would work easily on buildings with vertical walls where base surfaces are not split, but would take more thought for it to work on more complex geometry. Also need to define logic to address fenestration if height is reduced and interferes with existing windows.

Now that I've given my pitch for the measure based approach, below are some screenshots describing how to do this in SketchUp using the experimental workflow user scripts. Note that the experimental script creates raw SketchUp groups. There are no observers with live links to OSM objects; instead layers are used to flag SketchUp groups as spaces or shading groups when you merge back to an OSM. This allows you to use any native SketchUp tools to manipulate it. You can even send it to someone without OpenStudio to alter and return back to you. The modeler is responsible for making surfaces that will make sense to OpenStudio when you merge it back. For example You can't have one window contain in another and expect it to work correctly, and you can't nest one space inside of another.

This is the original model viewed in the plugin image description

Close the model (make new empty one) and navigate through the Experimental Workflow menu as shown image description

Select all objects, or the ones that you want to scale image description

Select the Scale Tool image description

Then drag the top center handle and type 1.2 (to go to 3.6m from 3) Then click return to commit it. image description

Save the geometry back to the original model. Note, that the experimental workflow preserves space names, but re-generates all surfaces, so they will have new names. You can leave "Merge Selected Spaces Only?" dialog to false. On a large model ... (more)

edit flag offensive delete link more



I tried to use the function above but I did not have success on it. I do not know why but the first step (Import OSM file as SketchUp groups) is not working for me. I have a simple two floors building and I want to receuce the wall's height. I tried the scale but it messes up my building when I open the file after saving it. I also saw that there is an code for the user script but I do not know what to do with it. Can someone help me please.

Thank you


lrebello gravatar image lrebello  ( 2015-10-09 14:25:04 -0500 )edit

What happens when you use "Import OSM file as SketchUp groups"? You should get a dialog and then you need to pick an OSM file to import. The script was provided as an example of a user script that is already in the plugin to change interior partition heights. I was proposing that someone could write a user script or measure based on that to change space heights, but it would take some script or measure knowledge to do so.

If you can't figure out why import as groups isn't working, you can also go into each space and hand extrude them, how big is your model?

David Goldwasser gravatar image David Goldwasser  ( 2015-10-09 15:29:53 -0500 )edit

answered 2016-03-16 20:49:07 -0500

mattkoch gravatar image

This YouTube video may help you too:

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer


Question Tools



Asked: 2015-03-03 08:04:38 -0500

Seen: 1,019 times

Last updated: Mar 16 '16