Multithreading in BricsCAD and AutoCAD

Multithreading in BricsCAD and AutoCAD

What is Multithreading?

Multithreading is the ability of a CPU (or software) with multi-core processors to execute multiple threads concurrently. In CAD software, this means breaking down tasks (like drawing regeneration, rendering, file operations, etc.) so they can run in parallel, potentially improving performance.

Multithreading In CAD Software

Both AutoCAD and BricsCAD utilize multithreading, but with different levels of application. BricsCAD generally utilizes multithreading in more operations and tasks than AutoCAD, which is comparatively designed to primarily use single threading in most tasks save graphically demanding ones, such as rendering or regenerating (redrawing) a 3D model. A significant portion of BricsCAD’s graphical tasks use parallel processing by default, wherein the loading and processing of a task is divided between two or more cores to enable faster visual performance.  

Where AutoCAD uses multithreading:
  1. Rendering: 2D and 3D renderings use multiple threads effectively.
  2. File loading/saving: Multithreaded to enhance processing speed.
  3. Regeneration (REGEN command): Parallelized by default in newer versions.
  4. Plotting and publishing: Partially multithreaded.

Where BricsCAD uses multithreading:
  1. Rendering: 2D and 3D renderings use multiple threads effectively.
  2. File loading/saving: Process is parallel by default, allowing for faster processing.
  3. Regeneration (REGEN command): Parallelized by default.
  4. Redrawing: Parallelized by default
  5. Point Cloud Processing: Fully multithreaded, can be optionally parallelized.
  6. 3D Modeling Operations: Most 3D modeling operations are multithreaded.
  7. BIM Classification: Multithreaded process by default, can be optionally parallelized.
  8. Blockify (AI Feature): Enables repeating sets to be converted to block definitions, multithreaded by default.
  9. Plotting and publishing: Fully multithreaded.

Control Variables

AutoCAD and BricsCAD both possess system variables that can be modified to enable multithreading in specific operations. AutoCAD uses the WHIPTHREAD variable to enable multithreading for operations such as regeneration of the drawing, renderings, and other graphically demanding tasks. BricsCAD uses the MTFLAGS variable to allow for the manual enabling of multithreading when regenerating drawings, rendering, point cloud indexing, and more. It should be noted that BricsCAD does possess a WHIPTHREAD variable as well, but at the time of writing, this variable is not supported, with its functions being performed instead by MTFLAGS. 

WHIPTHREAD

WHIPTHREAD is a system variable in AutoCAD that controls the use of additional processors to improve the speed of specific operations, such as regenerating a drawing. The default value of this variable is 1, with (at the time of writing) 4 different value options available for selection:
Value 
Result
0
Operations are restricted to a single processor. 
1
Regeneration processes are distributed across multiple processors. 
2
Redrawing processes are distributed across multiple processors. 
3
Both regeneration and redrawing processes are distributed across multiple processors. 
Note: This variable will not function if your device has only a single processor. 

MTFLAGS

 
MTFLAGS is a system variable in BricsCAD that controls multithreading behavior across various operations. The variable is a bit-coded integer, wherein different bits enable or disable a specific multithreaded feature. This allows for manual tuning of multithreading based on your hardware and workflow needs. The variable can be found in the BricsCAD settings, following the path of Program Options > System  > Multi-Threading Flags. 

MTFLAGS Variables

Toolbox BSB is based on BricsCAD Pro V25, with the default value of MTFLAGS being 3015, enabling an expanded set of multithreaded features. All bit values are listed below, with the features enabled by default labeled as such:
Bit Value
Feature
No parallel processing
1
Parallel regeneration of display (Default Enabled)
2
Parallel redraw of display (Default Enabled)
4
Parallel loading of drawings (Default Enabled)
8
Parallel hidden line removal
16
BIM section generation (separate files)
32
BIM section generation (same file)
64
Direct Modeling operations (Default Enabled)
128
Assembly modeling operations (Default Enabled)
256
Sheet Metal operations (Default Enabled)
512
Interference checking (Default Enabled)
1024
Delayed XREF loading
2048
Point cloud operations (Default Enabled)

