Thank you to all of our customers who suggested we work on speeding up the design by reducing the wait time between making design edits.
Some Explanation and Tools for Improving Performance
By default, all models (that is, linework and surfaces) are set to rebuild whenever you make a tweak (move an IP – aka PVI – for instance) in the VGE window. When you have lots of roads, intersections, cul-de-sacs, etc, there is a noticeable wait time before you regain control of the mouse after editing an IP.
If you didn’t know, there are already ways to disable this automatic rebuilding:
- You can run the command Roads tab > Settings panel > Settings dropdown > Advanced Rebuild Settings (also accessible from the Toolspace by right clicking on the drawing name and picking Rebuild Settings. This provides you with options on how the software should respond to design edits, including disabling model rebuilds when the VGE is open. More information in the help about this command
- When you have the VGE window open, you can click on the Model tab and untick Auto Update (note: we also added a couple of buttons down the bottom of the Vertical Grading Editor to do the same thing)
When a Model is rebuilt, the software revisits the model and adds extra sampling through the vertical curves to improve accuracy – we call this Mesh Refinement. This process also adds time to the model and surface rebuild process.
Another time delay happens when you are actively editing (graphically moving up and down, left and right) IP’s in the drawing. AS you edit, all open Cross Section Windows are being updated, and the VGE doesn’t get control back until they’ve updated. If you have lots of cross section windows open, it means that your edits in the VGE windows aren’t smooth and you’ll notice a ‘stutter’ in the movement.
Reducing Time Between Edits in the Vertical Grading Editor (VGE)
From Civil Site Design V24.20 onwards we’ve made three enhancements to improve speed:
- Fast Surface Rebuild
When you are editing in the VGE window, we disable the Mesh Refinement from the surface build. This will dramatically improve surface build times – on a job with 11 roads we are seeing around 40% less delay between editing an IP and for the surface to build. What’s the difference you ask? Here is a screen shot of a model showing triangles with Mesh Refinement on, and another with Mesh Refinement Off
Don’t worry about the lack of the Mesh Refinement – you can click on the Model > Update Model to add it while editing, and we add the Mesh Refinement when you close a Vertical Grading Editor Window. When you close the VGE window you might see this message:
We add the Mesh Refinement whenever you close a VGE window - Rebuild When Required
That leads to the second improvement. We used to do something that slowed you down. If you had, say, 5 VGE windows opened and you closed each one, we rebuilt the model EACH TIME you closed a VGE window. We’ve stopped that – we check if the model NEEDS updating – if not the VGE closes without rebuilding the surface - Multi Threading
We have started on the voyage of Multi Threading. Multi threading is when you make use of the multiple cores on a computer to separate processing time onto different cores – essentially doing multiple things at once. This is actually tricky, because you need to find processes that don’t depend on each other (or else get real creative in reassembling all the different calculations back into one at the end.
What we’ve done is to calculate the updating of the Cross Section Window onto a separate core. This means that while you are moving an IP about you won’t suffer any lag while the cross section window graphics try to catch up. The section windows will update in their own time.
So, if you have multiple Cross Section windows open it makes no difference to latency when you are moving an IP. Cool if you have lots open at once!
We’ve just started the Multi Threading journey. We have plans to extend this to other associated processes, such as the updating of Model Viewer. Stay tuned!