abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python
GELÖST!

Verschachtelte IF-Formel in Listenberechnung

Legat
Booster

Hallo, ich habe eine Eigenschaften-Berechnung erstellt, die in einer Liste dazu führt eine Eigenschaften (NUF - aus Optionenset) zu überprüft und bei positiver Überprüfung eine Fläche auszugeben, und bei negativer, einen Wert von 0,00 auszugeben (Fläche Minus Fläche):

 

IF ( {Property:Auswertungselemente/Raumkategorie} = "NUF"; {Property:Raum/Gemessene Nettofläche}; {Property:Raum/Gemessene Nettofläche} - {Property:Raum/Gemessene Nettofläche} )

 

Das funktioniert!

 

Nun möchte ich aber der Berechnung ein "OR" hinzufügen, da ich 2 Eigenschaften (NUF und NUF2) in einer Berechnung überprüfen will und, wie oben beschrieben, bei positiver RÜckmeldung die Fläche ausgeben möchte.. Meiner Meinung nach müsste es wie folgt aussehen:

 

IF ( {Property:Auswertungselemente/Raumkategorie} = "NUF" OR {Property:Auswertungselemente/Raumkategorie} = "NUF 2" ; {Property:Raum/Gemessene Nettofläche}; {Property:Raum/Gemessene Nettofläche} - {Property:Raum/Gemessene Nettofläche} )

 

Das funktioniert aber nicht. Kann eine Eigenschaftenberechnung über "IF" keine Verschachtelung berechnen oder mache ich etwas falsch?

 

Ich hoffe ich bin bei Programmierung richtig, auch wenn es sich um eine eher einfache Berechnungsformel handelt. Ich wüsste sonst nicht welches Board ich wählen sollte.


Screenshot 2024-12-12 162128.jpg
2 AKZEPTIERTE LÖSUNGEN

Akzeptierte Lösungen
Lösung

Ja, Du machst was falsch.

Sie auch im Handbuch.

Funktionen in Ausdrücke/ Logische Funktionen

OR (Logikelement1|;[Logikelement2],...)

 

 

„Was kümmert mich mein Geschwätz von gestern.Nichts hindert mich daran, klüger zu werden.“
MacBook Pro M3 MAX

BIM-Consulting / Archicad-Schulungen auf Anfrage

Lösung in ursprünglichem Beitrag anzeigen

Lösung

Okay, habe die Lösung gefunden. Mir war nicht klar, dass AND/OR nur TRUE/FALSE ausgeben kann. Ich habe es über IFS gelöst. Den Tipp mit 0m2 nehme ich gerne auf. Danke. Meine Lösung:

 

IFS ( {Property:Auswertungselemente/Raumkategorie} = "NUF 2"; {Property:Raum/Gemessene Nettofläche}; {Property:Auswertungselemente/Raumkategorie} = "NUF"; {Property:Raum/Gemessene Nettofläche}; TRUE; 0m2 )

Lösung in ursprünglichem Beitrag anzeigen

5 ANTWORTEN 5
Lösung

Ja, Du machst was falsch.

Sie auch im Handbuch.

Funktionen in Ausdrücke/ Logische Funktionen

OR (Logikelement1|;[Logikelement2],...)

 

 

„Was kümmert mich mein Geschwätz von gestern.Nichts hindert mich daran, klüger zu werden.“
MacBook Pro M3 MAX

BIM-Consulting / Archicad-Schulungen auf Anfrage
Stefan L_
Ace

@Legat  schrieb:

... und bei negativer, einen Wert von 0,00 auszugeben (Fläche Minus Fläche):

 

IF ( {Property:Auswertungselemente/Raumkategorie} = "NUF"; {Property:Raum/Gemessene Nettofläche}; {Property:Raum/Gemessene Nettofläche} - {Property:Raum/Gemessene Nettofläche} )


'Fläche minus Fläche' ist originell! 🙂

Ein einfaches 0m2 reicht aber, und ist viiiiieeeeel schneller:

IF ( {Property:Auswertungselemente/Raumkategorie} = "NUF"; {Property:Raum/Gemessene Nettofläche}; 0m2 )

--
Stefan
AC ...-28, WIN10
Lösung

Okay, habe die Lösung gefunden. Mir war nicht klar, dass AND/OR nur TRUE/FALSE ausgeben kann. Ich habe es über IFS gelöst. Den Tipp mit 0m2 nehme ich gerne auf. Danke. Meine Lösung:

 

IFS ( {Property:Auswertungselemente/Raumkategorie} = "NUF 2"; {Property:Raum/Gemessene Nettofläche}; {Property:Auswertungselemente/Raumkategorie} = "NUF"; {Property:Raum/Gemessene Nettofläche}; TRUE; 0m2 )

Bin sowieso ein Fan von IFS; dauert nie lange und es kommt der dritte, vierte Fall dazu...

IF wäre aber - gucksu Thorsten - auch gegangen:

IF (
  OR (
    {Property:Auswertungselemente/Raumkategorie} = "NUF";
    {Property:Auswertungselemente/Raumkategorie} = "NUF 2"
    ) ; {Property:Raum/Gemessene Nettofläche};
  0m2
)
--
Stefan
AC ...-28, WIN10

Ich habe mich immer gewundert, warum es kein case gibt. 

wieder was gelernt. Danke, Mann!

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen