Skip to content

Commit

Permalink
Merge pull request #502 from BuildingSync/develop-v2
Browse files Browse the repository at this point in the history
Release v2.6
  • Loading branch information
JieXiong9119 authored Sep 27, 2024
2 parents 49b27ac + 590afad commit 293cc0a
Show file tree
Hide file tree
Showing 35 changed files with 464 additions and 133 deletions.
98 changes: 96 additions & 2 deletions BuildingSync.xsd
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:auc="http://buildingsync.net/schemas/bedes-auc/2019" xmlns:gbxml="http://www.gbxml.org/schema" targetNamespace="http://buildingsync.net/schemas/bedes-auc/2019" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.5.0">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:auc="http://buildingsync.net/schemas/bedes-auc/2019" xmlns:gbxml="http://www.gbxml.org/schema" targetNamespace="http://buildingsync.net/schemas/bedes-auc/2019" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.6.0">
<xs:import namespace="http://www.gbxml.org/schema" schemaLocation="https://github.com/BuildingSync/gbXML_Schemas/releases/download/v6.01/GreenBuildingXML_Ver6.01.xsd"/>
<xs:annotation>
<xs:documentation>BuildingSync Schema - Version 2.5.0</xs:documentation>
<xs:documentation>BuildingSync Schema - Version 2.6.0</xs:documentation>
<xs:documentation xmlns="http://www.w3.org/1999/xhtml">
<h1>BuildingSync Schema Deprecation Policy</h1>
<p>This document details the deprecation policy for the BuildingSync Schema.</p>
Expand Down Expand Up @@ -451,6 +451,8 @@
<xs:enumeration value="2.4"/>
<xs:enumeration value="2.5.0"/>
<xs:enumeration value="2.5"/>
<xs:enumeration value="2.6.0"/>
<xs:enumeration value="2.6"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
Expand Down Expand Up @@ -2000,6 +2002,16 @@
<xs:documentation>Year the Audit Cycle ends (inclusive, CCYY)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AuditCycleStartDate" type="xs:date">
<xs:annotation>
<xs:documentation>Date the Audit Cycle starts (CCYY-MM-DD)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AuditCycleEndDate" type="xs:date">
<xs:annotation>
<xs:documentation>Date the Audit Cycle ends (CCYY-MM-DD)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="auc:UserDefinedFields" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="ID" type="xs:ID" use="required"/>
Expand Down Expand Up @@ -2162,6 +2174,11 @@
<xs:element ref="auc:AnnualSavingsAverageGHGEmissions" minOccurs="0"/>
<xs:element ref="auc:AnnualSavingsMarginalGHGEmissions" minOccurs="0"/>
<xs:element ref="auc:AnnualSavingsGHGEmissionIntensity" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsEnergy" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsEnergyCost" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsWater" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsWaterCost" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsAncillaryCost" minOccurs="0"/>
<xs:element ref="auc:SimplePayback" minOccurs="0"/>
<xs:element ref="auc:NetPresentValue" minOccurs="0"/>
<xs:element ref="auc:InternalRateOfReturn" minOccurs="0"/>
Expand Down Expand Up @@ -2250,6 +2267,11 @@
<xs:element ref="auc:AnnualSavingsAverageGHGEmissions" minOccurs="0"/>
<xs:element ref="auc:AnnualSavingsMarginalGHGEmissions" minOccurs="0"/>
<xs:element ref="auc:AnnualSavingsGHGEmissionIntensity" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsEnergy" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsEnergyCost" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsWater" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsWaterCost" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsAncillaryCost" minOccurs="0"/>
<xs:element name="ImplementationPeriod" type="xs:integer" minOccurs="0">
<xs:annotation>
<xs:documentation>Total period of time necessary to implement all measures in the package. (months)</xs:documentation>
Expand Down Expand Up @@ -2365,6 +2387,11 @@
<xs:element ref="auc:AnnualSavingsAverageGHGEmissions" minOccurs="0"/>
<xs:element ref="auc:AnnualSavingsMarginalGHGEmissions" minOccurs="0"/>
<xs:element ref="auc:AnnualSavingsGHGEmissionIntensity" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsEnergy" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsEnergyCost" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsWater" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsWaterCost" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsAncillaryCost" minOccurs="0"/>
<xs:element ref="auc:SimplePayback" minOccurs="0"/>
<xs:element ref="auc:NetPresentValue" minOccurs="0"/>
<xs:element ref="auc:InternalRateOfReturn" minOccurs="0"/>
Expand Down Expand Up @@ -4059,6 +4086,8 @@
<xs:enumeration value="Replace windows"/>
<xs:enumeration value="Increase floor insulation"/>
<xs:enumeration value="Insulate foundation"/>
<xs:enumeration value="Add secondary window systems/attachments"/>
<xs:enumeration value="Install shading automation system"/>
<xs:enumeration value="Clean and/or repair"/>
<xs:enumeration value="Close elevator and/or stairwell shaft vents"/>
<xs:enumeration value="Other"/>
Expand Down Expand Up @@ -16110,6 +16139,66 @@
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="LifeCycleSavingsEnergy">
<xs:annotation>
<xs:documentation>Estimated total energy savings in the whole life cycle (MMBtu)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute ref="auc:Source"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="LifeCycleSavingsEnergyCost">
<xs:annotation>
<xs:documentation>Estimated present value of total savings in energy costs in the whole life cycle ($)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute ref="auc:Source"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="LifeCycleSavingsWater">
<xs:annotation>
<xs:documentation>Estimated total water savings in the whole life cycle (gal)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute ref="auc:Source"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="LifeCycleSavingsWaterCost">
<xs:annotation>
<xs:documentation>Estimated present value of total savings in water costs in the whole life cycle ($)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute ref="auc:Source"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="LifeCycleSavingsAncillaryCost">
<xs:annotation>
<xs:documentation>Estimated present value of total savings in ancillary/other costs in the whole life cycle ($)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute ref="auc:Source"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="BoilerLWT">
<xs:annotation>
<xs:documentation>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)</xs:documentation>
Expand Down Expand Up @@ -17266,6 +17355,11 @@
<xs:element ref="auc:AnnualSavingsAverageGHGEmissions" minOccurs="0"/>
<xs:element ref="auc:AnnualSavingsMarginalGHGEmissions" minOccurs="0"/>
<xs:element ref="auc:AnnualSavingsGHGEmissionIntensity" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsEnergy" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsEnergyCost" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsWater" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsWaterCost" minOccurs="0"/>
<xs:element ref="auc:LifeCycleSavingsAncillaryCost" minOccurs="0"/>
<xs:element ref="auc:OMCostAnnualSavings" minOccurs="0"/>
<xs:element name="OtherCostAnnualSavings" minOccurs="0">
<xs:annotation>
Expand Down
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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).
Expand Down
8 changes: 4 additions & 4 deletions docs/notebooks/bsync_examples/Primary-School-Levels1-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand All @@ -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)
Expand Down Expand Up @@ -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)

