specklesystems / speckle-sharp

.NET SDK, Schema and Connectors: Revit, Rhino, Grasshopper, Dynamo, ETABS, AutoCAD, Civil3D & more.
https://speckle.systems
Apache License 2.0
351 stars 162 forks source link

Bug: Revit pipes failing to export when MEPSystem is null #3559

Open EuanKeyframe opened 5 days ago

EuanKeyframe commented 5 days ago

Prerequisites

What package are you referring to?

ConverterDynamoRevit

Describe the bug

We are using the speckle connector and running into some issues with some pipes not able to be converted. We are using the speckle community server and using the latest version of the Revit plugin (2.18.0). The model is in Revit 2021, but I have upgraded it to 2024 with no luck on either.

To Reproduce

Export attached FailingPipe.rvt from forum post in Additional Context section using connector on Revit 2021 or above. Cannot attached .rvt files to GH issues.

Expected behavior

Model exports without issue

Screenshots

System Info

If applicable, please fill in the below details - they help a lot!

Desktop (please complete the following information):

Smartphone (please complete the following information):

Failure Logs

2024-04-04 13:29:27.819 +11:00 [INF] Execution of http request to https://app.speckle.systems//graphql succeeded with "OK" after 1.5759661999999999 seconds and 0 retries
2024-04-04 13:29:27.819 +11:00 [INF] Execution of graphql request to get StreamData succeeded after 1.5772114 seconds
2024-04-04 13:29:31.399 +11:00 [INF] Pinging 1.1.1.1
2024-04-04 13:29:31.562 +11:00 [ERR] Converter failed to convert object
System.NullReferenceException: Object reference not set to an instance of an object.
   at Objects.Converter.Revit.ConverterRevit.PipeToSpeckle(Pipe revitPipe)
   at Objects.Converter.Revit.ConverterRevit.ConvertToSpeckle(Object object)
   at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.ConvertToSpeckle(Element revitElement, ISpeckleConverter converter)
   at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.<>c__DisplayClass128_0.<SendStream>b__2()
2024-04-04 13:29:31.816 +11:00 [ERR] SendCommand failed - Zero objects converted successfully. Send stopped.
Speckle.Core.Logging.SpeckleException: Zero objects converted successfully. Send stopped.

Additional context

Related forum post: https://speckle.community/t/revit-pipes-failing-to-export/10139

Proposed Solution

Added a null coalescing check in when setting SystemName value in PipeToSpeckle methods under in ConverterDynamoRevit project. Code in question can be found in ConverPipe.cs file.