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

Revision history [back]

Matt, below is a summary of a variety of options for converting exterior surfaces to ground.

  1. For the use case when surfaces don't need to be split I wrote a measure that takes converts all exterior walls to ground by story. If you need multiple stories the measure can be run multiple times. This could very easily be adapted to take an absolute "z" value in stead of a story. Then it could apply to all surfaces that are completely below the "z" value, or you could write it to trigger if any vertex of the surfaces is below the "z" value.
  2. There is a nice way to split surfaces in the SketchUp Plugin. Normally "Project loose geometry is used for adding fenestration, but it can also be used to split up base surfaces. So if you have a change in material (and or boundary condition) 4 feet up. You can draw a line around your perimeter, raise it to the right height, and then project loose geometry. At this point you still need to change the boundary conditions (either by hand or with a measure). With this approach you could model sloped ground as well. image description

  3. You could write a measure that would split a surface, given a "z" value as an input. For non-convex surfaces you could loop through all vertices. When you two adjacent that straddle the "z" value you can interpolate at what x and y value it crosses and then add a point. This should happen twice or no times (unless you have a non-convex surface which could get more complex). Then you need to duplicate the surfaces, and then delete points above on one copy, and below on the other, then change the boundary condition as part of the measure. OpenStudio does have a built an intersectSurfaces method for spaces, but I don't know that you can directly use that here. You could add in a dummy space (no associated with a zone) that has a big polygon representing the perimeter of the building. You might be able to intersect the model with this (I have not tested this) but it wouldn't change the boundary conditions for you.