specklesystems / grasshopperasynccomponent Goto Github PK
View Code? Open in Web Editor NEWJankless Grasshopper Components
Home Page: https://speckle.systems
License: Apache License 2.0
Jankless Grasshopper Components
Home Page: https://speckle.systems
License: Apache License 2.0
Hi!
Is it possible to automatically raise an error if something went wrong in DoWork() method?
Do I need to manually catch the error and raise them?
I have defined the exception in a different library and I was trying to avoid in replicating the error twice.
Best,
Marco
Hi Guys!
I am trying to add a warning on my component but it does not work.
Can you please provide an exampke? @teocomi @didimitrie
We are currently using Async in FEM-Design API and your help would definitely be super apreciated.
Parent.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "No declared support.");
https://femdesign-api-docs.onstrusoft.com/docs/grasshopper/basics/beta/
Hi @didimitrie @teocomi @AlanRynne
Is there any way to allow some solver (such as Galapagos) to run with your speckle async component?
Any help would be massively apreciated!
During processing, output data is set to null. We should keep the old one, and replace it only when the new is set, or on the component erroring out.
Here
was playing with Sample_UselessCyclesAsyncComponent
. attach a number slider and slide back and forth a few times.
System.InvalidOperationException: 'Sequence contains no elements'
Dear Author,
Thanks very much for your kind AsyncComponent. I have tested all the files and found that it's run well with item data.
Now, i want to develop a async compoent for mesh geodesic curves calculation.
two List data will input the component, and I fond that the above asyncComponent is not suitable for List.
Do you know how to solve this issuse?
Thanks again for creating and documenting such a reliable approach to doing async work in Grasshopper!
I'm still mostly getting a handle on how to use this approach, but it seems like because classes derived from WorkerInstance
effectively handle RegisterInputParams
through GetData
, it is no longer possible to add a AddRuntimeMessage
or AddRuntimeWarning
(because it is not inheriting from GH_Component
). As a result, you loose the ability to do add warnings/messages in response to bad input data, or as part of what would normally be SolveInstance
. (This is, unless I'm missing anything)
Ideally, there would be a method in WorkerInstance
that allows for these kind of messages to be bubbled up to a GH_AsyncComponent
although I'm not sure if this kind of message passing would work well. I'll likely have a go at this over the next couple of weeks as part of a plugin that begins to use more async components.
This possibly related to whatever implementation addresses #11
Hi all. I do want to use the GrasshopperAsyncComponent, unfortunately it is not working great with simulations as seems that it is updating continuously and never finishes the actual simulation. I do have components who shouldn't update all the time. Notice the Red (Toolholder collision) panel that blinks all the time during the simulation, that didn't happened before to install the AsyncComponent. Unfortunately seems that the only way to really disable the AsyncComponent it it to uninstall-it completely.
I do attach some sample .gh file and movies that can explain better than me what it is going on:
Simulation_with_Async.zip
Best regards.
Currently, if the component needs to run more than one (ie, in the case of an item parameter receiving a list), this approach fails, and gets stuck in a loop (but don't worry, it won't freeze Grasshopper!). The only workaround is to basically set data access to a tree
for all inputs of your derived component.
I'm sure there's some GH wizardry that can help in this regard. The other solution would be to just acknowledge this as an given limitation ¯_(ツ)_/¯
Currently, when Done() is called all previously reported RuntimeMessages
in the component will be wiped out.
We should add a separate mechanism to report the errors there, and deal with showing them to the user in the next SolveInstance
call.
Not sure if this is solvable within Grasshopper 1.0, but when chained together the downstream components end up calculating multiple times.
This is probably a blocker for what I would want to use this for. I imagine I will need to implement a UI blocking method instead. Does anyone know how I might do that? Just adding .Result
to my asynchronous method seems to lead to a dead lock?
I looked at TaskCapable but that seems to be for parallel? I guess just running one Task is also acceptable?
(P.S. Thanks for open-sourcing this Dimitrie, great to see projects out in the open!)
Would be really nice if the readme would have an actual example embedded into it. Given last changes, I expect architecture should stay stable overall, so if anyone wants to pick this up would be more than happy to help along!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.