diff --git a/BuildingSync.xsd b/BuildingSync.xsd index 0b1de34e..339d2f48 100644 --- a/BuildingSync.xsd +++ b/BuildingSync.xsd @@ -1,8 +1,8 @@ - + - BuildingSync Schema - Version 2.5.0 + BuildingSync Schema - Version 2.6.0

BuildingSync Schema Deprecation Policy

This document details the deprecation policy for the BuildingSync Schema.

@@ -451,6 +451,8 @@ + + @@ -2000,6 +2002,16 @@ Year the Audit Cycle ends (inclusive, CCYY)
+ + + Date the Audit Cycle starts (CCYY-MM-DD) + + + + + Date the Audit Cycle ends (CCYY-MM-DD) + + @@ -2162,6 +2174,11 @@ + + + + + @@ -2250,6 +2267,11 @@ + + + + + Total period of time necessary to implement all measures in the package. (months) @@ -2365,6 +2387,11 @@ + + + + + @@ -4059,6 +4086,8 @@ + + @@ -16110,6 +16139,66 @@ + + + Estimated total energy savings in the whole life cycle (MMBtu) + + + + + + + + + + + + Estimated present value of total savings in energy costs in the whole life cycle ($) + + + + + + + + + + + + Estimated total water savings in the whole life cycle (gal) + + + + + + + + + + + + Estimated present value of total savings in water costs in the whole life cycle ($) + + + + + + + + + + + + Estimated present value of total savings in ancillary/other costs in the whole life cycle ($) + + + + + + + + + The water temperature that the equipment supplies, such as the chilled water temperature setpoint for a chiller, or hot water temperature setpoint for water leaving a boiler. (°F) @@ -17266,6 +17355,11 @@ + + + + + diff --git a/CHANGELOG.md b/CHANGELOG.md index 943d8f91..fd1ae617 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,49 @@ # BuildingSync +## Version 2.6.0 + +BuildingSync Version 2.6.0 adds new elements for Life-Cycle Savings and two new measures for fenestration systems. + +Date Range: 09/21/23 - 09/24/24 + +| Category | Count | +|----------------|-------| +| Schema: Controls | 0 | +| Schema: Documentation | 1 | +| Schema: General | 1 | +| Schema: Measures | 2 | +| Schema: Reports | 1 | +| Schema: Systems | 0 | +| Schema: Validation | 0 | +| Other | -1 | +| **Total** | 4 | + +### Breaking Changes + +*No breaking changes* + +### Non-breaking Changes + - [#495](https://github.com/BuildingSync/schema/pull/495), Add Life Cycle Savings elements (`Measures`, `Reports`) + - [#494](https://github.com/BuildingSync/schema/pull/494), Add AuditCycleStartDate and AuditCycleEndDate (`General`) + - [#492](https://github.com/BuildingSync/schema/pull/492), Add fenestration system measures (`Measures`) + - [#487](https://github.com/BuildingSync/schema/pull/487), Update examples to 2.5 (`Documentation`) + +### Non-schema Changes + +*No non-schema changes* + +### Issues + +New Issues: 3 (#490, #491, #493) + +Closed Issues: 4 +- [#465]( https://github.com/BuildingSync/schema/issues/465 ), [9/29/23] Updated release of BuildingSync 2.5 Milestone +- [#490]( https://github.com/BuildingSync/schema/issues/490 ), Requested addition of fenestration system (window/shading retrofit) measures (`Measures`, `Non-breaking Change`, `feature`) +- [#491]( https://github.com/BuildingSync/schema/issues/491 ), Requested new elements for life-cycle analysis or financial/project management for CTS/eProjectBuilder (initial) (`Reports`, `General`, `Non-breaking Change`, `feature`) +- [#493]( https://github.com/BuildingSync/schema/issues/493 ), Requested addition of AuditCycleStartDate and AuditCycleEndDate (`General`, `Non-breaking Change`, `feature`) + +All Open Issues: 19 (#151, #154, #167, #170, #183, #195, #198, #218, #260, #285, #287, #297, #320, #356, #370, #391, #428, #450, #474) + ## Version 2.5.0 BuildingSync Version 2.5.0 adds new elements for Water Conservation Measures (WCMs) and emission-related fields (Greenhouse Gas Emission). Version 2.5.0 adds examples of interactive Jupyter Notebooks to illustrate the process of creating BuildingSync XML reports from building data, where the synthetic data was generated based on DOE prototype buildings (small office and primary school). diff --git a/docs/notebooks/bsync_examples/Primary-School-Levels1-2.md b/docs/notebooks/bsync_examples/Primary-School-Levels1-2.md index 6ffa2fa3..67980e49 100644 --- a/docs/notebooks/bsync_examples/Primary-School-Levels1-2.md +++ b/docs/notebooks/bsync_examples/Primary-School-Levels1-2.md @@ -14,7 +14,7 @@ This notebook uses resources from: - the [DOE Commercial Prorotype buildings](https://www.energycodes.gov/prototype-building-models) repository - ASHRAE [Standard 211](https://www.ashrae.org/technical-resources/bookstore/standards-180-and-211) for formal guidelines on energy audits -- the [BuildingSync schema documentation](https://buildingsync.net/dictionary/2.4.0/) +- the [BuildingSync schema documentation](https://buildingsync.net/dictionary/2.5.0/) - the [notebook included in the bsync examples folder](./Small-Office-Level-1.md) for a comprehensive explanation on basic BuildingSync and bsyncpy concepts ## 3. Overview @@ -27,7 +27,7 @@ This notebook is broken down into the following sections: 3) Adding the information required for a Level 2 energy audit -4) Generating a BuildingSync file and verifying it against version 2.4.0 of the BuildingSync schema +4) Generating a BuildingSync file and verifying it against version 2.5.0 of the BuildingSync schema But first, let us import the required libraries and set up some useful functions: @@ -52,7 +52,7 @@ def bsync_dump(root_element, file="example1.xml"): # Have to manually set the version right now. Align release of bsyncpy to this version. - as_etree.set("version", "2.4.0") + as_etree.set("version", "2.5.0") output = etree.tostring(as_etree, doctype=doctype, pretty_print=True) with open(file, 'wb+') as f: f.write(output) @@ -8604,7 +8604,7 @@ led_measure += bsync.Recommended(True) led_measure += bsync.MeasureScaleOfApplication("Entire building") led_measure += bsync.MeasureMaterialCost(7960.)# 63691 Watts using 32W T8 lights = 1990 tubes to replace @ approx. $100/case of 25 LED bulb led_measure += bsync.MeasureInstallationCost(995.) # $30/hour labor, assuming 1 minute to replace each bulb -led_measure += bsync.UsefulLife(15.) +led_measure += bsync.UsefulLife(15) ``` diff --git a/docs/notebooks/bsync_examples/Reference-PrimarySchool-L100-Audit.xml b/docs/notebooks/bsync_examples/Reference-PrimarySchool-L100-Audit.xml index 04c0aed7..73ecef76 100644 --- a/docs/notebooks/bsync_examples/Reference-PrimarySchool-L100-Audit.xml +++ b/docs/notebooks/bsync_examples/Reference-PrimarySchool-L100-Audit.xml @@ -1,5 +1,5 @@ - + diff --git a/docs/notebooks/bsync_examples/Reference-PrimarySchool-L200-Audit.xml b/docs/notebooks/bsync_examples/Reference-PrimarySchool-L200-Audit.xml index 5deb7034..cfcc68af 100644 --- a/docs/notebooks/bsync_examples/Reference-PrimarySchool-L200-Audit.xml +++ b/docs/notebooks/bsync_examples/Reference-PrimarySchool-L200-Audit.xml @@ -1,5 +1,5 @@ - + @@ -9897,7 +9897,7 @@ Entire building This measure is designed to replace all fluorescent bulbs with LEDs - 15.000000 + 15 995.000000 7960.000000 true diff --git a/docs/notebooks/bsync_examples/Small-Office-Level-1.md b/docs/notebooks/bsync_examples/Small-Office-Level-1.md index 43cf1786..a265a164 100644 --- a/docs/notebooks/bsync_examples/Small-Office-Level-1.md +++ b/docs/notebooks/bsync_examples/Small-Office-Level-1.md @@ -16,7 +16,7 @@ By the end of this notebook, you should: - Create a minimum viable Level 1 BuildingSync document and verify it validates using the [BuildingSync Use Case Validator](https://buildingsync.net/validator) ## For Reference: Core Concepts and Notation Used -- We will be using BuildingSync version 2.4.0. [Documentation](https://buildingsync.net/documentation/2.4.0). [Github release](https://github.com/BuildingSync/schema/releases/tag/v2.4.0). +- We will be using BuildingSync version 2.5.0. [Documentation](https://buildingsync.net/documentation/2.5.0). [Github release](https://github.com/BuildingSync/schema/releases/tag/v2.5.0). - BuildingSync is an XML Schema Document (XSD). It defines intended structure. Referring to something as a BuildingSync document typically means the document is intended to conform to the BuildingSync schema. - An XSD defines a hierarchical or tree-based schema, where elements are 'nested' within other elements. An XML document then looks like nested elements within one another. Similar to HTML, it uses angle brackets `<` and `>` to open and close an element tag. The example below provides a very simple example of an XML document: ```xml @@ -49,7 +49,7 @@ def bsync_dump(root_element, file="example1.xml"): as_etree = root_element.toxml() # Have to manually set the declaration header right now as_etree.set("xmlns", "http://buildingsync.net/schemas/bedes-auc/2019") - as_etree.set("version", "2.4.0") + as_etree.set("version", "2.5.0") output = etree.tostring(as_etree, doctype=doctype, pretty_print=True) with open(file, "wb+") as f: f.write(output) diff --git a/docs/notebooks/bsync_examples/Small-Office-Level-2.md b/docs/notebooks/bsync_examples/Small-Office-Level-2.md index 1f3cd912..5571dabe 100644 --- a/docs/notebooks/bsync_examples/Small-Office-Level-2.md +++ b/docs/notebooks/bsync_examples/Small-Office-Level-2.md @@ -16,7 +16,7 @@ By the end of this notebook, you should: - Create a minimum viable Level 2 BuildingSync document and verify it validates using the [BuildingSync Use Case Validator](https://buildingsync.net/validator) ## For Reference: Core Concepts and Notation Used -- We will be using BuildingSync version 2.4.0. [Documentation](https://buildingsync.net/documentation/2.4.0). [Github release](https://github.com/BuildingSync/schema/releases/tag/v2.4.0). +- We will be using BuildingSync version 2.5.0. [Documentation](https://buildingsync.net/documentation/2.5.0). [Github release](https://github.com/BuildingSync/schema/releases/tag/v2.5.0). - BuildingSync is an XML Schema Document (XSD). It defines intended structure. Referring to something as a BuildingSync document typically means the document is intended to conform to the BuildingSync schema. - An XSD defines a hierarchical or tree-based schema, where elements are 'nested' within other elements. An XML document then looks like nested elements within one another. Similar to HTML, it uses angle brackets `<` and `>` to open and close an element tag. The example below provides a very simple example of an XML document: ```xml @@ -51,7 +51,7 @@ def bsync_dump(root_element, file="example1.xml"): as_etree = root_element.toxml() # Have to manually set the declaration header right now as_etree.set("xmlns", "http://buildingsync.net/schemas/bedes-auc/2019") - as_etree.set("version", "2.4.0") + as_etree.set("version", "2.5.0") output = etree.tostring(as_etree, doctype=doctype, pretty_print=True) with open(file, "wb+") as f: f.write(output) @@ -2009,7 +2009,7 @@ hvac_schedule_measure = bsync.Measure( bsync.CustomMeasureName("Update HVAC schedule"), bsync.LongDescription("The current HVAC schedule is set to be at fully ON fan operation during weekday from 7am - 8pm. This measure would implement a modified schedule to enable pre-cooling/pre-heating from 6am - 7am, and reduce output to 80 percent during peak time 12pm - 1pm."), bsync.MeasureScaleOfApplication("Individual system"), - bsync.UsefulLife(1.), + bsync.UsefulLife(1), bsync.MeasureInstallationCost(0.), bsync.MeasureMaterialCost(0.), bsync.StartDate(date(2021,1,1)), @@ -2038,7 +2038,7 @@ led_measure = bsync.Measure( ), bsync.LongDescription("This measure is designed to replace all fluorescent bulbs with LEDs"), bsync.MeasureScaleOfApplication("Individual system"), - bsync.UsefulLife(1.), + bsync.UsefulLife(1), bsync.MeasureInstallationCost(50.), bsync.MeasureMaterialCost(774.), bsync.StartDate(date(2021,1,1)), @@ -2072,7 +2072,7 @@ vsd_measure = bsync.Measure( ), bsync.LongDescription("This measure is designed to retrofit all RTU fans with a VSD"), bsync.MeasureScaleOfApplication("Individual system"), - bsync.UsefulLife(1.), + bsync.UsefulLife(1), bsync.MeasureInstallationCost(750.), bsync.MeasureMaterialCost(1250.), # assume $200~300 per fan bsync.StartDate(date(2021,1,1)), diff --git a/docs/notebooks/bsync_examples/example-smalloffice-level1.xml b/docs/notebooks/bsync_examples/example-smalloffice-level1.xml index 1747d829..79467b7a 100644 --- a/docs/notebooks/bsync_examples/example-smalloffice-level1.xml +++ b/docs/notebooks/bsync_examples/example-smalloffice-level1.xml @@ -2,7 +2,7 @@ + version="2.5.0"> diff --git a/docs/notebooks/bsync_examples/example-smalloffice-level2.xml b/docs/notebooks/bsync_examples/example-smalloffice-level2.xml index 52a940d2..65a34d04 100644 --- a/docs/notebooks/bsync_examples/example-smalloffice-level2.xml +++ b/docs/notebooks/bsync_examples/example-smalloffice-level2.xml @@ -2,7 +2,7 @@ + version="2.5.0"> @@ -1405,7 +1405,7 @@ Individual system This measure is designed to replace all fluorescent bulbs with LEDs - 1.000000 + 1 50.000000 774.000000 true @@ -1431,7 +1431,7 @@ Individual system This measure is designed to retrofit all RTU fans with a VSD - 1.000000 + 1 750.000000 1250.000000 true diff --git a/docs/notebooks/example1-with-sensors.xml b/docs/notebooks/example-with-emissions.xml similarity index 94% rename from docs/notebooks/example1-with-sensors.xml rename to docs/notebooks/example-with-emissions.xml index 73f52230..0af6171c 100644 --- a/docs/notebooks/example1-with-sensors.xml +++ b/docs/notebooks/example-with-emissions.xml @@ -223,34 +223,34 @@ + kW + 21.120000 + 21.120000 + 5304.000000 + + + Indirect CO2e 25000 - - - - - - - - - - - - + + + + + + + + + + + + - kW - 21.120000 - 21.120000 - 5304.000000 - - - Natural gas @@ -822,7 +822,7 @@ Total - Emissions + Greenhouse Gas Emissions 2019-12-01T00:00:00 2020-01-01T00:00:00 Month @@ -831,7 +831,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-01-01T00:00:00 2020-02-01T00:00:00 Month @@ -840,7 +840,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-02-01T00:00:00 2020-03-01T00:00:00 Month @@ -849,7 +849,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-03-01T00:00:00 2020-04-01T00:00:00 Month @@ -858,7 +858,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-04-01T00:00:00 2020-05-01T00:00:00 Month @@ -867,7 +867,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-05-01T00:00:00 2020-06-01T00:00:00 Month @@ -876,7 +876,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-06-01T00:00:00 2020-07-01T00:00:00 Month @@ -885,7 +885,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-07-01T00:00:00 2020-08-01T00:00:00 Month @@ -894,7 +894,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-08-01T00:00:00 2020-09-01T00:00:00 Month @@ -903,7 +903,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-09-01T00:00:00 2020-10-01T00:00:00 Month @@ -912,7 +912,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-10-01T00:00:00 2020-11-01T00:00:00 Month @@ -921,7 +921,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-11-01T00:00:00 2020-12-01T00:00:00 Month @@ -972,14 +972,10 @@ - 2025-12-31 67181.500000 931 - 70.000000 500 200 - 67181.500000 - 931 70.000000 @@ -1035,34 +1031,34 @@ + kW + 18.120000 + 18.120000 + 4500.000000 + + + Indirect CO2e 8000 - - - - - - - - - - - - + + + + + + + + + + + + - kW - 18.120000 - 18.120000 - 4500.000000 - - - @@ -1176,7 +1172,7 @@ Total - Emissions + Greenhouse Gas Emissions 2019-12-01T00:00:00 2020-01-01T00:00:00 Month @@ -1185,7 +1181,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-01-01T00:00:00 2020-02-01T00:00:00 Month @@ -1194,7 +1190,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-02-01T00:00:00 2020-03-01T00:00:00 Month @@ -1203,7 +1199,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-03-01T00:00:00 2020-04-01T00:00:00 Month @@ -1212,7 +1208,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-04-01T00:00:00 2020-05-01T00:00:00 Month @@ -1221,7 +1217,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-05-01T00:00:00 2020-06-01T00:00:00 Month @@ -1230,7 +1226,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-06-01T00:00:00 2020-07-01T00:00:00 Month @@ -1239,7 +1235,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-07-01T00:00:00 2020-08-01T00:00:00 Month @@ -1248,7 +1244,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-08-01T00:00:00 2020-09-01T00:00:00 Month @@ -1257,7 +1253,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-09-01T00:00:00 2020-10-01T00:00:00 Month @@ -1266,7 +1262,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-10-01T00:00:00 2020-11-01T00:00:00 Month @@ -1275,7 +1271,7 @@ Total - Emissions + Greenhouse Gas Emissions 2020-11-01T00:00:00 2020-12-01T00:00:00 Month @@ -1284,7 +1280,7 @@ - + 200000.500000 35.800000 4300.510000 diff --git a/docs/notebooks/poetry.lock b/docs/notebooks/poetry.lock index 491a4456..99f65501 100644 --- a/docs/notebooks/poetry.lock +++ b/docs/notebooks/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "aiofiles" @@ -246,13 +246,13 @@ files = [ [[package]] name = "certifi" -version = "2023.7.22" +version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, ] [[package]] @@ -563,13 +563,13 @@ cached-property = {version = ">=1.3.0", markers = "python_version < \"3.8\""} [[package]] name = "idna" -version = "3.4" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -731,13 +731,13 @@ testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.4" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -959,13 +959,13 @@ test = ["pre-commit", "pytest", "pytest-asyncio", "websockets (>=10.0)", "ypy-we [[package]] name = "jupyterlab" -version = "3.6.3" +version = "3.6.8" description = "JupyterLab computational environment" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab-3.6.3-py3-none-any.whl", hash = "sha256:6aba0caa771697d02fbf409f9767b2fdb4ee32ce935940e3b9a0d5d48d994d0f"}, - {file = "jupyterlab-3.6.3.tar.gz", hash = "sha256:373e9cfb8a72edd294be14f16662563a220cecf0fb26de7aab1af9a29b689b82"}, + {file = "jupyterlab-3.6.8-py3-none-any.whl", hash = "sha256:891284e75158998e23eb7a23ecc4caaf27b365e41adca374109b1305b9f769db"}, + {file = "jupyterlab-3.6.8.tar.gz", hash = "sha256:a2477383e23f20009188bd9dac7e6e38dbc54307bc36d716bea6ced450647c97"}, ] [package.dependencies] @@ -974,7 +974,7 @@ jinja2 = ">=2.1" jupyter-core = "*" jupyter-server = ">=1.16.0,<3" jupyter-server-ydoc = ">=0.8.0,<0.9.0" -jupyter-ydoc = ">=0.2.3,<0.3.0" +jupyter-ydoc = ">=0.2.4,<0.3.0" jupyterlab-server = ">=2.19,<3.0" nbclassic = "*" notebook = "<7" @@ -983,6 +983,7 @@ tomli = {version = "*", markers = "python_version < \"3.11\""} tornado = ">=6.1.0" [package.extras] +docs = ["jsx-lexer", "myst-parser", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8)", "sphinx-copybutton", "sphinx-rtd-theme"] test = ["check-manifest", "coverage", "jupyterlab-server[test]", "pre-commit", "pytest (>=6.0)", "pytest-check-links (>=0.5)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "requests", "requests-cache", "virtualenv"] [[package]] @@ -2309,17 +2310,17 @@ dev = ["flake8 (<4.0.0)", "flake8-annotations", "flake8-bugbear", "flake8-commas [[package]] name = "urllib3" -version = "1.26.15" +version = "1.26.19" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, - {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, + {file = "urllib3-1.26.19-py2.py3-none-any.whl", hash = "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3"}, + {file = "urllib3-1.26.19.tar.gz", hash = "sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] @@ -2488,4 +2489,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" python-versions = "^3.7.9" -content-hash = "4b47f0fc4831bc8cdb21be34dae3517a692fec9e6db75266425ce11f75523336" +content-hash = "32e700057aa434c97b5b38d92c71f49d35c6c059d443441521c01dfe695258d5" diff --git a/docs/notebooks/pyproject.toml b/docs/notebooks/pyproject.toml index 18b409f6..3a9fe18d 100644 --- a/docs/notebooks/pyproject.toml +++ b/docs/notebooks/pyproject.toml @@ -1,12 +1,12 @@ [tool.poetry] name = "bsync-examples" version = "0.2.0" -description = "Examples for generating BuildingSync files from Python. This currently uses BuildingSync Version 2.4." +description = "Examples for generating BuildingSync files from Python. This currently uses BuildingSync Version 2.5." authors = ["corymosiman12 ", "nllong "] [tool.poetry.dependencies] python = "^3.7.9" -jupyterlab = "^3.6.3" +jupyterlab = "^3.6.8" lxml = "^4.9.1" bsyncpy = {git = "https://github.com/BuildingSync/bsyncpy.git", branch="develop" } eeweather = "^0.3.24" diff --git a/docs/release_instructions.md b/docs/release_instructions.md index d702ad37..5d11cb55 100644 --- a/docs/release_instructions.md +++ b/docs/release_instructions.md @@ -11,14 +11,17 @@ Follow the steps below when releasing a new version * Update version in the "schema title", at `/xs:schema/xs:annotation/xs:documentation[1]`. * If creating an official release (i.e., you are NOT creating a pre-release), add the version as an enumeration to the `auc:BuildingSync` `version` attribute with the latest version. Though we historically added some pre-releases to `@version`, they should no longer be included. -* Update the CHANGELOG.md to include the latest changes, and the most recent version. - - * Run the change_log.rb script (e.g., ruby src/change_log.rb -t abcdefghijklmnopqrstuvwxyz -s 2019-12-21). The date range must span from the last official release (ie don't start at a pre-release) until the current date. +* Update the CHANGELOG.md to include the latest changes, and the most recent version: + * Obtain [Github API token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) for the next step. + * Run the change_log.rb script (e.g., ruby src/change_log.rb -t TOKEN_string -s 2019-12-21). The date range must span from the last official release (ie don't start at a pre-release) until the current date. * Copy the results of this into the CHANGELOG. Remove items that are not useful to an end user such as version bumps, formatting, etc. + * Create a Pull Request (prep release) into `develop`: + * Mark the PR with an `ignore` label to prevent the PR from being added to future change logs. + * Merge the PR. -* Create a Pull Request into `main` +* Create a Pull Request (release) into `main`: * Mark the PR with an `ignore` label to prevent the PR from being added to future change logs. - * Merge the PR + * Merge the PR. ### Tag and release diff --git a/examples/ASHRAE 211 Export.xml b/examples/ASHRAE 211 Export.xml index 98f31f1c..e1c4552e 100644 --- a/examples/ASHRAE 211 Export.xml +++ b/examples/ASHRAE 211 Export.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/AT_example_AS_conversion_audit_report.xml b/examples/AT_example_AS_conversion_audit_report.xml index db567d39..0a9cade2 100644 --- a/examples/AT_example_AS_conversion_audit_report.xml +++ b/examples/AT_example_AS_conversion_audit_report.xml @@ -1,5 +1,5 @@ - diff --git a/examples/AT_example_NYC_audit_report_property.xml b/examples/AT_example_NYC_audit_report_property.xml index 2a14f947..4a40659d 100644 --- a/examples/AT_example_NYC_audit_report_property.xml +++ b/examples/AT_example_NYC_audit_report_property.xml @@ -1,5 +1,5 @@ - diff --git a/examples/AT_example_SF_audit_report.xml b/examples/AT_example_SF_audit_report.xml index 56e3063b..9b5cb438 100644 --- a/examples/AT_example_SF_audit_report.xml +++ b/examples/AT_example_SF_audit_report.xml @@ -1,5 +1,5 @@ - diff --git a/examples/BuildingEQ-1.0.0.xml b/examples/BuildingEQ-1.0.0.xml index 03258d5e..e39803dc 100644 --- a/examples/BuildingEQ-1.0.0.xml +++ b/examples/BuildingEQ-1.0.0.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/BuildingSync Website Invalid Schema.xml b/examples/BuildingSync Website Invalid Schema.xml index ccbf04f8..e3e6b85a 100644 --- a/examples/BuildingSync Website Invalid Schema.xml +++ b/examples/BuildingSync Website Invalid Schema.xml @@ -1,5 +1,5 @@ - + Example Building diff --git a/examples/BuildingSync Website Valid Schema.xml b/examples/BuildingSync Website Valid Schema.xml index f86d65bb..606cb35f 100644 --- a/examples/BuildingSync Website Valid Schema.xml +++ b/examples/BuildingSync Website Valid Schema.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/CMS Woodlawn Campus.xml b/examples/CMS Woodlawn Campus.xml index bfafb4a1..31c6a74a 100644 --- a/examples/CMS Woodlawn Campus.xml +++ b/examples/CMS Woodlawn Campus.xml @@ -1,5 +1,5 @@ - + 2008-01-01 diff --git a/examples/DC GSA Headquarters.xml b/examples/DC GSA Headquarters.xml index aef17126..771a6989 100644 --- a/examples/DC GSA Headquarters.xml +++ b/examples/DC GSA Headquarters.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/Golden Test File.xml b/examples/Golden Test File.xml index b6b0bce2..82400342 100644 --- a/examples/Golden Test File.xml +++ b/examples/Golden Test File.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/LL87.xml b/examples/LL87.xml index 0dee0bdd..fde51c1a 100644 --- a/examples/LL87.xml +++ b/examples/LL87.xml @@ -1,6 +1,6 @@ - + diff --git a/examples/Multi-Facility Shared Systems.xml b/examples/Multi-Facility Shared Systems.xml index b72627ce..d1a68424 100644 --- a/examples/Multi-Facility Shared Systems.xml +++ b/examples/Multi-Facility Shared Systems.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/Multi_building_gbxml_externalreference_geometry.xml b/examples/Multi_building_gbxml_externalreference_geometry.xml index 5aebc2b6..a9ce8346 100644 --- a/examples/Multi_building_gbxml_externalreference_geometry.xml +++ b/examples/Multi_building_gbxml_externalreference_geometry.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/MultitenantBySubsections.xml b/examples/MultitenantBySubsections.xml index 2f71df2d..63679e46 100644 --- a/examples/MultitenantBySubsections.xml +++ b/examples/MultitenantBySubsections.xml @@ -1,7 +1,7 @@ - + diff --git a/examples/NIST Gaithersburg Campus.xml b/examples/NIST Gaithersburg Campus.xml index a39f4873..fcfb3f88 100644 --- a/examples/NIST Gaithersburg Campus.xml +++ b/examples/NIST Gaithersburg Campus.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/Norfolk Federal Building.xml b/examples/Norfolk Federal Building.xml index 244bbd84..3e2fe1de 100644 --- a/examples/Norfolk Federal Building.xml +++ b/examples/Norfolk Federal Building.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/Reference Building - Primary School.xml b/examples/Reference Building - Primary School.xml index 8967b5d2..5b88bdd3 100644 --- a/examples/Reference Building - Primary School.xml +++ b/examples/Reference Building - Primary School.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/Richmond Federal Building.xml b/examples/Richmond Federal Building.xml index 2b4e23d5..4fa04a47 100644 --- a/examples/Richmond Federal Building.xml +++ b/examples/Richmond Federal Building.xml @@ -1,5 +1,5 @@ - + diff --git a/examples/Single_building_gbxml_externalreference_geometry.xml b/examples/Single_building_gbxml_externalreference_geometry.xml index d9486336..8968b93e 100644 --- a/examples/Single_building_gbxml_externalreference_geometry.xml +++ b/examples/Single_building_gbxml_externalreference_geometry.xml @@ -1,5 +1,5 @@ - + diff --git a/proposals/2024/Add AuditCycleStartDate and AuditCycleEndDate.md b/proposals/2024/Add AuditCycleStartDate and AuditCycleEndDate.md new file mode 100644 index 00000000..e2791fd5 --- /dev/null +++ b/proposals/2024/Add AuditCycleStartDate and AuditCycleEndDate.md @@ -0,0 +1,32 @@ +# Add AuditCycleStartDate and AuditCycleEndDate + +## Overview + +This proposal is to add new elements under `AuditCycle`: +* `auc:AuditCycleStartDate` +* `auc:AuditCycleEndDate` + +## Justification + +The current `AuditCycleStartYear` and `AuditCycleEndYear` elements support only year data, which may not reflect the actual program year informatio, which mostly are from June to June or Oct to Oct. The Audit Template team and CERL use case requested adding more detailed data for audit cycle start and end time information with full date type. This proposal is to add the two new elements `auc:AuditCycleStartDate` and `auc:AuditCycleEndDate` to support date type data. + +## Implementation +Under `auc:AuditCycles`: +```xml + + + A period of time in which multiple audits may be conducted + + + + + Date the Audit Cycle starts (CCYY-MM-DD) + + + + + Date the Audit Cycle ends (CCYY-MM-DD) + + + ... +``` diff --git a/proposals/2024/Add LifeCycleSavings elements.md b/proposals/2024/Add LifeCycleSavings elements.md new file mode 100644 index 00000000..cadc7aa6 --- /dev/null +++ b/proposals/2024/Add LifeCycleSavings elements.md @@ -0,0 +1,140 @@ +# Add LifeCycleSavings elements + +## Overview + +This proposal is to add new elements related to Life Cycle savings data for mapping FEMP's Compliance Tracking System fields to BuildingSync Schema: +* Estimated Life-Cycle Energy Savings (Million Btu) +* Estimated Present Value Life-Cycle Energy Cost Savings (Dollars) +* Estimated Life-Cycle Water Savings (Thou. Gallons) +* Estimated Present Value Life-Cycle Water Cost Savings (Dollars) +* Estimated Other Present Value Life-Cycle Ancillary Cost Savings (Dollars) +We proposed to add +* `auc:LifeCycleSavingsEnergy` +* `auc:LifeCycleSavingsEnergyCost` +* `auc:LifeCycleSavingsWater` +* `auc:LifeCycleSavingsWaterCost` +* `auc:LifeCycleSavingsAncillaryCost` +under +1. `auc:Measure/auc:MeasureSavingsAnalysis` +2. `auc:Report/auc:Scenarios/auc:Scenario/auc:ScenarioType/auc:Target` +3. `auc:Report/auc:Scenarios/auc:Scenario/auc:ScenarioType/auc:PackageOfMeasures` +4. `auc:Report/auc:Scenarios/auc:Scenario/auc:ScenarioType/auc:Other` +5. `auc:Report/auc:Scenarios/auc:Scenario/auc:ScenarioType/auc:PackageOfMeasures/auc:MeasureIDs/auc:MeasureID/auc:MeasureSavingsAnalysis` + +## Justification + +These elements work similarly with the current simple annual savings data such as `auc:AnnualSavingsSiteEnergy` and `auc:AnnualSavingsCost`, so they should be at least added in the same places (above 5 paths). +As proposed in ways for eProjectBuilder mapping efforts, a Project class will be added in parallel with Sites, Reports and Measures, and all the project related data will be added/linked under it. This way the life-cycle analysis data could be added in the new project fields in the future. + +## Implementation +Globally definition: +```xml + + + Estimated total energy savings in the whole life cycle (MMBtu) + + + + + + + + + + + + Estimated present value of total savings in energy costs in the whole life cycle ($) + + + + + + + + + + + + Estimated total water savings in the whole life cycle (gal) + + + + + + + + + + + + Estimated present value of total savings in water costs in the whole life cycle ($) + + + + + + + + + + + + Estimated present value of total savings in ancillary/other costs in the whole life cycle ($) + + + + + + + + + +``` +Under `auc:MeasureSavingsAnalysis`: +```xml + + + + + + + + + ... +``` +Under `auc:Scenario/auc:ScenarioType/auc:Target`: +```xml + + + + + + + + + ... +``` +Under `auc:Scenario/auc:ScenarioType/auc:PackageOfMeasures`: +```xml + + + + + + + + + ... +``` +Under `auc:Scenario/auc:ScenarioType/auc:Other`: +```xml + + + + + + + + + ... +``` diff --git a/proposals/2024/Add new fenestration system measures.md b/proposals/2024/Add new fenestration system measures.md new file mode 100644 index 00000000..e0611898 --- /dev/null +++ b/proposals/2024/Add new fenestration system measures.md @@ -0,0 +1,21 @@ +# Add new fenestration system measures + +## Overview + +This proposal is to add new measure enumerations for existing categories under `auc:Measure/auc:TechnologyCategories/auc:TechnologyCategory/auc:BuildingEnvelopeModifications`. + +## Justification + +Responding to the request of adding new measures into BuildingSync related to window/shading retrofit, by PNNL/LBNL collaborative Commercial Building and Window Assessment projects, BuildingSync proposed to add two new measures (enumerations) to the existing measure category `BuildingEnvelopeModifications`, which covers measures implemented on fenestration (window/shading) systems. The proposed measures are: + +- Add secondary window systems/attachments +- Install shading automation system + +## Implementation +The enumerations will be added as in this structure: +`auc:Measure` + `auc:TechnologyCategories` + `auc:TechnologyCategory` + `auc:` + `auc:MeasureName` + `[enumerations]`.