```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<BuildingSync xmlns="http://buildingsync.net/schemas/bedes-auc/2019" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://buildingsync.net/schemas/bedes-auc/2019 ../BuildingSync.xsd" version="2.4.0">
<BuildingSync xmlns="http://buildingsync.net/schemas/bedes-auc/2019" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://buildingsync.net/schemas/bedes-auc/2019 ../../../BuildingSync.xsd" version="2.5.0">
<Facilities>
<Facility ID="Facility-1">
<Sites>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<BuildingSync xmlns="http://buildingsync.net/schemas/bedes-auc/2019" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://buildingsync.net/schemas/bedes-auc/2019 ../BuildingSync.xsd" version="2.4.0">
<BuildingSync xmlns="http://buildingsync.net/schemas/bedes-auc/2019" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://buildingsync.net/schemas/bedes-auc/2019 ../../../BuildingSync.xsd" version="2.5.0">
<Facilities>
<Facility ID="Facility-1">
<Sites>
Expand Down Expand Up @@ -9897,7 +9897,7 @@
</TechnologyCategories>
<MeasureScaleOfApplication>Entire building</MeasureScaleOfApplication>
<LongDescription>This measure is designed to replace all fluorescent bulbs with LEDs</LongDescription>
<UsefulLife>15.000000</UsefulLife>
<UsefulLife>15</UsefulLife>
<MeasureInstallationCost>995.000000</MeasureInstallationCost>
<MeasureMaterialCost>7960.000000</MeasureMaterialCost>
<Recommended>true</Recommended>
Expand Down
4 changes: 2 additions & 2 deletions docs/notebooks/bsync_examples/Small-Office-Level-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down
10 changes: 5 additions & 5 deletions docs/notebooks/bsync_examples/Small-Office-Level-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)),
Expand Down Expand Up @@ -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)),
Expand Down Expand Up @@ -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)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<BuildingSync xmlns="http://buildingsync.net/schemas/bedes-auc/2019"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://buildingsync.net/schemas/bedes-auc/2019 ../../../BuildingSync.xsd"
version="2.4.0">
version="2.5.0">
<Facilities>
<Facility ID="Facility-1">
<Sites>
Expand Down
Loading

0 comments on commit 293cc0a

Please sign in to comment.