specklesystems / speckle-sharp

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

Installing Civil 3D Connector breaks custom subassemblies #3574

Open jhdempsey86 opened 1 month ago

jhdempsey86 commented 1 month ago

Prerequisites

What package are you referring to?

Civil 3D Connector

Describe the bug

When the latest versions of the Civil 3D Connector are installed (which include the builds for Civil 3D 2025), if you try and place custom subassemblies built using the subassembly composer, you get errors thrown in Civil 3D when you place them. If you uninstall the Speckle connector, then placing a custom subassembly works as expected.

To Reproduce

Install the Civil 3D connector (I was using 2.19.1) Start Civil 3D and insert an assembly into a blank drawing Try to place any custom subassembly that has been created using the Subassembly composer (these are ones defined in pkt files. There is one attached below if required, plus a link to the help on how to install the subassembly) JdNonInstallTest.zip https://help.autodesk.com/view/CIV3D/2022/ENU/?guid=GUID-1A37AF5A-BEA8-4C25-893B-635ABF2DC63C You will end up with a small red circle being places and some errors will pop up in a tool palette window (see second screenshot) Close down Civil 3D Uninstall the Civil 3D Connector Restart Civil 3D, create a new blank drawing, and add in an assembly, and then add the same subassembly as before onto the assembly. You should now see the proper geometry of the subassembly

Expected behavior

The Civil Connector should not cause subassemblies to stop working,. These are a core and fundamental components of Civil 3D which many users rely on to create their designs.

Screenshots

This is how the subassembly should look when placed, and is how they do look when the Civil connector is NOT installed image

This is how they look when Civil Connector is loaded in, with the errors appearing in the window at the top. When added, all you see is a small red circle instead of the expected geometry

image

This is a message from one of the Autodesk support team who confirmed they had seen the same issue happen with other plugins that had been ported to .NET 8, but Civil 2024 or earlier had tried to load it in

image

System Info

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

Desktop (please complete the following information):

Failure Logs

N/A

Additional context

Civil 2024 and earlier was build using .NET Framework, but Civil 2025 was built using .NET 8 The connectors for Civil 2024 or earlier need to be built with .NET Framework, but the Civil 2025 connector needs to be built with .NET8. This is indeed how the connectors are currently set up in Visual Studio

Our belief is that there is either: A shared library or DLL being used in the Civil 2021-2024 connectors that has been built using .NET 8 or The Civil Connector 2025 is trying to get loaded into Civil 2024. Even though it might fail, we believe this is enough to cause the problem (see third screenshot)

Proposed Solution (if any)

Check that the Connectors for 2024 and earlier are not using any shared or library DLL's built with .NET8

Check that Civil 2021-2024 is not attempting to load in the Civil Connector 2025 (or any part of it)

What is the loading mechanism for the Civil Connector? How have you told Civil3D to load it in at start-up? The most common and recommended way is to use a "bundle" folder with a PackageContents.xml file where you can control what is loaded in, and for which versions of Civil 3D it should be loaded in for. Is there a reason why this method was not used?

Optional: Affected Projects

N/A

jhdempsey86 commented 1 month ago

@clairekuang, can you raise this with the rest of the team that look after the Civil Connector?

clairekuang commented 3 weeks ago

Thanks for the report @jhdempsey86 , the civil connector team is just me 😅 & I'll investigate this now as it seems like a big issue