Skip to main content

revit-utils-extensions

Replace verbose Autodesk Revit *Utils static calls, static managers, and hand-written enum/id conversions with Nice3point.Revit.Extensions fluent extensions. USE FOR: any call to a SomeUtils.Operation(…) or any other static Revit API helper, any conversion or formatting of a Revit value, and any iteration of a Revit array, set, or map. DO NOT USE FOR: querying the model for elements (use revit-element-collector), or reading and writing element parameters (use revit-element-and-parameter-access).

跳到安装

来源信息

仓库
Nice3point/revit-skills
最近来源活动
2026年9月6日 12:40
检测到的 SKILL.md 语言
英语
星标
13
分支
3

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
8 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
revit-utils-extensions
description
Replace verbose Autodesk Revit *Utils static calls, static managers, and hand-written enum/id conversions with Nice3point.Revit.Extensions fluent extensions. USE FOR: any call to a SomeUtils.Operation(…) or any other static Revit API helper, any conversion or formatting of a Revit value, and any iteration of a Revit array, set, or map. DO NOT USE FOR: querying the model for elements (use revit-element-collector), or reading and writing element parameters (use revit-element-and-parameter-access).
license
MIT
# Revit Utils Extensions ## When to use - Reaching for any `SomeUtils.Operation()` 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. - Iterating a Revit array, set, or map, or looking a value up in one. ## When not to use - Finding a set of elements in the model — use `revit-element-collector`. - Reading or writing a parameter on an element already in hand — 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. ```csharp 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; do not hand-write the conversion: ```csharp 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; do not guess 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/collections-and-maps.md](references/collections-and-maps.md) — **Load when:** iterating a Revit array, set, or map, or looking a value up in a map. - [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 is not found, read the package [README](https://raw.githubusercontent.com/Nice3point/RevitExtensions/refs/heads/main/README.md). ## 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()`. | | 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. | | `solid.Faces.Cast<Face>()` | `solid.Faces.EnumerateValues()`. | | A `ForwardIterator()` loop to read map keys | `map.EnumerateEntries()` / `EnumerateKeys()` / `TryGetValue(key, out var value)`. | | Extension not found | The `Nice3point.Revit.Extensions` package is not referenced. |
在 GitHub 查看