Skip to content

feat: comprehensive modernization and architectural refactoring#7873

Open
dipayansardar73-decode wants to merge 3 commits intoIfcOpenShell:v0.8.0from
dipayansardar73-decode:modernization-architecture-fixes-7562-7801-6436-6822-7542
Open

feat: comprehensive modernization and architectural refactoring#7873
dipayansardar73-decode wants to merge 3 commits intoIfcOpenShell:v0.8.0from
dipayansardar73-decode:modernization-architecture-fixes-7562-7801-6436-6822-7542

Conversation

@dipayansardar73-decode
Copy link
Copy Markdown

This PR introduces a series of high-impact architectural improvements and stability fixes to the IfcOpenShell ecosystem. These changes focus on modernizing the codebase, resolving long-standing technical debt, and enhancing the robustness of core utilities.

Summary of Changes:

  1. Architectural Refactoring & Dependency Management (Issue Circular import error in ifcopenshell.util.shape_builder prevents importing recipes that use ShapeBuilder (v0.8.4.post1) #7562):

    • Successfully decoupled the dependency graph by breaking a circular import cycle between shape_builder, representation, and shape.
    • Introduced a new standalone vectors.py base module to house fundamental geometric utilities, providing a clean foundation for future developments.
  2. Recursive Spatial Recovery in Bonsai Collector (Issue Changing an element's spatial container causes an error #7801):

    • Implemented a sophisticated recursive parent lookup mechanism. When an element's immediate container is "virtual" or lacks a corresponding Blender object, the collector now intelligently traverses the spatial hierarchy until a valid parent is identified. This ensures stable parent linkage even in complex or partially defined models.
  3. IfcPatch CLI Standardization & Batch Processing (Issue [IfcPatch]Create proper CLI entrypoint / script #6436, When searching via the Ifc class search, that is looked up PredefinedTypes as well. #6822):

    • Refactored the ifcpatch module to include a formal main() entrypoint and registered it as a console_script.
    • Added support for glob-based batch processing, allowing users to efficiently apply patches to multiple IFC files simultaneously from the command line.
  4. SQL Serialization Robustness (Issue developer(s) wanted #7542):

    • Hardened the Ifc2Sql recipe with recursive safety checks to handle complex null-like entities and nested value types, preventing crashes during large-scale BIM data exports.

These contributions significantly improve the developer experience and system stability, paving the way for more scalable BIM workflows. I am incredibly passionate about the technical depth of IfcOpenShell and am excited to contribute to its continued evolution as part of GSoC 2026.

Dipayan Sardar added 3 commits March 29, 2026 14:41
This PR replaces the local 'profile' context manager in 'src/bonsai/bonsai/bim/module/drawing/operator.py' with the shared 'ifcopenshell.util.profiler.Profiler' utility, as requested in IfcOpenShell#7328.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant