Project

osut

0.0
The project is in a healthy, maintained state
General purpose utilities for OpenStudio SDK users
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.1
~> 13.0
~> 3.11

Runtime

>= 0.3.0
 Project Readme

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')

Recommended use

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.