osut

General purpose Ruby utilities for OpenStudio Measures or other OpenStudio SDK applications. They provide key inputs to Measures (or gems) such as Thermal Bridging & Derating (or TBD). Compatible with SDK v3.0.0 (or newer) and OpenStudio Application releases distributed by the OpenStudio Coalition.

Add:

gem "osut", git: "https://github.com/rd2/osut", branch: "main"

... in a v2.1 bundled Measure development environment "Gemfile" (or instead as a gemspec dependency), and then run:

bundle install (or 'bundle update')

As a Ruby module, one can access osut by extending a Measure module or class:

require osut

module M
  extend OSut
  ...
end

The logger module oslg is an osut dependency: DEBUG, WARN and/or ERROR messages may be logged by osut, usually as a result of invalid method calls or bad OpenStudio input. Measure developers can (optionally) choose to continue logging messages from within an osut-extended module or class, e.g.:

M.log(OSut::WARN, "Calculated material thickness > 1m")

... and then decide (at any given stage in the Measure) what to log to the OpenStudio runner, vs an automatically-generated results report (e.g. for code compliance), vs a bug report.

Features

Most of the osut methods deal with OpenStudio geometry (e.g. add & auto-position a front entrance with sidelights and transoms), or with constructions & materials:

  • what is the calculated R-value of a construction?
  • are any layered materials in a construction MASSLESS?
  • which one of these layered materials is considered the most insulating?

The remainder extract useful zoning information from OpenStudio models, e.g.:

  • is a given space part of a CONDITIONED thermal zone?
  • if CONDITIONED or INDIRECTLY UNCONDITIONED, what are its MIN/MAX heating/cooling setpoint temperatures?
  • is it instead a plenum? or otherwise UNCONDITIONED?

Many of these zoning queries are adapted from OpenStudio Standards.

Look up the full osut API here.

OpenStudio-related questions can be posted on UnmetHours.