Has anyone successfully used FuzzyDyno lately? i have a test script for it, but it always crashes/times out dynamo. It hasn’t been updated in a long time, but i’m not even sure how to figure out what the issue might be…
the code is here, you can try building it yourself and debugging it, though the author has not attached a license so I would proceed carefully of course. (I am not a lawyer) 
FYI @Eric_Rudisaile1
i’m not opposed to this, but i am not such a clever person. I’ll take a look and see.
Which version of Revit are you testing in?
2022 with dynamo 2.10
Hello, any follow up on this?
Revit 2025 / Dynamo 3.3 won’t run (it freezes) the FuzzDyno nodes…
Any alternative?
Thank you
Likely needs an update to Dynamo 3.0 with the new .NET build. Try posting on the GitHub linked above, but it may be that you’ll have to build a new tool as it has been awhile since this was last updated.
If you check the code it’s just built around three classic fuzzy string comparison algorithms, and returning the best outcome; Jaro Winkler distance, Levenshtein distance and Jaccard Index. Currently it unfortunately buries the core code in a dll file, but these are all technically achievable in Python - although fairly complex. From what I can tell the author never actually uses Jaro Winkler distance, just the other 2.
With enough time and effort, potentially with AI these could be recreated. There are resources and threads out there as well showing how to create functions to achieve this, e.g.
In theory the core function is:
- Run Lev distance between the main string and each string in the list
- If there is only one best result (minimum), return its string (done)
- Otherwise, run Jac index and return the best outcome (maximum result, done)
Even with the package licensed, the core logic at play here is fair game to my knowledge.
Likely worth reading the blog post as well. Fuzzy String Matching - Dynamo BIM
And yes, all of those algorithms are fair game, however the level of effort to build and maintain and edge case handle them all means you’re better off consuming another library for this, be it in Python or C#.
C# would be my recommendation and it will more readily integrate with all the other spell checkers on the system, and will be faster.
I actually use some fuzzy string comparison in my CaseInsensitive nodes in Rhythm:
And the helper class here:
I think I could make the helper class Dynamo-visible as a node and add the other ones from FuzzyDyno if you all think it would be useful?
I can add it here for tracking:
https://forum.dynamobim.com/t/nodes-from-unmaintained-not-updated-packages
Thank you all,
I used Copilot and it was actually quite easy to get this script, and save it into a custom node.
It works well:
# Enable Python Standard Libraries
import difflib
# Dynamo inputs
# IN[0] = list of strings to search in (e.g. element names from Revit)
# IN[1] = query string (the one you want to match against)
# IN[2] = number of closest matches to return (optional, default = 3)
strings = IN[0]
query = IN[1]
n = IN[2] if len(IN) > 2 else 3
# Use difflib to find closest matches
matches = difflib.get_close_matches(query, strings, n=n, cutoff=0.0)
# Dynamo output
OUT = matches