Source code for honeybee_radiance.lib.modifiersets

"""Collection of modifier sets."""
from honeybee_radiance.modifierset import ModifierSet
from ._loadmodifiersets import _loaded_modifier_sets

import honeybee_radiance.lib.modifiers as _m


# establish variables for the default modifier sets used across the library
generic_modifier_set_visible = \
    _loaded_modifier_sets['Generic_Interior_Visible_Modifier_Set']
generic_modifier_set_solar = \
    _loaded_modifier_sets['Generic_Interior_Solar_Modifier_Set']
generic_modifier_set_visible_exterior = \
    _loaded_modifier_sets['Generic_Exterior_Visible_Modifier_Set']
generic_modifier_set_solar_exterior = \
    _loaded_modifier_sets['Generic_Exterior_Solar_Modifier_Set']


# make lists of modifier sets to look up items in the library
MODIFIER_SETS = tuple(_loaded_modifier_sets.keys())


[docs] def modifier_set_by_identifier(modifier_set_identifier): """Get a modifier_set from the library given its identifier. Args: modifier_set_identifier: A text string for the identifier of the ModifierSet. """ try: return _loaded_modifier_sets[modifier_set_identifier] except KeyError: raise ValueError('"{}" was not found in the modifier set library.'.format( modifier_set_identifier))
[docs] def lib_dict_abridged_to_modifier_set(mod_set_dict, modifiers): """Get a Python object of a ModifierSet from an abridged dictionary. When the sub-objects needed to create the modifier set are not available in the resources provided, the current standards library will be searched. Args: mod_set_dict: An abridged dictionary of a Honeybee ModifierSet. modifiers: Dictionary of all modifier objects that might be used in the modifier set with the modifier identifiers as the keys. Returns: A Python object derived from the input mod_set_dict. """ for key in mod_set_dict: if isinstance(mod_set_dict[key], dict): sub_dict = mod_set_dict[key] for sub_key in sub_dict: if sub_key == 'type' or sub_key in modifiers: continue if sub_dict[sub_key] not in modifiers: modifiers[sub_dict[sub_key]] = \ _m.modifier_by_identifier(sub_dict[sub_key]) elif key == 'air_boundary_modifier' \ and mod_set_dict[key] not in modifiers: modifiers[mod_set_dict[key]] = \ _m.modifier_by_identifier(mod_set_dict[key]) return ModifierSet.from_dict_abridged(mod_set_dict, modifiers)