top of page
OpenStudio Intro-thumb1.png

OpenStudio SketchUp EnergyPlus - Misc. Tips December 12th, 2021


1. OpenStudio SketchUp - Orphan Geometry and Boundary Conditions

In this video, we will show how to locate geometry with errors and eliminate orphaned objects.  We will also discuss how to fix boundary condition issues where surface matching does not work.

Today, I am going to show you how to resolve two common errors that you will encounter when modeling with OpenStudio and SketchUp.
Let us reload the model.
You will notice that there are two errors that pop up.
It says that the subsurface is not contained by its base surface. It cannot be drawn.
Face 65 and face 69. Let us remember what those are called.
We will go to the search surfaces filter tool at the top.
Search for it. Face 65.
I am going to drag this out of the way so you can see.
It looks like there is nothing there. I will unhide it and I will search again.
It looks like there's nothing there.
This is an orphaned piece of geometry.
Somehow, it is a left over from an artifact of editing the model.
It is still located in inside the OSM file, but it is not actually part of the model.
We need to go to the project file folder...I'm sorry...
Go to the OSM file and edit it with a text editor.
Search for that object. Face 65.
You can see that it shows up in our OSM file, but it is not showing up in SketchUp.
This is an orphaned piece of geometry that we can delete from the OSM file.
Let us do the same thing for the other object. Face 69.
We will delete this from the OSM file as well. Save it. Close the text editor.
We will reload the model.
There. You can see that it resolved those errors.
Another issue I will show you is boundary conditions.
Go up to the filter tool and render by boundary to condition at the top right.
Here. Click it. This shows you the boundary conditions of the surfaces.
We will use a section plane to take a look at it.
You can see that on this section plane, most of these interior surfaces are green.
That means they have an adjacent surface that they are connected to.
We will edit this space. (Double-Click) You can see that this surface is green.
If you edit the adjacent space, you can also see that this is green.
Let us take a look at the inspector tool at the top.
We will try to minimize this. Let us edit this space.
We will select this surface. This surface is called Face 84.
You can see that it's outside boundary condition object is Face 41.
If we edit the adjacent surface, you can see that adjacent surface is Face 84.
This is Face 41.
Let us take a look at these surfaces. You can see that this interior surface is blue.
So is this interior surface. These are two different spaces.
Let us take a look at this space here. Office 112.
You can see that the surface name is Face 89, but it doesn't have a boundary condition object. It is blank.
Let us remember that. Face 89.
Edit the adjacent space. The shower room. Edit this surface. Base 28.
You can also see that it doesn't have a boundary condition here..
Drop down this menu. Search for Face 89. Select Face 89.
You can see that it automatically turns green to show that it is now connected to the adjacent room. Face 89.
Face 89 is also linked to Face 28.
Likewise, you will note that we also have interior doors and interior windows.
We also have to link those interior doors and windows to adjacent surfaces to create boundary conditions.
This Face 89. Face 90. Excuse me.
We need to link this object to Face 90.
Now, you can see that the interior door is is linked to the adjacent space.
That is how you resolve those two issues.
Thank you. Please like and subscribe!

2. OpenStudio SketchUp - Separating Thermal Zones

In this video, we will show how to use SketchUp to separate large open spaces into thermal zones.

We have a building here that was modeled based on the floor plan.
We will hide the roof and take a look over the top.
We will hide this plenum here too. These are the rooms based on the architectural plans.
What we really have for HVAC zoning looks more like this.
We will work on RTU-2 zone, right here, for now.
You will notice that RTU-2 serves this entire space on this side of the building.
We only have these zones grouped up into rooms right now. Based on the architectural plans.
There is actually no wall here.vv
For our energy model we need to have a wall there to isolate this thermal zone.
We will edit the model to separate this room from this room. This thermal zone from this thermal zone.
First, we will go to camera and turn off perspective view.
Then we will select this space.
Use the Move tool: we will select a corner of it and we will hit the control button to copy.
Copy it up here.
This takes a minute for Sketchup.
Now we need to separate that out. Double click to edit this copied space.
Select everything up to this point to delete.
We can select this to delete and this to delete. This to delete. Delete.
We will just do this here. We will draw a line connecting this edge here.
This edge here. Then we need to draw a line down connecting these two to separate those.
That should split those off. We will go back to overhead view.
Now we should be able to delete this. We have an intact portion of the building.
Back to overhead view. We will select out of the active.
Likewise, we need to sever off this portion of the zone. Same procedure.
We will draw a line severing this portion.
We also need to sever the windows. You need to be very careful where you place your end points.
Make sure that it severs it properly. Now we can delete this.
Double check that we got everything.
Select out. Once you are done, you can just move the new zone into place.
Use the move tool.
Again, you need to make sure that you select the proper place.
You don't want to select this endpoint. We are selecting this endpoint to move.
You need to be very careful what points you are selecting and matching up.
Go back to overhead view. Now this space is severed from this space.
We have two thermal zones. Thank you. Please like and subscribe.


Separating Thermal Zones

3. OpenStudio SketchUp - Boundary Conditions

In this video, we will discuss surface boundary conditions.  We will show how to use SketchUp to filter for and edit boundary conditions.

Quality control items for checking your model.
Check the boundary conditions of the surfaces.
Right now, I have this model set to render by surface type. This is pretty standard.
You can see that roofs are a dark red color.  Walls are yellow color.  Floors, gray.
Switch to render by boundary condition.
You can see that it changes the colors.
The floors are a dark beige.  Walls, light blue.  Roof, dark blue.
You can see that this one stands out. Inspect this item.
Go to the inspector tool...
Let us use the info tool. You can see that this is surface 47.
Let us click into this space. Click this surface 47.
You can see that the surface is specified as a roof/ceiling.
But, the outside boundary condition is set to ground.
This makes sense. It is a gray color.
You can see that the floors are gray color. Gray is a ground boundary condition.
So, we need to edit this. We will change it to an outdoor boundary condition.
We will change this to outdoors.
You will notice that it has changed to a light blue color.
That is because there are several other boundary conditions that we need to consider.
The Sun Exposed boundary condition...It says that there is no Sun, but this is a sun exposed roof.
It will be sun exposed to the sun.
It will be also wind exposed.
We will edit those conditions.
Do the same thing for the other surfaces that are wrong.
You will notice that this overhang is designated as a ground exposed, outside boundary condition.
This is actually exposed to the outdoors.
It is not sun exposed. It will be wind exposed.
We should change those boundary conditions.
We will do this for the other surfaces that are incorrect. Check those conditions that seem to be wrong.
Thank you. Please like and subscribe!

Boundary Conditions

4. OpenStudio Tips - Quickly Edit Multiple Schedules

In this video, we will show how to quickly edit multiple schedules at the same time.

Today we will discuss how to quickly adjust multiple schedules.
Go to the schedules tab.
We have multiple different schedules. Lighting schedules. Occupancy schedules.
There are various different priorities throughout the year for these schedules.
For some of them, we want them to be the same.
We will look at this one here. You will note that it has the year starting on January 3rd.
But there are some schedules that start on January 1st.
If you look at January 1st, it is a a weekend: Sunday.
If we look at this schedule, you will note that this starts on the third.
We actually want to start it on the second. This is a weekend. This starts on the third as well.
We want to start it on the first. We will start all of these on the first of the year.
This issue is found in all of the other other schedules. They are starting on on the third instead of the first.
We want to open up the OSM file with NOTEPAD++.
We will search for this schedule rule. You can see that this schedule starts on the first month of the year. The third day of that month.
We want to change that to the first month of the year and the first day of that month.
Go to replace. We need to type in the new line code "\r\n".
We will select the third day. So, we are trying to find this and we will replace it with this.
You want to make sure to select "wrap around" and "extended search mode".
Click "replace all". It goes through the whole file and replaces all of those occurrences.
It says there were 29 schedules that were changed from January 3rd to January 1st.
Save the file. Go back to OpenStudio.  Click "Revert to Saved".
We will go to our schedules. Go to the library light schedule.
Check that it was corrected. You can see that it was changed to January 1st.
That is how you adjust multiple schedules at the same time using a text editor.
Thank you. Please like and subscribe.

Quickly Edit Multiple Schedules

5. OpenStudio EnergyPlus - Measure Writing 1

In this video, we will discuss what OpenStudio measures are, how they are used, and how to create your own measures by coding using Ruby programming language.

