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

# Revision history [back]

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. Here is the code for that user script, with the relevant section highlighted. 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" hight 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 ti work on more complex geometry.

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

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

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

Select the Scale Tool

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

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 this makes saving quicker if changes are limited on part of the model.

Here is the resulting model opened back in the main OpenStudio SketchUp Plugin.

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. Here is the code for that user script, with the relevant section highlighted. 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" hight 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 ti work on more complex geometry.

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

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

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

Select the Scale Tool

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

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 this makes saving quicker if changes are limited on part of the model.

Here is the resulting model opened back in the main OpenStudio SketchUp Plugin.

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. Here is the code for that user script, with the relevant section highlighted. 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" hight 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 ti work on more complex geometry.

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

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

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

Select the Scale Tool

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

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). names. You can leave "Merge Selected Spaces Only?" dialog to false. On a large model this makes saving quicker if changes are limited on part of the model.

Here is the resulting model opened back in the main OpenStudio SketchUp Plugin.

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. 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 = OpenStudio::Point3dVector.new

# 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
end

# add point to new vertices
newVertices << OpenStudio::Point3d.new(x,y,z)
end

# set vertices to new vertices
interior_partition_surface.setVertices(newVertices)

end


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" hight 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 ti 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

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

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

Select the Scale Tool

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

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 this makes saving quicker if changes are limited on part of the model.

Here is the resulting model opened back in the main OpenStudio SketchUp Plugin.