Simulation settings
What are simulation settings?
bim2sim
uses prescribed settings which define how a specific simulation
should be handled. For basic setup we have a BaseSimSettings,
which is extended for the different simulation types (e.g.
BuildingSimSettings) and this domain simulation type
specific settings can also be further specified for each Plugin
(e.g. TEASERSimSettings or
EnergyPlusSimSettings) via class inheritance.
Each Plugin has a set of predefined settings. But the different settings can easily be changed (see below)
How do settings work?
Each instance of a simulation settings owns a
SettingsManager to manage all simulation specific
Settings. A setting can be used to concretize the way
how tasks are executed. E.g. the level of detail (LOD) of the
setting layers_and_materials
with which the layers of building elements and
their materials should be inspected can be defined either set LOD.low or
LOD.full. Currently, each Setting has a specified
number of choices from which one or multiple can be chosen.
Additionally, to the settings itself, a simulation setting instance holds the
relevant_elements
. These define, which of the existing bim2sim
elements will be taken into account for the simulation model
creation.
How to set simulation settings?
There are two different ways to set a workflow setting:
Define the settings inside the
config.toml
file that is part of every FolderStructure of every Project.Define the settings after the project creation by overwriting the existing ones
project = Project.create(project_path, ifc_path, 'teaser', open_conf=True)
project.sim_settings.layers_and_materials = LOD.low
If you want to overwrite the specified relevant_elements
you can
do this in the same way
project.sim_settings.relevant_elements = {<classes of elements of interest>}
The first way is useful if you want to work in an interactive way, the second is more fitting for automated tasks.
Want to set up your own workflow?
The pre-implemented workflows hold the needed settings for the simulation with the pre-implemented Plugins. For further customization you can add your own Workflow (from scratch or by inheriting from the existing ones) and add your own settings that you might miss from the existing ones.
List of current simulation settings:
The following tables provide an overview of simulation settings for the different simulation types.
BaseSimSettings
Setting Name |
Type |
Default |
Description |
Choices |
---|---|---|---|---|
dymola_simulation |
Boolean |
False |
Run a Simulation with Dymola after model export? |
|
create_external_elements |
Boolean |
False |
Create external elements? |
|
max_wall_thickness |
Number |
0.3 |
Choose maximum wall thickness as a tolerance for mapping |
|
group_unidentified |
Choice |
‘fuzzy’ |
To reduce the number of decisions by user to identify |
‘fuzzy’: Use fuzzy search to find ifc name similarities |
fuzzy_threshold |
Number |
0.7 |
If you want to use fuzzy search in the group_unidentified |
|
reset_guids |
Boolean |
False |
Reset GlobalIDs from imported IFC if duplicate GlobalIDs |
|
weather_file_path |
Path |
Path to the weather file that should be used for the |
||
building_rotation_overwrite |
Number |
0 |
Overwrite the (clockwise) building rotation angle in |
|
add_space_boundaries |
Boolean |
False |
Add space boundaries. Only required for building performance |
|
correct_space_boundaries |
Boolean |
False |
Apply geometric correction to space boundaries. |
|
close_space_boundary_gaps |
Boolean |
False |
Close gaps in the set of space boundaries by adding |
|
stories_to_load_guids |
GuidList |
[] |
List of IFC GUIDs for the specific stories that should be |
PlantSimSettings
Setting Name |
Type |
Default |
Description |
---|---|---|---|
aggregations |
Choice (MultipleChoice) |
[list] |
Choose which aggregations should be applied on the hydraulic network. |
BuildingSimSettings
Setting Name |
Type |
Default |
Description |
Choices |
---|---|---|---|---|
layers_and_materials |
Choice |
LOD.low |
Select how existing Material information in IFC should be |
‘LOD.low’: Override materials with predefined setups |
year_of_construction_overwrite |
Number |
Force an overwrite of the year of construction as a base for |
||
construction_class_walls |
Choice |
‘iwu_heavy’ |
Select the most fitting construction class type forthe walls |
‘iwu_heavy’, ‘iwu_light’, ‘kfw_40’, ‘kfw_55’, ‘kfw_70’, |
construction_class_windows |
Choice |
‘Alu- oder Stahlfenster, Waermeschutzverglasung, zweifach’ |
Select the most fitting construction class type for the |
‘Holzfenster, zweifach’, ‘Kunststofffenster, |
construction_class_doors |
Choice |
‘iwu_typical’ |
Select the most fitting construction class type for the |
‘iwu_typical’, ‘kfw_40’, ‘kfw_55’, ‘kfw_70’, ‘kfw_85’, |
heating_tz_overwrite |
Boolean |
If True, all thermal zones will be provided with heating,if |
||
cooling_tz_overwrite |
Boolean |
If True, all thermal zones will be provided with cooling,if |
||
ahu_tz_overwrite |
Boolean |
If True, all thermal zones will be provided with AHU,if |
||
prj_use_conditions |
Path |
Path to a custom UseConditions.json for the specific |
||
prj_custom_usages |
Path |
Path to a custom customUsages.json for the specific project, |
||
setpoints_from_template |
Boolean |
False |
Use template heating and cooling profiles instead of |
|
use_maintained_illuminance |
Boolean |
True |
Use maintained illuminance required per zone based on DIN V |
|
sim_results |
Choice |
[‘heat_demand_total’, ‘cool_demand_total’, |
‘heat_demand_total’, ‘cool_demand_total’, |
|
add_space_boundaries |
Boolean |
True |
Add space boundaries. Only required for building performance |
|
correct_space_boundaries |
Boolean |
False |
Apply geometric correction to space boundaries. |
|
split_bounds |
Boolean |
False |
Whether to convert up non-convex space boundaries or not. |
|
add_shadings |
Boolean |
False |
Whether to add shading surfaces if available or not. |
|
split_shadings |
Boolean |
False |
Whether to convert up non-convex shading boundaries or not. |
|
close_space_boundary_gaps |
Boolean |
False |
Close gaps in the set of space boundaries by adding |
|
create_plots |
Boolean |
False |
Create plots for simulation results after the simulation |
|
set_run_period |
Boolean |
False |
Choose whether run period for simulation execution should be |
|
run_period_start_month |
Number |
1 |
Choose start month of run period. Requires |
|
run_period_start_day |
Number |
1 |
Choose start day of run period. Requires |
|
run_period_end_month |
Number |
12 |
Choose end month of run period. Requires |
|
run_period_end_day |
Number |
31 |
Choose end day of run period. Requires set_run_period==True |
|
plot_singe_zone_guid |
Choice |
‘’ |
Choose the GlobalId of the IfcSpace for which results should |
‘’: Skip |
ahu_heating_overwrite |
Boolean |
Choose if the central AHU should provide heating. |
||
ahu_cooling_overwrite |
Boolean |
Choose if the central AHU should provide cooling. |
||
ahu_dehumidification_overwrite |
Boolean |
Choose if the central AHU should provide dehumidification. |
||
ahu_humidification_overwrite |
Boolean |
Choose if the central AHU should provide |
||
ahu_heat_recovery_overwrite |
Boolean |
Choose if the central AHU should zuse heat recovery. |
||
ahu_heat_recovery_efficiency_overwrite |
Number |
Choose the heat recovery efficiency of the central AHU. |
||
use_constant_infiltration_overwrite |
Boolean |
If only constant base infiltration should be used and no |
||
base_infiltration_rate_overwrite |
Number |
Overwrite base value for the natural infiltration in 1/h |
EnergyPlusSimSettings
Setting Name |
Type |
Default |
Description |
Choices |
---|---|---|---|---|
cfd_export |
Boolean |
False |
Whether to use CFD export for this simulation or not. |
|
split_bounds |
Boolean |
False |
Whether to convert up non-convex space boundaries or not. |
|
add_shadings |
Boolean |
True |
Whether to add shading surfaces if available or not. |
|
split_shadings |
Boolean |
False |
Whether to convert up non-convex shading boundaries or not. |
|
run_full_simulation |
Boolean |
False |
Choose simulation period. |
|
ep_version |
Choice |
‘9-4-0’ |
Choose EnergyPlus Version |
‘9-2-0’: EnergyPlus Version 9-2-0 |
ep_install_path |
Path |
\usr\local\EnergyPlus-9-4-0 |
Choose EnergyPlus Installation Path |
|
system_sizing |
Boolean |
True |
Whether to do system sizing calculations in EnergyPlus or |
|
run_for_sizing_periods |
Boolean |
False |
Whether to run the EnergyPlus simulation for sizing periods |
|
run_for_weather_period |
Boolean |
True |
Whether to run the EnergyPlus simulation for weather file |
|
system_weather_sizing |
Choice |
‘Typical’ |
Choose whether to perform the system sizing for DesignDays, |
‘Typical’: SummerTypical and WinterTypical for system sizing. |
weather_file_for_sizing |
Path |
Path to the weather file that should be used for system |
||
enforce_system_sizing |
Boolean |
False |
Choose True if you want to enforce HVAC Sizing to sizing |
|
solar_distribution |
Choice |
‘FullExterior’ |
Choose solar distribution. |
‘FullExterior’: Full exterior solar distribution |
add_window_shading |
Choice |
Choose window shading. |
‘None’: Do not add window shading |
|
output_format |
Choice |
‘CommaAndHTML’ |
Choose output format for result files. |
‘Comma’: Output format Comma (.csv) |
unit_conversion |
Choice |
‘JtoKWH’ |
Choose unit conversion for result files. |
‘None’: No unit conversions |
output_keys |
Choice |
[‘output_outdoor_conditions’, ‘output_zone_temperature’, |
Choose groups of output variables (multiple choice). |
‘output_outdoor_conditions’: Add outputs for outdoor conditions. |
correct_space_boundaries |
Boolean |
True |
Apply geometric correction to space boundaries. |
|
close_space_boundary_gaps |
Boolean |
True |
Close gaps in the set of space boundaries by adding |
|
add_natural_ventilation |
Boolean |
True |
Add natural ventilation to the building. Natural ventilation |
|
hvac_off_at_night |
Boolean |
False |
Disable all HVAC systems at night from 10pm to 6am. |
|
control_operative_temperature |
Boolean |
False |
Use operative temperature instead of air temperature for |
|
ventilation_demand_control |
Choice |
Choose if mechanical ventilation should be demand |
‘None’: No demand control for mechanical ventilation. |
|
outdoor_air_economizer |
Choice |
‘NoEconomizer’ |
Choose which type of outdoor air economizer should be |
‘NoEconomizer’: No outdoor air economizer is applied. |
heat_recovery_type |
Choice |
‘Enthalpy’ |
Choose which type of heat recovery should be applied for |
‘Enthalpy’: Use Enthalpy Heat Recovery. |
heat_recovery_sensible |
Number |
0.8 |
Choose the sensible heat recovery effectiveness. Default: |
|
heat_recovery_latent |
Number |
0.7 |
Choose the latent heat recovery effectiveness. Only |
|
outdoor_air_per_person |
Number |
7 |
Outdoor air per person in l/s. Defaults to 7 l/s according |
|
outdoor_air_per_area |
Number |
0.7 |
Outdoor air per floor area in l/s. Defaults to 0.7 l/(s m2) |
|
residential |
Boolean |
False |
Choose True to use residential settings for natural |
|
natural_ventilation_approach |
Choice |
‘Simple’ |
Choose calculation approach for natural ventilation. |
‘Simple’: use simplified ventilation based on TEASER templates. |
OpenFOAMSimSettings
Setting Name |
Type |
Default |
Description |
Choices |
---|---|---|---|---|
add_heating |
Boolean |
True |
Whether to add heating devices or not. |
|
add_floorheating |
Boolean |
False |
Whether to add floorheating instead of usual radiators. |
|
add_airterminals |
Boolean |
True |
Whether to add air terminals or not. |
|
ignore_heatloss |
Boolean |
False |
Ignores heat loss through walls if set to True. |
|
inlet_type |
Choice |
‘Plate’ |
Choose air terminal inlet type. |
‘Original’: Simplified IFC shape for inlet |
outlet_type |
Choice |
‘Plate’ |
Choose air terminal outlet type. |
‘Original’: Simplified IFC shape for outlet |
outflow_direction |
Choice |
‘down’ |
Choose the outflow direction for original shapes from IFC |
‘down’: Outflow facing downward. Only applicable for original shapes. |
select_space_guid |
Choice |
‘’ |
Select space for OpenFOAM simulation by setting the space |
‘’: No guid selected, first space will be selected. |
simulation_date |
Choice |
‘12/21’ |
Select date of simulation according to simulated timeframe |
‘12/21’: Winter design day |
simulation_time |
Number |
11 |
Select time of simulation according to simulated timeframe |
|
simulation_type |
Choice |
‘steady’ |
Select simulation type (steady-state, combined or |
‘steady’: steady-state simulation |
mesh_size |
Number |
0.1 |
Set the mesh size of the blockMesh in [m]. Insert a number |
|
mesh_max_global_cells |
Number |
3000000 |
Set the maximum number of global cells for meshing in |
|
adjust_refinements |
Boolean |
False |
Whether surface and region refinements of airterminals and |
|
total_iterations |
Number |
20000 |
Total number of iterations for the simulation. |
|
steady_iterations |
Number |
2500 |
Select number of steady iterations for preconditioning a |
|
n_procs |
Number |
12 |
Set the number of processors for decomposition and |
|
run_meshing |
Boolean |
False |
Whether to run OpenFOAM meshing or not. Only available for |
|
run_cfd_simulation |
Boolean |
False |
Whether to run the OpenFOAM CFD simulation or not. Only |
|
heater_radiation |
Number |
0.3 |
Select the radiative portion of the heating heat transfer. |
|
add_comfort |
Boolean |
True |
Whether to add thermal comfort settings to OpenFOAM |
|
add_furniture |
Boolean |
False |
Whether to add furniture to OpenFOAM |
|
level_heat_balance |
Boolean |
True |
Whether to level heat balance: reduce heating towards |
|
furniture_setting |
Choice |
‘Office’ |
Select the type of furniture to add. |
‘Office’: Office setup, chair and desk |
furniture_amount |
Number |
1 |
||
furniture_orientation |
Choice |
‘short_side’ |
‘long_side’: Long side of a rectangular space |
|
add_people |
Boolean |
False |
Choose if people should be added. |
|
use_energyplus_people_amount |
Boolean |
False |
Choose if number of people should be assigned as defined in |
|
people_setting |
Choice |
‘Seated’ |
Select type of people positioning to add. |
‘Seated’: Seated, furniture needs to be provided in sufficient amount. |
people_amount |
Number |
1 |
||
radiation_model |
Choice |
‘P1’ |
Choose the radiation model |
‘none’: No radiation |
radiation_precondition_time |
Number |
1000 |
Choose number of preconditioning iterations using P1 |
|
add_solar_radiation |
Boolean |
True |
Add solar radiation. Requires fvDOM as radiation model. |
|
add_air_volume_evaluation |
Boolean |
False |
Add an air volume evaluation. Removes voids of all people, |
|
scale_person_for_eval |
Number |
0.05 |
Scale shape of person for evaluation in paraview. |
|
mesh_feature_snapping |
Boolean |
False |
Choose if explicit surface feature snapping should be |
|
cluster_jobname |
Choice |
‘newJob’ |
Jobname that is used when running the simulation via a batch |
‘fullRun’: Specify content |
cluster_compute_account |
Choice |
‘’ |
Specify the compute account that is used for running the |
‘’: Skip defining compute cluster account. |
cluster_max_runtime_simulation |
Choice |
‘23:59:00’ |
Max runtime for a full simulation in the format of |
‘11:59:00’: 12 hours |
cluster_max_runtime_meshing |
Choice |
‘00:59:00’ |
Max runtime for meshing in the format of D:HH:MM:SS . |
‘00:30:00’: 30 minutes |
cluster_cpu_per_node |
Number |
96 |
Number of physical cores per node. |
CFDSimSettings
No specific settings provided.
LCAExportSettings
No specific settings provided.
ComfortSimSettings
Setting Name |
Type |
Default |
Description |
Choices |
---|---|---|---|---|
prj_use_conditions |
Path |
[Path] |
Path to a custom UseConditions.json for the specific comfort |
|
use_dynamic_clothing |
Boolean |
False |
Use dynamic clothing according to ASHRAE 55 standard. |
|
rename_plot_keys |
Boolean |
False |
Rename room names for plot results |
|
rename_plot_keys_path |
Path |
[Path] |
Path for renaming the zone keys for plot results. Path to a |
|
comfort_occupancy_weighting |
Boolean |
False |
Weight the comfort rating by occupancy schedules. |
|
plot_zone_usages |
Choice |
[] |
Choose string patterns of zone usages for evaluation of |
‘’: Choose empty string to plot all zones. |