honeybee-openstudio 2.25.1 → 2.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/honeybee-openstudio.gemspec +1 -1
- data/lib/files/urbanopt_Gemfile +1 -1
- data/lib/from_openstudio/construction/air.rb +3 -0
- data/lib/from_openstudio/construction/opaque.rb +3 -0
- data/lib/from_openstudio/construction/shade.rb +3 -0
- data/lib/from_openstudio/construction/window.rb +3 -0
- data/lib/from_openstudio/construction_set.rb +3 -0
- data/lib/from_openstudio/material/opaque.rb +16 -1
- data/lib/from_openstudio/material/opaque_no_mass.rb +16 -1
- data/lib/from_openstudio/material/window_blind.rb +3 -0
- data/lib/from_openstudio/material/window_gas.rb +3 -0
- data/lib/from_openstudio/material/window_gas_custom.rb +3 -0
- data/lib/from_openstudio/material/window_gas_mixture.rb +3 -0
- data/lib/from_openstudio/material/window_glazing.rb +3 -0
- data/lib/from_openstudio/material/window_simpleglazsys.rb +3 -0
- data/lib/from_openstudio/schedule/fixed_interval.rb +3 -0
- data/lib/from_openstudio/schedule/ruleset.rb +3 -0
- data/lib/from_openstudio/schedule/type_limit.rb +3 -0
- data/lib/honeybee/_defaults/model.json +661 -29
- data/lib/honeybee/load/process.rb +42 -0
- data/lib/honeybee/model.rb +2 -1
- data/lib/honeybee/model_object.rb +41 -3
- data/lib/honeybee/simulation/parameter_model.rb +2 -1
- data/lib/honeybee.rb +1 -0
- data/lib/to_openstudio/construction/air.rb +3 -0
- data/lib/to_openstudio/construction/opaque.rb +3 -0
- data/lib/to_openstudio/construction/shade.rb +3 -0
- data/lib/to_openstudio/construction/window.rb +3 -1
- data/lib/to_openstudio/construction/windowshade.rb +3 -2
- data/lib/to_openstudio/construction_set.rb +3 -2
- data/lib/to_openstudio/geometry/aperture.rb +4 -0
- data/lib/to_openstudio/geometry/door.rb +4 -0
- data/lib/to_openstudio/geometry/face.rb +3 -0
- data/lib/to_openstudio/geometry/room.rb +12 -0
- data/lib/to_openstudio/geometry/shade.rb +3 -1
- data/lib/to_openstudio/hvac/ideal_air.rb +3 -1
- data/lib/to_openstudio/load/electric_equipment.rb +6 -0
- data/lib/to_openstudio/load/gas_equipment.rb +6 -0
- data/lib/to_openstudio/load/infiltration.rb +3 -1
- data/lib/to_openstudio/load/lighting.rb +3 -0
- data/lib/to_openstudio/load/people.rb +3 -0
- data/lib/to_openstudio/load/process.rb +100 -0
- data/lib/to_openstudio/load/service_hot_water.rb +1 -1
- data/lib/to_openstudio/load/ventilation.rb +3 -0
- data/lib/to_openstudio/material/opaque.rb +3 -0
- data/lib/to_openstudio/material/opaque_no_mass.rb +3 -1
- data/lib/to_openstudio/material/window_blind.rb +3 -1
- data/lib/to_openstudio/material/window_gas.rb +3 -1
- data/lib/to_openstudio/material/window_gas_custom.rb +3 -0
- data/lib/to_openstudio/material/window_gas_mixture.rb +3 -1
- data/lib/to_openstudio/material/window_glazing.rb +3 -1
- data/lib/to_openstudio/material/window_shade.rb +3 -1
- data/lib/to_openstudio/material/window_simpleglazsys.rb +3 -1
- data/lib/to_openstudio/program_type.rb +3 -1
- data/lib/to_openstudio/schedule/fixed_interval.rb +6 -1
- data/lib/to_openstudio/schedule/ruleset.rb +6 -1
- data/lib/to_openstudio/schedule/type_limit.rb +3 -1
- data/lib/to_openstudio.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84b66e4746d59f77468d6ab7e342a1c7feb57806e692173dee69ec248f5a4b1f
|
4
|
+
data.tar.gz: e9e0476441a4f9261292b2d78d49c15c1d113de599b6ef7dcebfb3c79cc72888
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a260b02b02b502f29c2cebfa55c9b9938aef96f0b2bcdfe4044cc3a28af14290615ad6e1b9afde6747cd6d11e4e18a0974f793683af251a3d5743ca20450d37b
|
7
|
+
data.tar.gz: 8022e1f14fb2a5f700e7f5dedfc5d7a26e481b463ebef2cac6b381ee798d3906508edd9508717e07b7dcb6f967a5a9f2ed9bd7c9c85aaafa79d822d6b74fea90
|
data/honeybee-openstudio.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'honeybee-openstudio'
|
7
|
-
spec.version = '2.
|
7
|
+
spec.version = '2.27.0'
|
8
8
|
spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
|
9
9
|
spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
|
10
10
|
|
data/lib/files/urbanopt_Gemfile
CHANGED
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'AirBoundaryConstructionAbridged'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(construction.nameString)
|
44
|
+
unless construction.displayName.empty?
|
45
|
+
hash[:display_name] = (construction.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
# check if boost optional object is empty
|
45
48
|
unless construction.simpleMixingSchedule.empty?
|
46
49
|
schedule = construction.simpleMixingSchedule.get
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'OpaqueConstructionAbridged'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(construction.nameString)
|
44
|
+
unless construction.displayName.empty?
|
45
|
+
hash[:display_name] = (construction.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:materials] = []
|
45
48
|
# get construction layers
|
46
49
|
layers = construction.layers
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'ShadeConstruction'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(construction.nameString)
|
44
|
+
unless construction.displayName.empty?
|
45
|
+
hash[:display_name] = (construction.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
# get outermost construction layers
|
45
48
|
layer = construction.layers[0]
|
46
49
|
if layer.to_StandardGlazing.is_initialized
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'WindowConstructionAbridged'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(construction.nameString)
|
44
|
+
unless construction.displayName.empty?
|
45
|
+
hash[:display_name] = (construction.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:materials] = []
|
45
48
|
# get construction layers
|
46
49
|
layers = construction.layers
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'ConstructionSetAbridged'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(construction_set.nameString)
|
44
|
+
unless construction_set.displayName.empty?
|
45
|
+
hash[:display_name] = (construction_set.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:wall_set] = {}
|
45
48
|
hash[:floor_set] = {}
|
46
49
|
hash[:aperture_set] = {}
|
@@ -41,11 +41,26 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'EnergyMaterial'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:thickness] = material.thickness
|
45
48
|
hash[:conductivity] = material.conductivity
|
46
49
|
hash[:density] = material.density
|
47
50
|
hash[:specific_heat] = material.specificHeat
|
48
|
-
|
51
|
+
case material.roughness.downcase
|
52
|
+
when 'veryrough'
|
53
|
+
hash[:roughness] == 'VeryRough'
|
54
|
+
when 'mediumrough'
|
55
|
+
hash[:roughness] == 'MediumRough'
|
56
|
+
when 'mediumsmooth'
|
57
|
+
hash[:roughness] == 'MediumSmooth'
|
58
|
+
when 'verysmooth'
|
59
|
+
hash[:roughness] == 'VerySmooth'
|
60
|
+
# In case of Rough or Smooth
|
61
|
+
else
|
62
|
+
hash[:roughness] = material.roughness.titleize
|
63
|
+
end
|
49
64
|
hash[:thermal_absorptance] = material.thermalAbsorptance
|
50
65
|
hash[:solar_absorptance] = material.solarAbsorptance
|
51
66
|
hash[:visible_absorptance] = material.visibleAbsorptance
|
@@ -41,12 +41,27 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'EnergyMaterialNoMass'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:r_value] = material.thermalResistance
|
45
48
|
|
46
49
|
if material.to_MasslessOpaqueMaterial.is_initialized
|
47
50
|
# Roughness is a required property for OS MasslessOpaqueMaterial but isn't a listed
|
48
51
|
# property for OS AirGap
|
49
|
-
|
52
|
+
case material.roughness.downcase
|
53
|
+
when 'veryrough'
|
54
|
+
hash[:roughness] == 'VeryRough'
|
55
|
+
when 'mediumrough'
|
56
|
+
hash[:roughness] == 'MediumRough'
|
57
|
+
when 'mediumsmooth'
|
58
|
+
hash[:roughness] == 'MediumSmooth'
|
59
|
+
when 'verysmooth'
|
60
|
+
hash[:roughness] == 'VerySmooth'
|
61
|
+
# In case of Rough or Smooth
|
62
|
+
else
|
63
|
+
hash[:roughness] = material.roughness.titleize
|
64
|
+
end
|
50
65
|
# check if boost optional object is empty
|
51
66
|
unless material.thermalAbsorptance.empty?
|
52
67
|
hash[:thermal_absorptance] = material.thermalAbsorptance.get
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'EnergyWindowMaterialBlind'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:slat_orientation] = material.slatOrientation
|
45
48
|
hash[:slat_width] = material.slatWidth
|
46
49
|
hash[:slat_separation] = material.slatSeparation
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'EnergyWindowMaterialGas'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:thickness] = material.thickness
|
45
48
|
hash[:gas_type] = material.gasType
|
46
49
|
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'EnergyWindowMaterialGasCustom'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:thickness] = material.thickness
|
45
48
|
# check if boost optional object is empty
|
46
49
|
unless material.customConductivityCoefficientA.empty?
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'EnergyWindowMaterialGasMixture'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:thickness] = material.thickness
|
45
48
|
hash[:gas_types] = []
|
46
49
|
hash[:gas_fractions] = []
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'EnergyWindowMaterialGlazing'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:thickness] = material.thickness
|
45
48
|
hash[:solar_transmittance] = material.solarTransmittance
|
46
49
|
# check if boost optional object is empty
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'EnergyWindowMaterialSimpleGlazSys'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(material.nameString)
|
44
|
+
unless material.displayName.empty?
|
45
|
+
hash[:display_name] = (material.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:u_factor] = material.uFactor
|
45
48
|
hash[:shgc] = material.solarHeatGainCoefficient
|
46
49
|
# check if boost optional object is empty
|
@@ -40,6 +40,9 @@ module Honeybee
|
|
40
40
|
hash = {}
|
41
41
|
hash[:type] = 'ScheduleFixedIntervalAbridged'
|
42
42
|
hash[:identifier] = clean_name(schedule_fixedinterval.nameString)
|
43
|
+
unless schedule_fixedinterval.displayName.empty?
|
44
|
+
hash[:display_name] = (schedule_fixedinterval.displayName.get).force_encoding("UTF-8")
|
45
|
+
end
|
43
46
|
start_month = schedule_fixedinterval.startMonth
|
44
47
|
start_day = schedule_fixedinterval.startDay
|
45
48
|
if is_leap_year
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'ScheduleRulesetAbridged'
|
42
42
|
# set the primary (required) day schedules of the object
|
43
43
|
hash[:identifier] = clean_name(schedule_ruleset.nameString)
|
44
|
+
unless schedule_ruleset.displayName.empty?
|
45
|
+
hash[:display_name] = (schedule_ruleset.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
hash[:default_day_schedule] = clean_name(schedule_ruleset.defaultDaySchedule.nameString)
|
45
48
|
hash[:summer_designday_schedule] = clean_name(schedule_ruleset.summerDesignDaySchedule.nameString)
|
46
49
|
hash[:winter_designday_schedule] = clean_name(schedule_ruleset.winterDesignDaySchedule.nameString)
|
@@ -41,6 +41,9 @@ module Honeybee
|
|
41
41
|
hash[:type] = 'ScheduleTypeLimit'
|
42
42
|
# set hash values from OpenStudio Object
|
43
43
|
hash[:identifier] = clean_name(schedule_type_limit.nameString)
|
44
|
+
unless schedule_type_limit.displayName.empty?
|
45
|
+
hash[:display_name] = (schedule_type_limit.displayName.get).force_encoding("UTF-8")
|
46
|
+
end
|
44
47
|
# check if boost optional object is empty
|
45
48
|
unless schedule_type_limit.lowerLimitValue.empty?
|
46
49
|
hash[:lower_limit] = schedule_type_limit.lowerLimitValue.get
|