When dealing with models with a large amount of elements and spaces we are confronted with a lot of decisions, e.g. due to unclear space usages (required for enrichment of usage conditions).
If we have around 300 decisions, nobody wants to deal with this via command line Input or even WebUI selection, if every decisions needs to selected via dropdown.
This is especially frustrating when we need to wait several minutes for the code to reach the point and then need to do all the inputs.
Potential Solution
A potential solution might be to integrate a function into IfcCheck task, that checks if there are a lot of upcoming decisions and if yes, the user will be offered the choice to answer the decisions via an input sheet (excel file maybe?). This could be much more efficient due to copy paste possibility and better overview than popping up decisions one after each other. I see two ways how to implement this.
Way 1
The CheckIfc task is aborted and the user gets an excel sheet with all unknowns that he/she can fill out
The decision input via file could be selected through a boolean sim_setting called use_decision_file_input and another path sim_setting could be used to select the path to the filled out excel sheet
Way 2
We could simply directly prompt the excel file to the user, let him safe and close the file and load this in. This could be done through
ChatGPT offers a possibility using openpyxl lib (see below). But this would require the user to have excel, right? Maybe csv is better even if this limits us in the functionality (no dropdowns I guess?)
Comments:
use project folder for input file
create this input file on startup, prompt user to fill out this file and save it afterwards
use csv (no excel)
import openpyxl
# Schritt 1: Excel-Datei erstellen
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = "Bitte füllen Sie die folgenden Informationen aus:"
# Schritt 2: Speichern der Excel-Datei
excel_datei = "nutzer_input.xlsx"
wb.save(excel_datei)
# Schritt 3: Hier könnte der Rest des Programms ausgeführt werden
# Schritt 4: Zu einem bestimmten Zeitpunkt:
# Laden Sie die Excel-Datei und zeigen Sie sie dem Benutzer
wb = openpyxl.load_workbook(excel_datei)
ws = wb.active
# Schritt 5: Der Benutzer füllt die Excel-Datei aus
# ...
# Schritt 6: Der Benutzer schließt die Excel-Datei
# Schritt 7: Das Programm lädt die Daten aus der Excel-Datei
nachname = ws['B2'].value # Beispiel: Annahme, dass der Nachname in Zelle B2 ist
vorname = ws['B3'].value # Beispiel: Annahme, dass der Vorname in Zelle B3 ist
# Schritt 8: Verarbeitung der Daten
# ...
# Schritt 9: Speichern Sie die Verarbeitungsergebnisse in der Excel-Datei
# ...
# Schritt 10: Schließen Sie die Excel-Datei
wb.save(excel_datei)
The check should fail afterwards but offer the user to activate the sim_setting for decision input via file
Problem
When dealing with models with a large amount of elements and spaces we are confronted with a lot of decisions, e.g. due to unclear space usages (required for enrichment of usage conditions).
Potential Solution
IfcCheck
task, that checks if there are a lot of upcoming decisions and if yes, the user will be offered the choice to answer the decisions via an input sheet (excel file maybe?). This could be much more efficient due to copy paste possibility and better overview than popping up decisions one after each other. I see two ways how to implement this.Way 1
CheckIfc
task is aborted and the user gets an excel sheet with all unknowns that he/she can fill outsim_setting
calleduse_decision_file_input
and another pathsim_setting
could be used to select the path to the filled out excel sheetWay 2
Comments:
The check should fail afterwards but offer the user to activate the sim_setting for decision input via file