The plugin shown here allows you to model, manage, visualize and report out detailed room-by-room data



One major hurdle for any building design project is how to manage the enormous amount of data about the building, and how to keep that data updated and error-free throughout both the design and assembly phases. When we consult on Certified Passive House projects this data management can be particularly difficult due to both the huge quantity of data, as well as the requirement for rigorous and careful review of all this data by the Certifiers. This review is important since it provides critical quality assurance for the building owner, but for it can lead to lots of extra time wrangling and checking on our part.

While there are some good tools available nowadays for managing building envelope data for purposes of performance modeling in various 3D BIM tools (DesignPH for PHPP, for instance) we have found that there is still a large amount of information that must be organized for certification which isn’t (yet) built into those available BIM tools. In particular, room-level data such as volume, room-name, zone, HVAC equipment assignments and the like are all critical to organize properly for the certifiers and on larger or complex buildings such as multi-family projects this can become a very difficult and time-consuming task, prone to error throughout.

In the past, we would end up with endless spreadsheets which each sought to organize, calculate and communicate (to the Certifiers usually) one or another aspect of the building. This is fine, so far as it goes, but as part of our overall effort to streamline our workflows we wanted to create a tool where we could use the BIM model as the single data management source in order to improve our process, reduce errors, and make communicating this data much simpler.

To that end, we have created a small plugin for Sketchup which allows a designer to model room-by-room geometry and assign Passive House relevant metadata / tags to that geometry. This tool also includes some basic sorting, filtering, visualizing (material assignment) and of course outputting functions as well. Our goal is to have the 3D model work as the single data source, with calculation and outputting simply pulling data out as needed during the Certification process. Below I’ve outlined the basic workflow and there is a download link at the bottom of the page if you’d like to give it a try.

By the way, in case you think we’re silly for trying to build this into Sketchup rather than use an existing robust BIM tool which already would have some of this functionality built-in, three reasons:

  1. Sketchup is much more affordable than larger, complex BIM tools. We love those other BIM tools (you know who you are), but not all design offices will be able to / want to invest in that level of software.

  2. Sketchup is where we are already building out all our ‘Certification’ models for Passive House work. This is a result of 1) DesignPH being very good, and 2) the other BIM—>PHPP tools being not nearly as functional (yet).

  3. The Certifiers we’re working with for Passive House projects seem (so far) happy to accept and refer to the Sketchup model during the Certification process. Not so much with other BIM model formats.

Room-By-Room Geometry In Sketchup

The fist step in the use of the tool is the creation of detailed room-by-room 3D geometry. This is required in order to calculate several datapoints (net floor area, volume) and this geometry will serve as the ‘host’ for all associated metadata. In our workflow, we’re generally working off CAD drawings submitted by a Client and we like to drop those right into our Sketchup scene. We’ll then create room geometry from that base CAD.

Room-By-Room Geometry Modeled in Sketchup

Once this geometry is created, the plugin requires that you execute a couple steps in order to create ‘smart’ objects from your geometry:

Step 1: ‘Tag’ one or More Surfaces as ‘Floors’

For the types of projects this plugin is normally used on, we are looking for net-interior-floor-area. For Passive House Institute this is known as ‘Treated Floor Area’ (TFA) and for PHIUS its called Interior Conditioned Floor Area (iCFA). The two are actually a bit different from one another, but for the purposes here that distinction isn’t important. For either, there are some ‘weighting’ factors which get applied to floor areas which aren’t fully useful (ie: if the ceiling is <2m high, that floor area is only counted at 50% its actual size, etc…). So we’ve built in a set of weighting or reduction factors which you can apply to one or more surface of a room. Any individual room can have a mix of some surfaces at 100%, some at 50%, etc… and the plugin will take that all into account when calculating the final total room floor area.

First, detailed room-by-room geometry is needed

Typical Sketchup surface modeling. Note that a ‘closed’ room is required in order to calculate volume properly. If you don’t see a volume shown in the ‘Entity Info’ dialog, the room isn’t closed and you need to find the leak point / gap.

