Skip to main content

eleFront 5.4.0

[v5.4.0] - 2026-05-13

We've added some new components, primarily for dealing with complex trees, and some components for making it easier to work with file paths. Improvements for blocks: better handling of blocks defined in Worksessions, and more gracefully dealing with blocks with invalid geometry.

Added — New components

  • Inherit User String By Key — Copy user strings from a source object to a target by matching keys, including wildcard patterns. Also outputs the list of matched keys.
  • Set User String — More streamlined key/value setter than the full eleFront Attributes component.
  • Graft By Index — Graft items into new branches using indices from a parallel tree as the target branch index.
  • Graft Match — Graft a tree to match the structure of another
  • Duplicate Data — Duplicate items in a data tree; this is equivalent to the component from the legacy eleFront, and you can automatically upgrade from legacy to current, using the upgrader.
  • Construct File Path — Build file paths from component parts.
  • Select Folder — Attach a value list for a convenient folder selection. You can zoom in, to add inputs, and continue to add Value Lists, to make it easier to programmatically find the files you want.
  • Reload Block Definitions — For Linked Blocks, this component will automatically re-fetch the definition from the version saved on disk, and update the eleFront blocks, without having to refresh the definitions in your Rhino doc / Worksession.

Added — Enhancements to existing components

  • Get Current File now returns Grasshopper-side document info in addition to the Rhino doc.

Enhancements to Blocks:

  • Baking Worksession Blocks: If you have Block Definitions that are defined within a referenced file in a Worksession, then you try to bake new instances of that definition, they would previously not be saved in your document, because the definition itself was not in the document. Now, when you bake blocks with a reference definition, a new Block Definition is created in your Active document. This is similar to how Layers in a reference model get created fresh in the Active document when you bake.
  • Handling Blocks with Invalid Geometry: Previously, any invalid geometry in a block definition would cause Reference components to fail. Now, the component should continue to load and process, and provide feedback about which blocks were failing.
  • Get Block Info now has an option called "Get Full Definition Name". This is important when you are using blocks in a Worksession.
  • Insert Block should now successfully retrieve block definitions from Worksession files, if you provide the full name of the block.

For more information on these points, see the primer.

Fixed

  • Define Linked Blocks would miss hidden or locked objects
  • eleFront Attributes returned wrong values when BakeName was stripped — the output used the pre-filter key list rather than the filtered one.
  • Block loading is more robust — bad blocks no longer crash the component; errors now report the corresponding definition name and proceeds through the list.
  • Variable parameters no longer linger on canvas after a component collapses.

Performance

  • Some improvements to setting key/value pairs in eleFront Attributes.