Customizing MTFLAGS
You can control the level of bit value (and thus, fine tune the variable to fit your hardware) by disabling and enabling specific features. Disabling or enabling features subtracts or adds the corresponding bit value. For example:
Disabling point cloud threading (bit 2048):
3015 - 2048 = 967 → MTFLAGS = 967
This keeps most performance benefits while reducing memory or CPU load on certain systems. 

MTFLAGS Issues
It is recommended, when using this variable, to customize and see what works best for your hardware. If an issue arises with device CPU load, it may be prudent to reduce the number of features active. If you notice a significant drop in performance, or an error occurring when using one of the features controlled by MTFLAGS, it is recommended to set the variable to a value of 0, then re-enable features one by one in order to parse where the error lies.   
While the variable controls well-known and long-standing CAD features, such as drawing regeneration, higher bit values (like 3015) can include bits used for more complex or newer workflows, such as:
  1. BIM section generation
  2. Assembly and sheet metal operations
  3. XREF and point cloud enhancements
These features are safe for modern systems but may cause instability on older hardware or legacy files.

    • Related Articles

    • Variable Changes and Adjustments from OEM to BSB

      Users who transition from Toolbox OEM to Toolbox BSB may notice a handful of changes or differences in some of the commands, utilities, and variables in the BSB software. With both versions of Toolbox being based on compatible CAD software, the basic ...
    • FAQ: Toolbox BSB (BricsCAD)

      This FAQ addresses common questions about Toolbox BSB (BricsCAD), including what it is, how it differs from Toolbox OEM, and what users need to know about conversion, licensing, and core features. ………… General Overview What is BricsCAD? BricsCAD is a ...
    • FAQ: Toolbox BSB (BricsCAD) (FR)

      Cette foire aux questions répond aux questions courantes concernant Toolbox BSB (BricsCAD), notamment ce que c’est, en quoi il diffère de Toolbox OEM, et ce que les utilisateurs doivent savoir sur la conversion, les licences et les fonctionnalités ...
    • Switching to Light Mode in Toolbox BSB

      Toolbox BSB, being built on BricsCAD V25 Pro, has a built-in functionality that allows for the customization of one’s CUI and interface. One such customization you may want to utilize to tailor your workspace to your tastes is switching the UI to ...
    • Rendering in BricsCAD

      This article explains the different levels of rendering supported by BricsCAD, ranging from quick concept views to detailed design visuals. It highlights BricsCAD’s built-in rendering tools, performance strengths, and explores the various options ...
    • Recent Articles

    • Toolbox Release Notes | Build 25.1.1204.641

      The following release notes apply to Toolbox build 25.1.1204.641 Toolbox Login Screen Update Fig. 1: The updated Toolbox Login interface. The Toolbox Login interface has had several changes applied to it to enhance its usability and allow for greater ...
    • Toolbox Release Notes | Build 25.1.1120.641

      The following release notes apply to Toolbox build 25.1.1120.641 Mouse Wheel Fix There was a reported issue in certain interfaces (such as report groups) in which hovering over a dropdown menu (such as Output Type) would result in the options within ...
    • Dynamic Dimensioning in Toolbox BSB

      When applying dimensions to products and other solids in Toolbox BSB, by default, all dimensions are drawn in 2D on the Y plane, requiring one to switch to a top view (or an appropriately high isometric view) to see them. BricsCAD has a feature that ...
    • Toolbox Release Notes | Build 25.1.1107.641

      The following release notes apply to Toolbox build 25.1.1107.641. Subassembly Prompt Fixes A pair of issues were reportedly occurring when attempting to work with subassembly prompts in the Edit Design Data interface. Subassemblies copied to the ...
    • Microvellum Foundation Library Release Notes | Build 25.1024

      The following release notes apply to the Microvellum Foundation Library build 25.1024. Additions Added Face Profile Options to the Door Wizard for enhanced design flexibility. Users can now apply decorative visual profiles to doors, drawer fronts, ...