The plugin will add some new tools to Sketchup which can all be found under Window / dPH+ TFA or Window / dPH+ Room Data. Here, the right click menu allows you to apply a TFA factor to a selected face. Material assignment is done automatically.

Step 2: Create a ‘Smart’ Room Object

The tool here uses special type of ‘smart’ Sketchup object ( something called a ‘Dynamic Component’) which will then allow us to tag the room with some useful data. While we could of course just create a Component manually using normal Sketchup tools each time we draw a room, the plugin here will speed things up and standardize these objects by applying a pre-set template and structure to the metadata. This standardization will allow us to some useful work later such visualizing, reporting, etc…

Simply select all the faces of the room (triple click) and right-click / Create a New dPH+ Room(s) and it will set up the room following the predefined template with fields set for standard room data.

Select the room’s surfaces and right-click / Create a New dPH+ Room(s)…

Room data can be entered now in the fields provided through the Component Options Sketchup dialog window

If you bring up the ‘Component Options’ panel in Sketchup, you’ll see there are now several standard data entry fields set up on the room. The user will then simply input the data for each field (name, floor level, AHU assigned to room, etc…). You don’t have to fill in any fields that aren’t applicable / known yet and of course you can always go back and edit any of these later.

Note a couple of important things to keep in mind: The Component Options panel requires you to hit the ‘return’ key after your data entry OR hit the ‘Apply’ button on the bottom of the panel. Don’t forget this! If you just click away without ‘registering’ your data any information you entered will be thrown out and you’ll have to enter it again. Just a Sketchup thing I guess.

Also, note that if you select multiple components at once and enter any data in the Component Options panel, it will apply ALL the data in that panel to ALL the components. Meaning, it may overwrite data accidentally on a component in the background. I’ve added several ‘Multi-Set’ tools to the plugin to allow you to select several components at a time and apply only one data field change at a time (ie: set floor level only, set zone only, etc…) to try and get around this issue.

Step 3: Generate Calculated Data from the 3D

Now that you have a functioning ‘smart’ room with some data tagged to it, the plugin can use that data to determine some critical items which you’ll want for your energy model. In particular, net floor area (weighted), volume and air-changes. In order to generate this based on the 3D Geometry, select a room and right-click / dPH+ Room Data / Calc dPH+ Room(s) Data. This will work for a second and return several new calculated fields to the Room object. You can see these fields with a grey background in the normal ‘Component Options’ window.

Select the room, right-click / dPH+ Room Data / Calc dPH+ Room(s) Data to have Sketchup calculate the geometric parameters of the room based on the 3D geometry drawn

If you do anything to the room, such as add a new weighted floor area section, all you need to do is ‘Calculate’ the room again and it’ll update all the relevant data fields in the Component.

If you make a change, for instance adding a 60% ‘weighted’ floor area, simply re-calculate the room and all relevant fields should update.

As seen here, now that the room as a mix of 100% TFA surfaces and 60% TFA surfaces, the effected ‘Room TFA’ is different than the ‘Total Floor Area’

That basic workflow just needs to be done for each room object in the building. Note that most all of tools shown work on either a single room, or on multiple rooms at once if you select more than one (calc room, for instance). Once this data is embedded in the model, we can do several visualization, filtering and reporting operations.

In-Application Visualizations

The tool includes several different ‘styling’ versions which apply various types of materials to the dPH+ Room objects in the model. Note - We’re mostly sure that this material application and styling is restricted to dPH+ Objects only, but before trying out anything here make a backup of your model to ensure that you don’t loss any textures or materials by accident.

For example, through the tool we can view the TFA by weighting factor (yellow=100%, pink = 0%, etc…):

TFA coloring applied to 3D Geometry inside Sketchup for visualization

We’ve also include view options for coloring by:

  • Ventilation Type (supply air, extract air)

  • ERV Unit Assigned to the Room

  • Heat Pump Outdoor / Indoor Unit Assigned to the Room

Coloring by Ventilation Type (red = extract zone, blue = supply zone) based on the Component data entered in previous steps

Reporting / Outputting Data: CSV Data