Today we will talk about OpenStudio Measures.
Take a look at the Measures tab.
First, let us discuss how OpenStudio creates your energy model.
OpenStudio gathers all of the inputs from each one of these tabs.
These input variables that you input into the model. And it creates an .OSM file. This file right here.
This is the input file for OpenStudio.  This input file has all of the schedules, all of the equipment, all of the zone assignments.
Basically, all of the inputs for the energy model.
Then OpenStudio runs it through a translator.
It translates that OSM input file into an EnergyPlus input file.
The EnergyPlus input file is very similar. You can find it by going to the project folder. Go to the run folder. Select the in.IDF file.
IDF is an EnergyPlus input file. If you open it up, it looks very similar to the OpenStudio input file.
But, OpenStudio does a lot of shortcuts.  Shortcuts that to make it easy for the user to create the energy model.
After you input the information using the OpenStudio graphical user interface (GUI), OpenStudio has to translate these inputs to EnergyPlus.
It has to expand those shortcuts.  Fill in missing information. That is what the translator does.
It changes the OpenStudio input file to an EnergyPlus input file.
EnergyPlus input file is very similar.
It has all of the object definitions. Walls, insulation, equipment, schedules, etc.
The IDF file is used strictly for the EnergyPlus simulation engine.
EnergyPlus uses that input file.  It does all the physics based calculations necessary to create your energy model simulation.
Then, it spits out an output file. The output file contains the information that you see when you go to the Reports tab.
Now, stepping back to Measures.
Energy modelers use measures to automatically edit some of the input variables on the input file.
And, they can edit some of those inputs  that the OpenStudio interface does not have.
You can download these measures from the building component library.
We will look at hvac-ventilation.Let us see. Whole system-distribution.
There are different measures that you can use. This measure right here. Air wall zone mixing creates an air wall on your OpenStudio model.
You can tell that it is an OpenStudio measure because it has the OpenStudio logo.
Conversely.  Add zone mixing object is an EnergyPlus measure.
This measure adds a zone mixing object on the EnergyPlus file.
This EnergyPlus measure is applied after the OpenStudio input file has been translated to the EnergyPlus input file.
So, there are two different measures that you can write. (Actually, three if you include reports)
Basically, these measures go into the input files and they change some of the parameters.
If you want to change all of the walls in your model to...maybe..."sun exposed".  The measure program goes into the input file and this parameter right here.
And it is automated.  It will change all of the walls in your model to have that input characteristic. (ie. Sun exposed)
Basically, a measure is a short script of program that opens up the input file and changes some of the input parameters.
It can also transform your model.
For example. Some of some of the measures are used to completely change the systems in your model.
For instance. If this model has a regular rooftop hvac system and you wanted to replace that entire system with a chilled water variable air volume.
You can use this advanced energy design guide measure.
You can you can download those from the building component library (BCL).
Today, we are going to show how to write a simple measure.
We are going to start with an input object that OpenStudio does not support.
It is an input object that EnergyPlus uses. We will go to our air loop.  We have a return fan here.
This return fan has a lot of inputs on it, but there is one particular input that OpenStudio does not have.
If we go to the EnergyPlus input output reference manual. You will see that one of those inputs is called Design Return Air Flow Fraction of Supply Air Flow.
You can look over on this...Oh, I am sorry. This is part of the air loop...yes, Air Loop HVAC.
If we select the air loop hvac; look at the inputs in this pane.
On the properties pane. You will not find that particular input. It is not available.
It is not supported by OpenStudio. So, we will create an EnergyPlus measure that inserts this particular input into the IDF file.
Essentially; after OpenStudio translates this to an EnergyPlus input file, this measure will insert this return airflow fraction of supply air flow variable.
This input variable limits the return fan to a maximum airflow.
A maximum airflow ratio of the supply fan.
The system will provide full supply airflow from the supply fan, but the return fan only returns a fraction of that flow.
This assumes that elsewhere in the building there are exhaust fans pulling some of that air.
So, the return fan is not returning the full flow of the supply fan.
To do this, we need to go to...
Let us go to measures. We are just going to copy one of the measures. We will modify it for our purposes.
I do know that this add zone mixing object has some of the items that we need to modify.
We will copy this and we will rename it to our own measure.
Select the object. Select x2; copy selected measure. Add to my measures.
We will rename this: "edit return air flow fraction".
This is just a description of what this measure does.
This modifies the design return air flow fraction of supply air flow from the default of one.
Next, we need to edit the modeler description. This describes any specific details the energy modeler needs to know. How how this measure might affect his / her energy model.
How it should be implemented.
This measure puts a maximum on the return air flow.
Next, we need to specify what type of measure it is.
This measure will be adjusting the EnergyPlus input file.
The taxonomy will be an EnergyPlus measure.
This is just HVAC-whole system measure.  Because it affects the whole HVAC system.
These are the intended tools. You can apply the measure now using the apply measure now tool.
You can run it in the OpenStudio measures tab.
Or, you can run it in the parametric analysis tool.
We will just keep these as they are.
This yeah...we will just leave those as they are.
When you are done, click create measure and open for editing.
It automatically drops the measure into your personal OpenStudio measures folder.
The folder is located in your user folder. We want to open this.
I would recommend editing these with notepad++.
Notepad++ has additional features that are helpful for editing programming code.
It has some features that aren't available for just a regular notepad application.
This opens up the program. It is a Ruby program (Ruby programming language).
It has the typical disclaimer.  Free to use information. Basically saying that there is no legal liabilities or anything.
The code starts out with some of the stuff that has already been renamed based on the inputs that we just did.
This measure is “edit_return_airflow_fraction”.
It starts out with a class. All of this stuff has already been edited for us based on that that description we just typed.
Here is our description. Here is our modeler description.
All of this stuff has been automatically added to the program.
Then, the program starts with defining arguments.
Arguments are the inputs that the user will input in the OpenStudio GUI.
Let me show an example. We will drop this “add zone mixing object” measure into here.
We will click it. These are the arguments right here. They are the user’s inputs for the measure.
This is just an example.
We want to change some of these. Just looking at this one here.
This has zone name. We will replace this with airloop_name.
We will call it...instead of calling this zone_name, we will call this loop_name.
We want to select it. You can see it highlights all of them.
Copy. We will find and replace zone_name with loop_name.
We will replace all of those in this program.
With the display name this is...this says...This variable is going to be zone with exhaust.
You can see that this is what the display name is right here. "Zone with exhaust"
Here we want to change this to something like “air loop with return fan”
That is what this does. This creates a variable called “loop_name” and it sets this this argument field right here so whatever the user puts in.
It will push that string to this variable loop_name.
We will edit some of these comments too. This is just a comment.
You can see all the comments. They are denoted by a hashtag.
That means they are not part of the programming code. It is just a comment by the programmer.
It tells who ever is reading the program what this part of the program is doing.
We will call this the name of the air loop to be edited.
We don't need any more names. We can delete this.
I do not need any more names. We can delete that.
The next thing we need is something like a variable. A number.
Like this design zone mixing cfm.  CFM is an airflow number, but we will be using a percentage.
It will operate the same as the airflow value. It is a number variable.
We will change this to...well...we will do this comment here.
This will be the design return air flow fraction of supply air flow.
It will be a ratio. A percentage. We will rename this variable here. Design...instead of design level.
Replace this with “return_fraction”. Replace all return_fraction.
And this...instead of a string. The loop name is a string, so that would be the name of the air loop.
This is a makeDoubleArgument. A double is any real number.
You can go to the measure writer's reference guide on the OpenStudio website.
It will give you a lot of pointers on how to do some programming.
We will find double...double is any real number. It is a decimal number. So, it is 1.0, -1.5, or 50.5, etc.
We are creating a variable return_fraction. It is a double.
This "true" here. I forgot to mention this "true" here.  It means that it is a necessary user input.
The user must fill out that field in order for the measure to run.
The user must supply this information in order for the measure to run.
If the user does not specify something in those fields, and it's marked true, then the measure will not run.
Sometimes you will have variables that are false. That means that it is optional.
The user can fill out those fields. Or not.
The next line down, return_fraction.setDisplayName. Again, this is the display name.
We will call the display name "Return Air Flow Fraction".
That will be what is displayed on the GUI.
It will be what is displayed right here. It will be "Return Air Flow Fraction".
The next line down is the variable that the user will set and...oh i'm sorry. The units.
For this example it has units of CFM.  In our case, it will be a percentage.  From zero to one.
We will put percent symbol here. That is all for the arguments part.
Now, we will go down and define what happens when the measure is run.
This sets up the actual run for the measure. This is where the program modifies the input file.
This is all the operations that the program does to change your input files.
Since we are editing an EnergyPlus input file, we are working in "workspace".
If we were working on an OpenStudio measure, it would be called "model space" I believe...It is either model space or model...
Sorry. Here we go. Yeah. Every measure needs a "model" or "workspace". Workspace is for editing the EnergyPlus IDF files.
Model is for editing the OpenStudio OSM files. We are working on an EnergyPlus model, so we will be using "workspace".
Next, there is a default "built-in" error checking. This just checks the program or the arguments for errors. We will just leave this as it is.
Next, this assigns the user inputs to variables within this run loop.
This is the run, so we need to take these variables up here and assign them to variables within this loop here.
We have already renamed some of these. loop_name. We have that. We can delete the schedule_name.
return_fraction. We have that. We do not need this source_loop_name.
We only had two variables. The loop_name and the return_faction value.
We have taken our argument variables and we have assigned them variable names within this run loop.
Let us look at the next one. Reporting initial condition of model.
This is going out into the IDF file and it is compiling all of the ZoneMixing objects into an array called zone_mixing_objects.
We will not use that here. We need to create our own array.
We need to create an array of AirLoopHVAC objects...let us go back to the input output reference.
What is the object name for this one. The object name is AirLoopHVAC.
We can verify that by looking at the air loop. Click on it. Yes. The object name is AirLoopHVAC.
We will go back to our program. We will just simplify this by calling it "air_loops".
Let us do a find and replace. air_loops. This will be an array of all the AirLoopHVAC objects in the IDF file.
It is going into the workspace, which is the IDF file, and it is getting all the objects by type.
The type that it is looking for is "AirLoopHVAC".
It is finding all the AirLoopHVAC objects in the file and putting them into the air_loop array.
Then there is a runner. A runner is a little piece of information that it returns to the GUI while the program is running.
When you run the file...when you run the model, you click the run button. There is a lot of...we can just click it.
There is a lot of information here that pops up onto this window.  These messages are called runners.
That is what these are. The messages are telling the user about key progress steps while running the program code.
This failed because of our zone mixing object measure.  We did not fill in that necessary information on the measure.
Anyway.  That is what a runner is. This runner is registering the initial condition.
The building started with so-and-so air loops. Size. It is taking this array of air loops.
It is finding what the size of the array is. How many air loop objects are in that IDF file.
We can just replace this.
This is not very important, but we can just leave that in there for now.
At least we'll have a runner that says something while the code is running.
We will know that it is actually doing something.
The next piece of code. Get all thermal zones in the starting model. We don't need that.
We are not worried about thermal zones for this program.
Validate input names and get zones. We don't we don't need to validate these names.
We might come back to this reuse this later.  Right now, we will just comment out all of this code to simplify things.
Then, error if it didn't find zones. Again, let us just comment this out.
Humm...I think there is a single line comment. Here we go. We will comment that out. you validate schedule name? Yeah. We don't need to worry about that.
This is just some programmer’s comment from the code we copied. It is not applicable here.
Validate design level input. We will just comment this out. We will come back to this later.
This is we go...calc method. We don't need these variables for zone mixing object.
Let us delete those. Those are not applicable to our program.
This adds a new mixing object to the model, but we do not want to add a new mixing object.
We do not want to add a new air loop to the model. So, we can delete this.
We can actually delete all of this. We want to set up a "do" loop.
If you want to find out more about measure writing, as I mentioned before, you can go to the measure writing guide on the OpenStudio website.
Let us look for "do". We want to look for an example of a "do" loop.
Let us set up our do air_loop.
Our array is air_loops, so we want to cycle through air_loops and...
Let us see, air_loops.each do. For each instance in that array I will assign it a variable called air_loop.
That is the the instance that the program is looking at in each cycle of the "do" loop.
Then, we want to put: if loop_name is equal to air_loop get string at position zero of the array.
One thing you want to realize is, these EnergyPlus objects are arrays.
The object name is AirLoopHVAC. The first field in the array is the name of the air loop.
This name is at position zero of the array. Controller List Name is at position one of the array.
Availability Manager List Name is at position 2 of the array...
If we want to look at that, we can take a look at the IDF file.  The EnergyPlus input file.
We will search for airloophvac. You can it is.
Position zero of the array is the name, position one is the controller list name, position two is the availability manager list name.
That is what we saw in the  input output reference manual. Name. Controller List Name. Availability Manager List Name.
It keeps going on. All the way down to node names.
The one we are looking for is all the way down at the bottom: Design Return Air Flow Fraction.
That comes after node names, but you can see that in this IDF file it does not exist.
So, we are writing this measure to insert this field into the object array.
We need to find out what position this field is in.
We can count them 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. This field is in position ten of the array.
With that in mind, let us go back to our measure program.
The program is looping through the energy model air loops. It is searching for the loop name that the user specified in the arguments section above.
Looping through the array and trying to find that particular air loop name.
Once it finds that particular air loop, we want it to write that position 10 string to that object.
It finds the air loop and we will write: air_loop.setString.
Again, please visit the measure writer's guide to find out more about these functions.
Go to the top and SDK documentation. All the syntax is located in this SDK documentation.
I have found it easier just to do a search for it. If we search for openstudio .setstring...
Yeah. It looks like it brings me back to the measure writer's reference guide...Here is an example of how to use .setstring.
It is important to try to find examples of code. Where it is used. Try to understand how it is being used.
Once you get familiar with that, you will start to understand it better.
And how to find that information. For this instance, we will do .setstring.
We want position 10. return_fraction to string.
We will just write a comment here. What this is doing. Overwrite return air flow fraction.
This is overriding the return airflow fraction if it is already in the IDF file. Or, writing it there if it does not exist.
It is just writing the return airflow fraction. If that was already in the IDF file, we would be overwriting it.
Again, we are doing a "do" loop. We are looking for the loop name that that matches the loop that we are interested in.
At position zero as the loop name. Then, once it finds that loop it sets the string in position 10 of the array to the variable that the user specified in the arguments. probably want to have a runner just to tell the user that it was successful.
The runner says the return air flow fraction of supply air flow was changed to return_fraction.
At the very end of the if loop we want to put "end". We also need to end the "do" loop.
This is just some runners from the old code. We can get rid of these. And that is the end of the code.
So, if all goes well, we should be able to execute this code and hopefully it runs.
Let us go back to our energy model. We can just get rid of
We want to make sure to save the code. Go back to our energy model and let us see...
Whole system-edit return airflow fraction. There is the measure we were just editing.
We will drop it into our measures and you will notice that there is an exclamation mark here.
It is saying that these are required inputs. We need to fill out that information in order for the measure to run properly.
We need to figure out what the air loop name is. We can go back to the HVAC systems tab.
Select the air loop. We will copy the name here. Go back to measures.
Paste the name here. We will say return air flow fraction of supply air flow is going to be...maybe 60 percent.
Let us say sixty percent. Save our model. Go to run...and just...uh...real quick.
We will take a look at our OSM file, just real quick.
I know it's not there, but I just wanted to show you. Search for airloophvac.
You can see that return airflow fraction of supply air is missing. It should be right here. But, it is not.
We already looked at the IDF file. Same thing. It is not there.
Go ahead and hit run. We should see some of those runners pop up...oh...
It looks like our code did have a runner. The building started with one air loop hvac object...yes.
This says undefined method 'getstring'...We can go back to our program.
Yes, we have "getstring" here, but this came before the runner. The runner had executed successfully.
But, we have a "getstring" here and I think I know what is wrong. This is case sensitive.
We need to write a capital "S" for "getString". I bet this is probably case sensitive as well. "setString"
Okay, we will save it. We will go back. Try to run the simulation again. us revert to saved. Maybe we need to refresh this...
Nope, still getting "getstring" error...So it seems like it is still working off an old copy of our program.
That should be capitalized, even if it wasn't still error.
Let us go back to measures. Go ahead and delete this out of here...make sure that...
Save...oops...just make sure this is saved. I thought we changed that. Okay.
Let us go back to our library return airflow fraction...0.6.
We will save it. We will just try to run it again.
There it is. Final condition return airflow faction was changed.
Success! All right. We should be able to...we will let this finish.
We should be able to go to the IDF file.  The EnergyPlus input file. Open it up.
We will search for "return air flow". There it is. Design Return Air Flow Fraction of Supply Air Flow.
It was added to our air loop called "Packaged Rooftop Air Conditioner". Success!
That is how you write a measure for OpenStudio. In particular, writing a measure to edit the EnergyPlus input file.
Thank you. Please like and subscribe.

