[Otázka] CheckBoxen, Boolean und 0/1

Tagy:
  • Allplan
  • 2021
  • PythonParts
  • Entwicklung

Morgen zusammen,

mir ist bekannt, dass in Allplan in der Regel 0/1 für True/False verwendet werden (können).
Nun bin ich aber auf eine Ungereimtheit gestoßen.

Ich habe ein PythonPart-Objekt, u.A. mit CheckBoxen darin. Per build_ele.my_checkbox.value bekomme ich je nach nach Einstellung 0 oder 1 zurück (-> print(build_ele.my_checkbox.value) zeigt dies im Trace. Soweit so gut, damit kann man arbeiten.

Da ich mit diesem Objekt neue/andere PythonPart-Objekte absetze, sollen auch die entsprechenden CheckBox-Werte übergeben werden. Hier taucht das Problem auf, dass es nicht reicht, dass ich 0/1 (also build_ele.my_checkbox.value) übergebe. Der Haken im neuen Objekt wird nur korrekt angezeigt, wenn ich tatsächlich auch True/False übergebe.

Damit es für mich funktioniert, habe ich mir einen Converter erstellt, der mir True oder False zurückgibt.

Wird hier eventuell seitens Entwicklung noch etwas angepasst oder verändert? Oder wird die Funktionalität so bleiben, dass tatsächlich True/False übergeben werden muss?

Hängt das ggf. mit dem Wunsch Boolean soll 3 Zustände haben : True / False / Undefinied zusammen ?

alternativ hängt das an der Python Version :
https://stackoverflow.com/questions/2764017/is-false-0-and-true-1-an-implementation-detail-or-is-it-guaranteed-by-the

Allplan Webentwicklung

Private messages must be private. No support request via Private message.

"In Python 3.x True and False are keywords and will always be equal to 1 and 0." Eine gute Sache; kann man mit arbeiten.
Will ich den Wert der Checkbox mittels 0/1 setzen, geht dies nicht. Zumindest nicht über den Weg PP-A-Objekt erstellt mehrere PP-B-Objekte und übergibt einen Wert zum Hakensetzen einer Checkbox. Die checkbox will tatsächlich True/False sehen, nicht nur den Integer im Hintergrund.

Auf der anderen Seite kann ich im pyp-Tag einer Checkbox den Value-Wert auf 0/1 und/oder True/False setzen.
<Parameter>
<Name>test01</Name>
<Text>test01</Text>
<Value>0</Value>
<ValueType>CheckBox</ValueType>
</Parameter>

Also ansich funktioniert es mit 0/1, nur nicht wenn ich Werte mittels PP-A ind PP-B stecke.