From 7c5b4d60aaaf1611f694dde9d3e60cbb60af8d59 Mon Sep 17 00:00:00 2001 From: Petru Conduraru Date: Sun, 19 Jul 2026 19:54:34 +0300 Subject: [PATCH] ifcconvert: default --threads to auto-detected CPU count (#2709) The auto-detect path (hardware_concurrency()) already existed for --threads 0 but was never the default, so users had to pass it explicitly to get multi-threaded conversion. aothms confirmed in #2709 this was intended to change for the 0.8 release. This file was generated with the assistance of an AI coding tool. --- src/ifcconvert/IfcConvert.cpp | 5 +++-- src/ifcopenshell-python/docs/ifcconvert/usage.rst | 12 +++++++----- .../docs/ifcopenshell/geometry_settings.rst | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index ad8d7af607..fdd23f36ad 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -297,8 +297,9 @@ int main(int argc, char** argv) { geom_options.add_options() ("kernel", po::value(&geometry_kernel)->default_value(default_kernel), "Geometry kernel to use (opencascade, cgal, cgal-simple, hybrid-cgal-simple-opencascade).") - ("threads,j", po::value(&num_threads)->default_value(1), - "Number of parallel processing threads for geometry interpretation.") + ("threads,j", po::value(&num_threads)->default_value(0), + "Number of parallel processing threads for geometry interpretation. " + "Defaults to 0, which auto-detects the number of concurrent threads supported by the system.") ("center-model", "Centers the elements by applying the center point of all placements as an offset." "Can take several minutes on large models.") diff --git a/src/ifcopenshell-python/docs/ifcconvert/usage.rst b/src/ifcopenshell-python/docs/ifcconvert/usage.rst index 6910e7e6fe..10300b5512 100644 --- a/src/ifcopenshell-python/docs/ifcconvert/usage.rst +++ b/src/ifcopenshell-python/docs/ifcconvert/usage.rst @@ -16,12 +16,11 @@ you provide for the output file determines what format the IFC is converted to. On Windows, you can drag and drop a ``.ifc`` file on the ``IfcConvert.exe`` file to automatically convert it to an ``.obj`` file. -For any conversion, it is recommended to use multiple cores to speed up -processing: +By default, IfcConvert uses all available CPU cores to speed up processing. To +use a specific number of threads instead: .. code-block:: bash - # Change "7" to the number of CPU cores you have then plus one. IfcConvert -j 7 /path/to/input.ifc /path/to/output.dae By default, units are converted to meters. If you want to retain the original units: @@ -112,8 +111,11 @@ CLI Manual --kernel arg (=opencascade) Geometry kernel to use (opencascade, cgal, cgal-simple, hybrid-cgal-simple-o pencascade). - -j [ --threads ] arg (=1) Number of parallel processing threads - for geometry interpretation. + -j [ --threads ] arg (=0) Number of parallel processing threads + for geometry interpretation. Defaults + to 0, which auto-detects the number + of concurrent threads supported by + the system. --center-model Centers the elements by applying the center point of all placements as an offset.Can take several minutes on diff --git a/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst b/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst index 6862088c6c..e397c5ae5d 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst @@ -93,7 +93,7 @@ num_threads +------+-------------------------+---------+ | Type | IfcConvert Option | Default | +======+=========================+=========+ -| INT | ``--threads`` or ``-j`` | 1 | +| INT | ``--threads`` or ``-j`` | 0 | +------+-------------------------+---------+ Number of parallel processing threads for geometry interpretation.