Ejemplo n.º 1
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler, ItemType
"""Alias for inputs that expect a simulation parameter .json file as the recipe input."""
energy_simulation_parameter_input = [
    InputAlias.any(
        name='sim_par',
        description=
        'A SimulationParameter object that describes all of the setting for '
        'the energy simulation. If None, some default simulation parameters will '
        'automatically be used. This can also be the path to a SimulationParameter '
        'JSON file.',
        optional=True,
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(language='python',
                           module='pollination_handlers.inputs.simulation',
                           function='energy_sim_par_to_json')
        ])
]
"""Alias for inputs that expect a measures input."""
measures_input = [
    InputAlias.list(
        name='measures',
        item_type=ItemType.Generic,
        description=
        'An optional list of measures to apply to the OpenStudio model '
        'upon export. Use the "HB Load Measure" component to load a measure into '
        'Grasshopper and assign input arguments. Measures can be downloaded from the '
        'NREL Building Components Library (BCL) at (https://bcl.nrel.gov/).',
        default=[],
        optional=True,
Ejemplo n.º 2
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler
"""Alias for inputs that expect a .ddy file as the recipe input."""
ddy_input = [
    InputAlias.any(
        name='ddy',
        description=
        'The path to a .ddy file or an .epw file with design days to be '
        'used for the initial sizing calculation.',
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(language='python',
                           module='pollination_handlers.inputs.ddy',
                           function='ddy_handler')
        ])
]
Ejemplo n.º 3
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler
"""Alias for inputs that expect an annual schedule as a .csv file."""
schedule_csv_input = [
    InputAlias.any(
        name='schedule',
        description=
        'An annual occupancy schedule, either as a path to a csv file (with '
        '8760 rows), a Ladybug Hourly Continuous Data Collection or a HB-Energy '
        'schedule object. This can also be the identifier of a schedule in '
        'your HB-Energy schedule library. Any value in this schedule that is '
        '0.1 or above will be considered occupied.',
        optional=True,
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(language='python',
                           module='pollination_handlers.inputs.schedule',
                           function='schedule_to_csv')
        ])
]
"""Alias for inputs that expect a schedule as a .csv file from a data collection."""
comfort_schedule_csv_input = [
    InputAlias.any(
        name='schedule',
        description=
        'A schedule to specify the relevant times during which comfort '
        'should be evaluated. This must either be a Ladybug Hourly Data '
        'Collection that aligns with the input run_period or the path to a '
        'CSV file with a number of rows equal to the length of the run_period. '
        'If unspecified, it will be assumed that all times are relevant for '
        'outdoor sensors and the energy model occupancy schedules will be '
Ejemplo n.º 4
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler


"""Alias inputs that expect a HBJSON model file as the recipe input."""
hbjson_model_input = [
    # grasshopper Alias
    InputAlias.any(
        name='model',
        description='A Honeybee Model to simulate or the path to a HBJSON file '
        'of a Model. This can also be the path to a HBpkl file, though this is only '
        'recommended for cases where the model is extremely large.',
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(
                language='python', module='pollination_handlers.inputs.model',
                function='model_to_json'
            ),
            IOAliasHandler(
                language='csharp', module='Pollination.RhinoHandlers',
                function='HBModelToJSON'
            )
        ]
    ),
    # Rhino alias
    InputAlias.linked(
        name='model',
        description='This input links the model to Rhino model.',
        platform=['rhino'],
        handler=[
            IOAliasHandler(
Ejemplo n.º 5
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler
"""Alias for thermal map air speeds."""
air_speed_input = [
    InputAlias.any(
        name='air_speed',
        description=
        'A single number for air speed in m/s or an hourly data collection '
        'of air speeds that align with the input run_period. This will be '
        'used for all indoor comfort evaluation. Note that the EPW wind speed '
        'will be used for any outdoor sensors. (Default: 0.1).',
        default='0.1',
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(language='python',
                           module='pollination_handlers.inputs.data',
                           function='value_or_data_to_str')
        ])
]
"""Alias for thermal map wind speeds."""
wind_speed_input = [
    InputAlias.any(
        name='wind_speed',
        description=
        'A single number for meteorological wind speed in m/s or an hourly '
        'data collection of wind speeds that align with the input run period. '
        'This will be used for all indoor comfort evaluation. Note that the '
        'EPW wind speed will be used for any outdoor sensors. (Default: 0.5).',
        default='0.5',
        platform=['grasshopper'],
        handler=[
Ejemplo n.º 6
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler


"""Alias for the selection of point-in-time metrics."""
point_in_time_metric_input = [
    InputAlias.any(
        name='metric',
        description='Either an integer or the full name of a point-in-time metric to '
        'be computed by the recipe. (Default: illuminance). Choose from the following:'
        '\n* 0 = illuminance\n* 1 = irradiance\n* 2 = luminance\n* 3 = radiance',
        default='illuminance',
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(
                language='python',
                module='pollination_handlers.inputs.pit',
                function='point_in_time_metric_to_str'
            )
        ]
    )
]


"""Alias for the selection of point-in-time metrics."""
point_in_time_view_metric_input = [
    InputAlias.any(
        name='metric',
        description='Either an integer or the full name of a point-in-time metric to '
        'be computed by the recipe. (Default: luminance). Choose from the following:'
        '\n* 0 = illuminance\n* 1 = irradiance\n* 2 = luminance\n* 3 = radiance',
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler
"""Alias for yes/no inputs about whether to filter design days."""
filter_des_days_input = [
    InputAlias.any(
        name='filter_des_days',
        description=
        'A boolean to note whether the ddy file should be filtered to only '
        'include 99.6 and 0.4 design days (True) or all design days in the ddy file '
        'should be used (False).',
        default=True,
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(language='python',
                           module='pollination_handlers.inputs.bool_options',
                           function='filter_des_days_to_str')
        ])
]
"""Alias for yes/no inputs about whether to skip a view-based overture calculation."""
skip_overture_input = [
    InputAlias.any(
        name='skip_overture',
        description='A boolean to note whether an ambient file (.amb) should be '
        'generated for an overture calculation before the view is split into smaller '
        'views. With an overture calculation, the ambient file (aka ambient cache) is '
        'first populated with values. Thereby ensuring that - when reused to create '
        'an image - Radiance uses interpolation between already calculated values '
        'rather than less reliable extrapolation. The overture calculation has '
        'comparatively small computation time to full rendering but is single-core '
        'can become time consuming in situations with very high numbers of '
        'rendering multiprocessors.',
Ejemplo n.º 8
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler
"""Alias for inputs that set the CPU count by splitting views."""
cpu_count = [
    InputAlias.int(
        name='cpu_count',
        description=
        'The maximum number of CPUs for parallel execution. For local '
        'simulation, this value is ignored and the cpu_count is automatically set to '
        'be equal to the number of workers tasked to the run. For cloud-based runs, '
        'this input can be used to control the resources used for the simulation and, '
        'if unspecified, the default value of 12 will be used.',
        default=12,
        platform=['grasshopper'])
]
Ejemplo n.º 9
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler


"""Alias for north inputs that can accept both an angle or a north vector."""
north_input = [
    InputAlias.any(
        name='north',
        description='A number between -360 and 360 for the counterclockwise difference '
        'between the North and the positive Y-axis in degrees. This can '
        'also be Vector for the direction to North. (Default: 0).',
        default=0,
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(
                language='python',
                module='pollination_handlers.inputs.north',
                function='north_vector_to_angle'
            )
        ]
    )
]
Ejemplo n.º 10
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler
"""Alias for inputs that expect a .wea file as the recipe input."""
wea_input = [
    InputAlias.any(
        name='wea',
        description=
        'A Wea object produced from the Wea components that are under '
        'the Light Sources tab. This can also be the path to a .wea or a .epw file.',
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(language='python',
                           module='pollination_handlers.inputs.wea',
                           function='wea_handler')
        ])
]
"""Alias for inputs that expect a .wea file at a timestep of 1."""
wea_input_timestep_check = [
    InputAlias.any(
        name='wea',
        description=
        'A Wea object produced from the Wea components that are under '
        'the Light Sources tab. This can also be the path to a .wea or a .epw file.',
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(language='python',
                           module='pollination_handlers.inputs.wea',
                           function='wea_handler_timestep_check')
        ])
]
Ejemplo n.º 11
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler
"""Alias for text that filters the simulated radiance grids."""
grid_filter_input = [
    InputAlias.str(
        name='grid_filter',
        description=
        'Text for a grid identifier or a pattern to filter the sensor grids '
        'of the model that are simulated. For instance, first_floor_* will simulate '
        'only the sensor grids that have an identifier that starts with '
        'first_floor_. By default, all grids in the model will be simulated.',
        default='*',
        platform=['grasshopper'])
]
"""Alias for inputs that split sensor grids for parallel execution."""
sensor_count_input = [
    InputAlias.int(
        name='sensor_count',
        description='Positive integer for the number of sensor grid points per '
        'parallel execution. Lower numbers will result in sensor grids being '
        'split into more pieces and, since each grid piece is run by a separate worker, '
        'this can mean a faster simulation on machines with several CPUs. However ,'
        'If the number is too low, the overhad of splitting the grid will not be worth '
        'the time gained through parallelization. (Default: 200).',
        default=200,
        platform=['grasshopper'])
]
"""Alias for inputs that set the minimum number of sensors in split sensor grids."""
min_sensor_count_input = [
    InputAlias.int(
        name='min_sen_count',
Ejemplo n.º 12
0
from pollination_dsl.alias import InputAlias
"""Alias for annual daylight/radiation radiance parameters."""
rad_par_annual_input = [
    InputAlias.str(
        name='radiance_par',
        description=
        'Text for the radiance parameters to be used for ray tracing. '
        '(Default: -ab 2 -ad 5000 -lw 2e-05).',
        default='-ab 2 -ad 5000 -lw 2e-05',
        platform=['grasshopper'])
]
"""Alias for rtrace (daylight factor + PIT) radiance parameters."""
rad_par_daylight_factor_input = [
    InputAlias.str(
        name='radiance_par',
        description=
        'Text for the radiance parameters to be used for ray tracing. '
        '(Default: -ab 2 -aa 0.1 -ad 2048 -ar 64).',
        default='-ab 2 -aa 0.1 -ad 2048 -ar 64',
        platform=['grasshopper'])
]
"""Alias for sky view rtrace radiance parameters."""
rad_par_sky_view_input = [
    InputAlias.str(
        name='radiance_par',
        description=
        'Text for the radiance parameters to be used for ray tracing. '
        '(Default: -aa 0.1 -ad 2048 -ar 64).',
        default='-aa 0.1 -ad 2048 -ar 64',
        platform=['grasshopper'])
]
Ejemplo n.º 13
0
from pollination_dsl.alias import InputAlias
from queenbee.io.common import IOAliasHandler
"""Alias for inputs that expect an annual schedule as a .csv file."""
schedule_csv_input = [
    InputAlias.any(
        name='schedule',
        description=
        'An annual occupancy schedule, either as a path to a csv file (with '
        '8760 rows), a Ladybug Hourly Continuous Data Collection or a HB-Energy '
        'schedule object. This can also be the identifier of a schedule in '
        'your HB-Energy schedule library. Any value in this schedule that is '
        '0.1 or above will be considered occupied.',
        optional=True,
        platform=['grasshopper'],
        handler=[
            IOAliasHandler(language='python',
                           module='pollination_handlers.inputs.schedule',
                           function='schedule_to_csv')
        ])
]