9x faster Tab Switching in Civil 3d 2024 – NO!

I did this post last week where I tested the claim of up to 9x faster tab switching with AutoCAD 2024. My thought is this would be great for my Civil 3d users who use a lot of tabs. Faster is always better, right?

Unfortunately this speed increase did not transfer from AutoCAD 2024 to Civil 3d 2024. I suspect this has to do with the fact that Civil 3d regenerates object very differently than straight AutoCAD.

The good news is Civil 3d 2024 managed to do this about 11% faster over 5 trials with Civil 3d 2024 always coming out faster than the 2022 version.

I also tested to see if this speed increase in tab switching also applies to publishing the same 50 sheet drawing set. Unfortunately, the answer is no to that (even in AutoCAD). I suspect whatever change was made to speed up tab switching was not applied to the publishing code.

Here is a video of one of the runs.

9X faster switching between layout tabs with Autocad 2024 – Lets test that

“Up to 9x faster switching between layout tabs compared to AutoCAD 2023” Lets test that. Source: Welcome AutoCAD 2024: Quickly Collaborate, Enhance Your Productivity, and Experience New Machine Learning Features

I had a drawing with over 50 layout tabs so I bashed together this code to switch between 50 layout tabs and time the results. This code is specific for these drawings. You can see the code at the bottom of this post.

Here we are testing performance between 2022 (left) and 2024 (right).

Video has no sound.

My experiments found it being significantly faster at about 4-5x faster. I wasn’t seeing 9x speed improvement, and would be curious what changes could be made to achieve that.

Code below. This is relying on knowing the names of the layout tabs.

(defun c:bm (/ );time_start current_tab next_tab time_end time_ellapsed )
(setvar “ctab” “100”)
(setq time_start (getvar “millisecs”))
(setq current_tab 100)

(repeat 50
(setq current_tab (+ 1 current_tab))
(setq next_tab (itoa current_tab))
(setvar “ctab” next_tab)
; (command “zoom” “Extents”)
(princ next_tab)
)
(setq time_end (getvar “millisecs”))
(setq time_ellapsed (/ (- time_end time_start) 1000.))
(princ time_ellapsed)
(alert (strcat “Ellapsed Time to switch 50 layout tabs\n\n”(rtos time_ellapsed 2 2)”Seconds”))
(princ)

)