First of all, thank you @andheum for the amazing tools you have created.
I am trying to create a daylighting automation tool for LEED compliance using Ladybug tools and Human UI. As of now for each of the inputs I am having a separate update button. Each time I click the button it is taking some time to create the geometry and as a result it is taking really long time to perform the analysis. What I would like to have is giving all the inputs once and then just one update button to take all the data to value listener. Is there any work around to do it or some how I can tackle the lagging issue with human UI
I recall that many Ladybug components have this run toggle
You can set these TextBox inputs to live read instead of button update
At the end make a button/toggle for Ladybug to run
Thereās a pattern for these situations that I like. The value listener on your text inputs is set to āmanual inputā (disable āLiveā in the right-click menu) and triggered with a āliveā value listener on an update button (Should probably be a ātrue only buttonā so it only fires once per click). Itās easier shown than described:
This makes so much sense
Perhaps a case where using the ZUI isnāt the most effectiveā¦Iāve always wondered what a not live value listen is for. Been missing that T the whole timeā¦
I donāt disagreeā¦ itās a bit hidden as an āadvancedā feature - developing it that way also meant that old definitions were compatible w the new components rather than having to do the whole āupgraderā thingā¦ but thatās mostly just developer laziness
Andrew could you tell me how this variable parameter can be added via code?
Iāve copied CanInsertParameter, CanRemoveParamter, CreateParameter, DestroyParameter, and VariableParameterMaintenance into my component. Not workingā¦
What if there is no text inputs and you just want a recompute button? Iāve tried a few ways but none seem correct:
Option 1: True-only button will only update once. Any other times the recompute button is pressed it will not change the value and therefore will not update downstream.
Option 2: A button will actually update twice (true and then false) so will re-run stuff downstream twice.
Option 3: A toggle seems to work but is not graphically great IMO.
the ātrue onlyā button should pass a new ātrueā every time you click it - itās not correct that it updates only the first time. That is what itās for - it only expires the value listener once per click. If you want it to alternate between false and true on each click, either use the toggle, a checkbox, or true-only button => value recorder => mass addition => modulo 2