archetypal.idfclass.IDF
- class archetypal.idfclass.IDF(idfname: Optional[Union[str, IO, path.Path]] = None, epw=None, as_version: Union[str, archetypal.eplus_interface.version.EnergyPlusVersion] = '9-2-0', annual=False, design_day=False, expandobjects=False, convert=False, verbose=False, readvars=True, prep_outputs=True, include=None, custom_processes=None, output_suffix='L', epmacro=False, keep_data=True, keep_data_err=True, position=0, name=None, output_directory=None, outputtype='standard', iddname: Optional[Union[str, IO, path.Path]] = None, **kwargs)[source]
Class for loading and parsing idf models.
This is the starting point to run simulations and retrieving results.
Wrapper over the geomeppy.IDF class and subsequently the eppy.modeleditor.IDF class.
Initialize an IDF object.
- Parameters
output_directory –
idfname (str or os.PathLike) – The path of the idf file to read. If none, an in-memory IDF object is generated.
epw (str or os.PathLike) – The weather-file. If None, epw can be specified in IDF.simulate().
as_version (str) – Specify the target EnergyPlus version for the IDF model. If as_version is higher than the file version, the model will be transitioned to the target version. This will not overwrite the file unless IDF.save() is invoked. See
IDF.save()
,IDF.saveas()
andIDF.savecopy()
for other IO operations on IDF objects.annual (bool) – If True then force annual simulation (default: False).
design_day (bool) – Force design-day-only simulation (default: False).
expandobjects (bool) – Run ExpandObjects prior to simulation (default: True).
convert (bool) – If True, only convert IDF->epJSON or epJSON->IDF.
outputtype (str) – Specifies the idf string representation of the model. Choices are: “standard”, “nocomment1”, “nocomment2”, “compressed”.
- EnergyPlus args:
tmp_dir=None, as_version=None, prep_outputs=True, include=None, keep_original=True,
- classmethod from_example_files(example_name, epw=None, **kwargs)[source]
Load an IDF model from the ExampleFiles folder by name.
Examples
- idf = IDF.from_example_files(
“minimal”, “USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw”
)
- setiddname(iddname, testing=False)[source]
Set EnergyPlus IDD path for model.
Sets the version of EnergyPlus which is to be used by eppy.
- read()[source]
Read the IDF file and the IDD file.
If the IDD file had already been read, it will not be read again.
- Read populates the following data structures:
idfobjects : list
model : list
idd_info : list
idd_index : dict
- property block: list
Set EnergyPlus field ID names of the IDF from the IDD.
- property idd_info: list
Set comments and metadata about fields in the IDD.
- property idd_index: dict
Set pair of dicts used for fast lookups of names of groups of objects.
- property idfobjects: dict
Set dict of lists of idf_MSequence objects in the IDF.
- property model: eppy.EPlusInterfaceFunctions.eplusdata.Eplusdata
Set Eplusdata object containing representations of IDF objects.
- property idd_version: tuple
Return the version of the iddname as a tuple.
- property iddname: path.Path
Get or set the iddname path used to parse the idf model.
- property file_version: archetypal.eplus_interface.version.EnergyPlusVersion
Return the
EnergyPlusVersion
of the idf text file.
- property custom_processes: list
Return list of callables. Called on the output files.
- property include: list
Return list of external files attached to model.
- property keep_data_err: bool
If True, error files are copied back into self.output_folder.
- Type
- property output_suffix: str
L).
L: Legacy (e.g., eplustbl.csv)
C: Capital (e.g., eplusTable.csv)
D: Dash (e.g., eplus-table.csv)
- Type
- Type
The suffix style for output file names (default
- property idfname: Union[path.Path, _io.StringIO]
The path of the active (parsed) idf model.
- Type
Path
- property epw: path.Path
The weather file path.
- Type
Path
- property verbose
If True, print outputs to logging module.
See also
- Type
- property convert: bool
If True, only convert IDF->epJSON or epJSON->IDF.
Dependent on input file type. No simulation.
- Type
- property prep_outputs
Bool or set list of custom outputs.
- property as_version
Specify the desired
EnergyPlusVersion
for the IDF model.
- property output_directory: path.Path
The output directory based on the hashing of the original file.
Notes
The hashing is performed before transitions or modifications. The directory is not created! Use self.output_directory.makedir_p() to create it without an error if it exists.
- Type
Path
- property sim_id: str
The unique Id of the simulation.
- Based on a subset of hashed variables:
The idf model itself.
epw
annual
design_day
readvars
as_version
- Type
- property sim_info: Optional[pandas.core.frame.DataFrame]
Unique number generated for a simulation.
- Type
DataFrame
- property sim_timestamp: Union[str, pandas.core.series.Series]
Return the simulation timestamp or “Never” if not ran yet.
- property idfversionupdater_dir: path.Path
The path of the IDFVersionUpdater folder.
Uses the current module’s ep_version.
- Type
Path
- property energyplus_its: int
Return number of iterations needed to complete simulation.
- open_mdd()[source]
Open .mdd file in browser.
This file shows all the report meters along with their “availability” for the current input file.
- open_mtd()[source]
Open .mtd file in browser.
This file contains the “meter details” for the run. This shows what report variables are on which meters and vice versa – which meters contain what report variables.
- property sql_file
Get the sql file path.
- property mtd_file: path.Path
Get the mtd file path.
- property net_conditioned_building_area: float
Return the total conditioned area of a building.
Takes into account zone multipliers.
- property unconditioned_building_area: float
Return the Unconditioned Building Area.
- property total_building_area: float
Return the Total Building Area.
- add_block(*args: Any, **kwargs: Any) None [source]
Add a block to the IDF.
- Parameters
name – A name for the block.
coordinates – A list of (x, y) tuples representing the building outline.
height – The height of the block roof above ground level.
num_stories – The total number of stories including basement stories. Default : 1.
below_ground_stories – The number of stories below ground. Default : 0.
below_ground_storey_height – The height of each basement storey. Default : 2.5.
zoning – The zoning pattern of the block. Default : by_storey
perim_depth – Depth of the perimeter zones if the core/perim zoning pattern is requested. Default : 3.0.
- add_shading_block(*args: Any, **kwargs: Any) None [source]
Add a shading block to the IDF.
- Parameters
name – A name for the block.
coordinates – A list of (x, y) tuples representing the building outline.
height – The height of the block roof above ground level.
num_stories – The total number of stories including basement stories. Default : 1.
below_ground_stories – The number of stories below ground. Default : 0.
below_ground_storey_height – The height of each basement storey. Default : 2.5.
- add_zone(zone: geomeppy.builder.Zone) None [source]
Add a zone to the IDF.
- Parameters
zone – A Zone object holding details about the zone.
- bounding_box() geomeppy.geom.polygons.Polygon2D [source]
Calculate the site bounding box.
- Returns
A polygon of the bounding box.
- property centroid
Calculate the centroid of the site bounding box.
- Returns
The centroid of the site bounding box.
- copyidfobject(idfobject: geomeppy.patches.EpBunch) geomeppy.patches.EpBunch
Add an IDF object to the IDF.
This has been monkey-patched to add the return value.
- Parameters
idfobject – The IDF object to copy. Usually from another IDF, or it can be used to copy within this IDF.
- Returns
EpBunch object.
- getextensibleindex(key, name)[source]
Get the index of the first extensible item.
Only for internal use. # TODO : hide this
- getiddgroupdict()[source]
Return a idd group dictionary sample: {‘Plant-Condenser Loops’: [‘PlantLoop’, ‘CondenserLoop’], ‘Compliance Objects’: [‘Compliance:Building’], ‘Controllers’: [‘Controller:WaterCoil’, ‘Controller:OutdoorAir’, ‘Controller:MechanicalVentilation’, ‘AirLoopHVAC:ControllerList’], …}
- Returns
- Return type
- getshadingsurfaces(surface_type: str = '') Union[List[eppy.bunch_subclass.EpBunch], eppy.idf_msequence.Idf_MSequence] [source]
Return all subsurfaces in the IDF.
- Parameters
surface_type – Type of surface to get. Defaults to all.
- Returns
IDF surfaces.
- getsubsurfaces(surface_type: str = '') Union[List[eppy.bunch_subclass.EpBunch], eppy.idf_msequence.Idf_MSequence] [source]
Return all subsurfaces in the IDF.
- Parameters
surface_type – Type of surface to get. Defaults to all.
- Returns
IDF surfaces.
- getsurfaces(surface_type: str = '') Union[List[eppy.bunch_subclass.EpBunch], eppy.idf_msequence.Idf_MSequence] [source]
Return all surfaces in the IDF.
- Parameters
surface_type – Type of surface to get. Defaults to all.
- Returns
IDF surfaces.
- initnew(fname)[source]
Use the current IDD and create a new empty IDF. If the IDD has not yet been initialised then this is done first.
- Parameters
fname (str, optional) – Path to an IDF. This does not need to be set at this point.
- initread(idfname)[source]
Use the current IDD and read an IDF from file. If the IDD has not yet been initialised then this is done first.
- Parameters
idf_name (str) – Path to an IDF file.
- initreadtxt(idftxt)[source]
Use the current IDD and read an IDF from text data. If the IDD has not yet been initialised then this is done first.
- Parameters
idftxt (str) – Text representing an IDF file.
- new(fname=None)[source]
Create a blank new idf file. Filename is optional.
- Parameters
fname (str, optional) – Path to an IDF. This does not need to be set at this point.
- removeextensibles(key, name)[source]
Remove extensible items in the object of key and name.
Only for internal use. # TODO : hide this
- rotate(angle: float, anchor: Optional[Union[geomeppy.geom.vectors.Vector2D, geomeppy.geom.vectors.Vector3D]] = None) None [source]
Rotate the IDF counterclockwise by the angle given.
- Parameters
angle – Angle (in degrees) to rotate by.
anchor – Point around which to rotate. Default is the centre of the the IDF’s bounding box.
- run(**kwargs)[source]
This method wraps the following method:
- rruunn(idf=None, weather=None, output_directory=’’, annual=False, design_day=False, idd=None, epmacro=False, expandobjects=False, readvars=False, output_prefix=None, output_suffix=None, version=False, verbose=’v’, ep_version=None)
Wrapper around the EnergyPlus command line interface.
- idfstr
Full or relative path to the IDF file to be run, or an IDF object.
- weatherstr
Full or relative path to the weather file.
- output_directorystr, optional
Full or relative path to an output directory (default: ‘run_outputs)
- annualbool, optional
If True then force annual simulation (default: False)
- design_daybool, optional
Force design-day-only simulation (default: False)
- iddstr, optional
Input data dictionary (default: Energy+.idd in EnergyPlus directory)
- epmacrostr, optional
Run EPMacro prior to simulation (default: False).
- expandobjectsbool, optional
Run ExpandObjects prior to simulation (default: False)
- readvarsbool, optional
Run ReadVarsESO after simulation (default: False)
- output_prefixstr, optional
Prefix for output file names (default: eplus)
- output_suffixstr, optional
- Suffix style for output file names (default: L)
L: Legacy (e.g., eplustbl.csv) C: Capital (e.g., eplusTable.csv) D: Dash (e.g., eplus-table.csv)
- versionbool, optional
Display version information (default: False)
- verbose: str
- Set verbosity of runtime messages (default: v)
v: verbose q: quiet
- ep_version: str
EnergyPlus version, used to find install directory. Required if run() is called with an IDF file path rather than an IDF object.
str : status
CalledProcessError
- AttributeError
If no ep_version parameter is passed when calling with an IDF file path rather than an IDF object.
- scale(factor: float, anchor: Optional[Union[geomeppy.geom.vectors.Vector2D, geomeppy.geom.vectors.Vector3D]] = None, axes: str = 'xy') None [source]
Scale the IDF by a scaling factor.
- Parameters
factor – Factor to scale by.
anchor – Point to scale around. Default is the centre of the the IDF’s bounding box.
axes – Axes to scale on. Default ‘xy’.
- to_obj(fname: Optional[str] = None, mtllib: Optional[str] = None) None [source]
Export an OBJ file representation of the IDF.
This can be used for viewing in tools which support the .obj format.
- Parameters
fname – A filename for the .obj file. If None we try to base it on IDF.idfname and change the filetype.
mtllib – The name of a .mtl file to be referenced from the .obj file. If None, we use default.mtl.
- translate(vector: geomeppy.geom.vectors.Vector2D) None [source]
Move the IDF in the direction given by a vector.
- Parameters
vector – A vector to translate by.
- translate_to_origin() None [source]
Move an IDF close to the origin so that it can be viewed in SketchUp.
- view_model(test: Optional[bool] = False) None [source]
Show a zoomable, rotatable representation of the IDF.
- property simulation_dir: path.Path
The path where simulation results are stored.
- Type
Path
- property schedules_dict: dict
schedule} in the model.
- Type
Return the dict of {NAME
- property outputs: archetypal.idfclass.outputs.Outputs
Return the Outputs class associated with the model.
- property day_of_week_for_start_day
Get day of week for start day for the first found RUNPERIOD.
Monday = 0 .. Sunday = 6
- property meters: archetypal.idfclass.meters.Meters
List of available meters for the
IDF
model.The
IDF
model must be simulated once (to retrieve the .mdd file).The listed meters may or may not be included in the idf file. If they are not, the output is added to the file and the model is simulated again. The output is appended to the
IDF.idfobjects
list, but will not overwrite the original idf file, unlessIDF.save()
is called.Hint
Call idf.meters.<output_group>.<meter_name>.values() to retreive a time-series based on the
pandas.Series
class which can be plotted.See
Meter
andEnergySeries
for more information.Example
The IDF.meters attribute is populated with meters categories (Output:Meter or Output:Meter:Cumulative) and each category is populated with all the available meters.
>>> IDF.meters.OutputMeter.WaterSystems__MainsWater >>> IDF.meters.OutputMeterCumulative.WaterSystems__MainsWater
- property variables
List of available meters for the
IDF
model.The
IDF
model must be simulated once (to retrieve the .mdd file).The listed meters may or may not be included in the idf file. If they are not, the output is added to the file and the model is simulated again. The output is appended to the
IDF.idfobjects
list, but will not overwrite the original idf file, unlessIDF.save()
is called.Hint
Call idf.meters.<output_group>.<meter_name>.values() to retreive a time-series based on the
pandas.Series
class which can be plotted.See
Meter
andEnergySeries
for more information.Example
The IDF.meters attribute is populated with meters categories (Output:Meter or Output:Meter:Cumulative) and each category is populated with all the available meters.
>>> IDF.variables.OutputVariable >>> IDF.variables.OutputVariable
- simulate(force=False, **kwargs)[source]
Execute EnergyPlus.
Specified kwargs overwrite IDF parameters. ExpandObjects, Basement and Slab preprocessors are ran before EnergyPlus.
Does not return anything.
- Parameters
force (bool) – Force simulation even though results exist in self.simulation_dir.
- Keyword Arguments
eplus_file (str) – path to the idf file.
weather_file (str) – path to the EPW weather file.
output_directory (str, optional) – path to the output folder.
ep_version (str, optional) – EnergyPlus executable version to use, eg: 9-2-0
output_report – ‘sql’ or ‘htm’
prep_outputs (bool or list, optional) – if True, meters and variable outputs will be appended to the idf files. Can also specify custom outputs as list of ep-object outputs.
keep_data (bool) – If True, files created by EnergyPlus are saved to the tmp_dir.
annual (bool) – If True then force annual simulation (default: False)
design_day (bool) – Force design-day-only simulation (default: False)
epmacro (bool) – Run EPMacro prior to simulation (default: False)
expandobjects (bool) – Run ExpandObjects prior to simulation (default: True)
readvars (bool) – Run ReadVarsESO after simulation (default: False)
output_prefix (str, optional) – Prefix for output file names.
output_suffix (str, optional) –
Suffix style for output file names (default: L) Choices are:
L: Legacy (e.g., eplustbl.csv)
C: Capital (e.g., eplusTable.csv)
D: Dash (e.g., eplus-table.csv)
version (bool, optional) – Display version information (default: False)
verbose (str) – Set verbosity of runtime messages (default: v) v: verbose q: quiet
keep_data_err (bool) – If True, errored directory where simulation
is (occurred) – kept.
include (str, optional) – List input files that need to be copied to the simulation directory. If a string is provided, it should be in a glob form (see
pathlib.Path.glob()
).process_files (bool) – If True, process the output files and load to a
DataFrame
. Custom processes can be passed using thecustom_processes
attribute.custom_processes (dict(Callback)) – if provided, it has to be a dictionary with the keys being a glob (see
pathlib.Path.glob()
), and the value a Callback taking as signature callback(file: str, working_dir, simulname) -> Any All the file matching this glob will be processed by this callback. Note: they will still be processed by pandas.read_csv (if they are csv files), resulting in duplicate. The only way to bypass this behavior is to add the key “*.csv” to that dictionary.return_idf (bool) – If True, returns the
IDF
object part of the return tuple.return_files (bool) – It True, all files paths created by the EnergyPlus run are returned.
- Raises
EnergyPlusProcessError – If an issue occurs with the execution of the energyplus command.
See also
IDF.simulation_files
,IDF.processed_results
for simulation outputs.
- savecopy(filename, lineendings='default', encoding='latin-1')[source]
Save a copy of the file with the filename passed.
- Parameters
filename (str) – Filepath to save the file.
lineendings (str) – Line endings to use in the saved file. Options are ‘default’, ‘windows’ and ‘unix’ the default is ‘default’ which uses the line endings for the current system.
encoding (str) – Encoding to use for the saved file. The default is ‘latin-1’ which is compatible with the EnergyPlus IDFEditor.
- Returns
The new file path.
- Return type
Path
- copy()[source]
Return a copy of self as an in memory IDF.
The copy is a new IDF object with the same parameters and arguments as self but is not attached to an file. Use IDF.saveas(“idfname.idf”, inplace=True) to save the copy to a file inplace. self.idfname will now be idfname.idf
- save(lineendings='default', encoding='latin-1', **kwargs)[source]
Write the IDF model to the text file.
Uses
save()
but also brings over existing simulation results.- Parameters
lineendings (str) – Line endings to use in the saved file. Options are ‘default’, ‘windows’ and ‘unix’ the default is ‘default’ which uses the line endings for the current system.
encoding (str) – Encoding to use for the saved file. The default is ‘latin-1’ which is compatible with the EnergyPlus IDFEditor.
- Returns
The IDF model
- Return type
- saveas(filename, lineendings='default', encoding='latin-1', inplace=False)[source]
Save the IDF model as.
Writes a new text file and load a new instance of the IDF class (new object).
- Parameters
filename (str) – Filepath to save the file. If None then use the IDF.idfname parameter. Also accepts a file handle.
lineendings (str) – Line endings to use in the saved file. Options are ‘default’, ‘windows’ and ‘unix’ the default is ‘default’ which uses the line endings for the current system.
encoding (str) – Encoding to use for the saved file. The default is ‘latin-1’ which is compatible with the EnergyPlus IDFEditor.
inplace (bool) – If True, applies the new filename to self directly, else a new object is returned with the new filename.
- Returns
A new IDF object based on the new location file.
- Return type
- process_results()[source]
Return the list of processed results.
Processes are defined by
custom_processes
as a list of tuple(file, result). A default process looks for csv files and tries to parse them intoDataFrame
objects.- Returns
List of two-tuples.
- Return type
- Info:
For processed_results to work more consistently, it may be necessary to add the “readvars=True” parameter to
IDF.simulate()
as this one is set to false by default.
- add_idf_object_from_idf_string(idf_string)[source]
Add an IDF object (or more than one) from an EnergyPlus text string.
- Parameters
idf_string (str) – A text string fully describing an EnergyPlus object.
- upgrade(to_version=None, overwrite=True)[source]
EnergyPlus idf version updater using local transition program.
Update the EnergyPlus simulation file (.idf) to the latest available EnergyPlus version installed on this machine. Optionally specify a version (eg.: “9-2-0”) to aim for a specific version. The output will be the path of the updated file. The run is multiprocessing_safe.
Hint
If attempting to upgrade an earlier version of EnergyPlus (pre-v7.2.0), specific binaries need to be downloaded and copied to the EnergyPlus*/PreProcess/IDFVersionUpdater folder. More info at Converting older version files.
- wwr(azimuth_threshold=10, round_to=10)[source]
Return the Window-to-Wall Ratio by major orientation.
Optionally round up the WWR value to nearest value (eg.: nearest 10 %).
- Parameters
azimuth_threshold (int) – Defines the incremental major orientation azimuth angle. Due to possible rounding errors, some surface azimuth can be rounded to values different than the main directions (eg.: 89 degrees instead of 90 degrees). Defaults to increments of 10 degrees.
round_to (float) – Optionally round the WWR value to nearest value (eg.: nearest 10). If None, this is ignored and the float is returned.
- Returns
A DataFrame with the total wall area, total window area and WWR for each main orientation of the building.
- Return type
(pd.DataFrame)
- space_heating_profile(units='kWh', energy_out_variable_name=None, name='Space Heating', EnergySeries_kwds=None)[source]
Return space-heating time series.
- Parameters
units (str) – Units to convert the energy profile to. Will detect the units of the EnergyPlus results.
energy_out_variable_name (list-like) – a list of EnergyPlus Variable names.
name (str) – Name given to the EnergySeries.
EnergySeries_kwds (dict, optional) – keywords passed to
EnergySeries.from_sqlite()
- Returns
EnergySeries
- space_cooling_profile(units='kWh', energy_out_variable_name=None, name='Space Cooling', EnergySeries_kwds=None)[source]
Return space-cooling time series.
- Parameters
- Returns
EnergySeries
- service_water_heating_profile(units='kWh', energy_out_variable_name=None, name='Space Heating', EnergySeries_kwds=None)[source]
Return service water heating (domestic hot water) time series.
- Parameters
units (str) – Units to convert the energy profile to. Will detect the units of the EnergyPlus results.
energy_out_variable_name (list-like) – a list of EnergyPlus Variable names.
name (str) – Name given to the EnergySeries.
EnergySeries_kwds (dict, optional) – keywords passed to
EnergySeries.from_sqlite()
- Returns
EnergySeries
- custom_profile(energy_out_variable_name, name, units='kWh', prep_outputs=None, EnergySeries_kwds=None)[source]
Return user-defined time series.
- Parameters
energy_out_variable_name (list-like) – a list of EnergyPlus
name (str) – Name given to the EnergySeries.
units (str) – Units to convert the energy profile to. Will detect the units of the EnergyPlus results.
prep_outputs –
EnergySeries_kwds (dict, optional) – keywords passed to
EnergySeries.from_sqlite()
- Returns
EnergySeries
- newidfobject(key, **kwargs) Optional[geomeppy.patches.EpBunch] [source]
Define EpBunch object and add to model.
The function will test if the object exists to prevent duplicates.
- Parameters
key (str) – The type of IDF object. This must be in ALL_CAPS.
**kwargs – Keyword arguments in the format field=value used to set fields in the EnergyPlus object.
Example
>>> from archetypal import IDF >>> IDF.newidfobject( >>> key="Schedule:Constant".upper(), >>> Name="AlwaysOn", >>> Schedule_Type_Limits_Name="", >>> Hourly_Value=1, >>> )
- Returns
the object, if successful None: If an error occured.
- Return type
EpBunch
- addidfobject(new_object) geomeppy.patches.EpBunch [source]
Add an IDF object to the model.
- Parameters
new_object (EpBunch) – The IDF object to add.
- Returns
object.
- Return type
EpBunch
- removeidfobject(idfobject)[source]
Remove an IDF object from the model.
- Parameters
idfobject (EpBunch) – The object to remove from the model.
- removeidfobjects(idfobjects: Iterable[geomeppy.patches.EpBunch])[source]
Remove an IDF object from the model.
- Parameters
idfobjects – The object to remove from the model.
- anidfobject(key: str, aname: str = '', **kwargs) geomeppy.patches.EpBunch [source]
Define and create an object, but don’t add it to the model.
See
newidfobject()
). If you don’t specify a value for a field, the default value will be set.Example
>>> from archetypal import IDF >>> IDF.anidfobject("CONSTRUCTION") >>> IDF.anidfobject( >>> key="CONSTRUCTION", >>> Name='Interior Ceiling_class', >>> Outside_Layer='LW Concrete', >>> Layer_2='soundmat' >>> )
- get_schedule_type_limits_data_by_name(schedule_limit_name)[source]
Return the data for a particular ‘ScheduleTypeLimits’ object.
- Parameters
schedule_limit_name –
- get_schedule_epbunch(name, sch_type=None)[source]
Return the epbunch of a particular schedule name.
If the schedule type is known, retrievess it quicker.
- property width
Get the width of the building [m].
- property length
Get the length of the building [m].
- rename(objkey, objname, newname)[source]
Rename all the references to this objname.
Function comes from eppy.modeleditor and was modified to compare the name to rename with a lower string (see idfobject[idfobject.objls[findex]].lower() == objname.lower()).
- set_wwr(wwr: Optional[float] = None, construction: Optional[str] = None, force: bool = False, wwr_map: Optional[dict] = None, orientation: Optional[str] = None, surfaces: Optional[Iterable] = None)[source]
Set Window-to-Wall Ratio of external walls.
Different WWR can be applied to specific wall orientations using the wwr_map dictionary. This map is a dict of wwr values, keyed by wall.azimuth, which overrides the default passed as wwr. Note that wall.azimuth is rounded to the closest integer.
They can also be applied to walls oriented to a compass point, e.g. north, which will apply to walls which have an azimuth within 45 degrees of due north.
- Parameters
wwr – The window to wall ratio to apply to all orientations. If wwr_map is specified, wwr is the default wwr for oreintations not defined in the mapping.
construction – Name of a window construction to apply.
force – True to create windows on walls that don’t have any.
wwr_map – Mapping from wall orientation (azimuth) to WWR, e.g. {180: 0.25, 90: 0.2}.
orientation – One of “north”, “east”, “south”, “west”. Walls within 45 degrees will be affected.
surfaces – Iterable of surfaces to set the window to wall ratio of.