Measure Writing 1

6. OpenStudio EnergyPlus - Input Output Objects

In this video, we will discuss EnergyPlus objects and how to find information about how they function.  This will help you understand how OpenStudio / EnergyPlus functions to simulate your energy model.  It will also help you to know what inputs are important, what inputs can be left default, and how they might affect your energy simulation.

Today we are going to discuss what an EnergyPlus object is.
EnergyPlus objects are programming pieces inside the EnergyPlus program that execute certain calculations.
For example: this fan is an EnergyPlus object. This DX cooling coil is an EnergyPlus object.
This air loop is an EnergyPlus object. All of these are objects.
Objects have certain programming code associated with them that includes inputs.
The inputs are the items that you adjust on the side here, for this object.
There are outputs as well.
We are going to discuss how to figure out what each one of these objects do.
Let us look at this fan here. You can see right here. On the right-hand pane.
It says OS:Fan:ConstantVolume.
If you want to find out what any one of these inputs does for simulating the object, you can go to the EnergyPlus input-output reference.
Go to the EnergyPlus website:
There is a lot of documentation for EnergyPlus.
In particular, we will look at the input/output reference.
This document here.
We are looking at Fan:ConstantVolume.
Let us type that in the search here. Fan:ConstantVolume
It finds the Fan:ConstantVolume object in the table of contents.
We will just click the link to go directly to it. Here is where it describes this object.
This object models a constant air volume fan that is intended to operate continuously based on a time schedule.
This fan will not cycle on and off based on cooling / heating load or other control signals.
It goes on to tell you what the inputs are. The name of the fan.
The availability schedule name. It describes what that schedule is used for.
The fan total efficiency. Pressure rise. Maximum flow rate.
It keeps going down to the end and use subcategory.
It tells you what each one of these inputs does.
Also, it tells you what the outputs are for the object.
Outputs for this constant volume fan are: electric power, fan rise in air temperature, and fan electric energy.
You can look at any object and you will see the EnergyPlus object name up in the top of the properties pane.
Look at Coil:Heating:Gas.
We can look up Coil:Heating:Gas to find out how this object is used by EnergyPlus.
I am sorry. It is not opening the link.
We will just click here.
It will tell you exactly what all of the inputs are for that particular object.
Same thing with the outdoor air system object.
If you are interested to find out what all of these inputs are in the properties pane on the side.
Just look up this keyword in the EnergyPlus input-output reference.
For the OutdoorAirSystem, it has one input. Name.
For the Controller:OutdoorAir, there is a lot of different inputs and outputs.
If you want to know what any one of these is used for, look at the EnergyPlus input-output reference.
Thank you. Please like and subscribe.


Input Output Objects
AirLoopHVAC Autosizing

7. OpenStudio EnergyPlus- AirLoopHVAC Autosizing

In this video, we will show discuss how EnergyPlus autosizes air loop fans.  We will also discuss how EnergyPlus balances airflows with zone level exhaust systems and use DView to verify the fans and Outdoor Air System are working together.

A user on YouTube asked a question.
Can you do an example of an air handling unit with 6000 CFM supply 5000 CFM return.
1,000 CFM fresh air with zero exhaust, unless it's economizing.
There is a exhaust fan at the zone level at 1,000 CFM.
The exhaust fan is separately ducted from the system. This is how the building stays neutral.
The auto-sizing always makes the supply and exhaust fans the same size, which is wrong.  Issue 1.
I am not sure how to tell the fresh air and exhaust air dampers to work with this 1,000 CFM offset.
It doesn't seem to have much for configuration.
Let us do a an example of this.
We will go to apply measure now. We will create a prototype building.
This is just a measure you can download from the building component library.
Click this measure.
We will just stick with small office. All the default stuff. Apply measure.
This has created a prototype office building for our simulation.
Go to the thermal zones tab. We have got five thermal zones and an attic.
None of them have an exhaust fan. We will just put an exhaust fan on zone 4.
We will set this to always on. Pressure. For flow rate: maybe 100 CFM.
Yeah, we can probably do more than that based on the building size. We will use 250 CFM.
You will note that the exhaust fan comes defaulted to Decoupled.
There are different ways to control exhaust fans at the zone level. By default, it come in Decoupled.
Decoupled means it is not reliant on the air loop HVAC system, that serves that zone, to turn it on and off.
Decoupled means that it it runs on its own schedule. But we want to use Coupled.
Coupled (with Always On availability schedule) means it is always available, and the Air Loop System turns it on and off.
Whenever this air loop system is turned on, then it will turn this exhaust fan on. That is what the Coupling does.
Go to the air loops tab. We will just take a look at this real quick.
We have got a unitary heat pump system, but for this we actually need to have a return fan.
We will put in a constant volume fan on the return side of the system.
This serves zone 4 (with the exhaust fan that we just placed).
Let us take a look at these. It looks like the whole system is set to Autosized.
...Flow rate when no cooling or heating is needed...
We will just leave that as AutoSized.
Autosized. OK.
We will run the simulation. It looks like the simulation has completed successfully.
Go to reports and select Air Loops. We will scroll down to zone 4.
OpenStudio results come in sequence of the equipment that is on the air loop.
It starts with the return side of the air loop. This would be the return fan.
It is sizing the return fan for 744 CFM and the unitary heat pump fan was sized for 744 CFM.
Despite us having an exhaust fan that is scheduled always on when the Air Loop is operating.
That is because EnergyPlus does Autosizing based on the loop only.
It does not take into account any external air balancing.
That is an important part to remember about EnergyPlus.
It does some select air balancing, but it doesn't do all air balancing.
So, you need to make sure that your system is balanced.
EnergyPlus does account for Air Loop balancing during the simulation because of that Coupled toggle switch that we selected on the exhaust fan.
See EnergyPlus Input Output Reference- Field: Balanced Exhaust Fraction Schedule Name
Let us take a look at the air flows on some of the system nodes.
Go to output variables. Go to system far...system nodes.
We want to look we go. Current density volume flow rate.
We will set the increment to time step. The time step of the simulation. Click Save.
Run the simulation again. Success. Go to results summary.
Scroll back down to zone 4. You will see the supply and return fans are sized the same.
Go to DView to view the output reports on this.
We will go back to the air loop so we can figure out what nodes to look at. Let us see here...
We want to take a look at the return node.
This is actually the supply inlet node and the supply outlet node. This is the supply side of the system.
Select perimeter zone 4 supply outlet node and supply inlet node.
You can see that the return air flow is quite a bit less than the supply side.
This is another important point to make. The way EnergyPlus calculates air flows and system size is based upon the zone level sizing.
EnergyPlus figures out zone level sizing first. Zone level mass flow rates.
Then, everything propagates out from that.
If the zone requires a certain amount of airflow, then you will follow the loop back to the first fan.
That fan will have to supply that amount of airflow at the specified pressure.
Likewise, there is a certain amount of return mass flow rate.
The the next fan in the loop has to flow that amount of flow rate (at the specified pressure).
These are not actually fans.  They are not pushing air as in real life.
EnergyPlus calculates fan energy use based on the airflow that the fan theoretically should have been flowing.
So, these fans don't actually push air into the zone and the zone receives it.
EnergyPlus back calculates from the zone and it tells the fan: you have to supply this amount of airflow at this pressure.
Based on the fan power curve, this is how much energy will be used.
You can see that the return air flow is lower than the supply air flow for that zone.
You can also check to see how the economizer dampers are operating.
We will select relief air and outdoor air and mixed air.
We would have to find these on here.
Here is the outdoor air node.
The outdoor air is flowing a little over 250 CFM.
That corresponds to the 250 CFM exhaust fan that we applied to the zone.
If we turn that exhaust fan off, you would probably see this ventilation air flow rate dropping lower than the 250 CFM.
But that exhaust fan is on and it is operating with the air loop.
The outdoor air flow rate in this outdoor air system has to flow a minimum of the 250 CFM. For that exhaust fan.
We can simulate this, if we wanted to. We will rerun the simulation with the exhaust fan turned off.
We can see what that outdoor air flow rate is.
Let us go back to the zone exhaust fan...
...better yet...we can turn the exhaust fan on and off in the middle of the schedule.
We will just create a new schedule. We will turn it off in the middle of the day.
So, we will see the difference. Go back to the exhaust fan. EF schedule. Save. Run.
Success. Let us open up DView again.
Take a look at the zone 4 outdoor air flow rate.
Select inlet node.
Outlet node. OK.
You can see that in the middle of the day the exhaust fan turns off.
The return air flow jumps right back up.
You can see: during the the first part of the day the exhaust fan is on and it is returning less air to the air handler.
Let us look at the outdoor air node.
Same thing.
You can see. During during the first part of the day, when the exhaust fan is on, the outdoor air system supplies extra air flow.
Then, when the exhaust fan turns off, the air flow drops down to minimum outdoor air.
Or, if it is economizing, it might drop down to a different setting.
That is how you know that the outdoor air system is operating correctly.
That is how you ensure that your exhaust fans are balanced with your air loop.
This is this is how you toggle that on and off.
If you want that exhaust fan to operate independently of the air loop, you can put it on decoupled.
Then, it will run on its own schedule, but it will still affect that return air flow to the loop.
So, going back to the original question.
The bottom line is: the auto sizing will size the system for the maximum airflow.
You may have a return fan that is actually sized for less.
Which, could important for energy calculations. You will have to hard size that to the supply air flow minus that exhaust air flow.
For this instance, we would have input Hard Sized maximum flow rate...
I believe the system airflow air flow is about 750 CFM.
We would size this for 500 CFM.
That is how you ensure that your return fan is sized properly.
Thank you. Please like and subscribe.

