-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
envelope_material_property_phase_change files for #4
- Loading branch information
1 parent
491d8de
commit 2f9c839
Showing
4 changed files
with
262 additions
and
0 deletions.
There are no files selected for viewing
32 changes: 32 additions & 0 deletions
32
measures/envelope_material_property_phase_change/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
|
||
|
||
###### (Automatically generated documentation) | ||
|
||
# Material Property Phase Change | ||
|
||
## Description | ||
Adds a MaterialProperty:PhaseChange object to the model that references the interior layer of the selected Construction. | ||
|
||
## Modeler Description | ||
Gets the interior layer name of the selected Construction object from the number of fields and sets the MaterialProperty:PhaseChange Name field to reference it. | ||
|
||
## Measure Type | ||
EnergyPlusMeasure | ||
|
||
## Taxonomy | ||
|
||
|
||
## Arguments | ||
|
||
|
||
### Construction Name | ||
Phase Change Material will be added to interior material | ||
**Name:** construction_name, | ||
**Type:** Choice, | ||
**Units:** , | ||
**Required:** true, | ||
**Model Dependent:** false | ||
|
||
|
||
|
||
|
42 changes: 42 additions & 0 deletions
42
measures/envelope_material_property_phase_change/README.md.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<%#= README.md.erb is used to auto-generate README.md. %> | ||
<%#= To manually maintain README.md throw away README.md.erb and manually edit README.md %> | ||
###### (Automatically generated documentation) | ||
|
||
# <%= name %> | ||
|
||
## Description | ||
<%= description %> | ||
|
||
## Modeler Description | ||
<%= modelerDescription %> | ||
|
||
## Measure Type | ||
<%= measureType %> | ||
|
||
## Taxonomy | ||
<%= taxonomy %> | ||
|
||
## Arguments | ||
|
||
<% arguments.each do |argument| %> | ||
### <%= argument[:display_name] %> | ||
<%= argument[:description] %> | ||
**Name:** <%= argument[:name] %>, | ||
**Type:** <%= argument[:type] %>, | ||
**Units:** <%= argument[:units] %>, | ||
**Required:** <%= argument[:required] %>, | ||
**Model Dependent:** <%= argument[:model_dependent] %> | ||
<% end %> | ||
|
||
<% if arguments.size == 0 %> | ||
<%= "This measure does not have any user arguments" %> | ||
<% end %> | ||
|
||
<% if outputs.size > 0 %> | ||
## Outputs | ||
<% output_names = [] %> | ||
<% outputs.each do |output| %> | ||
<% output_names << output[:display_name] %> | ||
<% end %> | ||
<%= output_names.join(", ") %> | ||
<% end %> |
88 changes: 88 additions & 0 deletions
88
measures/envelope_material_property_phase_change/measure.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
<?xml version="1.0"?> | ||
<measure> | ||
<schema_version>3.0</schema_version> | ||
<name>envelope_material_property_phase_change</name> | ||
<uid>89c98dc2-c2d7-4014-a411-0103c899546b</uid> | ||
<version_id>58465349-4463-4926-8d1e-68a6b9328c49</version_id> | ||
<version_modified>20200808T211309Z</version_modified> | ||
<xml_checksum>BB067920</xml_checksum> | ||
<class_name>EnvelopeMaterialPropertyPhaseChange</class_name> | ||
<display_name>Material Property Phase Change</display_name> | ||
<description>Adds a MaterialProperty:PhaseChange object to the model that references the interior layer of the selected Construction.</description> | ||
<modeler_description>Gets the interior layer name of the selected Construction object from the number of fields and sets the MaterialProperty:PhaseChange Name field to reference it.</modeler_description> | ||
<arguments> | ||
<argument> | ||
<name>construction_name</name> | ||
<display_name>Construction Name</display_name> | ||
<description>Phase Change Material will be added to interior material</description> | ||
<type>Choice</type> | ||
<required>true</required> | ||
<model_dependent>false</model_dependent> | ||
</argument> | ||
</arguments> | ||
<outputs /> | ||
<provenances /> | ||
<tags> | ||
<tag>Envelope.Opaque</tag> | ||
</tags> | ||
<attributes> | ||
<attribute> | ||
<name>Measure Type</name> | ||
<value>EnergyPlusMeasure</value> | ||
<datatype>string</datatype> | ||
</attribute> | ||
<attribute> | ||
<name>Intended Software Tool</name> | ||
<value>OpenStudio Application</value> | ||
<datatype>string</datatype> | ||
</attribute> | ||
<attribute> | ||
<name>Intended Software Tool</name> | ||
<value>Parametric Analysis Tool</value> | ||
<datatype>string</datatype> | ||
</attribute> | ||
</attributes> | ||
<files> | ||
<file> | ||
<filename>LICENSE.md</filename> | ||
<filetype>md</filetype> | ||
<usage_type>license</usage_type> | ||
<checksum>CD7F5672</checksum> | ||
</file> | ||
<file> | ||
<filename>README.md.erb</filename> | ||
<filetype>erb</filetype> | ||
<usage_type>readmeerb</usage_type> | ||
<checksum>703C9964</checksum> | ||
</file> | ||
<file> | ||
<filename>.gitkeep</filename> | ||
<filetype>gitkeep</filetype> | ||
<usage_type>doc</usage_type> | ||
<checksum>00000000</checksum> | ||
</file> | ||
<file> | ||
<filename>envelope_material_property_phase_change_test.rb</filename> | ||
<filetype>rb</filetype> | ||
<usage_type>test</usage_type> | ||
<checksum>FE0599E9</checksum> | ||
</file> | ||
<file> | ||
<version> | ||
<software_program>OpenStudio</software_program> | ||
<identifier>3.0.1</identifier> | ||
<min_compatible>3.0.1</min_compatible> | ||
</version> | ||
<filename>measure.rb</filename> | ||
<filetype>rb</filetype> | ||
<usage_type>script</usage_type> | ||
<checksum>15AAD156</checksum> | ||
</file> | ||
<file> | ||
<filename>README.md</filename> | ||
<filetype>md</filetype> | ||
<usage_type>readme</usage_type> | ||
<checksum>F4CD0FC5</checksum> | ||
</file> | ||
</files> | ||
</measure> |
100 changes: 100 additions & 0 deletions
100
...lope_material_property_phase_change/tests/envelope_material_property_phase_change_test.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
# insert your copyright here | ||
|
||
require 'openstudio' | ||
require 'openstudio/measure/ShowRunnerOutput' | ||
require 'minitest/autorun' | ||
require_relative '../measure.rb' | ||
require 'fileutils' | ||
|
||
class EnvelopeMaterialPropertyPhaseChangeTest < Minitest::Test | ||
# def setup | ||
# end | ||
|
||
# def teardown | ||
|
||
def test_number_of_arguments_and_argument_names | ||
# create an instance of the measure | ||
measure = EnvelopeMaterialPropertyPhaseChange.new | ||
|
||
# make an empty workspace | ||
workspace = OpenStudio::Workspace.new('Draft'.to_StrictnessLevel, 'EnergyPlus'.to_IddFileType) | ||
|
||
# get arguments and test that they are what we are expecting | ||
arguments = measure.arguments(workspace) | ||
assert_equal(1, arguments.size) | ||
assert_equal('zone_name', arguments[0].name) | ||
end | ||
|
||
def test_bad_argument_values | ||
# create an instance of the measure | ||
measure = EnvelopeMaterialPropertyPhaseChange.new | ||
|
||
# create runner with empty OSW | ||
osw = OpenStudio::WorkflowJSON.new | ||
runner = OpenStudio::Measure::OSRunner.new(osw) | ||
|
||
# make an empty workspace | ||
workspace = OpenStudio::Workspace.new('Draft'.to_StrictnessLevel, 'EnergyPlus'.to_IddFileType) | ||
|
||
# check that there are no thermal zones | ||
assert_equal(0, workspace.getObjectsByType('Zone'.to_IddObjectType).size) | ||
|
||
# get arguments | ||
arguments = measure.arguments(workspace) | ||
argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments) | ||
|
||
# set argument values to bad value | ||
zone_name = arguments[0].clone | ||
assert(zone_name.setValue('')) | ||
argument_map['zone_name'] = zone_name | ||
|
||
# run the measure | ||
measure.run(workspace, runner, argument_map) | ||
result = runner.result | ||
assert_equal('Fail', result.value.valueName) | ||
|
||
# check that there are still no thermal zones | ||
assert_equal(0, workspace.getObjectsByType('Zone'.to_IddObjectType).size) | ||
end | ||
|
||
def test_good_argument_values | ||
# create an instance of the measure | ||
measure = EnvelopeMaterialPropertyPhaseChange.new | ||
|
||
# create runner with empty OSW | ||
osw = OpenStudio::WorkflowJSON.new | ||
runner = OpenStudio::Measure::OSRunner.new(osw) | ||
|
||
# make an empty workspace | ||
workspace = OpenStudio::Workspace.new('Draft'.to_StrictnessLevel, 'EnergyPlus'.to_IddFileType) | ||
|
||
# check that there are no thermal zones | ||
assert_equal(0, workspace.getObjectsByType('Zone'.to_IddObjectType).size) | ||
|
||
# get arguments | ||
arguments = measure.arguments(workspace) | ||
argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments) | ||
|
||
# set argument values to good values | ||
zone_name = arguments[0].clone | ||
assert(zone_name.setValue('New Zone')) | ||
argument_map['zone_name'] = zone_name | ||
|
||
# run the measure | ||
measure.run(workspace, runner, argument_map) | ||
result = runner.result | ||
assert_equal('Success', result.value.valueName) | ||
|
||
# check that there is now 1 thermal zones | ||
assert_equal(1, workspace.getObjectsByType('Zone'.to_IddObjectType).size) | ||
|
||
# check that zone is properly named | ||
zone = workspace.getObjectsByType('Zone'.to_IddObjectType)[0] | ||
assert(!zone.getString(0).empty?) | ||
assert_equal('New Zone', zone.getString(0).get) | ||
|
||
# save the workspace to output directory | ||
output_file_path = OpenStudio::Path.new(File.dirname(__FILE__) + '/output/test_output.idf') | ||
workspace.save(output_file_path, true) | ||
end | ||
end |