Rebuild Speckle Connector for Revit with DiskTransport implementation failed

Hi everyone,

I’m new to Speckle and was trying to figure out how to add DiskTransportation to Revit Connector.

I have cloned speckle-sharp repo, switched to the main branch, and added DiskTransport to Transports of the Core project.

then I updated Operations.Send.cs by creating an instance of DiskTransport and appending it to List transports.
if (useDefaultCache)
{
transports.Insert(0, diskTransport);
transports.Insert(0, sqLiteTransport);
}

I have rebuilt SpeckleCore2.dll with .pdb, XML files and updated them in the AppData\Roaming\Autodesk\Revit\Addins\2021\SpeckleRevit2 folder.

I am facing “Send Failed! Zero objects converted successfully. Send stopped” error when trying to send elements in Revit.

I would really appreciate it if you indicate what I did wrong or advise how to implement Disk Transport in Revit Connector.

Thanks in advance.

p.s. I am a newbie in c#

Hi @Nick_M

You have me intrigued, what kind of problems are you hoping to solve by using a DiskTransport, or are you simply experimenting? :thinking:


From your description, using a DiskTransport in that way should work fine,

Normally I’d expect that error message to occur when you don’t select any Revit objects to send, or only select objects that can’t be converted to displayableObjects.
Please could you try sending some simple walls?

Please let me know if that doesn’t work, I’d be happy to help.

1 Like

Hi @Jedd

Thank you for the response.
Yeap, just experimenting.

I figured it out by downloading the source code of the latest release 2.15.2. I have repeated the exact steps I did above and it worked! :grin:

I was facing the error I mentioned when I tried to send simple walls in the blank project saved locally on my PC.
I have found some errors in my log files.

2023-08-17 11:48:33.596 +03:00 [INF] Pinging 1.1.1.1
2023-08-17 11:48:34.056 +03:00 [ERR] Object failed during conversion
System.MissingMethodException: Method not found: ‘Void Speckle.Core.Models.CommitObjectBuilder1.SetRelationship(Speckle.Core.Models.Base, System.ValueTuple2<System.String,System.String>[])’.
at Speckle.ConnectorRevit.RevitCommitObjectBuilder.IncludeObject(Base conversionResult, Element nativeElement)
at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.<>c__DisplayClass119_0.b__2(UIApplication _)
2023-08-17 11:48:34.290 +03:00 [ERR] Object failed during conversion
System.MissingMethodException: Method not found: ‘Void Speckle.Core.Models.CommitObjectBuilder1.SetRelationship(Speckle.Core.Models.Base, System.ValueTuple2<System.String,System.String>[])’.
at Speckle.ConnectorRevit.RevitCommitObjectBuilder.IncludeObject(Base conversionResult, Element nativeElement)
at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.<>c__DisplayClass119_0.b__2(UIApplication _)
2023-08-17 11:48:34.311 +03:00 [ERR] SendCommand failed - Zero objects converted successfully. Send stopped.
Speckle.Core.Logging.SpeckleException: Zero objects converted successfully. Send stopped.
at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.d__119.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at DesktopUI2.ViewModels.StreamViewModel.d__217.MoveNext()

but anyway, it works fine in the latest release.

Glad to here you have something that works.

From the logs, it looks like a problem with how you’re building the project. You’d likely need to rebuild the Revit connector project rather than simply manually replaceing the Core.dll from a manager installed build.
This should be quite easy to do by opening the ConnectorRevit.slnf, selecting the right configuration and hitting run.

If you encounter the same error again, this is what I would suggest.

1 Like