diff --git a/new_week_sch.ipynb b/new_week_sch.ipynb deleted file mode 100644 index 105933c..0000000 --- a/new_week_sch.ipynb +++ /dev/null @@ -1,198 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Hsptl Infl Qrtr On\" = WEEK-SCHEDULE-PD\n", - " TYPE = FRACTION\n", - " DAY-SCHEDULES = ( \"Hsptl Infl Qrtr OnSn|St\", $ Monday\n", - " \"Hsptl Infl Qrtr OnDflt\", $ Tuesday\n", - " \"Hsptl Infl Qrtr OnDflt\", $ Wednesday\n", - " \"Hsptl Infl Qrtr OnDflt\", $ Thursday\n", - " \"Hsptl Infl Qrtr OnDflt\", $ Friday\n", - " \"Hsptl Infl Qrtr OnDflt\", $ Saturday\n", - " \"Hsptl Infl Qrtr OnSn|St\", $ Sunday\n", - " \"Hsptl Infl Qrtr OnDflt\", $ Holiday\n", - " \"HsptlInflQrtrOnWntrDsn\", $ Winter Design Day\n", - " \"Hsptl Infl Qrtr OnSmrDsn\", $ Summer Design Day\n", - " )\n", - " .." - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "from honeybee_doe2.properties.activitydescription import DayScheduleType, Days\n", - "from dataclasses import dataclass\n", - "from honeybee.model import Model\n", - "from typing import List\n", - "import textwrap\n", - "from honeybee_doe2.utils.doe_formatters import short_name\n", - "\n", - "\n", - "@dataclass\n", - "class WeekScheduleDoe2:\n", - " name: str = None\n", - " stype: str = DayScheduleType.FRACTION.value\n", - " day_schedules: List = None\n", - "\n", - " @classmethod\n", - " def from_schedule_ruleset(cls, stype, schedule_ruleset):\n", - " \"\"\"Create a WeekScheduleDoe from a ScheduleRuleset.\"\"\"\n", - " myruleset = schedule_ruleset\n", - " name = short_name(schedule_ruleset.display_name)\n", - " stype = stype\n", - "\n", - " days_of_the_week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']\n", - " \n", - " days = []\n", - " for rule in myruleset:\n", - " for day in days_of_the_week:\n", - " if day in rule.days_applied:\n", - " days.append(short_name(rule.schedule_day.display_name)) if rule.schedule_day.display_name \\\n", - " is not None else short_name(myruleset.default_day_schedule.display_name)\n", - " else:\n", - " days.append(short_name(myruleset.default_day_schedule.display_name))\n", - "\n", - " if myruleset.holiday_schedule is not None:\n", - " days.append(short_name(myruleset.holiday_schedule.display_name))\n", - " else:\n", - " days.append(short_name(myruleset.default_day_schedule.display_name))\n", - "\n", - " days.append(short_name(myruleset.winter_designday_schedule.display_name)\n", - " ) if myruleset.winter_designday_schedule.display_name is not None else [short_name(myruleset.default_day_schedule.display_name),'HDD']\n", - "\n", - " days.append(short_name(myruleset.summer_designday_schedule.display_name)) if myruleset.summer_designday_schedule.display_name \\\n", - " is not None else short_name(myruleset.default_day_schedule.display_name)\n", - "\n", - " return cls(name=name, stype=stype, day_schedules=days)\n", - "\n", - " def to_inp(self):\n", - " \n", - " \n", - "\n", - " obj_lines = []\n", - " obj_lines.append(f'\"{self.name}\" = WEEK-SCHEDULE-PD')\n", - " obj_lines.append(f'\\n TYPE = {self.stype}')\n", - " obj_lines.append(f'\\n DAY-SCHEDULES = ( \"{self.day_schedules[0]}\", $ Monday')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[1]}\", $ Tuesday')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[2]}\", $ Wednesday')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[3]}\", $ Thursday')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[4]}\", $ Friday')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[5]}\", $ Saturday')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[6]}\", $ Sunday')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[7]}\", $ Holiday')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[8]}\", $ Winter Design Day')\n", - " obj_lines.append(f'\\n \"{self.day_schedules[9]}\", $ Summer Design Day')\n", - " obj_lines.append(f'\\n )')\n", - " \n", - "\n", - " obj_lines.append(f'\\n ..')\n", - "\n", - " return ''.join([line for line in obj_lines])\n", - "\n", - " def __repr__(self):\n", - " return self.to_inp()\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - "#* testing\n", - "mymodel = Model.from_file('tests\\\\assets\\\\multi_hvac.hbjson')\n", - "sch_list = mymodel.properties.energy.schedules\n", - "myruleset = sch_list[2]\n", - "#* testing \n", - "\n", - "\n", - "\n", - "\n", - "WeekScheduleDoe2.from_schedule_ruleset(stype=DayScheduleType.FRACTION.value, schedule_ruleset=myruleset)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "True\n" - ] - } - ], - "source": [ - "print(myruleset.is_single_week)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2\n" - ] - } - ], - "source": [ - "mymodel = Model.from_file('tests\\\\assets\\\\multi_hvac.hbjson')\n", - "sch_list = mymodel.properties.energy.schedules\n", - "myruleset = sch_list[1]\n", - "\n", - "rules = myruleset.schedule_rules\n", - "\n", - "print(len(rules))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.9.5 ('.env': venv)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.5" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "64102ec5d521a84aea631c694a658e8415259261399b7e615bab718acc979667" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/test.ipynb b/test.ipynb deleted file mode 100644 index 5179df7..0000000 --- a/test.ipynb +++ /dev/null @@ -1,119 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "True\n", - "ScheduleRuleset: Hospital Critical Light [default day: Hospital Critical Light_Default] [1 rules]\n", - "[['sunday', 'saturday']]\n", - "[Schedule:Day:Interval,\n", - " Hospital Critical Light_Default, !- schedule name\n", - " , !- schedule type limits\n", - " No, !- interpolate to timestep\n", - " 04:00, !- time 1 {hh:mm}\n", - " 0.5, !- value until time 1\n", - " 06:00, !- time 2 {hh:mm}\n", - " 0.7, !- value until time 2\n", - " 18:00, !- time 3 {hh:mm}\n", - " 0.9, !- value until time 3\n", - " 22:00, !- time 4 {hh:mm}\n", - " 0.7, !- value until time 4\n", - " 24:00, !- time 5 {hh:mm}\n", - " 0.5; !- value until time 5, Schedule:Day:Interval,\n", - " Hospital Critical Light_SmrDsn, !- schedule name\n", - " , !- schedule type limits\n", - " No, !- interpolate to timestep\n", - " 04:00, !- time 1 {hh:mm}\n", - " 0.5, !- value until time 1\n", - " 06:00, !- time 2 {hh:mm}\n", - " 0.7, !- value until time 2\n", - " 18:00, !- time 3 {hh:mm}\n", - " 0.9, !- value until time 3\n", - " 22:00, !- time 4 {hh:mm}\n", - " 0.7, !- value until time 4\n", - " 24:00, !- time 5 {hh:mm}\n", - " 0.5; !- value until time 5, Schedule:Day:Interval,\n", - " Hospital Critical Light_WntrDsn, !- schedule name\n", - " , !- schedule type limits\n", - " No, !- interpolate to timestep\n", - " 04:00, !- time 1 {hh:mm}\n", - " 0.5, !- value until time 1\n", - " 06:00, !- time 2 {hh:mm}\n", - " 0.7, !- value until time 2\n", - " 18:00, !- time 3 {hh:mm}\n", - " 0.9, !- value until time 3\n", - " 22:00, !- time 4 {hh:mm}\n", - " 0.7, !- value until time 4\n", - " 24:00, !- time 5 {hh:mm}\n", - " 0.5; !- value until time 5, Schedule:Day:Interval,\n", - " Hospital Critical Light_Sun|Sat, !- schedule name\n", - " , !- schedule type limits\n", - " No, !- interpolate to timestep\n", - " 04:00, !- time 1 {hh:mm}\n", - " 0.5, !- value until time 1\n", - " 06:00, !- time 2 {hh:mm}\n", - " 0.7, !- value until time 2\n", - " 18:00, !- time 3 {hh:mm}\n", - " 0.9, !- value until time 3\n", - " 22:00, !- time 4 {hh:mm}\n", - " 0.7, !- value until time 4\n", - " 24:00, !- time 5 {hh:mm}\n", - " 0.5; !- value until time 5]\n" - ] - } - ], - "source": [ - "from honeybee.model import Model\n", - "\n", - "mymodel = Model.from_hbjson('./tests/assets/multi_hvac.hbjson')\n", - "\n", - "for sch in mymodel.properties.energy.schedules:\n", - " if sch.display_name == 'Hospital Critical Light':\n", - " print(sch.is_single_week)\n", - " print(sch)\n", - " print(str([rule.days_applied for rule in sch.schedule_rules]))\n", - " print(sch.day_schedules)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.9.5 ('.env': venv)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.5" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "64102ec5d521a84aea631c694a658e8415259261399b7e615bab718acc979667" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}