BIM2SIM / bim2sim

A python tool to create simulation models for different domains based on BIM IFC models.
https://bim2sim.github.io/bim2sim/
GNU Lesser General Public License v3.0
46 stars 8 forks source link

visualistion of the task structure of plugins (auto generation) #641

Closed Cudok closed 3 months ago

Cudok commented 6 months ago

The tool generates automatically a the code of a structure diagram. A simple structure of the tasks of one plugin and its dependencies (reads, touches) should be generated.

The tool is written in python. The result is code of the structured diagram with the format of mermaid-js. So it is possible to include the generated code of the structure into the documentation.

Cudok commented 6 months ago

First try: use python-mermaid:

steps

Cudok commented 6 months ago

manual generated structure plot, Example teaser plugin


flowchart TB

subgraph "task LoadIFC"
  tli["common.LoadIFC"]
  subgraph reads & touches
    direction LR
    rli[/"None"/]
    toli[\"ifc_files"\]
  end
  extli("reads the IFC files of one or
         multiple domains inside bim2sim")
end

subgraph "task CheckIfc"
  tci["common.CheckIfc"]
  subgraph reads & touches
    direction LR
    rci[/"ifc_files"/]
    toci[\"None"\]
  end
  extci("Check an IFC file, for a number of conditions
         (missing information, incorrect information, etc)
         that could lead on future tasks to fatal errors.
        ")
end

subgraph "task CreateElements"
  tce["common.CreateElements"]
  subgraph reads & touches
    direction LR
    rce[/"ifc_files"/]
    toce[\"ifc_files, elements"\]
  end
  extce("Create bim2sim elements based
         on information in IFC.

         Here no values will be read
        ")
end

subgraph "task CreateSpaceBoundaries"
  tcs["bps.CreateSpaceBoundaries"]
  subgraph reads & touches
    direction LR
    rcs[/"ifc_files, elements"/]
    tocs[\"space_boundaries"\]
  end
  extcs("Create space boundary elements from ifc.
        ")
end

subgraph "task FilterTZ"
  tftz["bps.FilterTZ"]
  subgraph reads & touches
    direction LR
    rftz[/"elements"/]
    toftz[\"tz_elements"\]
  end
  extftz("Filters the thermal zones for later usage and stores them in state.
        ")
end

subgraph "task ProcessSlabsRoofs"
  tpsr["bps.ProcessSlabsRoofs"]
  subgraph reads & touches
    direction LR
    rpsr[/"elements"/]
    topsr[\"elements"\]
  end
  extpsr("Handles decomposed roofs and wrong slab elements.
        ")
end

subgraph "task BindStoreys"
  tbs["common.BindStoreys"]
  subgraph reads & touches
    direction LR
    rbs[/"elements"/]
    tobs[\"elements"\]
  end
  extbs("Bind thermal_zones and elements to
          each floor/storey and vice versa
        ")
end

subgraph "task EnrichUseConditions"
  teuc["bps.EnrichUseConditions"]
  subgraph reads & touches
    direction LR
    reuc[/"tz_elements"/]
    toeuc[\"enriched_tz"\]
  end
  exteuc("Enriches Use Conditions of thermal zones
          based on decisions and translation of zone names
        ")
end

subgraph "task VerifyLayersMaterials"
  tvlm["bps.VerifyLayersMaterials"]
  subgraph reads & touches
    direction LR
    rvlm[/"elements"/]
    tovlm[\"invalid"\]
  end
  extvlm("Verifies if layers and materials and their properties are meaningful.
        ")
end

subgraph "task EnrichMaterial"
  tem["bps.EnrichMaterial"]
  subgraph reads & touches
    direction LR
    rem[/"elements, invalid"/]
    toem[\"elements"\]
  end
  extem("Enriches material properties that were recognized as invalid
         LOD.layers = Medium & Full
        ")
end

subgraph "task DisaggregationCreation"
  tdc["bps.DisaggregationCreation"]
  subgraph reads & touches
    direction LR
    rdc[/"elements"/]
    todc[\"disaggregations"\]
  end
  extdc("Disaggregates building elements based on their space boundaries.

         This task is needed to allow the later combination for thermal zones. If two
         thermal zones are combined to one, we might need to cut/disaggregate
         elements like walls into pieces that belong to the different zones.
        ")
end

subgraph "task CombineThermalZones"
  tctz[" bps.CombineThermalZones"]
  subgraph reads & touches
    direction LR
    rctz[/"tz_elements, elements"/]
    toctz[\"bounded_tz"\]
  end
  extctz("Combine thermal zones to reduce the amount of thermal zones.

          As the zoning of simulation models is a time-consuming task we decided to
          automate it with the tasks.
          This task will combine multiple thermal zones into one zone based on the
          criteria selected in the simulation type settings and the decisions made.
          We do this by giving the user multiple criteria to select from:
           * External/Internal
           * Orientation
           * Usage
           * Window to wall ratio
       ")
end

subgraph "task Weather"
  tw["common.Weather"]
  subgraph reads & touches
    direction LR
    rw[/"elements"/]
    tow[\"weather_file"\]
  end
  extw("Task to get the weather file for later simulation.
       ")
end

subgraph "task LoadLibrariesTEASER"
  tllt["LoadLibrariesTEASER"]
  subgraph reads & touches
    direction LR
    rllt[/"None"/]
    tollt[\"libraries"\]
  end
  extllt("Load AixLib library for export.
       ")
end

subgraph "task CreateTEASER"
  tct["teaser_task.CreateTEASER"]
  subgraph reads & touches
    direction LR
    rct[/"libraries, elements, weather_file"/]
    toct[\"teaser_prj, bldg_names, orig_heat_loads, orig_cool_loads, tz_mapping"\]
  end
  extct("Creates a TEASER project by using the found information from IFC.
       ")
end

subgraph "task ExportTEASER"
  tet["teaser_task.ExportTEASER"]
  subgraph reads & touches
    direction LR
    ret[/"teaser_prj"/]
    toet[\"teaser_prj"\]
  end
  extet("Exports the previous created TEASER project to Modelica.
       ")
end

subgraph "task SimulateModelEBCPy"
  tsme["teaser_task.SimulateModelEBCPy"]
  subgraph reads & touches
    direction LR
    rsme[/"bldg_names"/]
    tosme[\"teaser_mat_result_paths, sim_results_path"\]
  end
  extsme("None
       ")
end

subgraph "task CreateResultDF"
  tcrdf["teaser_task.CreateResultDF"]
  subgraph reads & touches
    direction LR
    rcrdf[/"teaser_mat_result_paths, sim_results_path, tz_mapping"/]
    tocrdf[\"df_finals"\]
  end
  extcrdf("This ITask creates a result dataframe for TEASER BEPS simulations.

    Args:
        teaser_mat_result_paths: path to simulation result file
        tz_mapping: dict with mapping between IFC space GUIDs and rooms/zones
    Returns:
        df_final: final dataframe that holds only relevant data, with generic
        `bim2sim` names and index in form of MM/DD-hh:mm:ss
       ")
end

subgraph "task PlotBEPSResults"
  tpbepsr["bps.PlotBEPSResults"]
  subgraph reads & touches
    direction LR
    rpbepsr[/"df_finals, sim_results_path, ifc_files"/]
    topbepsr[\"None"\]
  end
  extpbepsr("Plots the results for BEPS simulations.

     This holds pre configured functions to plot the results of the BEPS
     simulations with EnergyPlus or TEASER.

     Args:
         df_finals: dict of final results where key is the building name and
          value is the dataframe holding the results for this building
         sim_results_path: path where to store the plots (currently with
          simulation results, maybe change this? #TODO
         ifc_files: bim2sim IfcFileClass holding the ifcopenshell ifc instance
       ")
end

tli --> tci --> tce --> tcs --> tftz --> tpsr --> tbs --> teuc --> tvlm --> tem --> tdc --> tctz --> tw --> tllt --> tct --> tet --> tsme --> tcrdf --> tpbepsr
Cudok commented 6 months ago

python_mermaid

Cudok commented 5 months ago

Results for: Teaser, decentral state visualization

---
title: plugin TEASER
---
flowchart TB

subgraph taskLoadIFC["task LoadIFC"]
 subgraph "" 

  tLoadIFC["bim2sim > tasks > common >  
 LoadIFC"]
  extLoadIFC(" Load all IFC files from PROJECT. " )
 end

stateLoadIFC[("state
 (reads/touches)")]

tLoadIFC -- ifc_files --> stateLoadIFC

end

subgraph taskCheckIfc["task CheckIfc"]
 subgraph "" 

  tCheckIfc["bim2sim > tasks > common >  
 CheckIfc"]
  extCheckIfc("  Check an IFC file, for a number of conditions
(missing information, incorrect information, etc)
that could lead on future tasks to fatal errors. " )
 end

stateCheckIfc[("state
 (reads/touches)")]

stateCheckIfc -- ifc_files --> tCheckIfc
direction RL
end

subgraph taskCreateElements["task CreateElements"]
 subgraph "" 

  tCreateElements["bim2sim > tasks > common >  
 CreateElements"]
  extCreateElements(" Create bim2sim elements based on information in
IFC. " )
 end

stateCreateElements[("state
 (reads/touches)")]

stateCreateElements -- ifc_files --> tCreateElements

tCreateElements -- elements, ifc_files --> stateCreateElements

end

subgraph taskCreateSpaceBoundaries["task CreateSpaceBoundaries"]
 subgraph "" 

  tCreateSpaceBoundaries["bim2sim > tasks > bps >  
 CreateSpaceBoundaries"]
  extCreateSpaceBoundaries(" Create space boundary elements from ifc. " )
 end

stateCreateSpaceBoundaries[("state
 (reads/touches)")]

stateCreateSpaceBoundaries -- ifc_files, elements --> tCreateSpaceBoundaries

tCreateSpaceBoundaries -- space_boundaries --> stateCreateSpaceBoundaries

end

subgraph taskFilterTZ["task FilterTZ"]
 subgraph "" 

  tFilterTZ["bim2sim > tasks > bps >  
 FilterTZ"]
  extFilterTZ(" Filters the thermal zones for later usage and
stores them in state. " )
 end

stateFilterTZ[("state
 (reads/touches)")]

stateFilterTZ -- elements --> tFilterTZ

tFilterTZ -- tz_elements --> stateFilterTZ

end

subgraph taskBindStoreys["task BindStoreys"]
 subgraph "" 

  tBindStoreys["bim2sim > tasks > common >  
 BindStoreys"]
  extBindStoreys(" None. " )
 end

stateBindStoreys[("state
 (reads/touches)")]

stateBindStoreys -- elements --> tBindStoreys

tBindStoreys -- elements --> stateBindStoreys

end

subgraph taskEnrichUseConditions["task EnrichUseConditions"]
 subgraph "" 

  tEnrichUseConditions["bim2sim > tasks > bps >  
 EnrichUseConditions"]
  extEnrichUseConditions(" Enriches Use Conditions of thermal zones based on
decisions and translation of zone names. " )
 end

stateEnrichUseConditions[("state
 (reads/touches)")]

stateEnrichUseConditions -- tz_elements --> tEnrichUseConditions

tEnrichUseConditions -- enriched_tz --> stateEnrichUseConditions

end

subgraph taskVerifyLayersMaterials["task VerifyLayersMaterials"]
 subgraph "" 

  tVerifyLayersMaterials["bim2sim > tasks > bps >  
 VerifyLayersMaterials"]
  extVerifyLayersMaterials(" Verifies if layers and materials and their
properties are meaningful. " )
 end

stateVerifyLayersMaterials[("state
 (reads/touches)")]

stateVerifyLayersMaterials -- elements --> tVerifyLayersMaterials

tVerifyLayersMaterials -- invalid --> stateVerifyLayersMaterials

end

subgraph taskEnrichMaterial["task EnrichMaterial"]
 subgraph "" 

  tEnrichMaterial["bim2sim > tasks > bps >  
 EnrichMaterial"]
  extEnrichMaterial(" Enriches material properties that were recognized
as invalid LOD. " )
 end

stateEnrichMaterial[("state
 (reads/touches)")]

stateEnrichMaterial -- elements, invalid --> tEnrichMaterial

tEnrichMaterial -- elements --> stateEnrichMaterial

end

subgraph taskDisaggregationCreation["task DisaggregationCreation"]
 subgraph "" 

  tDisaggregationCreation["bim2sim > tasks > bps >  
 DisaggregationCreation"]
  extDisaggregationCreation(" Disaggregates building elements based on their
space boundaries. " )
 end

stateDisaggregationCreation[("state
 (reads/touches)")]

stateDisaggregationCreation -- elements --> tDisaggregationCreation

tDisaggregationCreation -- disaggregations --> stateDisaggregationCreation

end

subgraph taskCombineThermalZones["task CombineThermalZones"]
 subgraph "" 

  tCombineThermalZones["bim2sim > tasks > bps >  
 CombineThermalZones"]
  extCombineThermalZones(" Combine thermal zones to reduce the amount of
thermal zones. " )
 end

stateCombineThermalZones[("state
 (reads/touches)")]

stateCombineThermalZones -- tz_elements, elements --> tCombineThermalZones

tCombineThermalZones -- bounded_tz --> stateCombineThermalZones

end

subgraph taskWeather["task Weather"]
 subgraph "" 

  tWeather["bim2sim > tasks > common >  
 Weather"]
  extWeather(" Task to get the weather file for later simulation. " )
 end

stateWeather[("state
 (reads/touches)")]

stateWeather -- elements --> tWeather

tWeather -- weather_file --> stateWeather

end

subgraph taskLoadLibrariesTEASER["task LoadLibrariesTEASER"]
 subgraph "" 

  tLoadLibrariesTEASER[" 
 LoadLibrariesTEASER"]
  extLoadLibrariesTEASER(" Load AixLib library for export. " )
 end

stateLoadLibrariesTEASER[("state
 (reads/touches)")]

tLoadLibrariesTEASER -- libraries --> stateLoadLibrariesTEASER

end

subgraph taskCreateTEASER["task CreateTEASER"]
 subgraph "" 

  tCreateTEASER["bim2sim > plugins > PluginTEASER > 
bim2sim_teaser > task >  
 CreateTEASER"]
  extCreateTEASER(" Creates a TEASER project by using the found
information from IFC. " )
 end

stateCreateTEASER[("state
 (reads/touches)")]

stateCreateTEASER -- libraries, elements, weather_file --> tCreateTEASER

tCreateTEASER -- teaser_prj, bldg_names, orig_heat_loads, orig_cool_loads, tz_mapping --> stateCreateTEASER

end

subgraph taskSerializeElements["task SerializeElements"]
 subgraph "" 

  tSerializeElements["bim2sim > tasks > common >  
 SerializeElements"]
  extSerializeElements(" Serialize element structure, run() method holds
detailed information. " )
 end

stateSerializeElements[("state
 (reads/touches)")]

stateSerializeElements -- elements, space_boundaries, tz_elements --> tSerializeElements

tSerializeElements -- serialized_elements --> stateSerializeElements

end

subgraph taskExportTEASER["task ExportTEASER"]
 subgraph "" 

  tExportTEASER["bim2sim > plugins > PluginTEASER > 
bim2sim_teaser > task >  
 ExportTEASER"]
  extExportTEASER(" Exports the previous created TEASER project to
Modelica. " )
 end

stateExportTEASER[("state
 (reads/touches)")]

stateExportTEASER -- teaser_prj --> tExportTEASER

tExportTEASER -- teaser_prj --> stateExportTEASER

end

subgraph taskSimulateModelEBCPy["task SimulateModelEBCPy"]
 subgraph "" 

  tSimulateModelEBCPy["bim2sim > plugins > PluginTEASER > 
bim2sim_teaser > task >  
 SimulateModelEBCPy"]
  extSimulateModelEBCPy(" None. " )
 end

stateSimulateModelEBCPy[("state
 (reads/touches)")]

stateSimulateModelEBCPy -- bldg_names --> tSimulateModelEBCPy

tSimulateModelEBCPy -- teaser_mat_result_paths, sim_results_path --> stateSimulateModelEBCPy

end

subgraph taskCreateResultDF["task CreateResultDF"]
 subgraph "" 

  tCreateResultDF["bim2sim > plugins > PluginTEASER > 
bim2sim_teaser > task >  
 CreateResultDF"]
  extCreateResultDF(" This ITask creates a result dataframe for TEASER
BEPS simulations. " )
 end

stateCreateResultDF[("state
 (reads/touches)")]

stateCreateResultDF -- teaser_mat_result_paths, sim_results_path, tz_mapping --> tCreateResultDF

tCreateResultDF -- df_finals --> stateCreateResultDF

end

subgraph taskPlotBEPSResults["task PlotBEPSResults"]
 subgraph "" 

  tPlotBEPSResults["bim2sim > tasks > bps >  
 PlotBEPSResults"]
  extPlotBEPSResults(" Plots the results for BEPS simulations. " )
 end

statePlotBEPSResults[("state
 (reads/touches)")]

statePlotBEPSResults -- df_finals, sim_results_path, ifc_files --> tPlotBEPSResults
direction RL
end
    taskLoadIFC --> taskCheckIfc 
taskCheckIfc --> taskCreateElements 
taskCreateElements --> taskCreateSpaceBoundaries 
taskCreateSpaceBoundaries --> taskFilterTZ 
taskFilterTZ --> taskBindStoreys 
taskBindStoreys --> taskEnrichUseConditions 
taskEnrichUseConditions --> taskVerifyLayersMaterials 
taskVerifyLayersMaterials --> taskEnrichMaterial 
taskEnrichMaterial --> taskDisaggregationCreation 
taskDisaggregationCreation --> taskCombineThermalZones 
taskCombineThermalZones --> taskWeather 
taskWeather --> taskLoadLibrariesTEASER 
taskLoadLibrariesTEASER --> taskCreateTEASER 
taskCreateTEASER --> taskSerializeElements 
taskSerializeElements --> taskExportTEASER 
taskExportTEASER --> taskSimulateModelEBCPy 
taskSimulateModelEBCPy --> taskCreateResultDF 
taskCreateResultDF --> taskPlotBEPSResults 
Cudok commented 5 months ago

Results for: Teaser, central state visualization

---
title: plugin TEASER
---
flowchart TB

state[("state:
project
data storage")]

subgraph taskLoadIFC["task LoadIFC"]
 subgraph "" 

  tLoadIFC["bim2sim > tasks > common >  
 LoadIFC"]
  extLoadIFC(" Load all IFC files from PROJECT. " )
 end

end

tLoadIFC -- ifc_files --> state

subgraph taskCheckIfc["task CheckIfc"]
 subgraph "" 

  tCheckIfc["bim2sim > tasks > common >  
 CheckIfc"]
  extCheckIfc("  Check an IFC file, for a number of conditions
(missing information, incorrect information, etc)
that could lead on future tasks to fatal errors. " )
 end

end

state -- ifc_files --> tCheckIfc 

subgraph taskCreateElements["task CreateElements"]
 subgraph "" 

  tCreateElements["bim2sim > tasks > common >  
 CreateElements"]
  extCreateElements(" Create bim2sim elements based on information in
IFC. " )
 end

end

tCreateElements -- elements, ifc_files --> state

state -- ifc_files --> tCreateElements 

subgraph taskCreateSpaceBoundaries["task CreateSpaceBoundaries"]
 subgraph "" 

  tCreateSpaceBoundaries["bim2sim > tasks > bps >  
 CreateSpaceBoundaries"]
  extCreateSpaceBoundaries(" Create space boundary elements from ifc. " )
 end

end

tCreateSpaceBoundaries -- space_boundaries --> state

state -- ifc_files, elements --> tCreateSpaceBoundaries 

subgraph taskFilterTZ["task FilterTZ"]
 subgraph "" 

  tFilterTZ["bim2sim > tasks > bps >  
 FilterTZ"]
  extFilterTZ(" Filters the thermal zones for later usage and
stores them in state. " )
 end

end

tFilterTZ -- tz_elements --> state

state -- elements --> tFilterTZ 

subgraph taskBindStoreys["task BindStoreys"]
 subgraph "" 

  tBindStoreys["bim2sim > tasks > common >  
 BindStoreys"]
  extBindStoreys(" None. " )
 end

end

tBindStoreys -- elements --> state

state -- elements --> tBindStoreys 

subgraph taskEnrichUseConditions["task EnrichUseConditions"]
 subgraph "" 

  tEnrichUseConditions["bim2sim > tasks > bps >  
 EnrichUseConditions"]
  extEnrichUseConditions(" Enriches Use Conditions of thermal zones based on
decisions and translation of zone names. " )
 end

end

tEnrichUseConditions -- enriched_tz --> state

state -- tz_elements --> tEnrichUseConditions 

subgraph taskVerifyLayersMaterials["task VerifyLayersMaterials"]
 subgraph "" 

  tVerifyLayersMaterials["bim2sim > tasks > bps >  
 VerifyLayersMaterials"]
  extVerifyLayersMaterials(" Verifies if layers and materials and their
properties are meaningful. " )
 end

end

tVerifyLayersMaterials -- invalid --> state

state -- elements --> tVerifyLayersMaterials 

subgraph taskEnrichMaterial["task EnrichMaterial"]
 subgraph "" 

  tEnrichMaterial["bim2sim > tasks > bps >  
 EnrichMaterial"]
  extEnrichMaterial(" Enriches material properties that were recognized
as invalid LOD. " )
 end

end

tEnrichMaterial -- elements --> state

state -- elements, invalid --> tEnrichMaterial 

subgraph taskDisaggregationCreation["task DisaggregationCreation"]
 subgraph "" 

  tDisaggregationCreation["bim2sim > tasks > bps >  
 DisaggregationCreation"]
  extDisaggregationCreation(" Disaggregates building elements based on their
space boundaries. " )
 end

end

tDisaggregationCreation -- disaggregations --> state

state -- elements --> tDisaggregationCreation 

subgraph taskCombineThermalZones["task CombineThermalZones"]
 subgraph "" 

  tCombineThermalZones["bim2sim > tasks > bps >  
 CombineThermalZones"]
  extCombineThermalZones(" Combine thermal zones to reduce the amount of
thermal zones. " )
 end

end

tCombineThermalZones -- bounded_tz --> state

state -- tz_elements, elements --> tCombineThermalZones 

subgraph taskWeather["task Weather"]
 subgraph "" 

  tWeather["bim2sim > tasks > common >  
 Weather"]
  extWeather(" Task to get the weather file for later simulation. " )
 end

end

tWeather -- weather_file --> state

state -- elements --> tWeather 

subgraph taskLoadLibrariesTEASER["task LoadLibrariesTEASER"]
 subgraph "" 

  tLoadLibrariesTEASER[" 
 LoadLibrariesTEASER"]
  extLoadLibrariesTEASER(" Load AixLib library for export. " )
 end

end

tLoadLibrariesTEASER -- libraries --> state

subgraph taskCreateTEASER["task CreateTEASER"]
 subgraph "" 

  tCreateTEASER["bim2sim > plugins > PluginTEASER > 
bim2sim_teaser > task >  
 CreateTEASER"]
  extCreateTEASER(" Creates a TEASER project by using the found
information from IFC. " )
 end

end

tCreateTEASER -- teaser_prj, bldg_names, orig_heat_loads, orig_cool_loads, tz_mapping --> state

state -- libraries, elements, weather_file --> tCreateTEASER 

subgraph taskSerializeElements["task SerializeElements"]
 subgraph "" 

  tSerializeElements["bim2sim > tasks > common >  
 SerializeElements"]
  extSerializeElements(" Serialize element structure, run() method holds
detailed information. " )
 end

end

tSerializeElements -- serialized_elements --> state

state -- elements, space_boundaries, tz_elements --> tSerializeElements 

subgraph taskExportTEASER["task ExportTEASER"]
 subgraph "" 

  tExportTEASER["bim2sim > plugins > PluginTEASER > 
bim2sim_teaser > task >  
 ExportTEASER"]
  extExportTEASER(" Exports the previous created TEASER project to
Modelica. " )
 end

end

tExportTEASER -- teaser_prj --> state

state -- teaser_prj --> tExportTEASER 

subgraph taskSimulateModelEBCPy["task SimulateModelEBCPy"]
 subgraph "" 

  tSimulateModelEBCPy["bim2sim > plugins > PluginTEASER > 
bim2sim_teaser > task >  
 SimulateModelEBCPy"]
  extSimulateModelEBCPy(" None. " )
 end

end

tSimulateModelEBCPy -- teaser_mat_result_paths, sim_results_path --> state

state -- bldg_names --> tSimulateModelEBCPy 

subgraph taskCreateResultDF["task CreateResultDF"]
 subgraph "" 

  tCreateResultDF["bim2sim > plugins > PluginTEASER > 
bim2sim_teaser > task >  
 CreateResultDF"]
  extCreateResultDF(" This ITask creates a result dataframe for TEASER
BEPS simulations. " )
 end

end

tCreateResultDF -- df_finals --> state

state -- teaser_mat_result_paths, sim_results_path, tz_mapping --> tCreateResultDF 

subgraph taskPlotBEPSResults["task PlotBEPSResults"]
 subgraph "" 

  tPlotBEPSResults["bim2sim > tasks > bps >  
 PlotBEPSResults"]
  extPlotBEPSResults(" Plots the results for BEPS simulations. " )
 end

end

state -- df_finals, sim_results_path, ifc_files --> tPlotBEPSResults 
taskLoadIFC --> taskCheckIfc 
taskCheckIfc --> taskCreateElements 
taskCreateElements --> taskCreateSpaceBoundaries 
taskCreateSpaceBoundaries --> taskFilterTZ 
taskFilterTZ --> taskBindStoreys 
taskBindStoreys --> taskEnrichUseConditions 
taskEnrichUseConditions --> taskVerifyLayersMaterials 
taskVerifyLayersMaterials --> taskEnrichMaterial 
taskEnrichMaterial --> taskDisaggregationCreation 
taskDisaggregationCreation --> taskCombineThermalZones 
taskCombineThermalZones --> taskWeather 
taskWeather --> taskLoadLibrariesTEASER 
taskLoadLibrariesTEASER --> taskCreateTEASER 
taskCreateTEASER --> taskSerializeElements 
taskSerializeElements --> taskExportTEASER 
taskExportTEASER --> taskSimulateModelEBCPy 
taskSimulateModelEBCPy --> taskCreateResultDF 
taskCreateResultDF --> taskPlotBEPSResults 
Cudok commented 5 months ago

Results for: EnergyPlus, decentral state visualization

---
title: plugin EnergyPlus
---
flowchart TB

subgraph taskLoadIFC["task LoadIFC"]
 subgraph "" 

  tLoadIFC["bim2sim > tasks > common >  
 LoadIFC"]
  extLoadIFC(" Load all IFC files from PROJECT. " )
 end

stateLoadIFC[("state
 (reads/touches)")]

tLoadIFC -- ifc_files --> stateLoadIFC

end

subgraph taskCheckIfc["task CheckIfc"]
 subgraph "" 

  tCheckIfc["bim2sim > tasks > common >  
 CheckIfc"]
  extCheckIfc("  Check an IFC file, for a number of conditions
(missing information, incorrect information, etc)
that could lead on future tasks to fatal errors. " )
 end

stateCheckIfc[("state
 (reads/touches)")]

stateCheckIfc -- ifc_files --> tCheckIfc
direction RL
end

subgraph taskCreateElements["task CreateElements"]
 subgraph "" 

  tCreateElements["bim2sim > tasks > common >  
 CreateElements"]
  extCreateElements(" Create bim2sim elements based on information in
IFC. " )
 end

stateCreateElements[("state
 (reads/touches)")]

stateCreateElements -- ifc_files --> tCreateElements

tCreateElements -- elements, ifc_files --> stateCreateElements

end

subgraph taskCreateSpaceBoundaries["task CreateSpaceBoundaries"]
 subgraph "" 

  tCreateSpaceBoundaries["bim2sim > tasks > bps >  
 CreateSpaceBoundaries"]
  extCreateSpaceBoundaries(" Create space boundary elements from ifc. " )
 end

stateCreateSpaceBoundaries[("state
 (reads/touches)")]

stateCreateSpaceBoundaries -- ifc_files, elements --> tCreateSpaceBoundaries

tCreateSpaceBoundaries -- space_boundaries --> stateCreateSpaceBoundaries

end

subgraph taskFilterTZ["task FilterTZ"]
 subgraph "" 

  tFilterTZ["bim2sim > tasks > bps >  
 FilterTZ"]
  extFilterTZ(" Filters the thermal zones for later usage and
stores them in state. " )
 end

stateFilterTZ[("state
 (reads/touches)")]

stateFilterTZ -- elements --> tFilterTZ

tFilterTZ -- tz_elements --> stateFilterTZ

end

subgraph taskBindStoreys["task BindStoreys"]
 subgraph "" 

  tBindStoreys["bim2sim > tasks > common >  
 BindStoreys"]
  extBindStoreys(" None. " )
 end

stateBindStoreys[("state
 (reads/touches)")]

stateBindStoreys -- elements --> tBindStoreys

tBindStoreys -- elements --> stateBindStoreys

end

subgraph taskEnrichUseConditions["task EnrichUseConditions"]
 subgraph "" 

  tEnrichUseConditions["bim2sim > tasks > bps >  
 EnrichUseConditions"]
  extEnrichUseConditions(" Enriches Use Conditions of thermal zones based on
decisions and translation of zone names. " )
 end

stateEnrichUseConditions[("state
 (reads/touches)")]

stateEnrichUseConditions -- tz_elements --> tEnrichUseConditions

tEnrichUseConditions -- enriched_tz --> stateEnrichUseConditions

end

subgraph taskVerifyLayersMaterials["task VerifyLayersMaterials"]
 subgraph "" 

  tVerifyLayersMaterials["bim2sim > tasks > bps >  
 VerifyLayersMaterials"]
  extVerifyLayersMaterials(" Verifies if layers and materials and their
properties are meaningful. " )
 end

stateVerifyLayersMaterials[("state
 (reads/touches)")]

stateVerifyLayersMaterials -- elements --> tVerifyLayersMaterials

tVerifyLayersMaterials -- invalid --> stateVerifyLayersMaterials

end

subgraph taskEnrichMaterial["task EnrichMaterial"]
 subgraph "" 

  tEnrichMaterial["bim2sim > tasks > bps >  
 EnrichMaterial"]
  extEnrichMaterial(" Enriches material properties that were recognized
as invalid LOD. " )
 end

stateEnrichMaterial[("state
 (reads/touches)")]

stateEnrichMaterial -- elements, invalid --> tEnrichMaterial

tEnrichMaterial -- elements --> stateEnrichMaterial

end

subgraph taskEPGeomPreprocessing["task EPGeomPreprocessing"]
 subgraph "" 

  tEPGeomPreprocessing["bim2sim > plugins > PluginEnergyPlus > 
bim2sim_energyplus > task >  
 EPGeomPreprocessing"]
  extEPGeomPreprocessing(" Advanced geometric preprocessing for EnergyPlus. " )
 end

stateEPGeomPreprocessing[("state
 (reads/touches)")]

stateEPGeomPreprocessing -- elements, space_boundaries --> tEPGeomPreprocessing
direction RL
end

subgraph taskAddSpaceBoundaries2B["task AddSpaceBoundaries2B"]
 subgraph "" 

  tAddSpaceBoundaries2B["bim2sim > plugins > PluginEnergyPlus > 
bim2sim_energyplus > task >  
 AddSpaceBoundaries2B"]
  extAddSpaceBoundaries2B(" Exports an EnergyPlus model based on IFC
information. " )
 end

stateAddSpaceBoundaries2B[("state
 (reads/touches)")]

stateAddSpaceBoundaries2B -- elements --> tAddSpaceBoundaries2B

tAddSpaceBoundaries2B -- elements --> stateAddSpaceBoundaries2B

end

subgraph taskWeather["task Weather"]
 subgraph "" 

  tWeather["bim2sim > tasks > common >  
 Weather"]
  extWeather(" Task to get the weather file for later simulation. " )
 end

stateWeather[("state
 (reads/touches)")]

stateWeather -- elements --> tWeather

tWeather -- weather_file --> stateWeather

end

subgraph taskCreateIdf["task CreateIdf"]
 subgraph "" 

  tCreateIdf["bim2sim > plugins > PluginEnergyPlus > 
bim2sim_energyplus > task >  
 CreateIdf"]
  extCreateIdf(" Create an EnergyPlus Input file. " )
 end

stateCreateIdf[("state
 (reads/touches)")]

stateCreateIdf -- elements, weather_file --> tCreateIdf

tCreateIdf -- idf, sim_results_path --> stateCreateIdf

end

subgraph taskIdfPostprocessing["task IdfPostprocessing"]
 subgraph "" 

  tIdfPostprocessing["bim2sim > plugins > PluginEnergyPlus > 
bim2sim_energyplus > task >  
 IdfPostprocessing"]
  extIdfPostprocessing(" None. " )
 end

stateIdfPostprocessing[("state
 (reads/touches)")]

stateIdfPostprocessing -- elements, idf, ifc_files, sim_results_path --> tIdfPostprocessing
direction RL
end

subgraph taskExportIdfForCfd["task ExportIdfForCfd"]
 subgraph "" 

  tExportIdfForCfd["bim2sim > plugins > PluginEnergyPlus > 
bim2sim_energyplus > task >  
 ExportIdfForCfd"]
  extExportIdfForCfd(" Export Idf shapes as . " )
 end

stateExportIdfForCfd[("state
 (reads/touches)")]

stateExportIdfForCfd -- elements, idf --> tExportIdfForCfd
direction RL
end

subgraph taskRunEnergyPlusSimulation["task RunEnergyPlusSimulation"]
 subgraph "" 

  tRunEnergyPlusSimulation["bim2sim > plugins > PluginEnergyPlus > 
bim2sim_energyplus > task >  
 RunEnergyPlusSimulation"]
  extRunEnergyPlusSimulation(" None. " )
 end

stateRunEnergyPlusSimulation[("state
 (reads/touches)")]

stateRunEnergyPlusSimulation -- idf, sim_results_path --> tRunEnergyPlusSimulation
direction RL
end

subgraph taskCreateResultDF["task CreateResultDF"]
 subgraph "" 

  tCreateResultDF["bim2sim > plugins > PluginEnergyPlus > 
bim2sim_energyplus > task >  
 CreateResultDF"]
  extCreateResultDF(" This ITask creates a result dataframe for
EnergyPlus BEPS simulations. " )
 end

stateCreateResultDF[("state
 (reads/touches)")]

stateCreateResultDF -- idf, sim_results_path --> tCreateResultDF

tCreateResultDF -- df_finals --> stateCreateResultDF

end

subgraph taskPlotBEPSResults["task PlotBEPSResults"]
 subgraph "" 

  tPlotBEPSResults["bim2sim > tasks > bps >  
 PlotBEPSResults"]
  extPlotBEPSResults(" Plots the results for BEPS simulations. " )
 end

statePlotBEPSResults[("state
 (reads/touches)")]

statePlotBEPSResults -- df_finals, sim_results_path, ifc_files --> tPlotBEPSResults
direction RL
end
    taskLoadIFC --> taskCheckIfc 
taskCheckIfc --> taskCreateElements 
taskCreateElements --> taskCreateSpaceBoundaries 
taskCreateSpaceBoundaries --> taskFilterTZ 
taskFilterTZ --> taskBindStoreys 
taskBindStoreys --> taskEnrichUseConditions 
taskEnrichUseConditions --> taskVerifyLayersMaterials 
taskVerifyLayersMaterials --> taskEnrichMaterial 
taskEnrichMaterial --> taskEPGeomPreprocessing 
taskEPGeomPreprocessing --> taskAddSpaceBoundaries2B 
taskAddSpaceBoundaries2B --> taskWeather 
taskWeather --> taskCreateIdf 
taskCreateIdf --> taskIdfPostprocessing 
taskIdfPostprocessing --> taskExportIdfForCfd 
taskExportIdfForCfd --> taskRunEnergyPlusSimulation 
taskRunEnergyPlusSimulation --> taskCreateResultDF 
taskCreateResultDF --> taskPlotBEPSResults 
Cudok commented 5 months ago

Questions

  1. [ ] What kind of visualization you like more: central state or decentral state?
  2. [ ] Do you have improvement proposals?

@DaJansenGit , @veronikarichter , @ShujiaoHee Pls add your answers.

ShujiaoHee commented 5 months ago

Questions

  1. [ ] What kind of visualization you like more: central state or decentral state?
  2. [ ] Do you have improvement proposals?

@DaJansenGit , @veronikarichter , @ShujiaoHee Pls add your answers.

Hi, from my point of view, I think the decentral state is better, more readable when scrolling through the page.

veronikarichter commented 5 months ago

Questions

  1. [ ] What kind of visualization you like more: central state or decentral state?
  2. [ ] Do you have improvement proposals?

@DaJansenGit , @veronikarichter , @ShujiaoHee Pls add your answers.

Hi, from my point of view, I think the decentral state is better, more readable when scrolling through the page.

Yes, same for me. Decentral visualization is easier to read/follow

Cudok commented 3 months ago

links to the function generation the mermaid code are missing in the documentation