Project Geometry Tool

8. OpenStudio SketchUp Tips - Project Geometry Tool

We discuss how to use the project geometry tool in the OpenStudio SketchUp Plugin.  This tool is helpful for applying sub-surfaces to multiple spaces at one time.  

I will show you how to use the project geometry tool.  This action will help reduce computing time on the simulation .
We are looking at some windows. There are multiple windows that are very close together.
The divider in-between them really doesn't affect the energy simulation very much.
Draw some rectangles over the windows (external to the spaces).
Now, enter the spaces and delete these windows. Go through and delete all of these windows in the spaces.
Now, go up to the project loose geometry tool. We will project selected loose geometry.
Select these rectangles that we just created. Click the button. Yes.
It was successful. You can see that the windows have been applied to the individual spaces.
Thank you. Please like and subscribe.

Assign Space Type to Multiple Spaces

9. OpenStudio Tips - Assign Space Type to Multiple Spaces

We discuss how to use the Building Component Library measure "AssignSpaceTypeBySpaceName" to quickly assign space types to spaces with a common string in the name.

If you have a lot of spaces that you want to assign a specific space type, you can use this measure on the building component library.
Go to "whole building", "space types". Search for "assign space type by space name".
You can download the measure. Go to "components and measures", "apply measure now".
Search for the measure under the "whole building" category. It is right here.
Please note: this string search is case specific. We can not search for both upper and lowercase "c" in corridor.
So, you want to make sure that your spaces are named consistently.
This check box does not seem to work, so don't use it.
The measure was successful. It assigned space types to 21 of our spaces.
Thank you. Please like and subscribe.

10. OpenStudio SketchUp Tips - Vertex Size Mismatch


We discuss how to resolve the common error "Vertex size mismatch between base surface".

We are going to discuss a common error, a severe error, that terminates your simulation.
We will go to the error output file. We are looking at this error in particular. Vertex size mismatch between base surface.
It is saying there is a mismatch between this surface 4840 and the surface 149.
You can see that it repeats itself. There is a 4840 here and then further down it shows the same error.
It is just reversed. So, it looks like there is a lot of errors. There is really only half of them.
Once you resolve one, then the other one will be resolved.
We will be looking at this surface 4830 and surface 4897.
It is saying that there are 11 vertices on surface 4830. There are 7 vertices on surface 4897.
We can go to the OSM file and verify that. We will search for surface 4830.
You can see that this surface 4830 has eleven vertices. The other one was surface 4897...This one has seven vertices.
Let us go to the OpenStudio SketchUp plugin. Open up the OpenStudio inspector tool.
We will adjust this a little bit...Select the “Surfaces” category.
It says that our model has 8,576 surfaces.
We want to search for surface 4830. Right here. It says that this surface 4830 is associated with the Space “Hallway 4-3”.
The surface 4897...let us look for that 4897...right here.
This is associated with the Space “Plenum 3-4-N”.
Let us go to our spaces. Search for that “Hallway 4-3”.
It is right there. Let us search for the “Plenum 3-4”. It is right there. It is right below “Hallway 4-3”.
Let us go back to the “Hallway 4-3”.  We will use the shift key, and click to add the “Plenum 4-3” to our selection.
Now, let us do a top view.  We are going to right-to-left drag while holding the shift key.
This will select everything else. It will also deselect those two spaces that we had selected.
Now, use the Hide function. That hides all the other geometry.
We have now narrowed down our search to these two spaces that have the matching surfaces.
Then, we can double-click into one of the spaces.
Now, search for the surface again. is not that one...4830 must be associated with...
Oh, there it is. Right there. So, it is this surface here. 4830.
I am sorry. It must be associated with the other space. This is 4897, which is the matching surface to 4830.
It had selected the 4830 in the other, inactive space.
We can see that it is located on the top of this plenum. We will do a side view...
Maybe like this...
or like this...
We will do a right-to-left drag select.  We will hide these surfaces. This will make it easier for us to identify the surfaces.
We can see that this is one of the problem surfaces.  4897.
Click out of this space. Now, double click into this space. We see that it is associated with this surface 4830.
We will click out. You can see that those surfaces are matched.
EnergyPlus thinks that these two surfaces do not have the same number of vertices.
We can select the surface and double click to highlight it. Count the vertices: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11.
This is surface 4897, so it should have 11 vertices.
If we look at our error output...4897...the error output file is saying that it only has seven vertices.
I do not know why. I suspect that it has something to do with SketchUp.
I think SketchUp is simplifying. It is defining this surface based on some of these other surfaces that are attached.
So...there is a vertex that is shared with these other surfaces.
Instead of outputting all of the vertices for this surface, it is just out outputting the the minimum number of vertices to define the surface.
Some of these other surfaces have that vertex in in their definition.
Somehow this confuses OpenStudio. I have discovered. The solution is to divide the surface.
We can draw a line from this vertex to this vertex. That divides the surface in half.
Now we have two surfaces. 4898 and 4897.
Now we have to divide the surface on on the matching surface.
We will just draw a line to connect these vertices. That divides the surface in half.
Oh...looks like I messed up on something here.  Let us go back to this one here.
You have to be very careful when you are adding this geometry.
Divide that surface into two. We can see that it is now two surfaces.
So, this is surface 4899 and this is surface 4898.
We need to make sure that it is matched with 4899. Same thing for the other surface that was created. 4897.
It should be matched with 4830. Yes. 4897. That is how you solve vertex mismatch issues.
You may have to further subdivide the surfaces.
Once you get down to about four vertices, there is fewer problems.
You may find that you still have a persistent problem.
A rough workaround: make the surface adiabatic. Select the surface. Go to boundary condition. Click adiabatic.
Sorry. You will have to unmatch the surface first. Unmatch it. Then select “adiabatic”.
It turns it pink. Make the matching surface adiabatic as well.
It got unmatched but it is still looking for a boundary condition.
This says it defaulted to “ground”. We want to make it adiabatic also.
Adiabatic tells EnergyPlus that there will be no heat transfer in between these two surfaces.
If it is a small surface, it may not be a big problem.  The energy model results will not be significantly affected.
If the the room temperatures between the two spaces are similar, there is little heat transfer anyway.
But, if there is a large temperature difference, you might consider trying to further subdivide the surfaces.
That is the workaround for solving the vertex mismatch severe error.
If you like these videos, please like and subscribe.
Thank you.

Vertex Size Mismatch

11. OpenStudio Tips - How to lodge issues on GitHub

We discuss OpenStudio and the SketchUp plugin open-source project and how users can contribute by lodging issues on GitHub.

The OpenStudio application is supported by the OpenStudio Coalition.
They are a group of volunteers and paid programmers that keep up and maintain the OpenStudio application.
They rely on feedback from users to help resolve issues with the software.
I will show you how to lodge an issue on GitHub; If you discover issues with the OpenStudio application or the OpenStudio SketchUp plug-in.
You would need to sign up for an account on
Then, you can follow the the two programs.
We will be lodging an issue on the OpenStudio application today.
We will go to issues. Create a new issue.
This is a categorized as a bug report.
If you have an enhancement request, you can also do that.
Let us do a bug report. Give it a title.
This is basically where you describe what the issue is.
We will just say “The application crashes when the user tries to delete an HVAC Airloop.”
There is not really much more to it.
I did capture a screenshot or actually a gif video of what happens when this problem occurs.
You can see here that the user selects the Airloop and tries to delete it.  It crashes the program.
We will upload this gif to the current behavior section.
There is not much more info I have.
If there is additional information you think might be necessary, you can describe the steps to reproduce the issue.
If you have any suggestions for solutions, you can add that information in there.  Or, additional details that narrow down the problem.
We are running windows 10.
The version of the application is OpenStudio 110r3.
Yeah. That is pretty much it.
Now, just scroll down to the bottom and submit new issue.
Now, it is submitted as a new issue.  If needed, you can always add more info later.
The programmers will eventually see it and hopefully address it.
Thank you. Please like and subscribe.

How to lodge issues on GitHub
Create A Combined Plenum

12. OpenStudio Tips - Create A Combined Plenum

In this video, we will show how to create a shared plenum between multiple spaces and floors.  Also see this NREL video for more info on modeling plenums:

