pi-revit 0.2.12 → 0.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,230 +1,294 @@
1
- # Changelog
2
-
3
- All notable changes to pi-revit are documented here.
4
- Format follows [Keep a Changelog](https://keepachangelog.com/); version headers use
5
- `## [x.y.z] - YYYY-MM-DD` so tooling (and Pi's changelog parser format) can read them.
6
-
7
- Every published version gets an entry with **Added** / **Changed** / **Fixed** sections
8
- describing what the user will notice — not internal refactors.
9
-
10
- ## [0.2.12] - 2026-07-22
11
-
12
- ### Added
13
- - New tool `open_view`: activates a view or sheet in the Revit UI — the equivalent of
14
- double-clicking it in the Project Browser. Identify the target by `view_id` or by
15
- `name` (view name, sheet number like "A-101", or "number - name"). Uses Revit's
16
- queued `RequestViewChange`, which is explicitly legal from the bridge's ExternalEvent
17
- context; the activation completes the instant the call returns. Ends the
18
- "please double-click the sheet yourself" gap after sheet/view creation.
19
-
20
- Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
21
- restart Revit).
22
-
23
- ## [0.2.11] - 2026-07-22
24
-
25
- ### Fixed
26
- - `search_api_docs`: signature queries now accept .NET type names and qualified names —
27
- `Wall.Create(Document, Curve, ElementId, Boolean` and `...(System.String` match the
28
- rendered `bool` / `string`, and `(Autodesk.Revit.DB.Document` matches `Document`.
29
- Parameter types in the query are reduced exactly the way the index renders them
30
- (namespace stripped, CLR name → C# keyword, case-insensitive).
31
- - `search_api_docs`: Creation-factory calls resolve — `Document.Create.NewRoom(Level, UV`
32
- finds `Document.NewRoom`, and `Document.Create.NewFamilyInstance` finds the
33
- `ItemFactoryBase` overloads (factory members documented on a base class). A note in the
34
- result explains the rewrite. Applies only to the literal `Document.Create.` /
35
- `Application.Create.` prefixes; ordinary members like `Wall.Create` are untouched, and
36
- nonsense like `Document.Create.Banana` still honestly returns nothing.
37
-
38
- Both were observed live: pi stumbled on these five times across two modeling sessions.
39
- The benchmark gained six regression probes for them.
40
-
41
- Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
42
- restart Revit).
43
-
44
- ## [0.2.10] - 2026-07-22
45
-
46
- ### Fixed
47
- - `search_api_docs`: constructor overloads can now be targeted with the natural C#
48
- spelling — `FilteredElementCollector(Document` matches even though constructors are
49
- rendered as `new FilteredElementCollector(Document)`. Previously only the `new `-prefixed
50
- form matched (the same typography-cliff family as the 0.2.8 comma-spacing fix).
51
-
52
- ### Added
53
- - `scripts/benchmark-search-docs.py`: a reproducible ~630-query benchmark of
54
- `search_api_docs` scored against Autodesk's own RevitAPI.xml — exact-name recall,
55
- signature/spacing variants, hard syntax, namespace ambiguity, adversarial honesty
56
- controls, documentation fidelity, and latency percentiles. Run it against any Revit
57
- version with the bridge loaded. Measured on Revit 2025 at 0.2.9: 100% recall / 98.8%
58
- top-1 on exact names, 100% spacing-variant agreement, 0 false positives across 99
59
- adversarial mutations, 50/50 correct parameter docs, p50 8 ms.
60
-
61
- Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
62
- restart Revit).
63
-
64
- ## [0.2.9] - 2026-07-21
65
-
66
- ### Added
67
- - Self-healing tool discovery: when pi starts before Revit, the extension now keeps
68
- retrying tool discovery in the background (every 15s) and also re-discovers on a
69
- successful `ping` — no more sessions stuck with only `ping` registered until a fresh
70
- pi start. When tools arrive mid-session, `ping`'s result says so.
71
- - `set_parameters` and `execute_csharp` accept an optional `expected_document` (the model
72
- title): if the active document differs — e.g. the user switched models mid-session —
73
- the write fails cleanly instead of landing in the wrong model.
74
- - `get_element_details.parameter_names` now also matches language-independent
75
- BuiltInParameter enum names (e.g. `ALL_MODEL_MARK`), so filtering works in non-English
76
- Revit UIs where display names are localized.
77
-
78
- ### Fixed
79
- - `get_element_details` no longer reports a misleading "0 params" when a
80
- `parameter_names` filter simply matched nothing — it now reports "N of M params
81
- matched parameter_names" so localization misses are visible. (This explains the
82
- earlier "0 params vs 38 params" reports: different filter arguments, not flaky reads.)
83
- - `get_elements`: a display-name filter rule in an **unscoped** query (no category /
84
- of_class) is no longer promoted to a pinned collector filter based on a 50-element
85
- probe — it stays on the per-element post-scan path, so categories beyond the probe
86
- window can't be silently dropped when the same parameter name maps to different ids.
87
-
88
- ### Changed
89
- - SKILL.md: guidance on localized parameter names (prefer BuiltInParameter enum names)
90
- and on using `expected_document` for long sessions / multiple open models.
91
- - README: new "Safety model" section stating explicitly what the add-in enforces and
92
- that write-confirmation UX is a client-side decision.
93
-
94
- Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
95
- restart Revit).
96
-
97
- ## [0.2.8] - 2026-07-21
98
-
99
- ### Fixed
100
- - `search_api_docs`: overload-targeted queries no longer fail on comma spacing.
101
- `Wall.Create(Document,Curve` (no space) and `Wall.Create( Document, Curve` now match the
102
- same overloads as `Wall.Create(Document, Curve` — the query's spacing around commas and
103
- parentheses is normalized to the rendered signature style before matching.
104
-
105
- Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then restart
106
- Revit).
107
-
108
- ## [0.2.7] - 2026-07-21
109
-
110
- ### Added
111
- - Update announcements: after a pi-revit update, the next pi session shows a one-time
112
- "What's new in pi-revit" note listing the changelog entries for every version since the
113
- last one announced — the same mechanism pi uses for its own updates. The last-announced
114
- version is remembered in `%APPDATA%\pi-revit\state.json` (kept outside the package
115
- folder so npm updates can't erase it). Fresh installs stay silent.
116
-
117
- Extension-only change: no Revit add-in redeploy or Revit restart needed.
118
-
119
- ## [0.2.6] - 2026-07-20
120
-
121
- ### Fixed
122
- - Write transactions (`set_parameters`, `execute_csharp`, and the temporary-isolate
123
- branch of `manage_selection`) now register a failures preprocessor. Previously Revit
124
- handled commit failures interactively: warnings popped the transient toast and spammed
125
- the journal, and an error-severity failure showed the modal resolution dialog, blocking
126
- the bridge until a human clicked. Now warnings are auto-dismissed and reported back
127
- (`commitWarnings` in the result, e.g. duplicate Mark values), and errors roll the
128
- transaction back with the actual Revit failure text in the error message.
129
-
130
- ### Changed
131
- - `set_parameters` tool description tells the model to relay `commitWarnings` to the user.
132
-
133
- Requires redeploying the Revit add-in (`scripts\deploy.ps1` + Revit restart).
134
-
135
- ## [0.2.5] - 2026-07-20
136
-
137
- ### Fixed
138
- - `execute_csharp` dialog guard no longer answers every Revit popup with OK. On some
139
- dialogs OK is the destructive choice (e.g. "Delete Element(s)"), so a script could
140
- silently delete dimensions or constraints and still report success. Unrecognized
141
- dialogs are now answered dismissively (Cancel, then Close, then No; OK only as the
142
- last resort so Revit can never hang behind a popup), a small allowlist keeps OK for
143
- dialogs that are safe to confirm, and `suppressedDialogs` now reports which answer
144
- was given (e.g. `TaskDialog_… (answered Cancel)`).
145
-
146
- ### Changed
147
- - The `execute_csharp` tool description tells the model that confirmation prompts may be
148
- cancelled and to check `suppressedDialogs` when a result looks incomplete.
149
-
150
- Requires redeploying the Revit add-in (`scripts\deploy.ps1` + Revit restart) — `ping`
151
- warns on a version mismatch until then.
152
-
153
- ## [0.2.4] - 2026-07-20
154
-
155
- ### Added
156
- - This changelog. It ships inside the npm package and gets a `## [x.y.z]` entry with
157
- **Added / Changed / Fixed** sections for every release, so updates report what actually
158
- changed instead of just a version number.
159
-
160
- ## [0.2.3] - 2026-07-20
161
-
162
- ### Changed
163
- - `search_api_docs`: results with the same short name in different namespaces are now
164
- disambiguated with their full namespace, so `Category` vs internal schedule types
165
- can't be confused.
166
-
167
- ### Fixed
168
- - Removed a hardcoded example from the overload note that could mislead the model into
169
- copying a signature that didn't apply.
170
-
171
- ## [0.2.2] - 2026-07-20
172
-
173
- ### Added
174
- - `search_api_docs`: exception documentation ("Throws:") is now shown for matched members.
175
- - Overload-targeted queries: a query containing `(` matches against rendered signatures.
176
-
177
- ### Changed
178
- - Overloads now rank simplest-first (fewest parameters), so the common form appears on top.
179
-
180
- ## [0.2.1] - 2026-07-16
181
-
182
- ### Added
183
- - Extension/add-in version handshake: `ping` reports both versions and warns when the
184
- npm extension and the installed Revit add-in are out of sync (partial-update detection).
185
-
186
- ## [0.2.0] - 2026-07-15
187
-
188
- ### Changed
189
- - SKILL.md: documents the top-match inline docs behaviour and the automatic
190
- `Models\<title>\exports` output location so the agent uses them without prompting.
191
-
192
- ## [0.1.9] - 2026-07-15
193
-
194
- ### Added
195
- - `search_api_docs` indexes every Revit API enum and surfaces `<remarks>` documentation.
196
-
197
- ### Changed
198
- - The top match's full documentation is placed directly in the tool's text output
199
- (where model attention is strongest) instead of only in the structured payload.
200
-
201
- ## [0.1.8] - 2026-07-13
202
-
203
- ### Added
204
- - Automatic per-model output sorting: exports, captures, and scripts land under
205
- `Models\<model title>\` in the workspace, keyed to the source document.
206
-
207
- ## [0.1.7] - 2026-07-13
208
-
209
- ### Fixed
210
- - npm-install uninstall flow no longer blocks itself on its own installation folder.
211
-
212
- ## [0.1.6] - 2026-07-13
213
-
214
- ### Changed
215
- - The global launcher installs next to the user's permanent pi under npx.
216
-
217
- ## [0.1.5] - 2026-07-13
218
-
219
- ### Fixed
220
- - Uninstall of the npm-installed Pi package.
221
- - Workspace paths containing non-ASCII characters.
222
-
223
- First version published to npm.
224
-
225
- ## [0.1.0] - 2026-06-17
226
-
227
- Initial public release: Revit bridge add-in (Revit 2025/2026/2027) plus Pi extension with
228
- `ping`, `get_model_overview`, `get_elements`, `get_element_details`, `set_parameters`,
229
- `manage_selection`, `capture_view`, `export_documents`, `execute_csharp`, and
230
- `search_api_docs`.
1
+ # Changelog
2
+
3
+ All notable changes to pi-revit are documented here.
4
+ Format follows [Keep a Changelog](https://keepachangelog.com/); version headers use
5
+ `## [x.y.z] - YYYY-MM-DD` so tooling (and Pi's changelog parser format) can read them.
6
+
7
+ Every published version gets an entry with **Added** / **Changed** / **Fixed** sections
8
+ describing what the user will notice — not internal refactors.
9
+
10
+ ## [0.2.14] - 2026-08-21
11
+
12
+ ### Fixed
13
+ - `get_elements`: text filter rules now compare case-insensitively on the post-scan path,
14
+ matching Revit's own collector rules (which ignore case -- verified empirically). The
15
+ same string rule previously matched case-insensitively when it ran inside the collector
16
+ but case-sensitively when it fell back to the per-element scan, so merely scoping a
17
+ query could change its results.
18
+ - `search_api_docs`: queries in C# accessor spelling -- `Element.get_Parameter(BuiltInParameter)`,
19
+ `get_BoundingBox(View` -- now resolve to the documented property or indexer
20
+ (`Element.Parameter`, `Element.BoundingBox`), with a note explaining the rewrite. Members
21
+ documented with a literal `get_`/`set_` prefix still match directly; the rewrite is only
22
+ a fallback. Three benchmark probes added.
23
+
24
+ Also investigated and cleared, no change needed: `Element.BoundingBox` and
25
+ `LocationCurve.Curve` document null returns -- not exceptions -- for elements without
26
+ geometry, so the suspected one-bad-element batch failure in `get_element_details` does
27
+ not exist per the API contract.
28
+
29
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
30
+ restart Revit).
31
+
32
+ ## [0.2.13] - 2026-08-21
33
+
34
+ ### Fixed
35
+ - `get_elements`: a display-name filter rule that matches no parameter on any probed
36
+ in-scope element now carries an explicit WARNING in the result (content text and a
37
+ `warnings` payload field) instead of silently reporting 0 matches. The typical trap:
38
+ querying an English display name against a non-English UI, where the same parameter
39
+ carries a translated name -- the query looked valid and the honest answer was "unknown
40
+ parameter", not "0 matches". The warning points to the language-independent
41
+ BuiltInParameter enum name as the fix.
42
+ - `get_elements`: a filter value that does not fit the parameter's storage type now fails
43
+ the same way regardless of scoping. Previously the identical query reported a clear error
44
+ when `category`/`of_class` was set (the rule ran inside Revit's collector) but silently
45
+ returned zero matches when it was not (the rule fell back to the per-element scan).
46
+ - `execute_csharp`: a script that ran successfully but returned a value the result
47
+ serializer could not walk — a lazy sequence over a deleted element, a property that
48
+ throws — was rolled back and reported as "C# script threw". The script's changes now
49
+ commit, `returnValue` explains what happened, and `returnValueError` carries the detail.
50
+ - `capture_view`: every snapshot stayed on disk forever (measured on one machine: 138
51
+ files, 28 MB, going back 15 months). Captures now go to `%LOCALAPPDATA%\pi-revit\captures`
52
+ and each capture sweeps the ones older than 24 hours. The folder had to become a fixed
53
+ one: `Path.GetTempPath()` can return a fresh per-session directory, so files left by
54
+ earlier sessions were unreachable from the current one. The file just produced is
55
+ untouched, so the read tool still finds it.
56
+ - `export_documents`: the produced-file list compared pre-existing files against a wall
57
+ clock window, so an untouched file that merely happened to be recent was reported as
58
+ exported. Each file is now compared against its own pre-export timestamp.
59
+ - The bridge reclaims `bridge.json` when its owner goes away. With two Revits open the
60
+ newer one still owns the file, but closing it no longer leaves the older, still-running
61
+ bridge undiscoverable — and a stale entry left by a crashed Revit is replaced within 30s
62
+ instead of failing every call with "could not reach the Revit bridge".
63
+
64
+ ### Changed
65
+ - `scripts/deploy.ps1` replaces the add-in folder instead of copying over it, so files from
66
+ a previous release cannot linger next to the new ones. It reports clearly if Revit is
67
+ still running and holding the folder.
68
+ - Docs: `open_view` was missing from the README tool table; the 0.2.10-0.2.12 changelog
69
+ entries were dated a day after their actual release.
70
+
71
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
72
+ restart Revit).
73
+
74
+ ## [0.2.12] - 2026-07-21
75
+
76
+ ### Added
77
+ - New tool `open_view`: activates a view or sheet in the Revit UI — the equivalent of
78
+ double-clicking it in the Project Browser. Identify the target by `view_id` or by
79
+ `name` (view name, sheet number like "A-101", or "number - name"). Uses Revit's
80
+ queued `RequestViewChange`, which is explicitly legal from the bridge's ExternalEvent
81
+ context; the activation completes the instant the call returns. Ends the
82
+ "please double-click the sheet yourself" gap after sheet/view creation.
83
+
84
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
85
+ restart Revit).
86
+
87
+ ## [0.2.11] - 2026-07-21
88
+
89
+ ### Fixed
90
+ - `search_api_docs`: signature queries now accept .NET type names and qualified names —
91
+ `Wall.Create(Document, Curve, ElementId, Boolean` and `...(System.String` match the
92
+ rendered `bool` / `string`, and `(Autodesk.Revit.DB.Document` matches `Document`.
93
+ Parameter types in the query are reduced exactly the way the index renders them
94
+ (namespace stripped, CLR name → C# keyword, case-insensitive).
95
+ - `search_api_docs`: Creation-factory calls resolve — `Document.Create.NewRoom(Level, UV`
96
+ finds `Document.NewRoom`, and `Document.Create.NewFamilyInstance` finds the
97
+ `ItemFactoryBase` overloads (factory members documented on a base class). A note in the
98
+ result explains the rewrite. Applies only to the literal `Document.Create.` /
99
+ `Application.Create.` prefixes; ordinary members like `Wall.Create` are untouched, and
100
+ nonsense like `Document.Create.Banana` still honestly returns nothing.
101
+
102
+ Both were observed live: pi stumbled on these five times across two modeling sessions.
103
+ The benchmark gained six regression probes for them.
104
+
105
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
106
+ restart Revit).
107
+
108
+ ## [0.2.10] - 2026-07-21
109
+
110
+ ### Fixed
111
+ - `search_api_docs`: constructor overloads can now be targeted with the natural C#
112
+ spelling — `FilteredElementCollector(Document` matches even though constructors are
113
+ rendered as `new FilteredElementCollector(Document)`. Previously only the `new `-prefixed
114
+ form matched (the same typography-cliff family as the 0.2.8 comma-spacing fix).
115
+
116
+ ### Added
117
+ - `scripts/benchmark-search-docs.py`: a reproducible ~630-query benchmark of
118
+ `search_api_docs` scored against Autodesk's own RevitAPI.xml — exact-name recall,
119
+ signature/spacing variants, hard syntax, namespace ambiguity, adversarial honesty
120
+ controls, documentation fidelity, and latency percentiles. Run it against any Revit
121
+ version with the bridge loaded. Measured on Revit 2025 at 0.2.9: 100% recall / 98.8%
122
+ top-1 on exact names, 100% spacing-variant agreement, 0 false positives across 99
123
+ adversarial mutations, 50/50 correct parameter docs, p50 8 ms.
124
+
125
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
126
+ restart Revit).
127
+
128
+ ## [0.2.9] - 2026-07-21
129
+
130
+ ### Added
131
+ - Self-healing tool discovery: when pi starts before Revit, the extension now keeps
132
+ retrying tool discovery in the background (every 15s) and also re-discovers on a
133
+ successful `ping` — no more sessions stuck with only `ping` registered until a fresh
134
+ pi start. When tools arrive mid-session, `ping`'s result says so.
135
+ - `set_parameters` and `execute_csharp` accept an optional `expected_document` (the model
136
+ title): if the active document differs — e.g. the user switched models mid-session —
137
+ the write fails cleanly instead of landing in the wrong model.
138
+ - `get_element_details.parameter_names` now also matches language-independent
139
+ BuiltInParameter enum names (e.g. `ALL_MODEL_MARK`), so filtering works in non-English
140
+ Revit UIs where display names are localized.
141
+
142
+ ### Fixed
143
+ - `get_element_details` no longer reports a misleading "0 params" when a
144
+ `parameter_names` filter simply matched nothing — it now reports "N of M params
145
+ matched parameter_names" so localization misses are visible. (This explains the
146
+ earlier "0 params vs 38 params" reports: different filter arguments, not flaky reads.)
147
+ - `get_elements`: a display-name filter rule in an **unscoped** query (no category /
148
+ of_class) is no longer promoted to a pinned collector filter based on a 50-element
149
+ probe — it stays on the per-element post-scan path, so categories beyond the probe
150
+ window can't be silently dropped when the same parameter name maps to different ids.
151
+
152
+ ### Changed
153
+ - SKILL.md: guidance on localized parameter names (prefer BuiltInParameter enum names)
154
+ and on using `expected_document` for long sessions / multiple open models.
155
+ - README: new "Safety model" section stating explicitly what the add-in enforces and
156
+ that write-confirmation UX is a client-side decision.
157
+
158
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then
159
+ restart Revit).
160
+
161
+ ## [0.2.8] - 2026-07-21
162
+
163
+ ### Fixed
164
+ - `search_api_docs`: overload-targeted queries no longer fail on comma spacing.
165
+ `Wall.Create(Document,Curve` (no space) and `Wall.Create( Document, Curve` now match the
166
+ same overloads as `Wall.Create(Document, Curve` — the query's spacing around commas and
167
+ parentheses is normalized to the rendered signature style before matching.
168
+
169
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` with Revit closed, then restart
170
+ Revit).
171
+
172
+ ## [0.2.7] - 2026-07-21
173
+
174
+ ### Added
175
+ - Update announcements: after a pi-revit update, the next pi session shows a one-time
176
+ "What's new in pi-revit" note listing the changelog entries for every version since the
177
+ last one announced — the same mechanism pi uses for its own updates. The last-announced
178
+ version is remembered in `%APPDATA%\pi-revit\state.json` (kept outside the package
179
+ folder so npm updates can't erase it). Fresh installs stay silent.
180
+
181
+ Extension-only change: no Revit add-in redeploy or Revit restart needed.
182
+
183
+ ## [0.2.6] - 2026-07-20
184
+
185
+ ### Fixed
186
+ - Write transactions (`set_parameters`, `execute_csharp`, and the temporary-isolate
187
+ branch of `manage_selection`) now register a failures preprocessor. Previously Revit
188
+ handled commit failures interactively: warnings popped the transient toast and spammed
189
+ the journal, and an error-severity failure showed the modal resolution dialog, blocking
190
+ the bridge until a human clicked. Now warnings are auto-dismissed and reported back
191
+ (`commitWarnings` in the result, e.g. duplicate Mark values), and errors roll the
192
+ transaction back with the actual Revit failure text in the error message.
193
+
194
+ ### Changed
195
+ - `set_parameters` tool description tells the model to relay `commitWarnings` to the user.
196
+
197
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` + Revit restart).
198
+
199
+ ## [0.2.5] - 2026-07-20
200
+
201
+ ### Fixed
202
+ - `execute_csharp` dialog guard no longer answers every Revit popup with OK. On some
203
+ dialogs OK is the destructive choice (e.g. "Delete Element(s)"), so a script could
204
+ silently delete dimensions or constraints and still report success. Unrecognized
205
+ dialogs are now answered dismissively (Cancel, then Close, then No; OK only as the
206
+ last resort so Revit can never hang behind a popup), a small allowlist keeps OK for
207
+ dialogs that are safe to confirm, and `suppressedDialogs` now reports which answer
208
+ was given (e.g. `TaskDialog_… (answered Cancel)`).
209
+
210
+ ### Changed
211
+ - The `execute_csharp` tool description tells the model that confirmation prompts may be
212
+ cancelled and to check `suppressedDialogs` when a result looks incomplete.
213
+
214
+ Requires redeploying the Revit add-in (`scripts\deploy.ps1` + Revit restart) — `ping`
215
+ warns on a version mismatch until then.
216
+
217
+ ## [0.2.4] - 2026-07-20
218
+
219
+ ### Added
220
+ - This changelog. It ships inside the npm package and gets a `## [x.y.z]` entry with
221
+ **Added / Changed / Fixed** sections for every release, so updates report what actually
222
+ changed instead of just a version number.
223
+
224
+ ## [0.2.3] - 2026-07-20
225
+
226
+ ### Changed
227
+ - `search_api_docs`: results with the same short name in different namespaces are now
228
+ disambiguated with their full namespace, so `Category` vs internal schedule types
229
+ can't be confused.
230
+
231
+ ### Fixed
232
+ - Removed a hardcoded example from the overload note that could mislead the model into
233
+ copying a signature that didn't apply.
234
+
235
+ ## [0.2.2] - 2026-07-20
236
+
237
+ ### Added
238
+ - `search_api_docs`: exception documentation ("Throws:") is now shown for matched members.
239
+ - Overload-targeted queries: a query containing `(` matches against rendered signatures.
240
+
241
+ ### Changed
242
+ - Overloads now rank simplest-first (fewest parameters), so the common form appears on top.
243
+
244
+ ## [0.2.1] - 2026-07-16
245
+
246
+ ### Added
247
+ - Extension/add-in version handshake: `ping` reports both versions and warns when the
248
+ npm extension and the installed Revit add-in are out of sync (partial-update detection).
249
+
250
+ ## [0.2.0] - 2026-07-15
251
+
252
+ ### Changed
253
+ - SKILL.md: documents the top-match inline docs behaviour and the automatic
254
+ `Models\<title>\exports` output location so the agent uses them without prompting.
255
+
256
+ ## [0.1.9] - 2026-07-15
257
+
258
+ ### Added
259
+ - `search_api_docs` indexes every Revit API enum and surfaces `<remarks>` documentation.
260
+
261
+ ### Changed
262
+ - The top match's full documentation is placed directly in the tool's text output
263
+ (where model attention is strongest) instead of only in the structured payload.
264
+
265
+ ## [0.1.8] - 2026-07-13
266
+
267
+ ### Added
268
+ - Automatic per-model output sorting: exports, captures, and scripts land under
269
+ `Models\<model title>\` in the workspace, keyed to the source document.
270
+
271
+ ## [0.1.7] - 2026-07-13
272
+
273
+ ### Fixed
274
+ - npm-install uninstall flow no longer blocks itself on its own installation folder.
275
+
276
+ ## [0.1.6] - 2026-07-13
277
+
278
+ ### Changed
279
+ - The global launcher installs next to the user's permanent pi under npx.
280
+
281
+ ## [0.1.5] - 2026-07-13
282
+
283
+ ### Fixed
284
+ - Uninstall of the npm-installed Pi package.
285
+ - Workspace paths containing non-ASCII characters.
286
+
287
+ First version published to npm.
288
+
289
+ ## [0.1.0] - 2026-06-17
290
+
291
+ Initial public release: Revit bridge add-in (Revit 2025/2026/2027) plus Pi extension with
292
+ `ping`, `get_model_overview`, `get_elements`, `get_element_details`, `set_parameters`,
293
+ `manage_selection`, `capture_view`, `export_documents`, `execute_csharp`, and
294
+ `search_api_docs`.
package/README.md CHANGED
@@ -160,6 +160,7 @@ Plain `pi` from any folder also works; `pi-revit` just adds the right working fo
160
160
  | `get_element_details` | Parameter values, location, bounding box, materials per element |
161
161
  | `get_element_types` | Element types / family symbols, optional placed-instance counts |
162
162
  | `manage_selection` | Get/set/clear the selection, zoom, temporary isolate |
163
+ | `open_view` | Activate a view or sheet in the Revit UI (like double-clicking it in the browser) |
163
164
  | `set_parameters` | Bulk parameter writes + rename anything (one transaction per batch) |
164
165
  | `search_api_docs` | Search the offline Revit API docs (works with no document open) |
165
166
  | `execute_csharp` | Run a C# script in one auto-managed transaction — the escape hatch |
@@ -177,7 +178,8 @@ Plain `pi` from any folder also works; `pi-revit` just adds the right working fo
177
178
  - The add-in multi-targets .NET 8 (Revit 2025/2026) and .NET 10 (Revit 2027); `deploy.ps1`
178
179
  auto-detects the Revit versions you have installed and builds only the matching framework(s),
179
180
  so you only need the SDK for the Revit you run. Verified on Revit 2025 and 2027.
180
- - **One Revit instance at a time** is discoverable (last started wins).
181
+ - **One Revit instance at a time** is discoverable (last started wins). When that instance
182
+ closes or crashes, another one that is still running takes the slot over within 30s.
181
183
  - A tool call that outlives its timeout is abandoned client-side but may still complete inside
182
184
  Revit — verify model state before re-issuing a write.
183
185
  - Long-running scripts cannot be interrupted mid-execution (Revit's API is single-threaded);
package/bin/pi-revit.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
  const { spawnSync } = require("node:child_process");
3
3
  const fs = require("node:fs");
4
4
  const path = require("node:path");