Envelope Operations¶
Functions for adding, updating, and removing envelope components (roofs, walls, floors, windows, doors, skylights, and thermal bridges) in a COMcheck project.
project_envelope_operations
¶
Project Envelope Operations.
add_roof_to_project
¶
Add a new roof to the envelope in any project object using RoofListManager.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
building_area_key
|
str
|
The building area key to validate against lighting.wholeBldgUse list |
required |
new_roof
|
Roof
|
The roof object to add |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the roof added |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found in lighting.wholeBldgUse list |
Source code in comcheck_api/project_operations/project_envelope_operations.py
update_roof_in_project
¶
Update a roof in the project's envelope.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
roof_assembly_type
|
str
|
The assemblyType of the roof to update in project.envelope.roof list |
required |
updates
|
dict[str, Any] | Roof
|
Partial updates (dict) or full Roof object to apply |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the roof added |
Source code in comcheck_api/project_operations/project_envelope_operations.py
remove_roof_from_project
¶
Remove a roof from the envelope in any project object.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
roof_assembly_type
|
str
|
The assemblyType of the roof to update in project.envelope.roof list |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Project object with the roof removed |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found in lighting.wholeBldgUse list |
Source code in comcheck_api/project_operations/project_envelope_operations.py
add_ag_wall_to_project
¶
Add a new agWall to the envelope in any project object using AgWallListManager.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
building_area_key
|
str
|
The building area key to validate against lighting.wholeBldgUse list |
required |
new_ag_wall
|
AgWall
|
The agWall object to add |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the agWall added |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found in lighting.wholeBldgUse list |
Source code in comcheck_api/project_operations/project_envelope_operations.py
update_ag_wall_in_project
¶
Update an agWall in the project's envelope.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
ag_wall_assembly_type
|
str
|
The assemblyType of the agWall to update in project.envelope.agWall list |
required |
updates
|
dict[str, Any] | AgWall
|
Partial updates (dict) or full AgWall object to apply |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the agWall updated |
Source code in comcheck_api/project_operations/project_envelope_operations.py
remove_ag_wall_from_project
¶
Remove an agWall from the envelope in any project object.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
ag_wall_assembly_type
|
str
|
The assemblyType of the agWall to update in project.envelope.agWall list |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Project object with the agWall removed |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found in lighting.wholeBldgUse list |
Source code in comcheck_api/project_operations/project_envelope_operations.py
add_bg_wall_to_project
¶
Add a new bgWall to the envelope in any project object using BgWallListManager.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
building_area_key
|
str
|
The building area key to validate against lighting.wholeBldgUse list |
required |
new_bg_wall
|
BgWall
|
The bgWall object to add |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the bgWall added |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found in lighting.wholeBldgUse list |
Source code in comcheck_api/project_operations/project_envelope_operations.py
update_bg_wall_in_project
¶
Update an bgWall in the project's envelope.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
bg_wall_assembly_type
|
str
|
The assemblyType of the bgWall to update in project.envelope.bgWall list |
required |
updates
|
dict[str, Any] | BgWall
|
Partial updates (dict) or full BgWall object to apply |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the bgWall updated |
Source code in comcheck_api/project_operations/project_envelope_operations.py
remove_bg_wall_from_project
¶
Remove an bgWall from the envelope in any project object.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
bg_wall_assembly_type
|
str
|
The assemblyType of the bgWall to update in project.envelope.bgWall list |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Project object with the bgWall removed |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found in lighting.wholeBldgUse list |
Source code in comcheck_api/project_operations/project_envelope_operations.py
add_floor_to_project
¶
Add a new floor to the envelope in any project object using FloorListManager.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
building_area_key
|
str
|
The building area key to validate against lighting.wholeBldgUse list |
required |
new_floor
|
Floor
|
The floor object to add |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the floor added |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found in lighting.wholeBldgUse list |
Source code in comcheck_api/project_operations/project_envelope_operations.py
update_floor_in_project
¶
Update an floor in the project's envelope.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
floor_assembly_type
|
str
|
The assemblyType of the floor to update in project.envelope.floor list |
required |
updates
|
dict[str, Any] | Floor
|
Partial updates (dict) or full Floor object to apply |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the floor updated |
Source code in comcheck_api/project_operations/project_envelope_operations.py
remove_floor_from_project
¶
Remove an bgWall from the envelope in any project object.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
floor_assembly_type
|
str
|
The assemblyType of the floor to remove in project.envelope.floor list |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Project object with the floor removed |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found in lighting.wholeBldgUse list |
Source code in comcheck_api/project_operations/project_envelope_operations.py
add_skylight_to_project
¶
Add a new skylight to a specific roof in the envelope.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
building_area_key
|
str
|
The building area key to validate against lighting.wholeBldgUse list |
required |
new_skylight
|
Skylight
|
The skylight object to add |
required |
roof
|
Roof | None
|
The roof object to which the skylight will be added (required for non-alteration projects) |
None
|
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the skylight added to the specified roof |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found or if roof's bldgUseKey doesn't match buildingAreaKey |
Source code in comcheck_api/project_operations/project_envelope_operations.py
remove_skylight_from_project
¶
Add a new skylight to a specific roof in the envelope.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
ComBuilding, |
required |
skylight_assembly_type
|
str
|
str |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the skylight added to the specified roof |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found or if roof's bldgUseKey doesn't match buildingAreaKey |
Source code in comcheck_api/project_operations/project_envelope_operations.py
update_skylight_in_project
¶
Update a skylight in the project's envelope.
Skylights can exist in two locations: 1. Orphaned skylights in envelope.skylight (ALTERATION projects) 2. Skylights nested in roof list
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
skylight_assembly_type
|
str
|
The assemblyType of the skylight to update |
required |
updates
|
dict[str, Any] | Skylight
|
Partial updates (dict) or full Skylight object to apply |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the skylight updated |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the skylight is not found in any location |
Source code in comcheck_api/project_operations/project_envelope_operations.py
add_window_to_project
¶
Add a new window to a wall (AgWall or BgWall) in the envelope.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
building_area_key
|
str
|
The building area key to validate against lighting.wholeBldgUse list |
required |
new_window
|
Window
|
The window object to add |
required |
wall
|
AgWall | BgWall | None
|
The AgWall or BgWall object to which the window will be added - required for non-alteration projects |
None
|
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the window added to the specified wall |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found or if wall's bldgUseKey doesn't match buildingAreaKey |
Source code in comcheck_api/project_operations/project_envelope_operations.py
remove_window_from_project
¶
Remove a window from the project.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
ComBuilding, |
required |
window_assembly_type
|
str
|
str |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the window removed |
Source code in comcheck_api/project_operations/project_envelope_operations.py
update_window_in_project
¶
Update a window in the project's envelope.
Windows can exist in three locations: 1. Orphaned windows in envelope.window (ALTERATION projects) 2. Windows nested in agWall list 3. Windows nested in bgWall list
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
window_assembly_type
|
str
|
The assemblyType of the window to update |
required |
updates
|
dict[str, Any] | Window
|
Partial updates (dict) or full Window object to apply |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the window updated |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the window is not found in any location |
Source code in comcheck_api/project_operations/project_envelope_operations.py
add_door_to_project
¶
Add a new door to a wall (AgWall or BgWall) in the envelope.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
building_area_key
|
str
|
The building area key to validate against lighting.wholeBldgUse list |
required |
new_door
|
Door
|
The door object to add |
required |
wall
|
AgWall | BgWall | None
|
The AgWall or BgWall object to which the door will be added - required for non-alteration projects |
None
|
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the door added to the specified wall |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found or if wall's bldgUseKey doesn't match buildingAreaKey |
Source code in comcheck_api/project_operations/project_envelope_operations.py
remove_door_from_project
¶
Remove a door from the project.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
ComBuilding, |
required |
door_assembly_type
|
str
|
str |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the door removed |
Source code in comcheck_api/project_operations/project_envelope_operations.py
update_door_in_project
¶
Update a door in the project's envelope.
Doors can exist in three locations: 1. Orphaned doors in envelope.door (ALTERATION projects) 2. Doors nested in agWall list 3. Doors nested in bgWall list
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
door_assembly_type
|
str
|
The assemblyType of the door to update |
required |
updates
|
dict[str, Any] | Door
|
Partial updates (dict) or full Door object to apply |
required |
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the door updated |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the door is not found in any location |
Source code in comcheck_api/project_operations/project_envelope_operations.py
add_thermal_bridge_to_project
¶
add_thermal_bridge_to_project(
project,
building_area_key,
ag_wall,
thermal_bridge_type=THERMAL_BRIDGE_OTHER,
thermal_bridge_category=THERMAL_BRIDGE_UNCATEGORIZED,
thermal_bridge_compliance_type=THERMAL_BRIDGE_NON_PRESCRIPTIVE,
psi_factor=0.0,
chi_factor=0.0,
thermal_bridge_length=0.0,
number_of_points=0,
)
Add a new thermal bridge to an AgWall in the envelope.
Note: Thermal bridges can only be added to AgWalls and cannot be orphaned.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project
|
ComBuilding
|
The project object to modify |
required |
building_area_key
|
str
|
The building area key to validate against lighting.wholeBldgUse list |
required |
ag_wall
|
AgWall
|
The AgWall object to which the thermal bridge will be added (required) |
required |
thermal_bridge_type
|
ThermalBridgeTypeOptions | None
|
Type of thermal bridge (defaults to 'THERMAL_BRIDGE_OTHER') |
THERMAL_BRIDGE_OTHER
|
thermal_bridge_category
|
Union[ThermalBridgeCategoryOptions | None]
|
Category of thermal bridge (defaults to 'THERMAL_BRIDGE_UNCATEGORIZED') |
THERMAL_BRIDGE_UNCATEGORIZED
|
thermal_bridge_compliance_type
|
Union[ThermalBridgeComplianceTypeOptions | None]
|
Compliance type (defaults to 'THERMAL_BRIDGE_NON_PRESCRIPTIVE') |
THERMAL_BRIDGE_NON_PRESCRIPTIVE
|
psi_factor
|
float
|
Psi factor (defaults to 0.0) |
0.0
|
chi_factor
|
float
|
Chi factor (defaults to 0.0) |
0.0
|
thermal_bridge_length
|
float
|
Length of thermal bridge (defaults to 0.0) |
0.0
|
number_of_points
|
int
|
Number of points for thermal bridge (defaults to 0) |
0
|
Returns:
| Type | Description |
|---|---|
ComBuilding
|
Updated project object with the thermal bridge added to the specified AgWall |
Raises:
| Type | Description |
|---|---|
ValueError
|
If buildingAreaKey is not found, agWall is not provided, or wall's bldgUseKey doesn't match buildingAreaKey |
Source code in comcheck_api/project_operations/project_envelope_operations.py
707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 | |