Today, I am going to show you how to create a shared plenum between two different floors.
We have a large office building. We will be working on the third and fourth floor. For simplicity.
You can see that these floors are comprised of a lot of different spaces.
Right now they are nine foot (2.7m) from floor to ceiling.
We need to put a plenum in between the floors. A four foot (1.2m) plenum.
Put it on side view. Take the camera off of perspective.
Select the fourth floor. Do a move. Move it four feet (1.2m). We have created our separation between the floors.
We want to create a space in between those floors with all of the ceiling and floor characteristics of those spaces.
Save this model. We will save this as the "plenum". We will save it as a separate file.
Re-open the original. We we need to open another instance of SketchUp.
We can just ignore these errors for now. Go to the the new instance of SketchUp.
Delete him. We will open that saved version of the plenum that we just created. 
We can ignore these errors. Go side view. Turn the perspective camera off.
Control-A to select all of the geometry. Right click. Explode.
That exploded all of the groupings for the spaces into just a SketchUp file. It is no longer an OpenStudio model.
All of these surfaces do not have any characteristics. Now, they are just simple SketchUp surfaces. Lines and vertices.
You can click on them. You can see that they are no longer associated with any spaces.
Now, select (right-to-left) the top and delete it. That just leaves the floor of the fourth floor.
Likewise, select the bottom of the third floor. Make sure to select all of the windows too. Delete it.
Now, we have the ceiling of the third floor and the floor of the fourth floor.
You can see that those are now isolated. Connect the two on the corners. Now we have our plenum. The geometry of the plenum.
We can save this SketchUp file. Just in case we need it. In case the program crashes.
We will just save it as a SketchUp file. This is basically a dumb file. It does not have any of the OpenStudio information. Just geometry.
If you try to save it as an OpenStudio file, without assigning to a space, all of this information will be lost.
We need to save this as a SketchUp file for now.
Now, create a space. Go to the origin. Create the space.  Select the space.
Draw a line for now (as placeholder). Exit out of the space. Select all of this geometry. Cut.
We will enter into the space again. Paste the geometry into the space. It takes a minute.
There we go. You can see that this geometry was pasted into this space.
But, there is a problem. If you recall, we are creating the ceiling of this plenum based on the floor above.
So, all of our plenum ceiling surfaces are labeled as floors.  And, all of the plenum floors are labeled as ceilings.
We have to edit that. The quickest way is to use the text editor. I will show you how to do that.
Go to the OpenStudio file that we created for the plenum.
We are going to open this with Notepad++. Search for a surface type. We are looking for an example of a floor.
We have Surface Type "Floor" here. Copy this. We want to replace it with "RoofCeiling".
We will add a "1" as a placeholder to differentiate it from the other roof ceilings. For now.
Click "replace all". Now, we want to look for an example of a RoofCeiling.
We will replace all of these with "Floor".  Replace all.
Now, go back to our placeholder "RoofCeiling1". Replacce all of those with "RoofCeiling".
Click save. Yes, reload it.
It corrected some surfaces that were upside down. Click OK.
Now you can see that all of our floor surfaces have been changed to ceilings.
All of our ceiling surfaces on the bottom have been changed to floors.
There are some issues with...sometimes for whatever reason...OpenStudio decides to put in skylights.
That can be kind of a problem. You can just cross over the skylight and delete that. Delete this.
We can delete this here. That is how you get rid of skylights. Sometimes it takes a little extra work.
You can cross over this. Just delete the surface. Redraw the surface. Delete the surface. Redraw the surface.
We can delete this extra line in the middle. We've fixed all of our skylights.
You can see that now the floor is the floor. And, the ceiling is the ceiling. We have created our plenum.
Go ahead and save this OpenStudio model of the plenum.
Next, I will show you how to insert the plenum into your current model.
Create a new space. Double click into it. Go back to our plenum model.
Double click into the space. Control-A to select all. Copy.
Go back to your working model. Control-V to paste the plenum geometry.
It should come in at the proper origin. Just paste it on the origin. It will take a second to calculate.
You can see that it was pasted in with floors and ceilings. Again, we've got some issues with a few of these skylights. We will fix those later.
Click out. You can see that now we have a common plenum that all of these spaces share.
It already has the intersections that are in common with the spaces.  Intersect geometry is not needed.
We only have to use surface matching to make the model cohesive.
That is how you create a common plenum between floors. Between multiple spaces.
Thank you. Please like and subscribe.

Lights vs Luminares

13. OpenStudio SketchUp - Lights vs Luminares

In this video, we will discuss two different ways to specify lighting power heat loads in a space.  Lights Definitions allows for generic lighting power densities.  Luminare Definitions (and the SketchUp Plugin Luminare button) are another way to specify lighting power loads.

Today we are going to talk about lighting power loads.
We are just going to focus on this OpenStudio SketchUp extension function here, which is the New Luminaire button.
First, let us take a look at the OpenStudio model.
There are two different ways you can input lighting power loads into your spaces. One is a general lighting power density. eg. watts per square foot (w/m²).
EnergyPlus will calculate the total lighting power for the space based on the square footage of the space.
We can take a look at that by going to the loads tab. Go to Lights Definitions.
We can see here, for break room lights, it is specified as a watts per area. You can also put in a hard value of total wattage for the space or you can put in a watts per person.
For example; if the space had individual task lighting and the people entered the room and turned on their own task lights.
That is one way that you can specify lighting power within a space.
Another way you can specify lighting power is by using luminaires. We don't have any luminaire definitions set up for this project yet.
Let us go back to the OpenStudio SketchUp Plugin.  We are going to take a look at this space right here.
The space type for this should actually be Open Office. I do not know why that is not entered. Okay.
We have an Open Office space type here. We can go back to OpenStudio. Take a look at the lights definition.
Look for Open Office space type..I am sorry...Open Office lighting definition. Right here. It is specified as 0.98 watts per square foot (10.5w/m²).
Alternatively, you can add luminaires, lighting fixtures, to the space with this button here.
Double-click the space to edit. Let us turn on the section cuts so we can see inside the space. Overhead view.
Click the New Luminaire button. You can place a new lighting fixture here. So, it placed a new lighting fixture in that space.
We can uh click out of it.  We will save the model. Go back to OpenStudio and Revert To Saved. Click yes.
If we go to luminaire definitions you will see that it now inserted a luminaire into the model.
Right now, the luminaire is at a default value of zero. It will do nothing to the room.
But, you can create an OpenStudio project with all of the different types of luminaires that your electrical engineers or the architects will be using within the project.
That is what I did. I just created an OpenStudio model with those definitions. We can open that up.
The only thing in this OpenStudio model is luminaires. I called it a "LuminaireLibrary".
Okay. We will take a look at the loads tab. Go to luminaire definitions. You can see that I have created a bunch of luminaires in here.
We will create another one...we will just select this pendant type here and we will copy it. We will call this a compact fluorescent...60...maybe 14 watts.
We will specify it as 14 watts. have to input these values.
Fraction of radiant, fraction of visible, and if there is any fraction that gets put directly into the return airstream.
This will be just a compact fluorescent light exposed to the room. There will be no plenum heat losses. We will leave these as default values. That is it.
Click save on our LuminaireLibrary.osm. It is just a typical OSM file. Close out of this. Let us go back to our project.
Right now, we only have one luminaire in here. To add more luminaires, go to Change Default Libraries.
We can add that LuminaireLibrary.osm project to our library files for this project.
I already have it added, we will click OK. That will put all of those luminaires in your library tab over here.
Now, we can click down and we can see that all of those luminaires that were in our LuminaireLibrary are located in here.
Drag these in and drop them into your project. We will add few of them there.
Click save. Go back to the SketchUp plugin. It has been updated. Yes, because we saved it. Okay.
It updated our SketchUp file. Let us double-click into the space again.
We can place another luminaire. We will just place it right here. You will notice that it comes up with a drop down menu.
You can select what kind of luminaire you want to place. We will place this pendant light here. Select yes.
It does not matter where these lights are located within the room. It is not going to affect any illuminance calculations.
This is strictly for heat loads to the room. These are really just dummy lights. They only produce heat inside the room.
You will notice that these lights were actually placed in the room 2ft (0.61m) above the floor.
If we unhide the section cut here. We can put it on x-ray view. We will add in another light here.
Click that. You will notice that it was placed two feet from the ceiling. It places two feet from whatever surface you select.
For the purposes of heat calculations, it really does not matter where these are located. As long as they are within the room.
Like I said it does not calculate illuminance within the room. It is just calculating heat energy added to the room.
If we have several of them, shift click all of them and push "m" key for move. Push the control button
to copy it. There. Now we have six light fixtures within the room.
We can click out of it. We will save the model. We can go back to OpenStudio. Revert to saved. Yes
Okay. First thing you will notice. We have those luminaires in there. The ones we had placed.
Let us go to the spaces tab. Go to loads. You will notice on the Space 102, that we were working on,
you can see all of these luminaires that were placed within the room.
Unfortunately, we also still have Open Office lights definition in this space type.
So, in addition to the general lighting power density of the space we are also adding these luminaires.
That is one thing you need to keep account of. You might end up having to delete this lighting power definition if you already have luminares placed.
To do that, you would have to create a separate space type. We can go to Space Types tab.
Go to Open Office. We will copy this. Now we have Open Office 1. We will call this "without lights".
We can go back to our spaces tab...oh...I am sorry. Go back to the Space Types tab.
Let us edit the loads on that new space type...without lights...we will have to delete this light definition here. We will delete it.
There we go. Now this space type without lights has people, plug loads, and infiltration, but it does not have a lighting power density associated with it.
Let us go back to the spaces tab. For this Space 102, you can see that the space type has been assigned "Office - Open Office".
Let us assign "Office - Open Office Without Lights" to this space 102.
If we go to our loads tab, you will see that the only thing in the Space 102 is now those luminaires that we plugged into the space.
So, that is a couple of different ways to get lighting power into your spaces.
Thank you! Please like and subscribe.


Daylighting Controls

14. OpenStudio SketchUp - Daylighting Controls

In this video, we will discuss how to input daylighting controls that reduce space lighting power as sunlight enters the space.

Today we are going to talk about daylighting controls. This button up here; Create New Daylighting Control.
This is used for controlling the lights within your space. If you have exterior windows, throughout the day the sun will shine through the windows and light up the space.
At that point, you might not need as much artificial lighting in the space. The daylighting controls will reduce your artificial lighting based on the amount of sunlight that is coming through the window.
You can click this button to create those controls. Let us edit the space. Click the button New Daylighting Control.
You can just drop it into the space. It automatically places it 3ft (0.91m) above the floor. That can be adjusted as you as need.
You can relocate the object to wherever it is most convenient within the space.
You might want to place it somewhere in the middle of the space, depending on how much daylight harvesting you intend. That is, how aggressive you are with with turning down the lights within the room.
That is how you drop it into the space. We can click the Inspector tool to take a look at the properties for the daylighting control.
You want to make sure that you click that daylighting control object. You can see that it was dropped in here.
It has a name,the space name, that it is associated with.
It is important to note: you can drop these into individual spaces, but EnergyPlus will only allow up to two day lighting controls thermal zone.
So, if these two spaces were part of a thermal zone, this daylighting control would control this space and this space. They are part of one thermal zone.
To get around that, it might be best to assign separate thermal zones to each of these spaces.
These are the position the coordinates of the daylighting control within the space.
These are the rotation axes of the daylighting control sensor. If we wanted to rotate this 180 degrees, you can see that this arrow changes.
We will point this this arrow...I believe this arrow is the glare sensor. It is also used for window shading controls. We will get into that later.
Right now, we are just doing daylighting controls, which is this arrow right here.
It is just a photo sensor that senses lighting levels within the space (in this direction).
You can adjust the glare angle, if you were doing shading controls. Like I said, we will get into that in another video. You can adjust that angle here.
For now, we will just set that at zero for our daylighting controls.
Illuminance Setpoint; this illuminance setpoint is the illuminance of the room in the middle of the night (no sun).
Basically, when there is no sunlight coming through the window. It is the design illuminance of your lighting fixtures.
You will need to know the design illuminance of those lighting fixtures. Or, know what the expected illuminance for this space type is.
You can put that value in there. It is the design illuminance; the daylighting control will dim your interior lights from a maximum of this value all the way down to your specified lower boundaries.
The lower boundaries are these two right here. The lighting control type can be selected here.
Continuous; continuous lighting control starts at your design illuminance and then it it continuously dims the lights until you get to a minimum input power fraction and minimum light output fraction.
The minimums are these values down here.
Stepped; it steps your lighting power down by the specified number of steps.
You can select Stepped, right here, you can specify the number of steps for the lighting power.
We will just leave this at
Continuous off; it lowers your lighting power down from design to a minimum input power fraction. Anything below that point it and it shuts the lights off.
Let us go back to continuous...
Probability Lighting Will Be Reset When Needed In A Manual Stepped Control; if you set this up as stepped control and you wanted to simulate this as manual switches (banked lights). No automatic daylighting control sensor.
For example, if you wanted to simulate this as people in the room, no daylighting sensor, but the people regularly flip off a bank of lights during the day to reduce the lighting in the space.
That is how you would simulate the activities of people stepping down the lighting themselves during the day instead of using an automatic sensor.
This probability function here takes into account the probability of people actually turning the lights down.
You might say...oh...if it gets too bright in the room, 30% of the time someone will flip a bank of lights off.
So, that is what the probability function is.
The Number of Daylighting Views; I do not believe this factors into EnergyPlus. If you are going to be using the Radiance Measure in OpenStudio, then this number of daylighting views comes into effect.
I believe it multiplies the number of these arrows here, so it will equally space the arrows pointing throughout the room.
It is used to get a better understanding of how well illuminated the room is.
Maximum Allowable Discomfort Glare Index; that is used if you are doing automatic shading controls on the windows.
If the glare gets too high during the day, the window shades or blinds will go down.
We will get into simulating glare in another video. So, that is how you input a daylighting controls object into a space.
Thank you! Please like and subscribe.

