2026 Platform Releases
v3.260803
Also covers the interim releases v3.260716, v3.260717 and v3.260718.
AI Agent & Automation API (new)
Model From an AI Assistant: The
openbrim-modeleragent API (used by the OpenBrIM desktop app and by external AI clients) now covers the full modeling loop — build, analyze, design, and read results — including the complete FEA object family (elements, loads, cases, groups, construction stages, influence lines).Workflows & Coordinate Systems From the API: New tools list, import, and delete bridge-type workflows in an open project, so a session can start as a Steel I-Girder model and add a Prestressed I-Girder workflow mid-session. Another pair sets the project's State Plane / geographic coordinate system and local origin — the prerequisite for importing a DTM/terrain surface.
Safer Result Extraction on Big Models: Result reads are now filtered before they are computed rather than after, so pulling a few hundred rows out of a 17,000-row table no longer computes the whole table. New calls enumerate what result elements exist and estimate what a read will cost (cold vs. warm), batch sizes are measured from real timings, and an over-large read returns a truncated result instead of exhausting memory. Reading results from a model that was never analyzed is now refused instead of returning zeros as a success.
Wood-Armer Design Moments:
WaXTop/WaYTop/WaXBot/WaYBotare now extractable for shell surface forces, in a caller-specified output frame.Enum Values Accept What You Type: String-enum parameters (side selectors and similar) now accept the friendly label, the bare keyword, or the exact stored token —
Left,'Left', andleftall land correctly. Previously an unquoted keyword failed silently.Version Handshake: The desktop app now asks the connected workspace what it supports and refuses a call the workspace can't serve, naming the missing capability and the workspace revision — instead of sending a call that quietly does something else.
Parameter Chain Debugging: A new call returns the computed value of every parameter as the compiler resolved it, targeted by object type — the direct answer to "why did this formula produce that value".
Better Errors: Generation errors keep their original throw site, object types can be enumerated, an FE model can be built from a file, thermal gradients are no longer silently dropped, and feedback reports attach the last 200 tool calls instead of 10.
Finite Element Analysis
Solver Verification Program: A broad accuracy and validation program measured against an independent benchmark suite of reference problems with published results. Improvements span the element and solution libraries: release-consistent fixed-end forces, so distributed loads on members with end releases are transferred exactly; a consistent load vector for distributed torque; improved conditioning of skewed supports, with joint-local reactions now reported; an improved shell formulation, including staged thermal stress; stress-stiffened modal analysis; and linear buckling.
Unified Time-History Analysis: One
AnalysisCaseTimeHistoryobject now covers all three solution methods —Modal,Direct, andFNA(fast nonlinear analysis).Time-Varying Nodal Loads: A node load can now carry a time function and scale factor, so a time-history case can be driven by a prescribed force history at a joint — not only by uniform base acceleration.
Multi-Support (Spatially Varying) Excitation: New
SupportMotionprescribes a displacement record per joint and DOF, any number per case, with an optional per-support time shift so wave passage can be expressed from one shared record. Uniform base motion of a long or multi-span bridge is rigid-body translation and produces no member demand at all; differential support movement does.equalDOF Constraints and PMM Plastic Hinges: New stage-aware
FEConstraintEqualelement, plus PMM plastic hinges evaluated on line-end springs for pushover. Displacement-controlled solving is hardened with load-factor rollback on failed steps and better step-size control.Loads in a User Coordinate System: Node, line, and point loads can now be given in a referenced
CoorSysframe (Sys="2"), and point loads gained frame support for the first time. Behavior change: line loads set toSys="1"(node-local) are now honored by the solver — they were previously drawn local but solved global, so models with line loads on alignment-heading nodes will see result changes.Displacements in a User Coordinate System: New
dispUCS()/dispTx…RzUCS()result functions report nodal displacements rotated into any coordinate system. The rotation is applied at the result leaf, so every combination path — modes, combinations, envelopes, construction stages, live load, and response spectrum — combines already-rotated results.Thermally Expanding Rigid End Offsets: New per-member
OffsetExpandsThermallyoption (default off). A rigid end offset is normally strain-free, which forced a fictitious lack-of-fit force into cross-frames under a temperature change. With the option on, the member's stress-free length becomes the full node-to-node span, matching an explicit rigid steel element to 0.1%. Set on 72 members across the cross-frame, internal-cross-frame, spliced-diaphragm, and top-lateral-bracing library objects.Composite Results Report Their Station: A composite result now reports the alignment station it was taken at.
Remote Mesh Fixes: Missing FE surfaces in remote-meshed models are restored, an empty or invalid mesh response is never cached, overhang nodes on custom-edge decks are warped into place correctly, and deck edges can follow a custom alignment line.
Nodal Mass Contributes to Modal Analysis: A
NodeMassobject contributed no modal mass; it now does.Creep Verification Fix: The trailing-substage anchor is restricted to the fit substage, identified by a dedicated flag rather than inferred from load type.
FEA Results & Display
Verification Values No Longer Stuck at 0.0000: Verify rows could read
0.0000permanently after a successful analysis — a read taken while the solve was still running was cached as a plausible zero and served for the rest of the session. Result caches are now invalidated at the run boundary, and verification extraction refuses to start mid-run instead of recording and persisting zeros.Verification Report: A project whose checks are its Verify objects now has a report. The Design button reads Verify with a Run Verifications action, rendering the same check report the Online Verification System produces.
Display Panel Restructured: The hidden
⋮menu is gone — every display toggle is a visible row that shows its state, and toggles that did nothing in a given mode are no longer offered there. Display units split three ways (Displacements / Forces / Stresses), so kip-ft moments and inch deflections are no longer mutually exclusive. The Deflection panel no longer scrolls at default size, and the reaction quantity is eight visible chips instead of two controls silently relabelling each other.Visibility & Isolate Fixes: Fixed a redraw loop that froze the FEA view on large models, an isolate being silently undone by a derived visibility sweep, and an isolate being destroyed on every construction-stage step. "Elements = Selected" can now resolve a composite from a mesh pick, and a failed composite contour no longer leaves the view stuck on a missing contour and a progress bar that never finishes. Design runs can be cancelled, covering both extraction and report build.
Result Diagrams Read in Elevation: Axial force and torsion are now plotted in the vertical plane, so four of the six components read correctly in the elevation view a bridge is normally read in. Composite girders follow the same plane rules as members, honor the plot-side / fill / height settings, and hang their moment ribbon on the tension side.
Consistent Results Tree Order: The per-element result tables now appear in a fixed order rather than in whichever order the model happened to create its elements, so the same table is in the same place in every project. Spring forces reported in local axes under a "(Global)" heading are fixed, with an explicit local/global pair.
Honest Empty-Result Notice: The empty-result notice can be dismissed and no longer claims nothing is drawn when something is. "No reactions" is no longer announced while results are still loading.
Canonical Spreadsheet Tabs: The FEA spreadsheet had 59 different tab names across 46 classes with two sources of truth. They are now one vocabulary of 54 names, with synonyms collapsed. Relearning:
Point Load/Forces & Moments/Displacements/Temperature/Surface Loadare nowLoading;Stiffness Option+Stiffness Matrixare nowStiffness; the CombinationItemstab is gone, so a sheet left open on it lands onCases 1-5.N/A Means N/A Everywhere: 36 parameters showed N/A in the spreadsheet while staying editable in the object dialog and exporting as real numbers to Excel. Applicability is now decided once and honored by the sheet, the dialog, and the export alike.
Per-Check Tolerance Reporting: Verification checks report their tolerance, with tolerance and log level authored in the project sheet, and OpenBrIM baselines can be recorded from a run.
Project Data Integrity
Special Characters No Longer Corrupt a Project: Text containing
&or<was written into the stored project unescaped, and the loader then saved the loss back — silently destroying content. Saving now escapes exactly what XML forbids, and the loader guards against a malformed document.Lambda Arrows Preserved on Save: A follow-up fix: for one release, saving any object rewrote every ParamML lambda arrow
=>as=>throughout the object, turning a one-line edit into an unreviewable diff. Only the three characters XML actually forbids are escaped now.In-Session Objects Report Their Own Type: Objects created during a session — as opposed to loaded from a saved project — carried no type parameter of their own and silently inherited the nearest neighbour's. The visible symptom was cross-frames missing from the FE model until a page refresh or a source Update.
Real-time Collaboration
The Update Notice Tells the Truth: The "Updated by …" notice could name you as the collaborator when the change came from your own second tab, window, or desktop app — that case now reads "Updated in another session". It could also appear with nobody else in the project at all, because a session that had merely loaded the project was read as infinitely behind and had the last save replayed at it.
Conflict Dialogs Behave: Conflict prompts no longer stack over an open change review, and choosing "Use cloud copy" no longer hangs a running batch import.
Security & Accounts
MFA Phone Entry Rebuilt: Entering a phone number with separators or without a country code used to produce a code-entry box for an SMS that was never sent — no error, no way forward. First-login enrollment now uses the same country-aware widget as Settings, validates before sending, and shows the masked destination, an expiry countdown, resend with cooldown, and a change-number option. A refused send reports the gateway's actual reason.
Country-Aware Phone Entry Everywhere: All five surfaces that collect a phone number (MFA enrollment, 2FA settings, registration, profile update, first-admin setup) now use one shared country-aware widget with E.164 canonicalization. Registration's free-text Country box, which could contradict the phone number, is gone.
Carrier Verification: Numbers are checked against carrier data when they are set, reporting the resolved country and carrier and rejecting a number that cannot receive texts. Sign-in never performs this lookup.
MFA Codes by E-mail: An admin can now deliver a user's sign-in codes by e-mail instead of SMS — necessary in regions where carrier-level filtering of international senders blocks SMS delivery entirely.
Admin Sees the Verified Number: The admin user table showed only the contact phone, so an admin could be reading one number while codes went to another. Both are now shown and reconciled.
Project & Library Management
Copy Project to My Account: New project-menu item that copies the currently open project into your own account and opens the editable copy — including a read-only project opened via a shared link that you don't own. This previously required copying tens of thousands of lines of XML out of the source panel by hand.
Orphaned Library Components Recovered: A bulk workspace library copy could half-create components that were invisible in the library but still blocked their names ("shows as new in pull, not found in search, can't create: name taken"). Such components now appear under an Unknown author, admins get a Fix Owner mass action, and component creation is atomic so the state can't recur.
Mass Publish Hardening: A 694-object mass publish that crashed at 7% behind a frozen progress dialog now rides out contention with retries, releases its worker slot on every path, reports a real conflict deterministically, and shows inline per-item progress. The underlying contention is addressed at the root by sharding the catalog-generation counter (~32× less write contention on every component create, save, delete, and publish).
Admin Console Fixes: Model-compilation buttons (3D / FEM / DETAILING) no longer appear in the admin console, which never loads a project. Project links in the Data view are real links again — hover preview, copy link address, and middle-click work, and projects opened from the console no longer run in a degraded child-window mode that filtered alignment geometry out of the render.
Usage Report: Fixed cross-transaction contention that could blank the admin usage report, made it substantially faster on large workspaces, and removed a duplicate wait-screen card.
Modeling & Geometry
Footing Face Triangulation: Fixed top and bottom face triangulation on concave footing polygons.
Finwall Section Quantities: Group-wrapped points are now included when gathering section points, so finwall areas are computed correctly.
Drill-In Survives a 3D Pick: Picking an element in the 3D view no longer bounces you out of a parameter-interface drill-in — the panel was being destroyed and rebuilt around every pick.
The "(New)" Row Accepts Typing: With any 3D selection active, typing into a plain cell of a sheet's trailing
(New)row created nothing at all — no row, no object, no message.Object-Group View-State Selector Removed: The "View All" selector was removed from the model UI.
Import/Export
Tekla Surface-Drawn Solids: Objects drawn as surfaces (e.g. footings) now export to Tekla Structures as shell items instead of being dropped, shipped alongside OBrIMTekla v1.3.0. A separate fix restores literal field names in the production Tekla export payload.
Reliability & Performance
Cloud Run Outage Hardening: Addresses the July 429 "no available instance" storms, including a ~55-minute hard outage. Per-version revision tagging stops an idle-instance leak, saturated requests fast-fail instead of wedging, the project catalog cache became a generation-keyed single-flight snapshot instead of a shared mutable map, the async project-get path is concurrency-gated, and alerting on 429/5xx is provisioned per project. Verified against a 500-concurrent flood: peak four instances, no wedge, no 5xx.
Scale to Zero: Idle services now scale to zero across all environments, safe given ~2s cold start and Datastore-backed live state.
Desktop App
Quiet Update Pill: The native "Update ready — Restart now / Later" modal is replaced by a small "Relaunch to update" pill in the bottom-left of each editor window. Click to relaunch, hover → ✕ to hide it for this run, or ignore it — the update installs on quit either way. A desktop update that lands mid-session now announces itself instead of silently changing behavior.
Documentation
Truss Bridge LFD Load Rating: New workflow pages covering the LFD load-rating workflow for truss bridges.
Concrete Box Girder Element Loads: Corrected the Element Loads pages for the concrete box girder workflow.
Bolted Gusset Plate Code Check: Documented the Design basis toggle.
v3.260714
Real-time Collaboration (new)
Live Multi-User Projects: Multiple people can now open the same project and work together live. You can see who else is in the project (Google-Docs-style presence), and collaboration is on by default.
Review Changes Before They Apply: A per-project "review before applying" mode (toggle in the top bar, on by default) lets you review a collaborator's incoming changes as a neutral change report with a spreadsheet cell-highlight preview before accepting or rejecting them.
Safe Save-Conflict Resolution: When two people edit the same project, a collaborator's save is never silently overwritten. You get a clear notice and a simple choice — Keep my copy or Use cloud copy — with an optional informational review. Conflict prompts no longer stack over an open review.
Reliable Live Connection: Server-side keepalive prevents the live connection from dropping when idle, auto-reconnect recovers dropped sockets, and the app now starts up normally even if collaboration can't connect.
Finite Element Analysis
Cross-Frame Fit Conditions (NLF / SDLF / TDLF): Model steel cross-frame fit-up so the analysis automatically accounts for locked-in (lack-of-fit) forces from no-load, steel-dead-load, and total-dead-load fit, with the resulting applied strains readable in the results.
Cable Stressing: Apply pretension to cable elements and drive a staged cable-stressing load through a dedicated Cable Stressing Loads spreadsheet.
FE Surface Stress Results: New surface-stress contour views for shell/plate elements, with correct construction-stage handling and combination/live-load stress envelopes. Adds Sxx/Syy/Sxy plus longitudinal/perpendicular (Slong/Sperp) components and an alignment picker that rotates each node's stress tensor for a continuous contour.
CQC3 Response-Spectrum Combination: New CQC3 spatial combination rule for combining orthogonal ground-motion components, with a user-supplied γ ratio and automatic critical-incidence-angle computation (γ=1 reduces to SRSS).
Displacement-Controlled Pushover: Corrected the displacement-controlled pushover solver so the control degree of freedom advances by the prescribed increment, with adaptive step reduction on non-convergence. Pushover can also now track per-step hinge status (linear / yielded / crushed) for a group of hinges.
Weight-Only Members Shown During Staging: Members that contribute weight but no stiffness at a construction stage now render ghosted (25% opacity) during stage playback instead of disappearing, so you can see the self-weight being applied.
Height-Varying Mesh Thickness: FE mesh surfaces can now vary station-dependent thickness by elevation or transverse direction (e.g. a battered retaining-wall stem), not only along the alignment.
Mesh Elevation Field: FE meshes can drape node elevations onto a surface/elevation field, including a gridline-aware path for meshing between lines.
Targeted Node Merging: Mesh nodes can now be merged into a specific tagged group rather than the globally nearest point.
End-Release Condensation Fix: Fixed a crash and unstable/incorrect results when analyzing elements with end releases, and corrected the self-weight fixed-end forces for released members.
Composite Stress Graph Fix: Fixed the composite-section stress readout when a row emits a variable number of stress points.
Tendon Load Distribution Fix: Tendon loads now distribute over the correct FE group nodes.
FEA User Interface
Analysis Results Excel Export: New "Analysis Results" export (Analytical Model → Excel) lets you pick Result Types, Cases, and Elements, choose an envelope (None/Max/Min/Fx–Mz), Stage Reporting (Cumulative/Incremental), and a Load Type filter, with a live sheet/row-count estimate. Produces a formatted, branded workbook with an index sheet (hyperlink navigation), frozen headers, and interleaved Min/Max rows for combinations and live loads.
Applied Strain Loads Table: New "Applied Strain Loads (Last Run)" subsheet showing the equivalent fixed-end forces from lack-of-fit strains, per load, in display units.
FEA Result Spreadsheet Fixes: Corrected the eigenvalue / response-spectrum and pushover step displays in the FEA Result spreadsheet.
Design Memory Limit: New "Design Memory Limit…" dialog to set the design result-extraction memory ceiling (persisted locally), showing detected heap and a warning that recommends the desktop app for large models.
3D Rendering & Measurement
Faster FEA View + AutoCAD-Style Selection: Eliminates filter/selection freezes on large FE models and adds AutoCAD-style window (left-to-right) and crossing (right-to-left) rubber-band selection.
3D Element Name Search: Type-ahead search box to find an FE element by name and select + zoom to it in the 3D view.
3D-to-Spreadsheet Stall Fix: Removed a multi-second stall that occurred when clicking a 3D object into the spreadsheet tree.
Section Analysis
Unified Rebar & Tendon Spreadsheets: New per-section spreadsheets list every rebar and tendon layout in one editable grid (profile, material, counts, spacing, reference edge, radius, angles, force, tensioning, debonding, position), with two-way sync to the section canvas.
Section First-Moment Functions: New
sectionQx/sectionQyParamML functions expose the first moment of area for code-check formulas (e.g. web principal-tension checks).
Verification
Go To Offending Cell: Each validation issue now renders as a card with a GO TO link that opens the spreadsheet, switches to the right category tab, and selects the exact row/column.
Inline Test Progress: The Tests screen now shows per-item progress inline instead of stacked cards.
Verification Runner Reliability: The verification/test runner uses an app-parity memory model, fixes a per-batch memory leak, and recovers from a stalled worker pool instead of hanging.
Alignment
Unsaved-Changes Prompt: Closing the Alignment Editor (Cancel, X, or ESC) with unsaved edits now prompts Save / Discard / Keep Editing instead of silently losing changes.
Vertical Alignment (Warp) Fix: Warp-ruled volumes now follow the alignment's vertical profile instead of a straight-line segment.
Duplicate Point Fix: Avoids duplicate points when projecting onto an alignment.
Import/Export
Tekla Structures Native Parts Export: Export a model to Tekla Structures with native geometry — plate girders export as native Lofted Plates, OpenBrIM materials map to Tekla catalog names, and source colors map to Tekla classes so parts show distinct colors. Includes tub-girder multi-plate export and diaphragm manhole cutouts, with correct position/orientation, vertical column rotation, and centroid anchoring. After export, the app automatically opens the OBrIMTekla Importer quick-guide.
DXF/DGN Export for Document CAD Objects: New export button to save a document's CAD objects out to DXF/DGN.
DGN Mesh-Only Object Recovery: Smart-solid DGN export no longer silently drops objects built as surface groups (e.g. foundations) — a second pass emits them as mesh so nothing disappears from the exported file.
IFC Quantities Fix: Fixed material and section name export when using the IFC "include quantities" option.
Section Import Dropdown Fix: Fixed a bug in the "Add Shape…" section-import dialog where changing a dropdown wrote the value to the wrong parameter.
ParamML
Live-Syncing Library Inputs: Read-only computed inputs flagged
SyncFromLibnow re-sync from the library template on every load/refresh, so they no longer go stale when the library expression changes.New Functions:
triangulatePolygon3D(3D polygon triangulation),convexhull,elevationfield(sample a Z elevation field),linerefine, andsplitpolylineat{x,y,z,length,fraction}(split a polyline at a coordinate/length/fraction).startswith/endswithFix: These now return no-match (instead of misbehaving) when given a non-string subject, so filter/lambda expressions evaluate correctly.bufferPolyline/rangelistFixes: CorrectedbufferPolylineendpoint handling and arangeliststation-dependency leak.
User Interface
Project Settings Popup: Replaced the on-canvas Params/Objects explorer buttons with a Project Settings popup.
Spreadsheet Decimal Precision: Numeric spreadsheet cells now respect the configured decimal-place / display-precision setting.
Modal Dropdown Clipping Fix: Select-object and reference dropdowns inside dialogs are no longer clipped by the dialog edge.
New-Project Screen Polish: Template previews fit without cropping, folders are visually distinguished in the project list, duplicate "Modified" dates were removed, and OpenBrIM template cards hide internal object name/author.
Accurate Version Label: The version shown in the top bar is read from the actual shipped build so it can't lag behind a deploy.
Documents View Cleanup: Hid the compile toggle controls in the Documents view where they don't apply.
Project Management
Search Filter Preserved on Sort: Sorting the projects list no longer clears the active search filter.
Workspace-Mandated MFA: Workspace admins can now require multi-factor authentication — new users must enroll a second factor at first login, enforcement covers all password endpoints, and the admin Users list shows per-user MFA state (On / Off / Required).
Performance
Faster Spreadsheet Mass-Edits: Range/mass edits are batched so the object map isn't rebuilt per row, removing a large slowdown on big edits.
Memory-Safe Live-Load Results: Live-load surface stress/displacement results use chunked warm-up to bound peak memory (fixing out-of-memory on dense live-load models), cache envelopes to avoid recomputation, and keep the contour stable during zoom.
Design-Report Memory Leak Fix: Reopening the same design report no longer leaks memory each time.
FE Result Cache Relief: Under memory pressure the FE result cache now sheds its oldest entries to reduce crashes on large models.
Desktop App
Software Update Button: The desktop app now checks for updates on launch and periodically, downloads in the background, and offers a "Restart now" prompt to install — with a manual check button in the About window.
Exports Revealed in File Manager: User-initiated exports now open/reveal the saved file in the OS file manager, plus a "File → Open exports folder" menu item.
v3.260407
Finite Element Analysis
Composite Section Weight: Exact weight-per-length calculation for composite sections in FELine elements, improving self-weight accuracy for mixed-material members.
Composite Section ParamML Functions: New
compositeSectionfamily of ParamML functions for querying composite section properties.FE Mesh Deduplication:
DeduplicateMeshis now enabled by default for remote mesh operations.
FEA User Interface
6x6 Equivalent Stiffness Stage Switching: The 6x6 Equivalent Stiffness spreadsheet now dynamically updates when the active stage/case changes, without needing to reopen the sub-sheet.
Global Load Point List & 3D Picking: SurfaceLoad, LineLoad, and PointLoad spreadsheets now support editable point lists with "Select Polygon/Polyline/Point (3D)" cell actions for picking FE nodes directly in the 3D view.
FEGroup Mass Paste Fix: Fixed FEGroup View/Edit mass paste only adding one row.
FEA Spreadsheet N/A Fields: Inapplicable fields (direction, coefficients, section-at-end) now correctly show N/A based on element and load type context.
Verification
Auto-Naming with Result Type: Verification items now auto-generate descriptive names including incremental/cumulative and min/max context (e.g., "Verify Incremental Results SubStrStage.STAGE at Node...").
Section Analysis
Concrete Stress-Strain Model Fix: Fixed interaction analysis material lookup to scan strip segments for the correct concrete material instead of assuming the first segment, fixing steel-cased concrete sections.
Gross Area Performance: Fixed eager
GetGrossArea()computation on everyAggetter call and resolved gross area memory handling issues.
3D Rendering & Measurement
Extended Measurement Tool (6 Modes): New measurement tool with Point-to-Point, Polyline, Edge, Point-to-Face, Face-to-Face, and Angle modes. Includes alignment selector, face/edge snapping, results panel with unit conversion, and GCS coordinates.
Elevation Profile Clipping: New Plan view clipping mode that follows the alignment's vertical elevation profile with adjustable offset, using a 2D height map texture for shader-based clipping.
Window Selection Fix: Hidden elements are now excluded from window selection.
Pick Nodes Fix: Fixed Pick Nodes selection when the 3D model is active by hiding non-FEA instances during FEA-only pick sessions.
Cross-Slope Rendering Fix: Added unified break fallback to ForceSynchronization for cross-slope rendering artifacts.
Alignment
Alignment Editor Redesign: Extracted Alignment Editor to a dedicated module with a new read-only Station column in the Horizontal spreadsheet, multi-row delete support, and segment delete action for Transverse data.
Duplicate Point Removal: Alignment lines now automatically remove duplicate points.
GCS Coordinate Translation: Stabilized alignment coordinate translation under active Geographic Coordinate System, scoped to projection and export operations.
Map Tile Fix: Restored sub-tile centering in MapTile to correct lat/lng positioning.
Import/Export
DGN Additional Properties Report: New cell action for 3D DGN exports showing all objects with their DGN properties, grouped by element, with copy-to-clipboard support and conflict validation.
DGN Text Style Fix: Fixed null
DgnTextStyle.GetSettingserrors in AddNote, TextString, and AddDimensionLine.DGN Server Processing Fix: Suppressed "No WorkSet Alert" dialog blocking server-side DGN processing.
DGN Service Health Monitoring: Added health monitoring with Slack alerts for the DGN MicroStation service, including external health ping to detect process crashes.
Performance
FEA Compilation Optimization: Skip SetParams for FEMesh-generated objects, cache section lookups per station index, pre-filter sections by 3DOnly flag, and restructure non-prismatic section assignment.
Bounding Box Pre-Filtering: Added bounding box pre-filtering for LineDist mesh region checks.
Cache Optimization: Optimized Cache GetCtx/PutCtx with bundled entries and memoized keys.
Reference Project Caching: Improved reference project caching with in-memory cache and timestamp validation.
Model Deserialization: Deferred slow model deserialization to avoid UI blocking.
Memory Leak Fixes: Fixed memory leaks in notification system and jQuery dialog closures (756MB → 160MB reduction).
Compilation & Rendering: Optimized PML tree search with cached parent weight maps, added StaticGuard for early removal of guarded objects during CloneInto, and skipped Document children during rendering compilation.
ParamML
pairwiseFunction: New array function for pairwise element processing.GetArrayDimensionUtility: New utility for detecting array dimensionality, with 3D point array support inGetObjPoints.Result Extraction Enhancements: Added NegExt, PosExt, NegGlobal, and PosGlobal to result extraction pattern matching, with dynamic suffix combination generation.
v3.260227
Finite Element Analysis
Binary Export/Import for FEA Results: Export and import FEA analysis results to transfer models with completed analysis to another computer. Since results are stored locally in browser IndexedDB rather than the cloud, this feature enables sharing analysis results across machines.
6x6 Equivalent Stiffness Matrix: Added comprehensive equivalent stiffness matrix calculation with flexibility matrix reporting (unaveraged and averaged).
Auto-detect Floor Stiffness: Automatic detection of floor stiffness for softening curves with improved stiffness editor UI.
Spring Activation Displacements: New boolean property to bypass pre-activation displacement subtraction for verifying activation-aware displacement logic.
Spring Force Recovery Fix: Fixed spring force recovery to consider displacements after element activation and zero out previous force for springs that just became active.
Nonlinear Curve Sorting Fix: Sort nonlinear curves by displacement instead of force to handle user input errors gracefully.
Node Merge Priority: Prioritize keeping nodes with 6x6 stiffness matrix during same-location merge operations.
Code Editor
Enhanced CORE Object IntelliSense: Added inline parameter suggestions and example children for improved code completion experience.
Template Params Fix: Fixed IntelliSense to get params from template object correctly.
3D Rendering
Cross-Slope Rendering Fix: Resolved rendering artifacts in deck surfaces with cross-slope geometry.
Performance
xxHash for Geometry Cache: Use xxHash for geometry cache keys for faster lookups.
Faster Stage Filtering: Speed up constructed-only stage filtering in FEA.
JsParser Optimization: Optimized JsParser.Execute with property caching and frequency ordering.
Compilation Performance: Faster compilation with fast-path and O(1) lookups.
GetIdentifierValue Optimization: Skip GetObjA when param found at distance 0 for faster parameter resolution.
Reduced GC Pressure: Reuse Float64Array buffer in Rotate3d operations.
ParamML
insertintoFunction: New JsParser array function with dual-lambda support for advanced array operations.trimPolylineFunction: New function to trim polylines with support for negative offset to extend polylines.Z-Coordinate Interpolation: Added z-coordinate interpolation for XY plane intersections.
Alignment Projection Enhancements: Added refinement and includeControlStations arguments to alignProjection function.
US Survey Foot Support: Added US Survey Foot (ftUS) unit string representation to ToStrLength.
Import/Export
DGN Export Error Handling: Improved DGN Writer error handling with client-side validation for custom properties.
ExtObj Validation: Improved validation for missing object references in external objects.
User Interface
Isolate (Picked) Action: New spreadsheet cell action for object reference columns to quickly isolate referenced objects.
Spreadsheet Row Version Fix: Fixed project object version when adding new spreadsheet rows.
Project Management
Guard/Reference Ordering Fix: Fixed operation ordering to remove refs before guarding and unguard before adding refs.
Guarded Objects Fix: Fixed guarded objects being incorrectly added to references.
ParamDesc Migration: Added ParamDesc support to ParamValueSet for version migration.
Geometry
Polygon-Line Intersection: Implemented polygon-line intersection handling with optimized line filtering logic.
Line Projection Optimization: Reduced line projection to a single point for constraint points array.
v3.260204
DGN Seed File Configuration
Custom Seed File Support: You can now upload and assign your own MicroStation seed files for DGN export, giving you control over levels and line styles in the exported DGN. See DGN Seed File Configuration for details.
Finite Element Analysis
Partial Completion Handling: Nonlinear FEA analysis now supports partial completion, preserving results from completed load steps when analysis is interrupted or fails to converge.
Cancel Confirmation Dialog: Added a confirmation dialog when canceling a running FEA analysis to prevent accidental interruptions.
Download Log Button: Added a download log button to the analysis completion and FEA logs dialog.
Auto-Scroll Resume: Added a floating button to resume auto-scroll in the FEA log textarea when the user manually scrolls.
Spring Gap Handling: Fixed penalty stiffness calculation for springs with gaps.
Section Analysis
Phi Factor Improvement: Improved phi factor interpolation in the interaction diagram transition zone.
Alignment and 3D Rendering
COG Support in Alignment: Enhanced
alignLinefunction with center of gravity (COG) support and configurable alignment rules.Skewed Station Solver: Added skewed station solver with intersection detection for improved 3D rendering of skewed structures.
Control Locations: Enhanced alignment control location management and line splitting functions.
Sections
Custom Variation Paths: Added custom variation path support for non-prismatic sections, enabling more flexible section transitions.
Station-Dependent Shape Coordinates: The
sectionShapeCoordsfunction is now station-dependent, returning shape coordinates that vary along the member length.Circle Section Support: Circle-type sections are now supported for station-dependent section generation.
ParamML
ClosestPointOnPolylineFunction: New ParamML function to find the closest point on a polyline from a given location.volume()Surface3D Support: Thevolume()function now supports Surface3D geometry types.formatstationFunction: NewFormatStationutility andformatstationParamML function for formatting station values.makestadepExpansion: Themakestadepfunction has been expanded with additional capabilities.Gross Area Fix: Fixed
RebarCircularLayoutbeing incorrectly included in gross area calculation.
Import/Export
LandXML Import: Improved azimuth calculation and added multi-file support for LandXML imports. Fixed curve
StartAzimuthdirection handling.LARSA4D Import: Fixed sanitization of illegal characters in names during LARSA4D import.
CSi Export: Added support for exporting FE groups to CSi Link format.
IFC Fixes: Various bug fixes for IFC export robustness.
User Interface
Work Point Picking: Introduced Work Point picking feature with parametric and boundary point support for precise point selection.
Delete Objects UX: Improved delete objects experience with progress feedback for large deletion operations.
Branch Search: Added search box to the branch UI for finding objects.
Spreadsheet Fix: Fixed spreadsheet cell staying active when clicking cell actions or scrolling.
TypeParamSelect: Added TypeParamSelect cell action for ParamInterface spreadsheets, enabling type-based parameter selection.
Project Management
GCS Sync: Projects now automatically sync their Geographic Coordinate System (GCS) from the source project if the local project doesn't have one defined.
Project Duplication Fix: Fixed project duplication issues caused by
PopulateExtendsrace condition and IndexedDB caching.Project Folder UI: Improved project folder interface with better validation.
Performance
Faster Local Data Access: Optimized how the platform reads locally cached data (used extensively by FEA and project storage), resulting in up to 38x faster data retrieval.
Spreadsheet Copy: Improved large spreadsheet copy operations using time-based yielding to prevent UI freezes.
Expensive Parameters: Simplified and improved expensive parameter computation to require compiled project, with expression-based cache keys.
Last updated