Speckle Dynamo: Issues with Player

I’ve gotten Speckle Dynamo to do what I want within the graph, however it doesn’t seem to work when used through Player or Generative Design. I found an old post from 2019 that confirms this is a bug (at least when using Speckle as an input for Player) but haven’t seen any more info since. Can I only send and receive streams while full Dynamo is open?

Hi @Nick_Boyts,

Welcome to the community! Feel free to Introduce yourself :person_gesturing_ok: to the community if you want to! :smiley:

I don’t think the issue you attached is valid anymore since Dynamo connector came long way since then. Can you try enabling Auto-Receive mode in Receive node and give it another go🏃‍♂️?

Thanks for the welcome.

It’s already set to Auto-Receive. I originally tried using a Data.Gate node so that the data would only get streamed on element creation but even without it I never get a new commit.
image

Is 2.0.0 the latest version of the package?
image

Hey @Nick_Boyts ,

Talked with the team about this and turns out its not as straightforward as it looks. I believe you’ve already seen this post.:eyes:

1 Like

Does the streaming process occur after the graph has fully executed? Is it a timing thing? Or does it just not even kick off if full Dynamo isn’t open?

I’m just trying to understand what the exact issue is to see if I might be able to work around it.

Ok, so i created a Custom Python node for this. But first you need to install specklepy. Here is a wiki page for detailed instructions on how to install custom Python libraries for Dynamo.

After following these steps you should have get-pip.py. Once you have it, simply type in pip install specklepy and you should have specklepy ready to use in Dynamo.

After installation done, now you should be ready to use the attached definition.

As far as i can see it works🎉. It only works for commit urls tho. But depending on your use-case, we can do a quick edit and make it work for streams and branches too. Let me know if this helps!

Python Receive node.dyn (14.0 KB)
ReceiveDynamoPlayer.dyf (12.1 KB)

Revit_E5CZ7LFfy4

3 Likes

Latest stable release for Dynamo is 2.7.5. You can update it from Speckle Manager.

I think the version in the package itself is not updated when we make releases, and so it always shows 2.0.0.0, but you can easily check it from Manager

image

Ah, you’re right. I was already on the latest release. Thank you.

Thanks @gokermu. I had to add the full library path to get python to load specklepy but that’s not a huge deal.

However, when I try to pull data from your example commit, I get the error below.

If I run the same graph on one of my own commits everything is fine until it tries to pull the "@Default" data.

Any ideas?

Speckle data is converted into Dynamo dictionaries. I think i made a mistake by hardcoding that Code block as “@Default”. I think you replace that with “@data” in your case. But removing [“@Default”] from the code block will be more flexible.

I can share the new dyf tomorrow if you can’t solve it.

Changing the dictionary value worked. I can confirm that this is now pulling commit data when running through Player.

Could this same process be made for writing to a commit?

1 Like

Technically yes. But i would recommend using Revit connector for that. Are you trying to do some filtering that you can’t do in Revit connector?

I’m specifically wanting to know what information is being run through Dynamo Player: user inputs, project data, elements created, etc. For any of our standard processes that are handled by Player, we wouldn’t want to have to open and modify a graph in order to incorporate other Speckle features or application hand-offs through commits.

I’m also hoping that this would work with Generative Design so that we can track all the GD solutions for a given project and know specifically which solutions (or input values) are being selected.

Hey @Nick_Boyts ,

I’ll give it a try sometime today (hopefully) and let you know if i come up with a solution.

1 Like

Hey @Nick_Boyts ,

Sorry for the late reply, didn’t forget about you. I tried to create a Custom Python Send node via specklepy but had some limitations. We’ll try a different method on Monday and share you a Python Send node (hopefully😅)!

2 Likes

Any news on this? It would be a major help if we could get run data from Dynamo and GD without having to know exactly what to query from Revit after any changes.

Hi @Nick_Boyts,

So I’ve tried to do it through SpecklePy, that failed because we don’t have a schema for Revit objects in SpecklePy🐍.

We’ve also tried doing in by referencing speckle-sharp in Dynamo IronPython environment. I guess we’ll need to create a separate native Speckle node for this. I created an issue on Github and we’ll let you know once we have it.

1 Like