You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Model: 2,547 elements (2,264 with geometry), 12 Revit categories, structural
Summary. The documented per-element path (element.getBimElement()) is fine for a handful
of elements but pathological for whole-model work. Reading the BIM tables in bulk is ~3 orders
of magnitude faster.
Measured (2,264-element model, same machine):
// Per element — the "obvious" pathawaitPromise.all(els.slice(0,100).map(e=>e.getBimElement()));// >30s, timed out ❌// Bulk — via the VimDocument tablesawaitPromise.all([vim.bim.element.getAllName(),vim.bim.element.getAllCategoryIndex(),vim.bim.element.getAllFamilyName(),vim.bim.element.getAllId(),vim.bim.category.getAllName(),]);// ~13ms for the whole model ✅// map with el.element (BIM index): names[el.element], catNames[catIdx[el.element]], …
Asks.
Document the bulk vim.bim.<table>.getAll*() pattern as the recommended approach for
iterating many elements, and call out that getBimElement()/getBimParameters() are
per-element conveniences not meant for full-model loops.
Consider a batched vim.getBimElements(indices?) that resolves an array in one pass.
Activity