Skip to content

2027.0.3

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Jul 11:01

On-demand member evaluation

Earlier versions evaluated every member as soon as you opened the RevitLookup window.
That was risky, because RevitLookup would call terminal methods and methods that modify the object without asking, and for large objects you had to wait while hundreds of slow calls ran.
Methods that return void could not be executed at all.
You could see them in the list, but RevitLookup had no way to run them, so you could never invoke one or confirm it worked.

Evaluation now happens on demand #298.

When an object opens, RevitLookup evaluates only the members it considers safe to call, now it's members from System and Autodesk.Revit namespaces.

Everything else is deferred until you ask to evaluate. Opening even heavy objects stays fast, and you decide which expensive or model-changing members actually run #239.

Methods that return void are now runnable too, handled as deferred members like everything else, so you can finally invoke View.Print or similar methods.

To evaluate a deferred member, two new commands were added to the row context menu:

  • Evaluate (F8) runs the member.

    image
  • Evaluate with transaction (Alt + F8) runs the member inside a Revit transaction, which some members require in order to execute. Any changes the member makes are committed to the document.

    image

If you hit a member that should be evaluated automatically, or one that should not, please report it in the Discussions for this release.

Readable value states

The values table used to render everything as plain text.
A member that throws an Exception showed a red row spanning the whole width, which was easy to misread and looked broken for anyone running a red system accent color, while special states like "<null>" were just more text that blended in with real values.
Each state now has its own icon and label, so you can tell at a glance what a row actually is:

  • Awaiting. A deferred member that has not been evaluated yet.
  • No return value. A void method that has been successfully evaluated.
  • Disabled. A member whose evaluation is permanently disabled.
  • Unsupported. A member the engine cannot evaluate (the overload is not supported, for example).
  • Exception. A member that threw, marked with an error icon and the message instead of a full red row.
  • Null reference. A null reference value.
  • Empty string. A string with zero length.

    image

Improvements

  • Colors shown as HEX. Color values are now displayed as #FF7F00 instead of RGB: 255 127 0.
  • Smoother mesh visualization. Mesh vertex normals are now precomputed in a single pass and curve loop vertices are de-duplicated.
  • Faster settings filtering. The settings filter and configuration lookup were reworked to avoid recompiling expressions and linear scans.
  • Updated LookupEngine with the new evaluation pipeline and improved performance.

Documentation

  • Wiki sources moved into the repository. Wiki is available for public editing with your pull requests. The public wiki is automatically synchronized with the repository.

Full changelog: 2027.0.2...2027.0.3