Addressing Dependency Conflicts in Revit Add-Ons: A Perspective from Speckle

An Autodesk Support specialist recently tweeted about a legitimate problem in the Revit ecosystem: dependency conflicts caused by third-party tools.

Dear Revit tool providers,

If your tool introduces a dependency conflict, you need to rebuild your tool not to introduce the conflict.

Sincerely, Every Revit user and the product support team who has to deal with the issues such conflicts create https://t.co/4RHQZ5Y4Ru pic.twitter.com/LZjiDiomGu

— Jacob Small (@JacobWSmall) December 19, 2023

We benefit from and contribute to the flourishing add-on ecosystem for Revit. Indeed, Speckle exists in many such environments simultaneously, so we are particularly sensitive to this. We understand the frustration these conflicts can cause for Revit users and the product support team. We don’t like to break anyone’s software; it’s bad for us but very bad for you.

The Challenge of Dependency Management: In software development, especially in ecosystems as complex as Revit, dependency conflicts are a common hurdle. These issues often arise when different add-ons use various versions of the same library (DLLs), leading to compatibility challenges. This complexity is further heightened by the integration of plugins not just for Revit, but also for Dynamo.

Our Approach at Speckle: We are actively working to ensure our tools are harmonious within this intricate environment. Our strategy involves:

  1. Regular Updates and Testing: Aligning our tools with the latest Revit versions and rigorously testing to identify and resolve potential conflicts.
  2. Proactive Communication: Keeping open channels with Autodesk, staying active in forums, and engaging with other third-party developers to remain informed about impending changes.
  3. Community Feedback: Actively encouraging user reports on issues, which are crucial for timely identification and resolution of conflicts. We value your experiences with various plugins and are ready to respond to any problems reported.

The Broader Picture: While third-party developers like us play a significant role in managing these dependencies, Autodesk’s updates in Revit often exacerbate challenges. Such updates, though intended for software enhancement, can unexpectedly alter dependencies. Our investigations have even found conflicts between Autodesk-authored extensions themselves. It’s a reminder that the playing field is not always level, even within Autodesk’s ecosystem.


Recent Fix We’re implementing a two-part fix for our Revit connector: Revit "Sentry.Internal..." error - #41 by jonathon

  1. Updating Sentry Dependency: We’ve bumped the version of Sentry, a widely-used library for error logging. While this update might help, we acknowledge it could shift the issue if other plugins don’t follow suit. Users who have reported Sentry-related errors are invited to test this update.
  2. Removing the Sentry Dependency: We are contemplating removing this dependency entirely. While Sentry is invaluable for error logging, its removal could alleviate compatibility issues. However, this decision is not without its trade-offs, as error logs are crucial for maintaining software quality.

Some users not afflicted with conflicts today, should not have to test these changes,

Our Commitment: We are dedicated to being part of the solution, adapting our tools to these evolving challenges, and contributing to a more stable and harmonious Revit ecosystem.

Thanks for reporting when things are not great, we aim to repay that contribution with attention AND action.

2 Likes