Changelog

What's New in AddoBAR


Version 7.4.0

(21/08/2026)

Bug fixes:

  • Barstyle Editor — Host Crashes Fixed (Sentry 62/6T, 6N, 6X): Closing the style preview dialog no longer crashes BricsCAD V24 / AutoCAD 2026 (GS model teardown guarded, temporary entities detached, painting blocked during teardown). Range dimensions fall back to the drawing's dimstyle instead of a null style. V24 database commits are exception-guarded so a failed commit can't terminate the host. Stale style reads are null-checked.
  • Leader Commands — Crash Class Closed (Sentry 71, 72, 6Y, 6V, 6S): ab_change, ab_leader, ab_leaderadd, ab_leaderdelete and ab_leaderremove are now wrapped in a crash boundary that rolls back the open transaction so the host always survives, plus guards for empty leader-point arrays, short label lists, null bars, and a dead list whose destructor could corrupt memory at teardown.
  • Schedule Palette — Shutdown Crashes Fixed (Sentry 4X/5V/6P, 68/5W): Palette teardown during CAD close no longer calls into already-torn-down SDK state — the redraw target now comes from the validated window itself, with no forced synchronous repaint. GstarCAD's schedule reset is fully guarded against re-entrant painting mid-reset.
  • Schedule Refresh on Drawing Switch (Sentry 6Q/6R): Switching documents with the schedule open no longer reads styles before the new document's styles are loaded — the serialiser now bounds-checks and writes a null pointer safely.
  • Properties Palette — Label Dropdown Crash (Sentry 6G/6M): Populating the label dropdown no longer crashes when the document has no styles loaded.
  • Entity & Shape Guards (Sentry 6A, 6C, 6F, 6J, #69): Null guards on the mini-bar renderer and ab_fan, rejection of sentinel pointers during shape validation, and bounds checks in dimension-string lookup and ab_steprange.
  • DBX Unload Crash (Sentry 6D): The DBX module no longer links Sentry's crashpad, so its TLS cleanup callbacks can't fire after unload and crash CAD on exit.
  • Startup CadVer Write (Sentry #67): The CadVer persistence write at startup is exception-guarded and extracted into a safe helper, keeping all configurations compiling while swallowing the transient startup anomaly.
  • KML Import — Coordinates Match .NET: The Lo projection now follows the C# signed-latitude convention, fixing the X sign on imported KML site coordinates.

Version 7.3.0

(07/08/2026)

What's new:

  • MFC-to-Qt Migration — Major Progress: The UI layer is well into its migration from MFC to Qt. The bar-schedule palette, Global Settings dialog, combo boxes, and button toolbar all live in Qt now, with auto-sizing controls that respect UI scale, compact-palette scrollbar fixes, and accumulated porting across the grip manipulator, schedule model, bar entity, reactors, and command layer.
  • Host-Bundled Qt Compatibility: CAD hosts that bundle their own Qt runtime can now coexist with the plugin's Qt deployment. Additional build targets against ABI-compatible Qt versions prevent symbol clashes at runtime. Combined with dropped layout surgery in Global Settings and a single-shot setStyleSheet call, the schedule palette, Settings tab, and Publish tab are fully stable regardless of the host's Qt build.
  • Properties Palette — Grouped & Filtered on All Platforms: Custom bar properties are now grouped, filtered, and presented with working dropdowns on every supported CAD host. QSELECT and FILTER commands can enumerate all custom abakBar properties — Mark, Size, Shape, dimensions, and more — on every platform.
  • Publish Tab — Smart Sheet Packing: Schedules are now packed onto sheets by fit instead of one-layout-per-page. Multiple schedules that fit the paper are gridded together, framed by a single viewport per sheet. Frame+content schedule blocks are collapsed into one centered layout, eliminating duplicate pages. Sheet naming adapts intelligently ("Member X of Y" for single-member, "Addo Schedules X of Y" for multi-member).
  • Schedule — Member Order Control: Schedule rows and Excel exports now follow the member list selection order instead of forcing alphabetical sort. Member order is persisted to the drawing NOD so it survives across sessions and reloads.
  • Schedule — Column Order Persistence (Config.xml): Grid column order is now saved to Config.xml instead of the DWG NOD, eliminating dirty-drawing prompts on every save and removing the need for a document write lock. The order survives across all drawings and is restored without triggering save-column-order signals during load.
  • Schedule — kg-per-Row Column: A new optional "Show kg per row" computed mass column is available via Global Settings, showing the exact weight of each schedule row based on shape, diameter, and cut length.
  • Schedule — Insert Blank Row Between Members: The blank separator row between member groups is now a user-toggleable setting (default on), persisted as InsertBlankRowBetweenMembers in the schedule settings.
  • Schedule — Smarter Member Labels: Member labels are now rotated 90° only when the rotated text actually fits the merged cell height. Short single-row members that were previously left horizontal now rotate too when they fit.
  • Schedule — Plot Rotation Fix: Portrait/landscape rotation is now derived from the media's own aspect ratio, fixing inverted page orientation on landscape-native paper sizes.
  • Renumber — Unique Marks for Conflicting Bars: When multiple bars share the same mark but have different dimensions (flagged red with dimension conflicts), renumber now assigns each unique bar its own sequential mark instead of giving them all the same new mark. Non-conflicting rows continue to deduplicate as before.
  • Renumber — Re-Number & Compress: A new right-click action on the schedule palette assigns identical bars (same diameter, shape code, dimensions, and dimR) a single shared mark across all members — compressing physically identical bars into one mark regardless of which member they belong to.
  • Renumber — Leading Zero Preservation: When the starting mark has zero-padding (e.g. 01), the sequence now preserves it (01, 02, 03) instead of stripping to 1, 2, 3.
  • UI Scale — 50% Floor, Rows Follow Scale: The UIScalePercent range is now 50–200% (was 100–200%), clamped consistently across all three save/parse/accessor gates. Data row heights now truly track the slider — small text at 50% gets compact rows instead of staying tall at the old minimum.
  • Qt Global Settings — Polished Layout: Labels, edit boxes, and dropdowns now align to a shared column grid across General, Schedule, and Totals cards. Highlight and Compare colour fields render as solid colour swatches instead of raw ACI/RGB numbers. Dropdowns fit their widest item, numeric fields are trimmed to content width, and container backgrounds are correctly transparent inside cards.
  • Qt Schedule Buttons — Auto-Sizing: Palette buttons now auto-size to fit scaled text at any UI scale, with command buttons sharing a uniform width for a consistent look. Removed the hardcoded 80×25 cap that clipped text at large scales.
  • cli_borehole — JSON-Driven Borehole Command: New no-dialog sibling of ab_Borehole. Reads stratum rows from a flat JSON array and draws borehole soil logs using the existing rendering engine. Callable from the command line in one string: cli_borehole 100,200|C:/site/bh.json. Consecutive rows sharing a name merge into one borehole; auto-placed left-to-right clearing previous text.
  • S2 / S3 Layer Toggle Commands: Ported from the .NET version. S2 / AllLayersOff turns off every layer except the current one for quick editing isolation. S3 / AllLayersOn turns every layer back on unconditionally.
  • License Server — Mirror Fallback: All license endpoints now automatically fall back from the primary server to a mirror host (license.addosoft.co.za) when the primary is unreachable. HTTP 5xx responses from a reachable-but-failing primary are treated as unreachable to trigger the same fallback, preventing false activation failures during server outages.
  • Postscript Multiplier — Now Bar-Owned: The bar-count multiplier (bPrdct) is now owned by individual bars instead of being re-applied from the bar style's TagMults on every draw and style edit. Editing a style's TagMults no longer retroactively overwrites existing bars' manual Density values. The multiplier is only applied when the user explicitly types a postscript via the Properties panel.

Bug fixes:

  • Host-Bundled Qt — Multiple Crash Fixes: Fixed Qt ABI mismatches between the plugin and host-bundled Qt runtimes by providing version-matched build targets. Dropped applyResponsiveLayout grid-surgery that left a dangling QLayoutItem crashing on the first layout pass. Eliminated double setStyleSheet call in applyTheme that re-entered the MFC message loop and caused access violations. Added null QDomElement guards in all XML parsing paths.
  • CAD-Close Unload Crash: The DBX module (abakRebarObj) no longer initialises Sentry's crashpad, making the ARX module (abakRebarUi) the sole owner. This prevents a dangling crashpad handler from firing after the DBX is unloaded but before the ARX unloads, which caused crashes on CAD exit across all platforms.
  • VEH Self-Frame False Positives (Sentry 842): The vehHandler frame was being included in crash reports (FramesToSkip=0), causing every foreign or host-recovered fault to bucket as an AddoBAR crash. Now skips its own frame so foreign faults are correctly dropped.
  • 3D Callout Rendering: Fixed three bugs in 3D/DUCS bar callouts: a stray setPlane that collapsed the leader onto an axis; text offset rotation now uses the annotation plane's normal instead of hardcoded world Z; and text location is projected onto the annotation plane so callouts stay coplanar in YZ-plane placement.
  • Schedule Teardown Crash (Sentry 53c58992): Fixed a crash during widget teardown caused by a deferred-refresh debounce timer firing after the widget was already being deleted. Added QPointer guards, controller disconnect before UI delete, and null checks in onDataRefreshed and resizeEvent.
  • Crash-Queue Directory Creation: The VEH crash queue directory (C:\AddoSOFT\AddoBAR\ErrorLog) was never created, so fopen(..., "a") silently failed on machines missing it — meaning crashes on some hosts never reached Sentry. ensureQueueDir() now runs during Install().
  • Leader Arrow Lost in Proxy: setDimscale was called after evaluateLeader, so arrow geometry was computed at dimscale=1.0 and then scaled too late — arrows vanished in proxy graphics. Reordered to match the working bFlag arrow pattern: setDimscale first, no null annotation.
  • Dimstyle OPM Loss on Purge: When a saved dimstyle name no longer resolved (e.g. after a purge), the OPM property showed a stale non-existent name. Now syncs to the actual fallback dimstyle on load so the property always reflects reality. set_mDstyle also updates the hard-pointer ID for in-session consistency.
  • License Manager Opens Behind CAD Window: The owner window handle was captured once at plugin load, but on some hosts the main frame doesn't exist yet — returning NULL and leaving the License Manager ownerless, so it opened behind the CAD window. Now re-captures the frame in ab_license right before showing.
  • Member Count OPM Edit — Reactor Cascade Crash: Editing member count via the Properties panel now propagates to every bar in the member while suppressing the linked-bar sync reactor cascade (ChWthLnk guard), fixing a crash during bulk count updates on certain hosts.
  • Member Move — Adopts Destination Count: Moving a bar to a different member now adopts the destination member's bar count instead of keeping its old count. Wired into all three rename paths: OPM/Properties, schedule right-click re-member, and re-member-from-list.
  • Custom <Barlist> Path — Now Actually Read: A user-specified <Barlist> path in Config.xml was never read back — ReadConfigList skipped it, so the custom barlist was silently ignored. Now loaded before ReadShapeLists runs, and the Global Settings dialog reloads its country/code dropdowns from the correct file.
  • Platform Build Compatibility: Fixed modelessOperationEnded signature mismatches across CAD SDKs by guarding the override per-platform so all build targets compile cleanly.
  • Stepped Bar — Shortest Bar's A Dim: ExpandSteppedBar walked dimensions in stored order, so a bar stored 3000→300 showed A=3000 on the primary row instead of the correct 300 (the shortest end). Now walks shortest-end-first, restoring the legacy schedule behaviour where the A column shows the shortest cut length.
  • Schedule Bar Shape Y-Offset: Bar-shape positioning in the schedule table now uses the correct column-description row height (l_headerHeight) instead of the data row height. Header row auto-grow is disabled so they stay at the configured height instead of stretching when text overflows.
  • Compact Palette — Horizontal Scrollbar: Fixed a missing horizontal scrollbar when the vertical scrollbar appeared by using a two-pass resize that accounts for the scrollbar's actual rendered width at the current UI scale, instead of ignoring it entirely.

Version 7.2.0

(10/07/2026)

What's new:

  • Complete Native Rewrite: AddoBAR has been rebuilt from the ground up as a native C++ plugin (ObjectARX/BRX), replacing the previous .NET 8 architecture. No separate .NET runtime required. Faster load times, better stability, and a cleaner foundation across all platforms.
  • Rebuilt Bar Schedule: A fast, dockable schedule panel with column sorting (ascending/descending, persisted to Excel), natural sort for marks and members, multi-select with Ctrl/Shift-click, colour-highlight mode linking grid rows to drawing entities, inline grid editing with smart Type/Diameter drop-downs and Enter-to-next-row navigation, and dimensions that round cleanly down to the nearest 5.
  • Totals & Weight Tables: Mass and length totals aggregated by diameter with kg/m and total weight, paginated schedule sheets with block borders that split by row count, and a Schedule Diff tool that compares against a previous schedule with colour-coded add/remove/change detection and update-in-place.
  • Publish Tab: Build layouts and batch-publish to PDF directly from the schedule palette. Numeric columns are written as real numbers in Excel exports for instant totals and sorting.
  • Rebuilt Add Bar Dialog: Live bar preview with CAD-style dimensions and visible insertion point. Remembers your last bar style between sessions and pre-fills type and diameter from country/code defaults. CAD-style colour grid shape picker with hover highlight, and diameter list filtered by selected type.
  • Bar Styles & Style Manager Rework: Each style now previews its own shape with its own default layer and dimension style. Completely reworked tag editor with add, edit, remove, reorder, copy, and multiplier tag support — all in a compact dialog with an embedded live preview.
  • Tag Bar — Completely Rebuilt (AB_TagBar): Tags are now first-class AddoBAR entities with full Properties panel support, grip-editable leader and text positions, protection from accidental modification, and three modes: leader, text, and range. Configurable text height, auto-annotative behaviour, and property keyword prompting.
  • Smarter Wizards: Retaining Wall wizard now has a live side-view preview that redraws as parameters change, save/load design configurations, country bar mapping for non-SANS setups, and UCS-aware bar placement. Area Zone / Slab wizard respects rotated UCS, includes diameter in mark grouping, and has clearer range-line placement.
  • 30 Tools Ported: Survey & GPS (WGS84 conversion, survey levels, coordinate-to-table/drawing), KML import/export with redesigned dialog, block attribute export/update via Excel (bulk and folder-wide), point/CSV import, Borehole soil logs, Box Text, Text-to-MText, Strip Bar, ScaleXY, ZSet elevation tool, and more — all brought across from the .NET version.
  • Modernised Interface: Unified dark theme with consistent look across every dialog. Rounded corners and branded title bars for a polished native feel. Pop-up dialogs reliably stay on top across all CAD hosts. AutoCAD and ZWCAD now look and behave like the BricsCAD version.
  • Expanded Platform Support: AutoCAD 2027 added (alongside 2022–2026). ZWCAD 2025 and 2026. BricsCAD V22 through V26, now including Linux. One codebase, 24 build configurations, all platforms.
  • Licensing Rework: Floating/network licences with background activation and deactivation. Key-only activation (name and email optional). Update notifications on load. Fixes for clock-skew and stale-state issues that could drop users into demo mode.
  • Built-in Crash Reporting (Sentry): Automatic crash detection and reporting across all platforms so issues are caught and fixed faster. Includes symbol upload for all Release configurations.
  • Self-Healing Menus: Detects a missing or stale ribbon/CUI menu and reloads it automatically on startup or after an upgrade.

Bug fixes:

  • Grip Editing Data Corruption: Moving or stretching bars via grips no longer quietly mutates stored dimensions or creates false schedule conflicts. Grip lifecycle now uses generation-tracked cleanup with stale-pointer rejection.
  • Linked-Bar Sync Restored: Changes now propagate between linked bars again. The sync path was dead since November 2025 — guarded on isUndoing() instead of undoRecording(), which blocked all non-undo changes.
  • XREF Rebar Protection: A user-toggleable setting prevents rebar in externally referenced drawings from being accidentally modified.
  • Match Properties — Bar Type/Grade: ab_Match and ab_MatchPS now correctly copy the bar type (grade prefix), not just dimensions.
  • Dimension Rounding Consistency: Dimensions A–R now round DOWN to the nearest 5 in both the schedule grid and the Properties panel (OPM), eliminating mismatches between the two.
  • Schedule Cell Edit Scoping: Editing a cell in the schedule now only affects the row's own entities, not the entire member+mark group. Prevents unintended bulk changes.
  • Block Attribute Updates: Fixed to match by handle+tag only, preventing incorrect attribute writes when blocks share similar structures.
  • AutoCAD Fatal Error on Exit: Fixed a crash during controller teardown by guarding CAD calls that are unsafe during shutdown.
  • GlobalSettings Crash: Fixed a crash from a deleted Change-mark widget in the Global Settings dialog.
  • Stepped Bar Dedup Key: Schedule rows for stepped bars now use a key that includes shape, type, and diameter — keeping zero-quantity conflict rows visible instead of incorrectly merging them.
  • Text Fingerprint Hash: Text-field content is now hashed in the change fingerprint so same-length label/PSC edits correctly trigger a redraw.
  • VDOT Angle on Mirror: Dot-view leader angles are now preserved through mirror operations and synced to display settings.
  • Heap Corruption — mDims Growth: Fixed set_mDim growing the mDims row past nDims, which caused heap corruption on subsequent writes.
  • Parallel Build Errors: Fixed PDB contention and Qt DLL lock conflicts when building with multiple MSBuild instances.
  • Bar Count Recalculation: set_bCov now correctly recalculates bar count and flags the graphics as modified, fixing stale count displays.
  • AB_TagBar Range Grip-Move Crash: Fixed a crash when grip-moving range-mode tags, plus jig slowness during tag placement.
  • Licence-Key Crypto Crash Guard: Added an on_crash hook that discards crashes during licence-key cryptographic operations.
  • AES Key Cleanup: AES keys are now wiped from memory after use in all Release configurations.

Performance improvements:

  • Incremental Schedule Refresh (Up to 10× Faster): The schedule now refreshes only the member group that changed instead of rebuilding the entire grid. Combined with a cut-length cache, large drawings with thousands of bars see dramatically faster updates on every add, edit, delete, or undo.
  • Faster Drawing Open (~9 Seconds Saved): Eliminated a redundant second regen pass when no bar drew blank on file open. The schedule scan is deferred to showEvent and collected once instead of multiple times.
  • Text Format Cache: Cached text formatting results avoid repeated string-building work during redraws, making pan/zoom and regen operations snappier.
  • Single-Pass Table Scan: Combined table scan operations into a single SelectAll() pass with one transaction (GetTableInfoAndRemove), reducing database round-trips.
  • Member-Scoped Selection Highlighting: Selecting a member in the schedule now updates the grid instantly without excessive refreshes. Only the clicked row's bars are highlighted, not the entire mark group.
  • Parallel Multi-Config Build Script: New build_all_configs.ps1 with parallel build support, automatic Sentry symbol upload, and deploy scripting — replacing the old sequential batch file.

Version 6.0.5

(17/02/2026)

What's new:

  • UK 2020 Bar Conversion Command (AB_CONVERTUK2020): New command to convert all rebar entities in a drawing from BS 8666:2005 to BS 8666:2020. Prompts for a source DWG file, creates a copy with a _UK2020 suffix, and reports conversion results.
  • Bar Mark Start Field: Added a "Bar Mark Start" input field to the Area Zone dialog with save and load persistence, giving users control over bar mark numbering.
  • Force Straight Bars Option: Added a "Use straight bars only" checkbox to the Area Zone dialog. The setting persists to Area.xml and replaces previous hardcoded behavior.
  • Z Leader Command: Added a Z Leader command to assist with annotating 3D rebar models.
  • Document Reactor Re-enabled: Re-enabled automatic bar style reloading when switching between open documents. Includes proper cleanup on unload and null safety guards.
  • Schedule Toggle Label Preservation: The schedule toggle command (ab_range) now preserves custom labels containing "none" instead of overwriting them with the default template.

Bug fixes:

  • Stepped Range Orange Border: Fixed all bars in a stepped range showing the orange selection border simultaneously. Stepped ranges produce many schedule rows from a single CAD entity, so every row shared the same CAD ObjectId. All rows matched the stored selection ID and all received the orange border. Now uses a Mark|Member key that uniquely identifies each individual display row regardless of the underlying entity ID.
  • GlobalSettings Save Behavior: Replaced per-keystroke saving with LostFocus-based saving to prevent excessive XML writes and unnecessary CAD regens. Also wired up missing save handlers for several checkboxes (InsertHeading, MergeMember, OnlySumWeights, Schedule0, WLOneTable, LogVerbose) and fixed a ComboBox race condition during repopulation.
  • COM Bar Creation (DetCode): Bars created via COM were visible in CAD but could not be read back via SelectAll(). Fixed by initializing the DetCode property during bar creation in DrawBar() and DrawBarGlobal().
  • Area Zone Bar Grouping Rewrite: Replaced GroupBarsSort/MakeGroups with a new SplitIntoLanesAndProcess approach using RegionIndex for correct lane separation and consistent step detection with 20% tolerance.
  • Straight Bar Detection Fix: Fixed straight bar detection in Area Zone for UK and international rebar codes.
  • 3D PlotAll Rendering for Range Bars: Fixed VSIDE/VTOP/VBOT range bars not rendering correctly along the range line when PlotAll was enabled. The rangeSolid was being saved after the pln2wrld transform instead of before it.
  • rangeSolid Cache Invalidation: Fixed stale cached range bar geometry persisting after changes to cover values, bar diameter, bar style, flip mode, bar angle, and bar dimensions (A, B, C, etc.).
  • BLDOUBLE Color Rendering: Fixed 12 locations where BLDOUBLE offset lines and centerlines used a raw color index instead of the display color that respects style and highlight settings.
  • Template Load Crash (ACCESS_VIOLATION): Fixed a crash when opening templates containing rebar objects at CAD startup. Caused by partially initialized AcString members in abakBarStyle objects. Fixed with SEH protection and null checks in ShapeReader.
  • Preview Cache Crash: Fixed a crash caused by sl_live being used before initialization in OnInitDialog. Added null checks and fallback defaults throughout the preview cache.
  • PlotAll Hiding Bars with No Range Line: Fixed bars without a range line becoming invisible when PlotAll was ON. Now only hides the insertion bar when PlotAll is ON and a range line actually exists.
  • Leader Text Rotation in Print Preview: Fixed incorrect text rotation when plotting from paper space with a rotated viewport UCS. Now detects plot context via AcGiContext::isPlotGeneration() and uses stored WCS rotation directly.
  • Selection Jumping During Delete/Modify: Fixed the selected bar losing highlight after a grid refresh. Now stores the selected bar ID before refresh and restores it after, with re-entrancy guards.
  • Sentry Error Fixes: Fixed a bug in LoadValidDiameters() where all type ranges shared the same diameter list reference. Added null safety and exception handling in SelectAll(), BarsToDisplay(), CreateRegion(), and SubtractRegion().
  • ExplodedBarManager Crash: Fixed an index-out-of-range crash in SafeParseDimensions() when accessing the third element of a dimensions array.
  • ShapeReader Cache State Issues: Removed early-return cache optimizations in SetCurrentCode() and SetCurrentRod() that caused stale state, inconsistent ShapeReader behavior, and step range leader grip bugs.
  • Country Code Mismatch Fallback: ShapeReader now falls back to a prefix match when an exact code list match fails (for example, a bar using "BS 8666:2005" when the config differs). A warning is shown once per session.
  • CUI Menu Reload Fix: Fixed CUI menu loading by adding a proper reload function.
  • COM Memory Corruption and Leaks: Fixed memory corruption and memory leaks in the COM interface, and optimized palette operations to reduce lag.
  • VDOT Text Position: Fixed dot-view leader text being positioned at the attachment point instead of the text endpoint.
  • BricsCAD Style Loading: Fixed bar styles not loading on BricsCAD during rendering. The ensureDatabaseStylesLoaded() call was guarded by a _DBXAPP preprocessor define that excluded BricsCAD builds.
  • Rendering State Mutation (sRngl): Fixed worldDraw permanently modifying the range line mode. Empty or coincident range points forced sRngl = 1 which persisted beyond the render call, corrupting entity state without write access. Now saves and restores the original value.
  • Old Drawing Style Loading (ABAK_BSTYLE_CUR): Fixed old drawings failing to render when the active bar style exists only in ABAK_BSTYLE_CUR and not in the ABAK_BSTYLE dictionary. The migration path requires write access which fails during worldDraw/REGEN. Now pre-loads the style during the read-only style loading pass.
  • Document Reactor Double-Close: Fixed a double-close bug in the document reactor where the named objects dictionary was closed both inside readAllDatabaseStyles() and by the caller. Switched to the self-contained no-arg version which manages its own object lifetime.

Performance improvements:

  • DataGrid Row Virtualization (Schedule): Fixed two UpdateLayout() calls that silently defeated IsVirtualizingWhenGrouping. The first was in UpdateGridData - called after setting ItemsSource, it forced WPF to materialize all row containers synchronously on every Update button click and on every bar add/modify/delete event. The second was in SizeChanged - when new data caused the vertical scrollbar to appear, the width change triggered an unconditional UpdateLayout() that materialized all rows again. With both removed, only the ~15-20 visible rows are ever created regardless of schedule size.
  • Faster Member Selection: Selecting a member in the schedule now updates the grid instantly. Rapidly clicking through multiple members no longer causes excessive refreshes.
  • Reduced Redundant Renders: Removed 3 redundant render calls after ItemsSource is set, and combined table scan operations into a single SelectAll() pass with one transaction (GetTableInfoAndRemove).
  • Render Cache and LOD Gating (AddoBAR-Object): Added level-of-detail gating and improved cache management for 3D rendering operations.
  • Bar Preview Render Caching (AddoBAR-Object): Added caching for bar preview rendering in dialogs to reduce repeated render work.

Version 6.0.4

(08/01/2026)

What's new:

  • Configurable Shape Column Width: Added a new "Shape column width (mm)" setting in Global Settings that appears when "Draw bars on schedule" is enabled, allowing precise control over the bar/shape drawing column width (default: 15mm).
  • Improved Table Layout: Shape column now always appears as the last column (after Custom column if enabled), ensuring consistent table structure and proper width calculations.
  • Enhanced Backward Compatibility: Existing configurations automatically upgrade from 20 to 21 column width values, preserving user settings while adding support for the new Shape column.

Version 6.0.3

(05/01/2026)

What's new:

  • Improved Configuration Persistence: Resolved an issue where global settings (Country/Code) would reset to defaults after a restart.
  • Fixed Block File Pathing: Corrected a bug where abbreviated UI paths were being saved instead of full system paths, ensuring blocks load reliably.
  • Configurable Table Rotation: Added a new "Rotate merged column text 90 deg" option under Table Settings, allowing users to toggle between vertical and horizontal text.
  • Enhanced Auto-Save: All Global Settings now automatically save to Config.xml upon modification for a more seamless user experience.

Version 6.0.2

(31/12/2025)

What's new:

  • Added Sentry-based error monitoring.

Version 6.0.1

(05/12/2025)

What's new:

  • Updated MatchBar to match Shapecode as well.
  • If you experience any issues or need assistance, please don't hesitate to contact us at ruan@addosoft.co.

Version 6.0.0

(03/12/2025)

Before proceeding, please run the "C:\AddoSOFT\AddoBAR\AddoUpdater.exe" to complete the update process.

What's new:

  • Major Release: After 100+ hours of development, AddoBAR 6.0.0 represents one of the most significant updates in the product's history 102 commits, 18,348+ lines added, and 70% code optimized for enterprise-grade performance and reliability.
  • Enterprise-Grade Stability: Implemented 195+ error handlers across 35 files, eliminating 36 critical bugs including 9 crash-causing issues, 3 security vulnerabilities, and 7 data integrity problems.
  • Performance Revolution: Achieved 35-50% faster overall performance through comprehensive optimization:
    • 15-20% faster drawing display and regeneration
    • 25-30% faster grip editing and object manipulation
    • 20-30% improvement on repeated style access and shape code lookups
    • Complete memory leak elimination
  • C++ Performance Upgrade: Migrated ab_Match and ab_MatchPS commands to C++.
  • Intelligent Text Collision Detection: Enhanced ab_centerText command now automatically detects and resolves text overlaps.
  • Improved VDOT Range Positioning: Complete overhaul of text positioning for dot-view range lines.
  • Comprehensive Platform Support: Validated across AutoCAD 2022-2026, BricsCAD V22-V26, and ZWCAD 2025-2026.
  • Enhanced BOM Schedule System: Major improvements to Bill of Materials generation.
  • Architecture Overhaul: Complete codebase modernization with 69% reduction in core code complexity.
  • 100% Backward Compatible: All existing DWG files work seamlessly with zero breaking changes.
  • This release establishes AddoBAR as a rock-solid, enterprise-grade solution. For detailed technical information, see our comprehensive release documentation.
  • Questions or need assistance? Contact us at ruan@addosoft.co

Version 5.26.1

(16/07/2025)

What's new:

  • Minor Changes and Improvements to Bar Rotation and Highlight Bar

Version 5.26.0

(22/05/2025)

What's new:

  • After 9 months of development, this release delivers one of the most substantial updates to AddoBAR to date.
  • Major core upgrade to support Canadian RSIC standards, including full implementation of 11-dimension bars.
  • The internal structure of the barlist system has been updated. AddoBAR will automatically create a backup of your existing barlist.
  • Improved the Multiple Range function — now more reliable and directly accessible via the Range Commands tool.
  • Enhanced 3D visualization tools for smoother interaction and more accurate modeling.
  • Significant memory optimizations and speed improvements throughout the platform.
  • Completely redesigned Zoom to Window feature for more precise and intuitive viewport control.
  • Numerous behind-the-scenes improvements to stability, compatibility, and overall user experience.
  • If you experience any issues or need assistance, please don’t hesitate to contact us at ruan@addosoft.co.

Version 5.25.06

(16/08/2024)

What's new:

  • Please click here to Download and Reinstall from the website. This is to support the new Attribute master. and Reinstall from the website. This is to support the new Attribute master.
  • Fixed Bug on Plotting Schedule Table not matching member Layout.
  • The Free Version for 2025 now supports up to 25 entities, an increase from the previous limit of 10.
  • ZWCAD 2025 Fully Supported.
  • License Manager encryption updated in Version 5.25.04. Users on versions older than 5.25.04 must contact support at ruan@addosoft.co to have their license reset, or press the new reset button to request a reset.

Version 5.25.05

(07/08/2024)

What's new:

  • Please click here to Download and Reinstall from the website. This is to support the new Attribute master.
  • Resolved Ribbon Error for the Level Command.
  • Enhanced Level Command to support angle adjustments.
  • Improved Schedule Sorting to better handle sequences from "xxa" to "xxaa".
  • Fixed Schedule Tables Default Settings to match the new default template.
  • Added Ability to rename custom Column in Schedule. See Global Settings on pallet
  • License Manager encryption updated in Version 5.25.04. Users on versions older than 5.25.04 must contact support at ruan@addosoft.co to have their license reset. Also added a Reset Button.

Version 5.25.04

(02/08/2024)

What's new:

  • Added Attribute Master. Visit our Blog for more information and a tutorial at "blog.addosoft.co.za/attribute-master"
  • License Manager encryption updated to support .NET 8.0.You will have to contact support at "ruan@addosoft.co" and then we will reset your license on our side.

Version 5.25.03

(25/07/2024)

What's new:

  • AutoCAD & BricsCAD 2025 Supported
  • Introducing a new update window.
  • Enhanced the Import Level Command to support additional features.
  • Fixed Popup Issue on Schedule

Version 5.25.02

(18th July 2024)

What's new:

  • Introducing a new update window.
  • Enhanced the Import Level Command to support additional features.
  • Resolved issues where certain windows were not centered on the screen.

Version 3.17.87

(18-01-2017)

Reinforcement Detailing

  • Random error fixed when closing drawings with open schedule

Version 3.17.17

(10-01-2017)

Reinforcement Detailing

  • Fix issue with bar preview when previous or next is pressed

Split Leader command

Version 3.17.15

(02-12-2016)

Rebar schedule

  • Added schedules to layouts

Version 3.17.14

(25-11-2016)

Reinforcement Detailing

  • V17 optimization added

Version 3.17.13

(24-11-2016)

Installer to install for all languages

Reinforcement Detailing

  • Hidden Layers fixed

Version 3.17.12

(15-11-2016)

Rebar Scheduling and detailing

  • All code are now signed using Thawte codes signing certificate

Version 3.17.11

(11-11-2016)

Rebar Scheduling

  • Reset highlight bars if in paperspace

Version 3.17.10

(25-10-2016)

Rebar Scheduling

  • Members updates if drawings are switched

Version 3.17.09

(18-10-2016)

Reinforcement Detailing

  • Removed database delete event that may cause problems

Version 3.17.08

(12-10-2016)

Reinforcement Detailing

  • Added total number off tag [Tof]

Version 3.17.07

(04-10-2016)

Rebar Scheduling

  • Duplicate Bar Type removed in schedules

Version 3.17.06

(03-10-2016)

Rebar Scheduling

  • Schedule disabled when undo is pressed, removed crash in AutoCAD

Version 3.17.05

(30-09-2016)

Rebar Scheduling

  • Warning added when bar(s) are deleted can now be suppressed
  • BricsCAD 17 supported

Version 3.17.04

(23-09-2016)

Rebar Scheduling

  • Warning added when bar(s) are deleted

Version 3.17.03

(10-09-2016)

Reinforcement Detailing

  • Fixed occasional misplacement of bar indicator circles
  • Object to use current dimstyle if used dimstyle is purged

Rebar Scheduling

  • Check across members refined

Version 3.17.02

(06-09-2016)

Reinforcement Detailing

  • Optimized for European code
  • Added pictogram to draw SC in leader text

Rebar Scheduling

  • Refined TOB for bulk entities

Version 3.17.01

(31-08-2016)

Reinforcement Detailing

  • Using secure site for downloads

Version 2.17.05

(03-08-2016)

Reinforcement Detailing

  • Added Center line plot

Version 2.17.04

(27-07-2016)

Reinforcement Detailing

  • Error on Schedule change fixed
  • Added bulk TOB command
  • TOB offset added

Version 2.17.03

(26-07-2016)

Reinforcement Detailing

  • Multiplier do not reset on post script change

MAJOR RELEASE Version 2.17.01

(21-07-2016)

Reinforcement Detailing

  • MAJOR release 2.17.01, all features under development are now fully developed.

Version 2.16.12

(19-07-2016)

Reinforcement Detailing

  • Fixed freeze problem on tool tip

For latest AddoBAR please visit AddoSoft