Downloads from BCL or Elsewhere

15. OpenStudio Tips - Downloads from BCL or Elsewhere

We discuss OpenStudio and the SketchUp plugin open-source project and how users can contribute by lodging issues on GitHub.

Today, we are going to discuss how to manually install components and measures by downloading them from the Building Component Library (BCL).
Or, if you have a colleague that has created a component or measure that has not been uploaded to the BCL.
You might do this for several reasons.
Perhaps, you go to Apply Measure Now in OpenStudio and you do not have a measure in your measures files.
Perhaps, you go down here to the lower right, Find Measures On BCL. For some reason it is not connecting to the BCL.
You can go to the BCL website and search for measures and components.
Let us go to Browse Measures. Select lighting. We will select one of these recent ones. Maybe...Set Lighting Loads. Okay
This is located under Electric Lighting, Lighting Equipment. Next, download it. Click ok to download it.
It has downloaded into your download folder. Now, go to the My Measures folder, down here in the lower right. Click it.
This will open up all of your custom measures that you have created. All of these are not connected to the BCL.
They are all custom measures. They have been disconnected from syncing with the BCL.
Now, open up your downloads folder. Here is the the measure that we just downloaded.
It is a zip file. Open it. You can see it is called Set Lighting Loads by LPD. We will copy and paste this into our measures folder.
Now it is located in there. Let us go back to OpenStudio. Go to apply measure now. It was located under Electric Lighting, Lighting Equipment. Here it is.
That is the one that we just downloaded and dropped into our folder. It is called Set Lighting Loads by LPD. That is the one we downloaded.
You can see that it is considered a "My" measure. Look at some of the other ones...
If it is a BCL measure, it will have a "BCL" here. That means that it can sync with the Building Component Library. If there are any updates, you can update it.
If you have My measures, it is not going to sync because those are located on your computer and are disconnected from the BCL. They migh also be can edit the programming in those files.
So, that is how you download directly from the BCL. Or, if you have a colleague that has written a custom measure or a custom component, they can send you that file folder.
It will be a file folder like this. It will have a ruby file, xml file, basically all of these things.
Your colleague can look in their own measures folder, select one of these, and then send you that whole folder. Then, you can take that folder and drop it into your My measures directory.
You can access it directly with this My measures button right here. That buttton opens it up for you. Just drop it right in there.
So, that is how you deal with measures and components that are disconnected from the BCL or have been directly downloaded.
Thank you! Please like and subscribe!

Illuminance Controls with Radiance

16. OpenStudio SketchUp - Illuminance Controls with Radiance

In this video, we will discuss how to input daylighting controls, glare sensors, illuminance maps, and shading controls in preparation for using the Radiance measure.  We will download and install Radiance and Strawberry Perl.  We will use the OpenStudio Radiance measure to simulate lighting and shading controls.  Finally, we will briefly look at the Radiance outputs using DView.

The last couple of icons at the top are used for the Radiance measure. Radiance is a fairly complicated lighting simulation program.
Instead of using the standard lighting simulation that EnergyPlus uses, you can use Radiance instead. which
Radiance is a lot more detailed and my understanding is the EnergyPlus lighting simulation does not do a very good job. So, you can use Radiance as an alternative.
That is what these two icons, up here, are being used for. In addition to the daylighting control that we had installed previously.
We can edit the space. Go up here to New Illuminance Map...first let us go to camera, turn off perspective.  Select an overhead view.
Now, go to the New Illuminance Map button. Click it. Drop this into the space.
We will move this to the corner here. We can stretch it out with the scale button. Stretch it out to encompass the entire room.
This is an illuminance map that Radiance uses to measure the lighting power concentration throughout the entire room.
It is assigned a grid. Each one of these grid spaces measures the the illuminance at that particular area.
You can adjust the number of grid points on the grid to whatever you like. We will keep it at 10 x 10 for now.
You can adjust the size of that...and you can also adjust the coordinates within the room.
Um...that is a little bit high. We probably want to have the grid lower in the room. We will use the move tool...move it down here...maybe a little bit higher. Right there. Probably about desk height.
We do have our daylighting controls. In addition, you can put in a New Glare Sensor. We will drop the glare sensor in here.
For whatever reason, it drops it onto the floor. You can adjust that coordinate. We will adjust this up to three feet.
We will rotate the sensor towards the windows. Now it is facing towards the windows.
You can adjust the number of glare vectors. Right now, we only have one glare vector pointing toward the window.
If you wanted equally spaced glare vectors radiating out from this glare sensor, you can increase those numbers. Maybe we can put in three here.
The object will not show them, but you can see here that we have three vectors for that.
Maximum Allowable Daylight Glare Probability; this is, if I understand correctly, a value that is the probability of number of people in the room that have a problem with the glare.
Right now, in order to activate the the glare controls, 60% of the people in the room have to be bothered by the glare.
We can reduce this down...we will say...30%. So, 30% of the people in the room find the glare bothersome. Then, they will lower down the shades on the windows.
Aside from daylingting controls, shading controls is another thing you can do with Radiance. Shading controls are activated this glare sensor.
To add shading controls to the windows; go up to Extensions, OpenStudio User Scripts, Alter or Add Model Elements, and click Add Shading Controls.
Right now, we do not have any shading materials or switchable constructions. Shading materials would be if you have blinds or shades on the window.
A switchable construction might be if you have a window with two panes of glass and there are blinds located, sandwiched, between the two panes of glass. That would be an example of a switchable construction.
We will create a new blind. Click ok. Go to the OpenStudio Inspector tool. This right here.
Open up the Inspector tool. Go to shading controls over here. This is the shading controls that we just input.
It is attached to these interior blinds. Like I said, if you had a window with blinds that were sandwiched between the window panes, you would use that here instead.
There are a lot of different shading control strategies. You will have to read the Input/Output reference manual to understand what all of these options are.
We will leave it as default for now.
Shading Control Schedules, Glare Control...we will keep glare control turned off. The Radiance measure already has a glare control in this glare sensor we placed.
Angle Slat Control for Blinds; I do not know if that makes a difference for Radiance...we can switch this to Block Beam Solar.
Finally, at the very bottom, you want to assign this shading control to windows that are located on your space.
That will be this window here, Subsurface 4, and this window here, Subsurface 3.
Going back to shading controls, at the very bottom, we will assign the shading controls to subsurface 3. Click + to add one more. Subsurface 4. These are the two windows in the room.
We can save the model...just close this...we can open it OpenStudio.
Go to the Measures tab. The Radiance measure is located under Electric Lighting, Electric Lighting Controls.
I have two of them; one that is connected to the Building Component Library. It is a little bit old and my understanding is that the programmers are editing it right now.
So, I have downloaded the latest one from GitHub and put it into My measures folder.
Drag this into here. Select it. You can customize it a few different ways. We will just leave those as default. Click save.
To run the Radiance measure, you have to have Radiance and Perl installed on your computer.
You need to browse to the Radiance website. Go to Download/Install, Radiance Installers. Go to the latest version of Radiance on GitHub. Click it.
We are using Windows. We will download the Windows version.
We also need to download the latest version of Perl...P-E-R-L...I believe it is Strawberry Perl. Select this. Select the 32-bit.
Let us go to our downloads folder. Um both of these...let us install Radiance since it is already downloaded.
Okay. Make sure to click this option to add Radiance to the system path. Either for users or for current user. I will select "all users".
This is important because the Radiance measure in OpenStudio relies on the system path to find it.
Click next. Finish. Great! Now they are both installed. We should be good to go. Click save.
Now go to "run"...oh!...I am sorry...the last thing that we have to do, after installing Radiance and Strawberry Perl, is restart the computer.
We will do that now. Okay. We got the computer restarted. Let us re-run the simulation.
Okay. It looks like it is running successfully. Scroll back up here. Radiance runs through the lighting and shading simulation first.
Then it passes that information onto EnergyPlus to do the rest of the building energy model simulation.
You can see, at the very bottom here, it is removing the daylighting controls for the EnergyPlus run.
It has to remove those daylighting controls so that EnergyPlus does not try to overwrite the Radiance information. That is what it is doing there.
Radiance is simulating all of the illuminance and lighting power of the room first. Then, it is passing that information to EnergyPlus.
In order to access that Radiance information, we can go to the project folder where the OpenStudio model file (.OSM) is located. I believe it is this one here.
Open up the OpenStudio file folder.  Go to "run" folder. It is right here: "Radiance Daylighting Measure Copy". Open up this folder. Open up the "Radiance" folder.
We are looking for Output..."Output". There are a lot of different files in here that are output from Radiance.
The two that I know about are the ".sql" and the ".csv".
You can use DView to open the SQL file. Right now, I already have it defaulted to open up with DView. You can open up DView first, then you would browse for this SQL file.
Let us open it up.
You can see that this is the output from Radiance. It is simulating the illuminance throughout the entire year.
It shows trends for Direct Normal Illuminance, Global Horizontal Illuminance, Daylight Sensor, and the average of the Illuminance Map.
Let us take a look at the Daylight Sensor and the average Illuminance Map.
You can see that the daylight sensor has quite a bit lower illuminance than the average of the illuminance map.
This likely because the daylight sensor, here, is just measuring a single point in space. The illuminance map is measuring multiple points all along this grid.
It is averaging those out. It might might mean that daylight sensor should be located in a better position. It is dependent on how the occupants are located throughout the room. Where the light is specifically needed.
We can take a look at setting is for this daylight sensor. We will have to edit the space, select the sensor.
The illuminance set point is about 46 foot-candles (495 Lux) at that point in the room.
You can see that it is maintaining that approximately 50 foot-candles (538 Lux).
You can see that the the average for the entire room is quite a bit more than the 50 foot-candles at that one point.
We can take a look at some other things...we can go to daily...and heat map. There are different ways to view the data.
You can see that based on the sun's position on the horizon...finally, you can look at the monthly profiles of the lighting.
Let us take a look at the "CSV" file. I am not sure what these others are...
Let us take a look at the csv file. I has a bunch of different statistics...based on how you want to measure the the lighting (illuminance) within the space.
So, that is how you input daylighting controls, Radiance glare sensors, and illuminance maps using the SketchUp Plug-in. And, how to run the Radiance measure in OpenStudio.
Thank you! Please like and subscribe.

Merge Spaces from External File

17. OpenStudio SketchUp - Merge Spaces from External File

We discuss how to use the SketchUp Plugin user script: Merge Spaces from External File.  This can also be applied as a measure downloaded from the Building Component Library. This script/measure is helpful for merging a file with only geometry/spaces to a template file that contains constructions, schedules, loads, and space types.

Today we will talk about a useful user script. If you go to Extensions, OpenStudio User Scripts, Alter or Add Model Elements; it is called Merge Spaces from External File.
This user script is very similar to doing New OpenStudio Model from Wizard. You use it if you want to use your own template files as a library to begin the project.
Right now, we have an empty template file. The template file is empty of geometry.
If we go to the Inspector Tool, we can see that this template file does have space types. It has schedule sets and constructions. It also has loads. It does not have any geometry.
We have another file that contains the geometry. This has just geometry and space types. We can look at Render By
Construction. Look, it has no constructions.
Rendered by Space Type; it has no space types. But, it does have spaces and it does have geometry.
We can look in the the Inspector Tool...we can see that that it does have 48 spaces. We can clearly see that it has geometry.
To merge these two, the one with the geometry and spaces to the library template file, open up the template file. Which we have done.
We can save this template file as our project. We will call it "project". Save.
Now, go to the Extensions menu, OpenStudio User Scripts, Alter or Add Model Elements, Merge Spaces from External File.
We will select our OSM file that contains the geometry and spaces only. Click open.
It says the spaces have been imported and sometimes this takes a while...
Okay. It says it was completed. It has imported the information from the geometry file.
I am not sure why this is must be left over from the previous time I had run the measure.
Let us check it out. We have the geometry imported into the template file. We can look at render by construction. We can see that there has been a construction applied. 
That is probably because in the template file, under our default for the facility, there are default constructions, space types, and schedule sets.
If we look at the Rendered by Space Type, it will probably say all of these are the default space type. A lodge bunk room. Yeah.
Now that we have imported the geometry, we can go through and start assigning space types to our model.
For instance, this would be a...I am sorry...let us select Render by Surface Type...
We will select this space here. It is a kitchen. We can apply the Kitchen space type to it.
Go back to Render by Space Type...and see that the space type of Kitchen has been applied to this space.
So, that is how you import geometry into a template file that contains all of your constructions, schedules, loads, and space type templates.
Alternatively, you can use the OpenStudio measure. First let us take a look at the geometry tab on the template again.
Again, this is a template file so it contains all of your schedules, materials, loads, and space types, but it does not contain any geometry.
If you go up to Components and up to Components and Measures, Apply Measure Now.
You can download a measure from the Building Component is located under Whole Building, Space Types.  It is called the same thing: Merge Spaces from External File.
You can input the file path to the OpenStudio file that contains your geometry. You can select any number of options for importing that geometry.
That would be how you run the measure in OpenStudio.
Thank you! Please like and subscribe.

Assign thermal zones automatically

18. OpenStudio SketchUp - Assign thermal zones automatically

In today's video, we will be using the OpenStudio User Script: Add New Thermal Zones For Spaces With No Thermal Zone.

Good afternoon.
Today, we are going to teach you a very quick tip.
A very good tip.
A tip on how to assign thermal zones in a few clicks. To all these spaces at once.
Let us start. First, let us select our model. Next, let us go to the Extensions menu, Open Studio User Scripts, Alter or Add Model Elements, Add New Thermal Zone For Spaces With No Thermal Zone
Select it, click, and wait.
All spaces are now assigned with thermal zones.
Realize that some thermal zones have similar colors, but the program understands them as different and unique thermal zones.
This was the tip for today on how to reduce modeling time by assigning thermal zones to all spaces that are not assigned to a thermal zone.
Thank you!  Please like and subscribe.


Adding overhang elements in a few clicks

19.OpenStudio SketchUp - Adding overhang elements in a few clicks

In today's video, we will be adding overhang elements to all or select sub-surfaces of the model in
few clicks. These elements, also known as awnings, brises, or exterior shades aim to minimize the incidence of direct solar radiation to the windows.
This strategy helps to reduce the thermal load, thus minimizing the energy use of active air conditioning systems.

So let us look at another quick and useful tip in a few clicks.
Today, we are going to be inserting window overhangs to the top of the windows.
These are also known as horizontal brises, exterior shades, or awnings.
These elements are essential to minimize the incidence of direct solar radiation on the window surfaces.
It will minimize the thermal load. 
To begin, our first step will be to select the model.
Select the spaces to which we want to add the shades.  We will select all spaces.
Now go to Extensions, OpenStudio User Scripts, Alter or Add Model Elements, Add Overhangs by Projection Factor.
It gives us these options that are related to the dimensions of the windows.
They will serve to make edits to the overhang elements in our model.
The first dialog box (Projection Factor) refers to how far the overhang projects from the wall. It is a percentage of the window height.
The value of 0.5 means it will project at 50% of the window height. That will be its length.
The Offset corresponds to the vertical distance the overhang will be above the window. It is measured from the top edge of the window.
Again, it is a percentage of window height.
Click "OK".
We will have the following result.
Note the overhang elements.
These elements were created from the characteristics assigned in the dialog box.
The previously mentioned Offset corresponds to the distance from the top edge of that window to where you want to install it.
We will be changing it to see how the shortcut works again.
We will again select our model.
Click on extensions.
Repeat the same steps as before.
However, as we had already added overhangs we will need to replace them.
Let us keep this; the size is 50% of the window or sub-surface height.
For the offset value, we will assign 0.2.
And now we select the True option, because now we want to replace the old overhangs with the new ones.
Click "OK"
Notice a vertical distance.
We now have a greater vertical distance from the top of the window.
Let us do it again as an example.
Select as true.
We will remove this vertical offset.
We will add another 20% to the size of the overhang element.
Realize that the vertical distance no longer exists.
And we obtained an increase of 20% in the length of the overhang element.
This was a quick instruction on how to use the OpenStudio User Script for adding overhangs to your windows.
Thank you! Please like and subscribe.

Adding Photovoltaics

20. OpenStudio SketchUp - Adding Photovoltaics

Today we will be adding photovoltaic systems to the energy model. We will prepare the model to 
receive the system, we will observe some fundamental details in the insertion and investigate the
effects of the fraction of the area occupied by the photovoltaic system and its efficiency.

Good afternoon folks, we are back again, learning about energy modeling.
We are using the SketchUp extension for Open Studio.
Today we are going to be learning how to implement a simple photovoltaic system.  We will also run the model, look at the results, and make some comparisons.
A photovoltaic (PV) system is a system capable of converting solar energy into electrical energy, explaining it in a very basic way.
Our aim here is to use this type of system for our model.
To begin, let us first prepare a surface to receive the photovoltaic system.
We cannot use any surface. For this user script, we will be applying the PV to a shading surface.
Our first step is to use the "create shading surface group" tool.
Select in the model a surface to apply the shading element. It will be our PV system.
Validate by pressing the "Enter" key. We will not draw the PV system.
The shading element should have the same shape as the photovoltaic (PV) system.
So when you think about your photovoltaic system, think about its shape when you are drawing it.
To simplify the progress of this video, we will not discuss optimal orientation (the best orientation for capturing the most sunlight).
We have created the shading element. It is important that this dark purple tint is facing outward.
If it is not outward, it is necessary to invert. If necessary: select the face, right click, reverse faces.
We will extrude our surface to a box to give it some depth.  (Alternatively, you can use the move tool to position the surface a little higher.)
Okay. Now we will assign the photovoltaic (PV) system. Select the shading group and select the surface.
Go to "Extensions", "OpenStudio User Scripts", "Alter or Add Model Elements" , "Add Photovoltaics".
We have a dialog box with 3 options. The first option is choosing a load distribution center. It is the control center for metering and managing the PV system.
We do not have a distribution center, so it is necessary to create it. Leave this as default.
The second option describes how much of the surface is covered with PV cells.
As shown on the screen, the value is specifying that 100% of the photovoltaic system will occupy the shading element.
If we only assigned 50%, the value to be specified would be 0.5.
The program would understand that only 50% of the system would occupy the shading element. We will leave the default value.
The third option tells us about the conversion efficiency of the PV. The conversion of solar energy into electrical energy is not 100% efficient.
It does not convert all of the sunlight into electricity. The default efficiency is 20%.
Depending on the manufacturer, the percentage of efficiency can be different.
We will leave it as a default. We click ok.
You can see now that the photovoltaic system is assigned to the building.
In the model, this system could be in any position.
But, strategically it is positioned on horizontal surfaces or even with a certain angle. That will capture the most solar radiation.
The next step is to simulate. We open the model in Open Studio and run the simulation.
And we will evaluate in the simulation results.
We are going to add a report measure to be able to evaluate the energy produced by the PV.
How much electric energy is consumed by the building and how much is generated by the PV.
For this model, simple internal loads were used such as lighting and electrical equipment. They are there so we can test the photovoltaic model.
The measurement report is already added.
We are using the International measurement system (Phillipines version). Let us run the simulation.
We were successful in our simulation. We will evaluate the report.
According to the "Building Summary", we see our model has a total demand for electricity. There are internal loads generating this demand.
Let us look at the "Renewable Energy Source Summary". This is electricity produced by the photovoltaic system that we added.
Where the photovoltaic system would occupy 100% of the shading element. It has 20% efficiency.
The system is capable of generating an electricity equivalent to 9,816 kWh.
This results from the characteristics that we previously assigned.
We can also see in the "Site and Source Summary" guide.
Here we have the electric energy demand of the model. Below we have the "Net Site Energy". It is a difference in energy consumed and produced.
The energy being consumed minus the energy generated from the photovoltaic system.
Of course, we will not find exactness in values ​​if we do the calculations.
There are distribution and energy conversion losses.  These losses add up from the PV array, to the electrical wires, to the DC to AC conversion, and finally the reactive losses going to the electrical grid.
These factors are used to estimate approximately. They are, in general, reliable esimates.
We are now going to change the characteristics of the photovoltaic system and re-evaluate those numbers in the report.
Let us memorize this amount of electricity produced so that we can compare it later.
This generated value corresponds to a fraction of 100% of the shaded area is solar cells and they operate at 20% efficiency. We will change these values.
Go to "Extensions", "OpenStudio User Scripts", "Alter or Add Model Elements" , "Remove Photovoltaics".
First, let us remove the existing system. Click "Yes" to remove it completely.
We are now going to assign a new photovoltaic system. Let us change the fraction of the photovoltaic plate.
Efficiency will remain at 20%, so that we can compare with the numbers we already have. Click ok.
Save the model and reopen it in the Open Studio application.
Now let us simulate again.
We were successful again. We will evaluate the report again.
The system generated 4,908 kWh of electrical energy.
This value corresponds to exactly half of the energy produced that we had previously.
As we reduce the photovoltaic system by 50%, we will also reduce 50% of the electricity generated.
And that is exactly what was expressed in the report.
We will now work with efficiency. By default, the program uses 20% efficiency.
We are going to increase the efficiencies to obtain new values ​​of electric energy.
Again we are going to edit. Every time you edit, you need to click on the surface and remove the existing system as we did previously. It allows you to deploy a new system.
This time we are not going to touch the fraction of the area, but the efficiency.
We will add an additional 20% efficiency to our system, resulting in an overall efficiency equivalent to 40%.
We click "ok". Save it. Re-open it in Open Studio. (You can search for the file or just use "Revert to Saved")
And we have it opened again.
Recall that we are investigating the influence on the efficiency variable of the photovoltaic system.
We will run the simulation again.
Simulation finished. Let us evaluate the results. Go to the "Renewable Energy Source Summary".
And we observed that the value of electric energy produced is now approximately 19,633 kWh.
In the first simulation, when we had simulations with the characteristics of 100% area fraction and 20% efficiency, we obtained a value of 9,816 kWh.
Realize that the value of power generation has increased and this increase is justified by the 20% increase in efficiency that we used this time.
It is clear that our changes affected the simulation.
So, that is basically it. It is the way to add photovoltaic systems to energy models.
There are many factors to be analyzed when designing a photovoltaic system.
This SketchUp OpenStudio User Script allows you to easily customize the dimensions and simple performance parameters of a PV system. 
It will allow you to quickly evaluate performance of a photovoltaic system.
I thank you all, I ask you to subscribe to the channel, enjoy the videos and don't forget to click on the notifications to receive whenever we post new videos.