While in-application visuals are great for data entry and evaluation, as well as error checking, the real reason for embedding this data into the model in the first place is so that once it is correctly embedded throughout the model we can filter and extract it into exactly the format that will be most useful to us for our energy-modeling work. We’ve included a couple outputting options here such as ‘Output All’ which’ll do just what it sounds like, saving out a .CSV of all the data from each room object. By default it’ll sort the rooms based on Zone | Floor Level | Room Number in that order.

In addition to this, we’ve created a special PHPP reporter ‘Output For PHPP ‘Addn’l Vent’ which grabs only the data needed to enter all the rooms you’ve created in the PHPP’s “Additional Vent” worksheet. If you open the CSV and simply copy/paste into the PHPP it should be all set to work without much fuss or additional cleanup. For most larger buildings where this type of data management is most useful we’re using this worksheet rather than just the simplified ‘Ventilation’ worksheet.

Snippet from the CSV created by the ‘Output: Room Data for PHPP Addn’l Vent' ready to be dropped into PHPP

The output CSV data can be easily dropped (copy/paste) directly into a PHPP Energy Model file.

Note that there is also a ‘Units’ converter to go from IP (the default which is used whenever you create / calc a room) to SI if needed. Frustratingly the Dynamic-Component objects in Sketchup do not support automatic area / volume unit conversions based on the native Sketchup environment settings - meaning, if you change the units in the ‘Model Info’, the Dynamic-Component can’t/doesn’t update area of volume data. So you have to do that manually when required using the tool here.

Reporting / Outputting Data: Associated Drawings

The other item which needs (usually) to be output from the model will be some sort of linked 2D representation showing the data in an easy to read graphical format. For this, We’ve been using Sketchup’s sister application ‘Layout’ which is why we’ve built all of the tools here using ‘Dynamic-Components’. These special component types are the only ones which are able to (as of Skp 2019) pass data from Sketchup over to Layout for tagging / notes. Within Layout, just set up sheets as normal for the project and add dimensions or other overlay as usual. Most importantly though, any notes can be linked back to the 3D model data. So if the model changes, the Layout file / drawings will also change and update accordingly without manual note entry by the user.

Example of the kind of Sketchup ‘Layout’ drawings generated from the 3D room-by-room model. These are typically required by the Certifiers we are working with for Passive House projects.

The key thing to make this work is to use Layout’s ‘AutoText’ feature. On the above example, all of the notes and data shown on the plan view are generated by these ‘AutoText’ tags. If you look at the ‘live’ tag, its actually structured as:

Layout’s ‘AutoText’ formatting is used in the notes to ‘link’ back to the 3D model. Note that ONLY data that is part of the ‘Dynamic Components’ attribute dictionary is available for use in these tags. If you added custom data to a different attribute dictionary that won’t be able to be used here.

Layout uses angle brackets “<…..>” to connect the note to the Dynamic-Component attribute dictionary where all the associated data lives. Note the small blue down arrow at the bottom of the text tag though - you can also access all the available data through this user-friendly widget so you don’t have to enter it as straight type, though you may if you wish / find it easier. You can also easily copy and update the note format or data by just editing the text tag.

Unfortunately, it’s not perfectly ‘smart’ - it still doesn’t recognize units and as far as I can tell you can’t set up a text ‘template’ which is globally updatable. But it still does a good enough job of reaching back to the 3D model and pulling out the critical data and cleanly updating it as needed whenever the 3D is updated.


Unzip the above file and simply add the unzipped contents (file ‘bt_dPHPlus_rooms_Load.rb‘ and folder ‘bt_dphPlus_rooms‘) to your Sketchup ‘Plugins’ directory (ie: on mac OS: …/Library/Application Support/Sketchup 2019/Sketchup/Plugins…)

Note that this plugin has been tested and works on Sketchup 2016 - 2019 on Mac OS. For earlier versions of Sketchup or other OS types, it may work fine but it has not been tested. It is strongly recommended to create a copy and backup of your working .skp file and test this plugin to be sure it works before ever using it on any actual work/project file. We make no guarantees and take no responsibility for any errors or issues that may arise from use of this plugin.