Speckle for Unreal Engine missing functions

Hi all, I compiled the Speckle plugin for Unreal and noticed that the Manager doesn’t have a slot for the Object ID or the Import Data button that I have been seeing on tutorials. What am I missing?

This is UE 5.03

1 Like

Hi Andy!
Welcome to the forums.

Could you tell me how you installed the plugin? I don’t recognise certain properties like “Random Colors per layer”. Are you perhaps on a fork of the project, or an older version?

If you could please make sure you are on the latest version:

  1. Download speckle-unreal repository archive from https://github.com/specklesystems/speckle-unreal/archive/refs/heads/main.zip
  2. Extract the downloaded archive into your project’s Plugins directory (create if not already there)
  3. Open your UE project (or restart the editor if you already have it opened). This will build the plugin in your environment.

With our latest version, you can either specify Server url + Stream Id + Object id (+ auth token for public streams)

Or you can simply specify a Server url + Auth Token, and you can then select your stream/branch/commits from the dropdown menus like so:

Hey Jedd, thanks for sending all of this! I am guessing I somehow downloaded an old branch of Speckle?

I compiled the link you sent and it looks like everything is there, so I did a test and this is the error I get:

Ah, I should probably improve our error messages :sweat_smile:
Error 401 means unauthorised.

You need to generate a Access token (aka auth token) from your profile page
with all scopes.

Unfortunately, this is a necessary step because the Speckle Unreal connector doesn’t fetch your accounts from Speckle Manager in the same way other connectors do. This is something we’d like to implement in the future, but for now, generating an auth token is the only way to receive private streams.

Alternatively, you can set your stream to be public.

Please let me know if you have any other issues or problems. Community feedback allows us to improve Speckle for everyone!

Okay, thanks! I’ll check that out. One more question, if I update my Revit model, what is the best way to reload the changes in UE without generating any new IDs?

That’s a good question, I think it depends on the exact behaviour you are looking for.
Could you describe more about what sort of behaviour you are expecting when changes are made in Revit?

Let’s say a designer updates the geometry in revit (adds walls, changes the design etc), can I refresh/update my UE geometry?

Yep ok, so by default, using SpeckleUnrealManager, when you receive geometry, it will destroy and recreate all the Unreal actors.

So if you receive a model in UE, update it in Revit, and receive the new commit in UE, we destroy and recreate the native unreal actors.
(The StaticMesh and Material assets don’t get recreated, only the Actors in the level)

If you don’t like this behaviour, and want to preserve unchanged actors, you would have to write your own behaviour in either C++ or BP.
If there’s enough interest, we could consider adding this feature to the SpeckleUnrealManager.

Regarding actually triggering the receiving of the new commit:

If you use the Specify by Object Id method, where you specify the exact object id that you wish to receive. In this case, if you want to receive a new commit, you would have to manually copy and paste the new object id from speckle.xyz.

Alternatively, by disabling the Specify by Object id option, you could simply just select the new commit from the drop-down (this might require some manual refreshing of the UI by reselecting the branch).

I’d recommend the latter option if you are receiving updates frequently, as this saves quite a few clicks.

As for automatic receiving updates through stream subscriptions/notifications (i.e receiving updates live, without pressing any buttons in UE). This is a feature that has been requested, and one we support in other connectors, however this is not currently implemented in the UE connector.

1 Like