Creating many detail lines in Revit, tips to improve performance?

Hi!

I have a Grasshopper definition that sends around 9,000 curves into Revit as Detail Lines. The script executes quickly on Rhino’s side, but sending those curves over into Revit can take around 15 minutes. On another project I’ve had a similar experience, where I’ve had to create detail lines for each hole in a large perforated building facade in Revit, and that ended up taking over 50 minutes.

Updating these lines after they’ve been created is quite a bit faster comparatively, but I’m curious if that initial creation step could be sped up in any way? One thing I keep running into especially, is Revit trying to automatically join any lines that are coming from Grasshopper, which is often super slow and unnecessary (and happens many times during the transaction).

  • Is there a specific tree structure that would be the fastest? One that could maybe avoid the auto-joining process?
  • Should I send the detail lines into Revit through a customized transaction process via a Python script?
  • Could I somehow turn all the curves into a single detail element and send that over in a single transaction, instead of processing thousands of individual curves separately?

Any tips would be much appreciated, thanks!

@bloobloo In my personal experience its always the bad data management (Tree Structure).
The only way we can guide you precisely if you can share the script you are using.

The script I’m working on is strictly confidential, but the problem is easy to replicate. Here I’ve got just a flat list of curves that I’m turning into Detail Lines in Revit, and at around 2000 curves the process takes about 2 minutes. I could live with that amount of computation time, but that’s pretty much 5x’d with my actual script which processes almost 10,000 curves.

In Revit, I can see it trying to auto-join these curves as they’re being created, and that seems to be what takes the longest.

I also tried turning the curves into a single Detail Item family. Revit can’t seem to process even Symbolic Lines within the family editor without trying to auto-join them though, so it just made things worse:

@bloobloo I did a quick test with 10,000 curves and it took 2.9 minutes. If you are simply creating a curve as you shared in the example its better to send it as complete curve