AgentStack
SKILL verified MIT Self-run

Revit Utils Extensions

skill-nice3point-revit-skills-revit-utils-extensions · by Nice3point

>

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-nice3point-revit-skills-revit-utils-extensions

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Revit Utils Extensions? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Revit Utils Extensions

Nice3point.Revit.Extensions turns the Revit API into fluent, receiver-first calls of two kinds. Facades re-express verbose *Utils static classes and *Manager getters as a call on the natural receiver — same behavior, read more clearly. Replace the raw call with the facade. Conveniences add what the raw API has no single call for — enum/id/color converters, unit and numeric helpers, safe casts. Use them directly; there is nothing to replace. A missing member means the Nice3point.Revit.Extensions package is not referenced.

When to use

  • Reaching for any SomeUtils.Operation(document, id, …) static call or a verbose *Manager getter.
  • Converting a BuiltInParameter/BuiltInCategory/ForgeTypeId, formatting or parsing a unit, or reading a color as hex or RGB.

When not to use

  • Finding a set of elements in the model — use revit-element-collector.
  • Reading or writing a parameter on an element you already hold — use revit-element-and-parameter-access.

Recognize and replace

When the raw call is SomeUtils.Operation(document, element.Id, …) or a long getter, the facade is a method on the natural receiver.

ElementTransformUtils.MoveElement(document, element.Id, new XYZ(1, 1, 0)); // raw
element.Move(1, 1, 0); // facade

LabelUtils.GetLabelFor(BuiltInParameter.WALL_TOP_OFFSET); // raw
BuiltInParameter.WALL_TOP_OFFSET.ToLabel(); // facade

UnitUtils.ConvertToInternalUnits(69, UnitTypeId.Millimeters); // raw
69d.FromMillimeters(); // facade

SolidUtils.SplitVolumes(solid); // raw
solid.SplitVolumes(); // facade

Many members are conveniences with no raw equivalent — use them directly rather than hand-writing the conversion:

ElementId wallsId = BuiltInCategory.OST_Walls.ToElementId(); // enum -> id
Category category = BuiltInCategory.OST_Walls.ToCategory(document); // enum -> object
string hex = color.ToHex(); // Color -> "#RRGGBB"

References

Each reference lists its domain's extensions in full — member, purpose, and a grounded example on the real receiver — with the raw *Utils class named in each section heading. Load the one that matches the task instead of guessing a signature.

  • [references/transforms-and-modeling.md](references/transforms-and-modeling.md) — Load when: moving, copying, joining, or cutting elements, or working with families, hosts, parts, assemblies, adaptive components, or masses.
  • [references/geometry.md](references/geometry.md) — Load when: building or querying solids, bounding boxes, curves, points, tessellation, or view geometry.
  • [references/units-labels-forge.md](references/units-labels-forge.md) — Load when: converting or formatting units, producing user-visible labels, or inspecting a ForgeTypeId spec, unit, or parameter.
  • [references/converters-and-helpers.md](references/converters-and-helpers.md) — Load when: converting an enum to an id or object, reading a color representation, or reaching for numeric, string, cast, or application-capability helpers.
  • [references/document-and-storage.md](references/document-and-storage.md) — Load when: reading the document version, getting a manager, working with global or project parameters, filtering parameters, or using extensible storage.
  • [references/disciplines-and-interop.md](references/disciplines-and-interop.md) — Load when: working with MEP, structure, or analytical elements, or with model paths, worksharing, coordination models, export, external references, or DirectContext3D.

A newer Extensions package may expose members not shown here. If the Utils wrapper not found, read the package README.

Validation

  • [ ] Raw *Utils static calls and *Manager getters are replaced by the receiver-first facade.
  • [ ] Behavior is unchanged — facades add no new logic.
  • [ ] Unit and label conversions use the extensions, not manual UnitUtils/LabelUtils calls.
  • [ ] Converters and helpers (ToElementId, ToHex, Round, …) replace hand-written equivalents.

Common Pitfalls

| Pitfall | Correct approach | |------------------------------------------------------|-----------------------------------------------------------------------------------| | ElementTransformUtils.MoveElement(document, id, v) | element.Move(x, y, z). | | LabelUtils.GetLabelFor(parameter) | parameter.ToLabel(). | | document.Format(spec, value, forEditing) | Format lives on Units: document.GetUnits().Format(spec, value, forEditing). | | Assuming a facade changes behavior | Facades only re-express the raw API; semantics match. | | Hand-writing an id, color, or unit converter | Use the built-in ToElementId/ToHex/FromMillimeters conveniences. | | Extension not found | The Nice3point.Revit.Extensions package is not referenced. |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.