Get/set sliders in graph via API

Hi,

My turn to ask a question. This one is a little beyond the norm however!

Is it possible to retrieve all sliders within the Graph model and set them further along the graph with a custom node?

My objective is to have a listener node that gets all sliders in the graph, sends this data out, listens to external data and have the collection of slider nodes being driven by this listener as slaves. Whenever this custom node gets updated I want to push changes to the sliders and in turn update the graph.

I have done this with grasshopper using a custom node I wrote which finds all sliders in the graph, sends data out as JSON then reads the changes (via another application) and sets the sliders, in turn updating the model using Grasshopper as just the geometry engine and streaming mesh data to external application.

I have looked at the Dynamo API, but it seems rather WIP and not much in the way of description/examples, so a bit lost… :confused:

Any pointers in the right direction would be much appreciated!

Cheers,
Dan

As far as I’m aware there’s no way of doing this although sliders have been requested for improvement to take inputs. In the meantime, check out Celery package It’s new and seems pretty cool:

Nice! Thanks @Thomas_Mahon. I may build my own sliders if it’s a no go as I want to be able to change the actual slider value. But celery’s slider looks cool, I will definitely be downloading that!

Cheers,
Dan

@Daniel_Woodcock1 yes, this is possible. You have a few different options but if you want to interact with the graph from a node you need to write a nodeModel node with custom UI. (UI node)… from the view you can access the dynamo Model and either send a command to update a certain node value, or you can access that node directly and modify its value…

http://dynamods.github.io/DynamoAPI/Dynamo_Models/UpdateModelValueCommand/#updatemodelvaluecommand

SO: you can do this 1) with a node view which can access the dynamo model via the view… I think this is a bad idea, its strange that one node can access the rest of the graph.

  1. you can write an extension or viewextension that can access workspace and call commands there… I think this is better.

like this: https://github.com/DynamoDS/DynamoSamples/tree/master/src/SampleViewExtension

an extension gets loaded when dynamo starts and gives access to a subset of the API on dynamo model. Dynamo Model can be thought of as the application model.

2 Likes

Thanks @Michael_Kirschner,

This is great! Definitely a point in the right direction. I’ll take your advice and look further into the ViewExtension!

Thanks again for the great info.

Dan