All About Shading Surfaces

21. OpenStudio SketchUp - All About Shading Surfaces

We'll cover the three categories of shading elements available in the video and when to use each one. We will assign construction materials to the shading elements as well as transmittance schedules. The model will be simulated and the properties will be evaluated in the HTML report made available by the program after the simulation.

Guys, we have more video.
In this video, we will address the three categories of shading surfaced that the program has for use in simulations.
We will also cover some 'user scripts' tools.
And finally we'll simulate the model.
For a start, let's first assign some shading surfaces using the 'new shading surface group' tool.
Let's implement a shading sruface at this position and let's validate it with the 'ENTER' key.
Using the line tool.
Let's sketch an eave for this roof.
First elaborate a shading surface.
Let's imagine a neighboring building next door.
Let's validate with the 'ENTER' key.
Let's use the rectangle tool.
Let's create this shadow element, representing a neighboring building.
We will also imagine that at the front of our building there is a tree.
Let's use the rectangle tool to shape our tree.
Let's draw the tree.
Drawn tree, now let's cut it.
Let's reposition the tree closest to the building.
We already have three shading surfaces in the model.
Let's select the model
Using the tool we used before.
Let's add horizontal window shades through the 'user scripts' tool.
We are asked to specify the relative projection of the shade.
The relationship is proportional to the size of the window (sub-surface).
For this situation the value is 0.5, it means 50% of the window size.
The 'offset' represents the distance from the shade element to the window. For this situation we will place it at the very beginning of the window, at the top. The value will be '0'.
We validate and wait.
Note the difference in tonality of this shadow element to the others.
This difference is something purposeful in the program, it does not represent any anomaly.
The program is claiming that this shading element differs from the others.
From there, we will start the explanation. Why is there such a thing?
When we click on the shading element that represents the neighboring building, we notice that, through the 'Inpector' tool, we see a dialog box with three options.
Option 'site', 'building', 'space'.
These options each have a purpose.
Suppose we are going to use the 'site' type.
Notice that the hue has changed.
This neighboring building belongs to the site.
However, it belongs to the 'site' type, as this type represents elements that represent the location, that is, they are not linked to the building.
This reasoning is also valid for the tree.
When we look again at the 'Inspector' tool window, it can be seen that the tree was characterized as 'building', but it is of the 'site' type, as it belongs to the site.
Let's change the element name to make it easier to understand when we are going to assign the constructs in the 'Open Studio' app.
Let's also change the name to this one here.
When we click on this element that represents the eave, we notice that it is of the 'building' type. This attribution is true, as the element belongs to our building.
Suppose the building rotates, this element will rotate with the building, because it is an element belonging to the building.
We also look at this other 'space' type.
This type performs the assignment of the shading element to a space.
This simply makes it convenient to edit all shading elements associated with a space.
So the function of type 'space' is association of the shading element to space.
After this information.
Let's export the model to 'OpenStudio', let's load the app.
Tool loaded. The first step is to check the integrity of the geometry.
Let's make sure the placement of the shadow elements is correct.
The eaves, the extension of the roof.
And check the horizontal brises.
Everything is in its place, we only observed this anomaly in the roof color, but it will not interfere with the simulation.
Let's click on the 'facilites' tab.
We click on the 'shading' sub-tab.
Note that we have listed the shading elements we created in the model.
There are these three elements here, but they are empty boxes that we forgot to delete, but it won't influence the simulation.
Let's stick to these other elements.
Here we have the tree, which we named in 'SketchUp'.
The tree can receive a broadcast schedule.
We can also assign a material to the tree. For this situation we would assign wood to the tree.
At this point we have the neighboring building.
This neighboring building can also receive material, for this situation we will imagine it to be concrete.
We also have the eaves, the shading element that is part of the roof.
To this element we can also assign a construction of concrete, metal or something that can serve as a shading element.
To do this, we must add constructions, let's do it.
We click on the 'constructions' tab, 'construction' sub-tab.
Note here that the constructions had already been created.
Let's delete.
And let's do it again.
The first construction will be for the neighboring building, remembering that it is a 'site' type.
Let's name it 'site_building'.
As we think of a concrete building, let's drag a material from the library that looks like concrete.
For the tree, it is also a 'site' type.
For this element, let's generalize just like wood.
We drag from the library and let go.
For the eave, the part of the element that makes up the roof.
For this part we can name the type 'building'.
It will also be made of concrete.
Now let's create one more element for the 'space' type.
These elements are the exterior window shades, which are at the top of the windows.
We can attribute to these elements some material similar to metal, wood. For this situation we will assign them to be metal.
After creating these constructions, it's time to characterize the shading elements.
It is noteworthy that these materials that we are using randomly to only try to approximate their real composition.
However, there is a way to edit the properties of these materials and there is a library available in case you need something more specific.
Now let's go back to the 'facilites' tab.
Beside, let's select 'my model' and look for the buildings.
Let's evaluate the tree first.
We click on the construction made for the tree and drag and drop it to characterize the tree.
Let's now do it for the neighboring building, look at the six sides of the building.
Let's assign each face to the concrete construction made.
The attribution of the name was purposeful to facilitate identification and characterization.
That kind of 'building'.
We attribute 'building'.
The 'space' type is not available here.
However, when we go back to the 'constructions' >'constructions set' tab., note here the option for other constructions to assign the type 'space'.
Let's assign the construct of type 'space' here.
There is the possibility of assigning the other types here too, however in our model we have two similar types of shadow, but with different construction material, we will not make this assignment here due to material standardization.
Due to this condition, we carried out the characterization of the materials in the 'facilites' tab.
All materials have been assigned to the shading elements. Let's look at the transmittance schedule now.
There is the possibility of drawing up a transmittance schedule. This schedule fits in cases where the element may vary depending on the season, environmental variables or some factors.
For our case, we have the tree.
The tree does not have its full foliage every day of the year.
There is a period that the tree has a certain transmittance value and another period that has a different transmittance value.
This variation can be described to the program so that it implements these conditions in the simulation.
Let's now work out this transmittance schedule for the tree.
We click on 'schedules' tab > 'schedules' subtab.
Let's create a fractional schedule.
Let's name it 'tree'.
To facilitate the assignment. By default we will assign 0.9 transmittance.
In other words, if none of the conditions that we will implement are not met, the program will use this default value for the routine.
The program will understand that there are 90% of the passage of sunlight.
Now let's implement the tree condition. A period that it has leaves and a period that has no leaves.
There is a period that starts in the spring where we have the date March 20.
Let's assign this date, so on this date let's consider that the tree has a transmittance of 0.1, that is, it has almost the full volume of the leaves.
And during the period the leaves fall until there are no more leaves until the spring period.
That begins on the September 23.
This period the tree has the leaves.
Outside this period it doesn't have leaves
Let's assign these conditions to the summer design conditions. In the summer, there is a transmittance of 1.
That is, there is no tree, or in the winter the tree was cut.
Anyway, there are these two situations that are the days of 'design'. The worst possible case.
There is this priority, there is this information that during this period which corresponds to March, which corresponds to the period of spring, summer and early autumn that the tree has leaves and later it loses foliage during autumn and winter.
The schedule has now been drawn up, and there is a pattern for the whole year and during design days.
To start the simulation we will need to configure the solar distribution in the simulation control.
We need to consider Solar Distribution with Reflection effects, we have the option to only consider exterior only, interior only or both. Let's assume it's both.
After this configuration, we check the schedule and go to the 'facilites' tab to assign the schedule we created to the tree.
Right here the schedule. Let's go back to check. There is even another schedule, but it is not edited. The valid schedule is this one.
Finally we assign the transmittance schedule to the tree and buildings. Now, let's simulate the model.
We were successful in the simulation, let's show the results through the HTML file.
Through the property we can observe the visible solar reflectance values ​​of the elements that we implemented in the model.
Here the exterior window shades are represented, they received a metal construction, all this information corresponds only to the brises.
Here we have the local elements.
Here we have all the values ​​related to the created elements, these transmittance values ​​directly affect the energy performance of the building.
They also affect the program's energy balance calculation.
So this was another video showing the details of the shadow elements.
Subscribe to the channel, enjoy the videos, activate the notification bell to be informed when new videos are available on the channel.

22. OpenStudio SketchUp - Cleanup Origins

In this tutorial, one more functionality of the user scrpits extension will be covered. Let's learn how to resize the available space in relation to the space needed. It should be noted that it is a practical tool to use, but you should pay close attention to how you use it.

Let's start another video of the series "User scripts"
We know they are important tools that save time. These are tools that are often effective. However, sometimes you need to be careful when using them.
Today we have our building and we have a problem where the space origins are located way out of the space.
This is really a visual problem, but it can be confusing and difficult to work with.
A quick solution to this kind of problem is through the extension of the "User scripts", "Cleanup Origins".
However, before we start this procedure, let us save the model. We will also check for any errors or warnings.
There are no errors or warnings on our project.
This procedure can be done for a single space, but for our model we will do it for all spaces.
Our model has many spaces that need to be modified.
Let us select the template, click on extensions, Open studio "User Scripts", Alter or Add Model Elements, Cleanup Origins.
The program has completed executing the command. Note the confusion. Most of the time this is not a problem.
Let us save the model and reopen it again.
All origins have been fixed. They have been readjusted to fit within the spaces.
It is very important to pay attention to the errors generated by this procedure.
It is necessary to check whether these errors exist.
For verification, it is good to use the Inspector tool and error information. Let us check if there were these distortions or changes in the model.
Resolving errors is essential to avoid problems in simulations.
Finally, this is another video from the series "User Scripts"
I appreciate everyone's attention and don't forget to SUBSCRIBE to the channel.
Thank you all.

Cleanup Origins
bottom of page