{"_id":"pi-revit","_rev":"34-b90e9f035021f19d633946d03ea229da","name":"pi-revit","dist-tags":{"latest":"0.5.1"},"versions":{"0.1.0":{"name":"pi-revit","version":"0.1.0","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.0","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"dist":{"shasum":"b7eac8a310acde76ff2cdbafeb4e4785567516ec","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.0.tgz","fileCount":32,"integrity":"sha512-9nNH5cNknbkMEHBKswwUv9j0uoRAUiVjQC8xoQ23StQEuTx0YStalbsda0XltSPrS4kKy4xf42YWyKCQZU6MNQ==","signatures":[{"sig":"MEUCIBseafsI5ts91UO3mEYZZGZioTmk5DeWNbCX6v0PnwZrAiEAli0ilazGp784O2kNNfvl2XjPMKsp2eYD6ctxnNZSIgc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262933},"engines":{"node":">=20.3"},"gitHead":"f65d37bac06df826e2cedf2ba06aa4314b95832d","_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit through a headless bridge add-in.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.0_1781700136286_0.918621875814593","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"pi-revit","version":"0.1.1","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.1","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"dist":{"shasum":"69a91b5ee0a9883be50bb42218ff634f91a940df","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.1.tgz","fileCount":32,"integrity":"sha512-rk8IaEXi+66nqQbFbYqjnSQPYpOImXHtRaYwgBOJ8umjLJqDXUD16DCzNFwkFvhgzIlkpq+EvVosJBBcM9jGeQ==","signatures":[{"sig":"MEYCIQC6EVLyyg5dMw8T/5/rY3OznOJRpdcCGQT3i/8YOvFZzwIhAKKJK5rHZTogRdvxw8/c59A/bQXlgtozvsHtQFZ7L4j7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263810},"engines":{"node":">=20.3"},"gitHead":"09495fa4716d8dce9b98f4f00e4d371d02000e55","_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit through a headless bridge add-in.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.1_1781702318187_0.17848745107128794","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"pi-revit","version":"0.1.2","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.2","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"e220d68852b11937c1a0e7566109a80677429887","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.2.tgz","fileCount":33,"integrity":"sha512-qYrPmYpNkvR0E1LUoNQpivFiqlglmQTp8o0svbpwZdyMXowWkOGdGIsgdGWuY0wtBhLVweZK7ajqJW0xXShDkQ==","signatures":[{"sig":"MEUCICD147x+68CHewwimWbVJCqFuKf/Sd3cRayEr0t9U+EaAiEA19U+LNm4ibs/b5JIO/R23+h51ImlXaiwZz1z+wY20m0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267420},"engines":{"node":">=20.3"},"gitHead":"471bcbb18f6bff566081cd21d9cb5a3b1ed147c1","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.2_1781705027131_0.6210675620811663","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"pi-revit","version":"0.1.3","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.3","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"09e88749bfda37a02e00dbe0ae9ceadd5504dd8b","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.3.tgz","fileCount":33,"integrity":"sha512-ZNy5broV6LUzGTYYZn/dXUf8Vciqkq0XPh17fLvXl/qELKOja9OhEQouKiYi6eGdsV9KUHZhfFQksJOdOmrX7A==","signatures":[{"sig":"MEUCIEIbQH86hOILCIBvzhCtBFhhf0ztPTS2NXsk/ib2eDANAiEAjbDPVu7eA44HoJbXmBd8Yzk6Bbg4kdh+wv1gnFyyVd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267895},"engines":{"node":">=20.3"},"gitHead":"0d07511091265e8a011e6ecd96b42cbe56d92d04","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.3_1781705304485_0.7662614545607047","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"pi-revit","version":"0.1.4","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.4","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"1b29977347767d23ba646db33b8a9b8ac6690faa","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.4.tgz","fileCount":33,"integrity":"sha512-u/r1NcanPXAinPrksWzaZRZvi0cxTbQz66y3tkMAdif0eMbIzYjHSXAeJW59ypfRV6UUoYcw2e7QInNnnvBvrA==","signatures":[{"sig":"MEUCIQCD3SFO3H6vPUUsQ+niBtIzfO0m1G4amg749q4Wn/0JywIgK2ZkYwvBDoMKSkE/EzFDl6ptGCkA3AL1ZbAD2vq1Z6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267911},"engines":{"node":">=20.3"},"gitHead":"910083f2da5d5c517479daa9aa3baca0ac9a2035","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.4_1781772036975_0.4020900849854896","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"pi-revit","version":"0.1.5","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.5","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"7a4e25f7d731b45f2b652e61116497f2cba96d97","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.5.tgz","fileCount":33,"integrity":"sha512-2mLrdb2af23DOUQQV+pZpoNlH6mlPYawUtF1EOP4eHEpFQ0fXNUrPBgAa7cCW1hxduChGjbmDoCAp29LE+cUwQ==","signatures":[{"sig":"MEQCIGvz4P2Ugkj+6gcfIOgQB8W710K5KRxG/uxgVoIZc+IqAiBCqZfjosR3Aew4cyoepea4I35Dz2vCQ90o0JkHmkjj/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268775},"engines":{"node":">=20.3"},"gitHead":"4ed1a9d175e71ef1a9252c20ef588cb5c5a374b1","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.5_1783940931890_0.398535318627284","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"pi-revit","version":"0.1.6","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.6","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"3f504d00884b4edbdde49c5757cfbf7ff6b22755","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.6.tgz","fileCount":33,"integrity":"sha512-II+VzZmXmHezgkCjnNsXTvRTxeDRJ1aYXOwNKhYOowUQyINBKNAz/fvYxiuAScAOXuV0kC9l9JevK0ASCOJ4LQ==","signatures":[{"sig":"MEYCIQCikAoYpV+kHlX7XuOV15b84a2peye4VooYNdnx3E1xYQIhAJ+BEUfqKQ07sxToxOWkAE4d81cXklGKkTGrkULkLq+k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271578},"engines":{"node":">=20.3"},"gitHead":"18d90513447bd374f63a8c9c8f021fe9cf39fc44","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.6_1783942252035_0.7765658886021061","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"pi-revit","version":"0.1.7","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.7","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"a02c5a1cd08e2c7a469952eb3a278ed426696f3f","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.7.tgz","fileCount":33,"integrity":"sha512-OJlFSXdsmwR8uogG4TvGtWFb4aoWcODZ8X2IJ3MQGJl2Rja8raobt0jRLC9fhLm1MQrntiOQ2eBW+rPKnoEM5w==","signatures":[{"sig":"MEQCIF5U/qt71SvkkyZtioVf26B0kFPL3GanOnODdIwRRTAFAiBZQeF7OfSXmY8wmhgNjanP1FdAZnZImNg5isI3gsa96A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272725},"engines":{"node":">=20.3"},"gitHead":"1f75573ab3c06482f0583df6e811044b05f39bb6","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.7_1783942770503_0.3897604178422478","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"pi-revit","version":"0.1.8","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.8","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"95846efc477b5048bb053511b7204b8eb91768a6","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.8.tgz","fileCount":32,"integrity":"sha512-fBuQdj1jztmZEjBzvgrqGMkhPVGcX2f7+OLgwdvPe5T/EvzILQ1wH7wc+EF4PxCy1qauwOJpgJj855CQqQHE2w==","signatures":[{"sig":"MEUCIEE8foRExe4r4CmVtq729+B/uXFaGD6jVnnSlPyYYRY3AiEAl09eLeS9z5BGgOt/DxCEtwmPnk/wUMlCjLDbalgfLGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275168},"engines":{"node":">=20.3"},"gitHead":"42aeb2116ccaf2be3914b7d30ab35f8423aaac85","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.8_1783946448951_0.26081351632368466","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"pi-revit","version":"0.1.9","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.1.9","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"1f89fe5089dcf279509021ae86ef6aa6942cfd16","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.1.9.tgz","fileCount":32,"integrity":"sha512-SwPLI3G0qJaK98UBlyllX9UEvAHT9PUSb4c/ihBixvwKZcwy8HUe13f/UVyAWV81R8OyWyFqxCedueAtMSjDdg==","signatures":[{"sig":"MEYCIQDtV7jvapk2sXk4Pyfmczc9j5AR4xIWEdiRZY2h2A1BCwIhAO5aIx2/S7v0+mKv5gXaw4ePEm1ziSoE8wT+QMJ6LiZ/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278066},"engines":{"node":">=20.3"},"gitHead":"2212cc96acbf13abae98a1dc9c9ded7a7f2b95e9","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.1.9_1784133216527_0.35941869405041116","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"pi-revit","version":"0.2.0","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.0","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"e74cdad83f20d7bb3cd0e01d32f91caf154c5feb","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.0.tgz","fileCount":32,"integrity":"sha512-iFuJl2RsjrnkgD71TrPN+tJZVEB+iGcp+4ap6GpM8u4v36f/UVI9ir8fU1z5+4yA6roEpi8g+eRAy7YNneaukg==","signatures":[{"sig":"MEUCIQCJ5ONlead0/MqJsY23pMk7z0sJE2Fbv/7ar93BSji/EQIgP3EfsZxe5K3w3UkD+0JTPiNgpCRLvYYdHZJVwaczqjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278578},"engines":{"node":">=20.3"},"gitHead":"de1bc278bc85d0dfd4d6fe6078ec334e3c757bf8","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.0_1784134103038_0.38670827786737894","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"pi-revit","version":"0.2.1","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.1","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"dedc62de5ce70bd7cd1a622248f8781d229d6e16","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.1.tgz","fileCount":32,"integrity":"sha512-/HeEU4W7M3BThobGXInPdochYGJxM/cQz2TpxLT/pNa6RcIhu1yhKbA0c+lxz14Htk1ifscdBFd/ac90zU1f2w==","signatures":[{"sig":"MEUCIHnrkxjkh3HVjQRloC+Z51+7WCs9pmlDG5xdgwqVFmTMAiEAr1aq3mTBxlplsqJ7mVcql0Mw4pHVmFmWU9KDEtpnPNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281386},"engines":{"node":">=20.3"},"gitHead":"e6df9efa189383321607b659edac4ade199e075d","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.1_1784190856002_0.3271266039229075","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"pi-revit","version":"0.2.2","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.2","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"35f069bb077ce63df36e0a17463a4b05c8770289","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.2.tgz","fileCount":32,"integrity":"sha512-7I4VuAV+3a8iUnh86VlELRFF0qFFJCos3Zz0FUzR2J18daCwN27FGHgO/P0iAa5nPuVOAFKb12/b6aHSSnc8RA==","signatures":[{"sig":"MEQCIBYy1qk9k8UjiVTAJ324B2GzJ9uv1/aR0ZKNYFiN6rPLAiBkdSLuuSTJ7Jv61MUPI0EvpiuibO61gSx/hGPCrD/1mA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285151},"engines":{"node":">=20.3"},"gitHead":"788ebdd8f4452eab20a7f600c8897fcb7a94adc0","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.2_1784560795470_0.37764989598592535","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"pi-revit","version":"0.2.3","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.3","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"b38ea89b05ca23778c2eb01338fdeba6f864c8de","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.3.tgz","fileCount":32,"integrity":"sha512-27zL0BOUBkKS1DH7vWSlPmvohDyzaj17woMvd7Pe74yF/uyyOKOMuZZ1YZcbQhvuwI723Gf4lbUYhBMbfwmKXg==","signatures":[{"sig":"MEUCIGyTeQZpuOjxVo/6gdHsW7LZ4X0M1xYdpobGlaeIYSenAiEAxzfqND9elNY5BWmb1/fjh8kefALRd5uQbnoDF5+S6r8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286727},"engines":{"node":">=20.3"},"gitHead":"03622eff09debfd3282d4b30bbd988f1a771a5ba","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.3_1784561875657_0.07594687179004644","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"pi-revit","version":"0.2.4","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.4","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"8ddb999b87c1b6d0d67474d6eb31dc1e8112c1ed","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.4.tgz","fileCount":33,"integrity":"sha512-EOidYmvzhmw1pGCqcNA2BmMOe+IGAJmxVQTZ07yHm6FiJ+FPN3/s0/dslo20qs1yakqpZOk9CIFqwhJr2TTb9A==","signatures":[{"sig":"MEUCIQCmh+8VUeQ4gqMC7/C/ClNDesG2dbFV+mJf3nS1VEwUegIgD4qkYDAaoKg4vxy5sjyLc+OBa5tk5aqcYrbpWbcnFns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289629},"engines":{"node":">=20.3"},"gitHead":"7eceea2086f22ac666ad279e38f7a2735572dc24","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.4_1784583063330_0.7261330011402598","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"pi-revit","version":"0.2.5","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.5","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"277baedefea35e35e802eca811d7c603486bd3fe","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.5.tgz","fileCount":33,"integrity":"sha512-9Ji2eJsZi6WsofW0uoPjbYf99ZIG3NqsYPFlnuUEZ+Yl1bmqlxtX1Pe2Qbefapm8yMBswDzY5/wepWeNq9EwQg==","signatures":[{"sig":"MEUCIQCR6NqSdei570OHSEwcpPvHJJO64G+OOTZKLA5iBP1LLAIgC1NM2CSbfDmIQ5d3pYQeXOXq6nq7Nb2HMu517w5dlUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292903},"engines":{"node":">=20.3"},"gitHead":"b9d29e1f83f91c291c40b5dc383949166e6599ff","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.5_1784583842885_0.2643838686818767","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"pi-revit","version":"0.2.6","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.6","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"8d40299c4e68b4b44e3243cf5bb8e4d93f94dd61","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.6.tgz","fileCount":34,"integrity":"sha512-7wiTjucQPJ9HQQz5SJb464Yap5QTCJojopg1YZFXjJ2ntul2raZZhf2j+kxMtn4ZoUgpBbquD4vr6RndoWXNSw==","signatures":[{"sig":"MEUCIQCL5znvGUNA0ADzzrhQPq4qWKkCcAGHCxU5i+cfWNmPggIgf/pbNUUCSZtS0fPidtWbCJf6p52U35QdrFRKA3ugARI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297142},"engines":{"node":">=20.3"},"gitHead":"cae9c9160b627ef4627a2e70b1ad5b58f606dc67","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.6_1784584705921_0.3205206160701064","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"pi-revit","version":"0.2.7","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.7","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"e5e2f28f9a994d4d579eb2cb629acc2a17b8cbe7","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.7.tgz","fileCount":34,"integrity":"sha512-q0GWpOy1XEYS9o1IJog8UhIb3HAf9vbOIECutkIDgWo2LIvELBcsgV8UivKSInvYBdqDHHSpb7JXZX/sztdsnA==","signatures":[{"sig":"MEUCIQC+L08jJcgoMOBFfgJFayZ4W8YEOhfam8JKoXd1D5QXxwIgH9SBan8hNCX5PbRUjaXQpzrVFIXHuvIt+84cniOBkOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300970},"engines":{"node":">=20.3"},"gitHead":"8c595a9b689d30b6a33143280a524be6f617c2a3","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.7_1784622799970_0.6640397810841943","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"pi-revit","version":"0.2.8","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.8","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"fdca062400c7a25f9d42eae750d70a14c72b29f4","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.8.tgz","fileCount":34,"integrity":"sha512-URhm6Ef1t2jeeFLZKBL9atZ4afKuHYXGs5Fds+NlYhBjmVCoBR23KW4Q1CPjbGCoaYS/CYQxWWY+AHKDZi4LHQ==","signatures":[{"sig":"MEYCIQCO6pp1uUUlWash5pxfMIyPEGVptP0tDHO8t9oNxRuECwIhAPSywKczIx/HG0lKnHoupQb8RtSsT12KOs12r5pq+BTD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301679},"engines":{"node":">=20.3"},"gitHead":"069bd4b2fb5420d3faf345da0c1843362742e4e1","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.8_1784625167692_0.9841061094738301","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"pi-revit","version":"0.2.9","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.9","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"0a9e6a58c42276f014a8123f884cc80169d5c41b","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.9.tgz","fileCount":34,"integrity":"sha512-BrhG3HqU7YpTnI+1zY4mYvk56pv5MvWdaUMAEAay7dIn9NWsvlOI4ICNxbLavIZRxmpghaArYu1zXZ05BTn9jQ==","signatures":[{"sig":"MEUCIB/1m8CxTTrb1AznXP4LDq4C2T4CMCw0If+W1YoTfY1ZAiEA8YuqA7paT9N6ImA1IP30Pu4RQhunlAynXPyAavFLpF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312583},"engines":{"node":">=20.3"},"gitHead":"b96adf704d79dc56e1d83c3db7b66ebb01702df5","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.9_1784626634971_0.3109603599773778","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"pi-revit","version":"0.2.10","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.10","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"43c7ae356f0d885dbe46e4fcee0f7a8162618bab","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.10.tgz","fileCount":35,"integrity":"sha512-vYuGVWTHqOri3C8IYXz5li1Z8BnYke8piG1Ao7OyB/IVeC9v5BC+UIAlDUqLuG59nPjzW4cAavBJH99qkaRtXQ==","signatures":[{"sig":"MEYCIQCqLDmp0LfLPlJhLZDwLL5XWzYbhEAw5lWuouCOx3Qo4wIhAMBdwi46LfsfHMeoVK4lM/ACos8suijgf7F2UThNk0+m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328014},"engines":{"node":">=20.3"},"gitHead":"e99f3023a72d0cdb833bba73a8ea65d45b84f06c","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.10_1784627946971_0.217228271447377","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"pi-revit","version":"0.2.11","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.11","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"f66bb15399c8f0f6b05da0b5c2b20337f7265ae8","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.11.tgz","fileCount":35,"integrity":"sha512-BBwfrG/ojvF+4esrmeC6v6AI01NHUX+19+HCP66v+A0UyYy1ZGTDg+WtY9hU3nD8P9S4nTHZJ04ncL1m2iU8vQ==","signatures":[{"sig":"MEQCICEYx9Z0gNvQoulKqifjvhi9xxiKtMB80Xj92hoYkbDsAiAP6cV29k8/3NTYtoqE/bgGtZAGPB1YjgmYk1bLd9ufYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334624},"engines":{"node":">=20.3"},"gitHead":"df64212743dee32556fffc60e1bab32100574b9e","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.11_1784637000915_0.31903707021807315","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"pi-revit","version":"0.2.12","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.12","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"30bedfb256be15b40a4abb30f37909f6570f3760","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.12.tgz","fileCount":36,"integrity":"sha512-iiCRuXzWO0uDqPZtplnhwElNyqVMlzyZC69xL7+oS/w+xWkDByy71YV6obaLoXulW0VUoGvxyh8V+LYgPbbu+w==","signatures":[{"sig":"MEUCIHvjTgDSFa5XLqH4c2em4ta7biCal9738qCxvl/OsPBrAiEAmmzHv+9oL+BBC2hQoOdgsTPEi/01U9RecZps8q6nhT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341079},"engines":{"node":">=20.3"},"gitHead":"549d6c342fd2e66bc087ef360c145815204e931a","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.12_1784637568281_0.17464606826467555","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"pi-revit","version":"0.2.13","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.13","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"ab0ad2972b94a41bc0159656a501b44e6f7cdc9d","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.13.tgz","fileCount":36,"integrity":"sha512-02Vor7b+qApqJizPfd4V5zIZSYrBZo6dmPfRmmDhJ/4DzP0hFDg+IvIKcAAWu6zIuZW2re2hF0086ar7QYZw0A==","signatures":[{"sig":"MEYCIQDhRguONhwXu1HNqwosyqRiZm2R8jD0B/UQ2wugkQVVagIhAIyzKM4S4wBgAvl8HYZ7K6cn7pD17j0M2tNZXDmi1kit","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357086},"engines":{"node":">=20.3"},"gitHead":"0ebc0e3b6ec66b600bc549de4c84027420ef2c06","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.13_1787302556143_0.8827002552603367","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"pi-revit","version":"0.2.14","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.14","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"e95512ba579aec511ea01a6a4c06f78e8cf737a9","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.14.tgz","fileCount":36,"integrity":"sha512-Fcgp4Yndzk/okxbRrqSLOn8Frg2JJh/9ZIQ8fqSlrwEgg0fVMZ3Mn3F20GEu4xew2GzPwwrv5FzylTRnHA/CDw==","signatures":[{"sig":"MEQCICigOhH6IhT0Z5ic1ovRSyvo7jL3J5QOEh/oCmTHvx2cAiBuD4Q4kxgcv5ZwOpz0dgCQnq72f7wyjILV78kfL54LUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360119},"engines":{"node":">=20.3"},"gitHead":"e0a48659e9106673e44eb31b5791cfc173521092","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.14_1787304856107_0.07628968115267898","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"pi-revit","version":"0.2.15","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.15","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"5ed277a71635b80245e63fc39014d75d081eddcd","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.15.tgz","fileCount":36,"integrity":"sha512-aEo8lZjgqYjrl+i8FNa/pHEl89UHaxy0HFGeG+K8+Wb/KpLcD35Zg5sUNKXTAPryCPHx2s9FRRbQGe4cZgyCAQ==","signatures":[{"sig":"MEYCIQDWhTUzSJf4EIPwPBAA4TPkgBn5D+jsADs8YZyKr535+gIhALQ7QXE3aQfwSkPRTM8nZjVhCBj3LRk1s4nkdU5k6WNX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361690},"engines":{"node":">=20.3"},"gitHead":"3de5d90749bc0638d3e8cae6b05e4ab4112b183e","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.15_1787305871647_0.014445971915570954","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"pi-revit","version":"0.2.16","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.16","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"a5bd68e873d05830b9f8dab553a6ebdd8bb1a6e2","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.16.tgz","fileCount":36,"integrity":"sha512-qtqNYJZrpHjLfgKflHeJS0hU2gH1HfcpGXJ7QNaETQt+TynH41jk6/SpjxsWOkKgv0uvPJkPS239xGUV29rTVg==","signatures":[{"sig":"MEYCIQCfLK4+AxL6K1nJ/uVhd7Hdg3vQd0+vXBSfISPayaVPGQIhAKuzSJu/M8U1KCFJdc81Qlnrjudbk/yPnFSHNEfpZ0UT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363590},"engines":{"node":">=20.3"},"gitHead":"0a6b00a2ace4c984e6ad1d8fec0eeb28cca5cbd2","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.16_1787307153106_0.8791977156255513","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"pi-revit","version":"0.2.17","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.17","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"fe20e144ba15b69108a3c8d008f1dce13728ac9d","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.17.tgz","fileCount":36,"integrity":"sha512-KCyfTuKBYZyRGuT+7iBPsriQekpEI4sTzJ0WDgQ7a7l07nRuGg1Li9YWPoO8vA/hmohZMkaFpxGM6SP0G990mw==","signatures":[{"sig":"MEUCIQCoNV5Vg6AhUlqm2U7/P3j6BW32lVLAxa8CVGLNeZ/D7QIgdyb5Uz+YaiHOOgUxIDzjg3cqcXxTo3uUCP+Xnd+kSvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":365592},"engines":{"node":">=20.3"},"gitHead":"5d6d3654aa65cd1dce8a47d4e634504ab4f90f6d","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","test:search":"dotnet run --project tests/search-engine","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.17_1787310211191_0.8831157626371477","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"pi-revit","version":"0.2.18","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.2.18","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"0a2f61626b751129ca7a5762f0f3fb1640da78d3","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.2.18.tgz","fileCount":36,"integrity":"sha512-7blCTyLeT8MWuUrehypiyYn1yG4eNHOxFrloBmC6r/ygNoputzLnGG4y9e3MceJeTCBvNXXI5opW1He2RQmFfg==","signatures":[{"sig":"MEYCIQCHj2ER64+Tp+0e+Aqb7+xzz03UnlDPZX3E0dzy9XXBawIhAKLHdtL/pClNE9xLtTQt95e2OvP30cl58Qy4NQKSXFKF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367176},"engines":{"node":">=20.3"},"gitHead":"fc9d78554760ae27df4c1f4fcac29aae2db9179f","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","test:search":"dotnet run --project tests/search-engine","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.2.18_1787394129788_0.6838963852912769","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"pi-revit","version":"0.3.0","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.3.0","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"504c2cb9381a6f7f7fd199d89ffae17c1872831c","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.3.0.tgz","fileCount":37,"integrity":"sha512-0OYkKAW1+hTfflEPPf+1jebmJtP2e/hWgZtF9KpDo38mlc4YdK0m4EPC8llw0FwKGU6mbICMQADI/6pUPoespg==","signatures":[{"sig":"MEUCIQD5+2mg0bvcmOCaew8gLMgymvcCPS78ZYq/2UibKIIq/QIgJTVIoCss5y1PSb8ibdUJVU5Vs6vvJcD/oglACsPVlsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":392863},"_from":"file:C:/Users/Ahmad.Tahlawi/Documents/pi-revit 2/release/pi-revit-0.3.0.tgz","engines":{"node":">=20.3"},"scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","test:search":"dotnet run --project tests/search-engine","test:installer":"node tests/installer/installer.test.cjs","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"_resolved":"C:\\Users\\Ahmad.Tahlawi\\Documents\\pi-revit 2\\release\\pi-revit-0.3.0.tgz","_integrity":"sha512-0OYkKAW1+hTfflEPPf+1jebmJtP2e/hWgZtF9KpDo38mlc4YdK0m4EPC8llw0FwKGU6mbICMQADI/6pUPoespg==","repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.3.0_1788959448834_0.9604127764239394","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"pi-revit","version":"0.3.1","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.3.1","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"e71618fe11a344551066e30241b8d418a73dc42b","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.3.1.tgz","fileCount":38,"integrity":"sha512-7qFADk83BX/2Amcj7JPYcSNji/UIlWfB80o0eM3D225mJ5YyiXPdAfz5l2MatlDyV1cvZ1baM4s4ploYEI1emA==","signatures":[{"sig":"MEUCIGJCJ2JEfzC9NANsCtRjVCh9ZTGFVPjD6IoaZ514+nbmAiEApckE1KQm+bNYWXJEBi+qyUJJ5hVL68rVP4txP3bI0vE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":398222},"_from":"file:pi-revit-0.3.1.tgz","engines":{"node":">=20.3"},"scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","test:sdk":"powershell -NoProfile -ExecutionPolicy Bypass -File tests/installer/sdk.test.ps1","test:search":"dotnet run --project tests/search-engine","test:installer":"node --test tests/installer/*.test.cjs","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"_resolved":"C:\\Users\\Ahmad.Tahlawi\\Documents\\pi-revit 2\\release\\pi-revit-sdk-fix\\pi-revit-0.3.1.tgz","_integrity":"sha512-7qFADk83BX/2Amcj7JPYcSNji/UIlWfB80o0eM3D225mJ5YyiXPdAfz5l2MatlDyV1cvZ1baM4s4ploYEI1emA==","repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.3.1_1789570421310_0.9634049239539582","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"pi-revit","version":"0.4.0","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.4.0","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"75f9744a79ccc616593c159ff9b7aa3620069bf5","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.4.0.tgz","fileCount":66,"integrity":"sha512-LN0nl3JXM8D0qsAt9Xep4PcGQKLZ0yy6lfZnXWvQZNDPcAMsv/S+iHNPLQGCfZPkIfT9GtBAv06JWvlWuUbVtA==","signatures":[{"sig":"MEYCIQCtY4Um2iU7CwNbXEqUK4/90/qUmas0zqsTO/3UWx561AIhAICWshCS00LYIvxJlpW5CRZJkqkMwCcN/HMWDc2A3dBo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/lmO/vpeuZbDkYeRreNYlntdnVWP0vRt5mdqBj0x8CQIgCT0Oy5VftrprM/CWosPvmsmbdZHdSwVn5Us77UZcNSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":623769},"_from":"file:release/0.4.0/pi-revit-0.4.0.tgz","engines":{"node":">=20.3"},"scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","test:sdk":"powershell -NoProfile -ExecutionPolicy Bypass -File tests/installer/sdk.test.ps1","test:search":"dotnet run --project tests/search-engine","test:installer":"node --test tests/installer/*.test.cjs","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"_resolved":"C:\\Users\\Ahmad.Tahlawi\\Documents\\pi-revit 2\\release\\0.4.0\\pi-revit-0.4.0.tgz","_integrity":"sha512-LN0nl3JXM8D0qsAt9Xep4PcGQKLZ0yy6lfZnXWvQZNDPcAMsv/S+iHNPLQGCfZPkIfT9GtBAv06JWvlWuUbVtA==","repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.4.0_1790063239777_0.47107768753151924","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"pi-revit","version":"0.5.0","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"author":{"name":"Ahmad Altahlawi"},"license":"MIT","_id":"pi-revit@0.5.0","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"homepage":"https://github.com/Triavision-ai/pi-revit#readme","bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"bin":{"pi-revit":"bin/pi-revit.js"},"dist":{"shasum":"85ef129f98bb863a529a2c00d7d231f2cdfc7256","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.5.0.tgz","fileCount":131,"integrity":"sha512-+hZPym2kYKfUMxNrWwVLUWCl3oWYN5Yd2+fCOE+NegZSKR4hpFhGTZC0IRPPat+tv4wJruxbOeu4u+5P7AEnog==","signatures":[{"sig":"MEQCIDBzq1tgPa9T4bFbDRcuzJ8IXV/Dd89jkSJmo4swzPPGAiAb5mY0N59Fqp0t4SSUvuaVtLQmWbSJ8FQSKOdgQbUQpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE74R77Ru2YOuP/cB4pCQFOCuMRXKra0y4Mtrp8Y2k0aAiEAh7BLeHPJLIbozrrrrLIL0AKGUVKiD4DH15662Zc+w6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1155296},"engines":{"node":">=20.3"},"gitHead":"94674c0c4477799877d2df0a1f6d15f675127597","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","test:sdk":"powershell -NoProfile -ExecutionPolicy Bypass -File tests/installer/sdk.test.ps1","test:docs":"node scripts/check-tool-documentation.mjs","test:corpus":"node tests/discovery/run-corpus.mjs","test:search":"dotnet run --project tests/search-engine","test:extension":"node scripts/test-extension.mjs","test:installer":"node --test tests/installer/*.test.cjs","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1","generate:contracts":"node scripts/generate-contracts.mjs"},"_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-revit_0.5.0_1790677540400_0.6641976770548048","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"pi":{"skills":["./skills"],"extensions":["./extensions/pi-revit/index.ts"]},"_id":"pi-revit@0.5.1","bin":{"pi-revit":"bin/pi-revit.js"},"bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"dist":{"shasum":"430f60fc75eaafc64292f910b1e962df03a01f22","tarball":"https://registry.npmjs.org/pi-revit/-/pi-revit-0.5.1.tgz","fileCount":131,"integrity":"sha512-1C7XqlLqFdCY5JxO9SfqEAl05SzgeJwvemwQX600FbUIoyIblrWF7r2RD9hGTfOZnGOYyjxZjQKUr275vsm/7A==","signatures":[{"sig":"MEUCIDcAySwqajpmeETDNID0fsdvpM4fMhDO117XHYss7u3KAiEAwhR8qh54cgaAghvDAyfcre2DVhcE2lSDBVRbwVo4kVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEMCICaCWbSNtTH+nCt18EAd6OyBjk3mtH06FvrQcmzQQbx1Ah9rqZennDAY6U8S+lJf761S+5O42nh3Zbh2txjFybcR"}],"unpackedSize":1158728},"name":"pi-revit","author":{"name":"Ahmad Altahlawi"},"engines":{"node":">=20.3"},"gitHead":"f78b69e348ac47d2924ea9bb74aaf641811d81ff","license":"MIT","scripts":{"setup":"powershell -ExecutionPolicy Bypass -File scripts/setup-workspace.ps1","deploy":"powershell -ExecutionPolicy Bypass -File scripts/deploy.ps1","test:sdk":"powershell -NoProfile -ExecutionPolicy Bypass -File tests/installer/sdk.test.ps1","test:docs":"node scripts/check-tool-documentation.mjs","test:corpus":"node tests/discovery/run-corpus.mjs","test:search":"dotnet run --project tests/search-engine","test:extension":"node scripts/test-extension.mjs","test:installer":"node --test tests/installer/*.test.cjs","uninstall:revit":"powershell -ExecutionPolicy Bypass -File scripts/uninstall.ps1","generate:contracts":"node scripts/generate-contracts.mjs"},"version":"0.5.1","_npmUser":{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"},"homepage":"https://github.com/Triavision-ai/pi-revit#readme","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"_npmVersion":"10.9.3","description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","directories":{},"maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-revit_0.5.1_1790678428535_0.9363345841178095"}}},"time":{"created":"2026-06-17T12:42:15.987Z","modified":"2026-09-29T10:40:28.807Z","0.1.0":"2026-06-17T12:42:16.428Z","0.1.1":"2026-06-17T13:18:38.353Z","0.1.2":"2026-06-17T14:03:47.308Z","0.1.3":"2026-06-17T14:08:24.618Z","0.1.4":"2026-06-18T08:40:37.137Z","0.1.5":"2026-07-13T11:08:52.030Z","0.1.6":"2026-07-13T11:30:52.228Z","0.1.7":"2026-07-13T11:39:30.667Z","0.1.8":"2026-07-13T12:40:49.087Z","0.1.9":"2026-07-15T16:33:36.678Z","0.2.0":"2026-07-15T16:48:23.195Z","0.2.1":"2026-07-16T08:34:16.164Z","0.2.2":"2026-07-20T15:19:55.620Z","0.2.3":"2026-07-20T15:37:55.801Z","0.2.4":"2026-07-20T21:31:03.489Z","0.2.5":"2026-07-20T21:44:03.070Z","0.2.6":"2026-07-20T21:58:26.087Z","0.2.7":"2026-07-21T08:33:20.118Z","0.2.8":"2026-07-21T09:12:47.837Z","0.2.9":"2026-07-21T09:37:15.120Z","0.2.10":"2026-07-21T09:59:07.115Z","0.2.11":"2026-07-21T12:30:01.057Z","0.2.12":"2026-07-21T12:39:28.427Z","0.2.13":"2026-08-21T08:55:56.295Z","0.2.14":"2026-08-21T09:34:16.258Z","0.2.15":"2026-08-21T09:51:11.797Z","0.2.16":"2026-08-21T10:12:33.251Z","0.2.17":"2026-08-21T11:03:31.342Z","0.2.18":"2026-08-22T10:22:09.954Z","0.3.0":"2026-09-09T13:10:48.990Z","0.3.1":"2026-09-16T14:53:41.453Z","0.4.0":"2026-09-22T07:47:19.880Z","0.5.0":"2026-09-29T10:25:40.493Z","0.5.1":"2026-09-29T10:40:28.644Z"},"bugs":{"url":"https://github.com/Triavision-ai/pi-revit/issues"},"author":{"name":"Ahmad Altahlawi"},"license":"MIT","homepage":"https://github.com/Triavision-ai/pi-revit#readme","keywords":["pi-package","pi-extension","revit","bim","autodesk","revit-api"],"repository":{"url":"git+https://github.com/Triavision-ai/pi-revit.git","type":"git"},"description":"Native Pi connector for Autodesk Revit. Run npx.cmd -y pi-revit for the full Windows install.","maintainers":[{"name":"ahmadaltahlawi","email":"ahmadtehlawi@gmail.com"}],"readme":"# pi-revit\r\n\r\nNative Revit tools for [Pi](https://pi.dev) — ask about, query, script, and modify the open\r\nAutodesk Revit model from your terminal.\r\n\r\n```text\r\nYou: how many levels in the model?\r\nPi:  calls get_model_overview → \"There are 14 levels in the Revit model.\"\r\n\r\nYou: select all structural columns\r\nPi:  get_model_overview → get_elements → manage_selection → \"Selected 222 structural columns.\"\r\n\r\nYou: rename level 'L1' to 'Ground Floor'\r\nPi:  get_model_overview → set_parameters → \"Done — Level 'L1' is now 'Ground Floor'.\"\r\n```\r\n\r\n## How it works\r\n\r\n```text\r\nPi terminal session\r\n   │  native tools (registered by the pi-revit extension)\r\n   ▼\r\nlocalhost HTTP bridge          ← per-start token; connection info in %APPDATA%\\RevitBridge\\\r\n   │\r\n   ▼\r\nheadless Revit add-in          ← no ribbon, no panels; just a bridge\r\n   │  ExternalEvent queue (Revit API thread)\r\n   ▼\r\nRevit API                      ← tool-owned model transactions; separate UI/file effects\r\n```\r\n\r\nThe extension discovers its tools from the bridge at startup (retrying in the background until\r\nRevit is up), so the tool list always matches what the add-in serves. Everything between Pi and\r\nRevit is local-machine only; note that Pi sends conversation context and tool results to your\r\nselected LLM provider, like any Pi session.\r\n\r\n## Safety model\r\n\r\nBe deliberate about pointing an LLM at a real project model. The add-in enforces what it can\r\nenforce mechanically, and is honest about what it cannot:\r\n\r\n- Tool metadata describes its classification; UI actions such as selection and view\r\n  activation can change state even when `write` is false. Confirmation policy belongs\r\n  to the client. Exact document targeting is enforced separately as described below.\r\n- Parameter writes, C# scripts, temporary isolation, and IFC export own named Revit\r\n  transactions. Failure handling is attached after transaction start, and results\r\n  check transaction outcomes before claiming commit or rollback. `set_parameters`\r\n  defaults to partial success; `atomic: true` rolls back the batch if any update\r\n  fails, and `preview: true` rolls back proposed model changes after validation.\r\n  Inspect every failed update, the validation status, and `commitWarnings`.\r\n  An unconfirmed rollback is reported as such.\r\n- `execute_csharp` is an unrestricted escape hatch by design — scripts have full CLR access.\r\n  Treat it like giving the agent a macro editor, on a model you have saved or can restore.\r\n- `execute_csharp` has a dialog guard that attempts dismissive responses to dialogs\r\n  raised while the script runs. It does not establish that every Revit dialog or\r\n  failure mode can be handled automatically.\r\n- A model transaction does not undo filesystem output or earlier selection/zoom\r\n  changes. A failed export can leave incomplete files; its error reports the output\r\n  location and observed changed files. An isolation failure reports any earlier\r\n  selection action that already completed.\r\n\r\n### Target the exact open document\r\n\r\nCall `get_model_overview` for the intended model and copy `project.documentId`\r\nunchanged into `expected_document_id` on subsequent operations:\r\n\r\n```json\r\n{\r\n  \"expected_document_id\": \"<project.documentId from the current overview>\",\r\n  \"updates\": [{ \"element_id\": 12345, \"parameter\": \"ALL_MODEL_INSTANCE_COMMENTS\", \"value\": \"Reviewed\" }]\r\n}\r\n```\r\n\r\nReplace the placeholders with the current document ID and an actual element ID.\r\nThe exact ID is required for `set_parameters`, `transform_elements`,\r\n`delete_elements`, `change_element_types`, `manage_views`, `manage_sheets`,\r\n`manage_sheet_placements`, `manage_schedules`, `create_tags`, `execute_csharp`,\r\n`export_documents`, and `open_view`,\r\nincluding supported previews. `manage_sheet_placements` requires it even for its\r\nread-only `list` action because the tool is classified as write-capable.\r\nIt is also required for selection/zoom\r\nchanges and any `manage_selection` call with `isolate_in_view: true`, including\r\naction `get`. Pure reads may omit it; a supplied ID is always checked.\r\n\r\nThe identity represents one currently open native document in one loaded bridge\r\nsession. It is not a persistent project ID, path, export-folder key, or credential.\r\nClosing/reopening the document or restarting the bridge invalidates prior IDs.\r\nRead the intended document's overview again after those transitions. The guard\r\nchecks the actual target on Revit's API thread immediately before execution.\r\n\r\nLegacy `expected_document` titles remain an optional additional sanity check.\r\nA title alone no longer satisfies the required guard, even when it matches.\r\nClients must refresh discovery and supply the new field after upgrading to 0.3.0.\r\n\r\nPractical advice: work on saved models, keep worksharing backups/central protection as usual,\r\nand review the agent's summary of what changed after any write session.\r\n\r\n## Requirements\r\n\r\n- Windows 10/11\r\n- Autodesk Revit 2025, 2026, or 2027\r\n- .NET SDK matching your Revit: [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0) for Revit 2025/2026, [.NET 10](https://dotnet.microsoft.com/download/dotnet/10.0) for Revit 2027\r\n- [Node.js 20.3+](https://nodejs.org/)\r\n- [Pi coding agent](https://pi.dev): `npm install -g --ignore-scripts @earendil-works/pi-coding-agent`\r\n\r\n## Install\r\n\r\n### One-command install\r\n\r\nClose Revit, then in PowerShell:\r\n\r\n```powershell\r\nnpx.cmd -y pi-revit\r\n```\r\n\r\nThis installs the Pi package, builds and deploys the Revit bridge add-in, creates the\r\n`Documents\\pi-revit` workspace, and installs the global `pi-revit` command.\r\n\r\nThe installer first checks the selected .NET SDK. If it is missing or too old,\r\ninstallation stops with the required version, a download link, and retry steps.\r\nInteractive terminals also offer to open the download page. Revit uses a runtime\r\nto run; compiling this add-in also needs the SDK. For Revit 2027, install the\r\n[.NET 10 SDK for Windows x64](https://dotnet.microsoft.com/en-us/download/dotnet/10.0),\r\nreopen PowerShell, and rerun the installer. Existing .NET versions can stay installed.\r\nIf an older SDK is still selected, check `dotnet --list-sdks`, your `PATH`, and any\r\n`global.json` in the current directory or its parents.\r\n\r\nStart Revit (click **Always Load** on the unsigned add-in prompt once) and open any\r\nproject. No panel or ribbon appears — the add-in is headless.\r\n\r\n### Manual npm install\r\n\r\nUse this if you prefer to run each step yourself:\r\n\r\n```powershell\r\n# 1. Install the Pi package from npm. This registers the pi-revit extension and skill.\r\npi install npm:pi-revit\r\n\r\n# 2. Go to the installed package folder.\r\ncd \"$env:USERPROFILE\\.pi\\agent\\npm\\node_modules\\pi-revit\"\r\n\r\n# 3. Build + deploy the Revit add-in (RevitBridge.dll + the Roslyn DLLs for execute_csharp).\r\nnpm.cmd run deploy\r\n\r\n# 4. Create the workspace and global pi-revit command.\r\nnpm.cmd run setup\r\n```\r\n\r\nFor a non-default Revit install location, use the PowerShell deploy script directly and pass\r\n`-RevitVersion` / `-RevitApiPath`, e.g.:\r\n\r\n```powershell\r\npowershell -ExecutionPolicy Bypass -File scripts\\deploy.ps1 -RevitVersion 2027 -RevitApiPath \"D:\\Autodesk\\Revit 2027\"\r\n```\r\n\r\n### Source install\r\n\r\nUse this if you want to run directly from the GitHub checkout instead of the npm package:\r\n\r\n```powershell\r\ngit clone https://github.com/Triavision-ai/pi-revit.git\r\ncd pi-revit\r\npowershell -ExecutionPolicy Bypass -File scripts\\deploy.ps1\r\npi install ./\r\npowershell -ExecutionPolicy Bypass -File scripts\\setup-workspace.ps1\r\n```\r\n\r\n### Upgrading from 0.2.x\r\n\r\n**Breaking change:** writes and UI mutations now require `expected_document_id`.\r\nClose Revit, update the Pi package and redeploy the add-in using the installation\r\nsteps above, then restart Revit and start a fresh Pi session. Both components must\r\nbe updated. Call `get_model_overview` and copy `project.documentId` into subsequent\r\nmutating calls; a legacy `expected_document` title alone is insufficient. Refresh\r\nthe ID after closing/reopening a document or restarting Revit.\r\n\r\nThe exact-ID requirement was introduced in 0.3.0 and also applies to later\r\nreleases. `ping` reports package/add-in version mismatches. Setup preserves an\r\nexisting workspace `AGENTS.md`; merge updated identity, saved-result retrieval,\r\noutput-folder guidance and current skill/manual routing from [the workspace template](workspace/AGENTS.md)\r\ninto older workspaces as needed.\r\n\r\n## Use it\r\n\r\nOpen **any terminal** — PowerShell, CMD, or Windows Terminal — and type:\r\n\r\n```powershell\r\npi-revit\r\n```\r\n\r\nThat's all. Pi starts with the Revit tools ready:\r\n\r\n```text\r\n> give me a model overview\r\n> how many doors per level?\r\n> select all structural columns\r\n```\r\n\r\n**How this works:** the setup step placed a small `pi-revit` command in the same folder as the\r\n`pi` command itself. That folder is on your system PATH — which is exactly why *every* terminal\r\nfinds `pi-revit`, with no extra configuration. When you run it, it switches to your workspace at\r\n`Documents\\pi-revit` and starts Pi there, so your conventions file (`AGENTS.md`) loads\r\nautomatically and all Revit session history lives in one predictable place (`pi-revit -c`\r\ncontinues the last session). The Revit tools themselves are installed globally in Pi, and the\r\nextension discovers them live from the bridge inside Revit each time a session starts.\r\n\r\n**Per model, automatically:** files sort themselves. Exports land in\r\n`Documents\\pi-revit\\Models\\<model title>--<identity hash>\\exports`. The suffix derives\r\nfrom the normalized saved-file path, cloud region/project/model identity, or Revit\r\nServer path. Distinct saved paths therefore use different destinations even when\r\ntheir titles or inherited project IDs match. Save As to another path selects a new\r\ndestination. Unsaved models or unavailable persistent identities use a token stable\r\nonly for that open document; their destination may change after reopening.\r\n\r\n`model.txt` records the identity used. Existing title-only directories remain\r\nuntouched; upgrading does not migrate or merge old exports. An explicit\r\n`output_dir` still overrides the default. File attribution uses a directory\r\nsnapshot, so avoid unrelated concurrent writers in a shared output directory.\r\n\r\nPlain `pi` from any folder also works; `pi-revit` just adds the right working folder on top.\r\n\r\n## Guidance and contributor documentation\r\n\r\nThe [PI-Revit skill](skills/pi-revit/SKILL.md) is a short entry point. It links\r\nshared execution/recovery/visual rules, workflows, and a\r\n[tool index](skills/pi-revit/references/tool-index.md) with one focused manual\r\nper public tool. Read only the detail relevant to the current task.\r\n\r\n`find_revit_tools` now includes the six Pi-side utilities as well as discovered\r\nbridge tools. Use `scope: \"documentation\"` to find packaged manuals while Revit\r\nis closed, without contacting the bridge or activating tools:\r\n\r\n```json\r\n{ \"scope\": \"documentation\", \"names\": [\"manage_sheets\", \"manage_sheet_placements\"] }\r\n```\r\n\r\nRead a returned `documentation.path` for details. Registration, activation and\r\nreading a manual are separate actions; a manual is not proof that the selected\r\nbridge supports the tool. Current input schemas remain authoritative.\r\n\r\nEvery tool declares what it does **not** cover and what to use instead: another\r\ntool, specific Revit API members, a user action, or \"the Revit API does not offer\r\nthis\" with the evidence. `find_revit_tools` shows these limits with each result.\r\nWhen no tool matches a request, it returns the remaining route (check the API\r\ndocumentation, then use custom code) instead of an empty list. Missing a dedicated\r\ntool is therefore never a reason to call an operation impossible. Search with\r\nEnglish task words; you can talk to Pi in any language, and it translates its searches.\r\n\r\n`search_api_docs` can check up to 10 API members in one call, separated by `;`. Each API limit\r\nshown by `find_revit_tools` and in the manuals carries a ready lookup.\r\n\r\nA short PI-Revit protocol is always in Pi's context, whatever the task and whether\r\nor not the skill is read. It covers:\r\n\r\n- checking capability before saying no;\r\n- doing only what was asked, verifying it with the tool's declared method, then\r\n  stopping and reporting;\r\n- naming evidence;\r\n- document identity;\r\n- replying in your language.\r\n\r\nIf Pi keeps re-checking and adjusting something that is already done, the extension\r\nasks it to compare against your request and report, and to offer extras as suggestions.\r\n\r\n`ping` also reports what is actually loaded: the extension package, guidance\r\nrevision, source revision and, per tool, whether the manual matches the connected\r\nbridge's exact contract (`contract_match` / `contract_changed` / `undocumented`).\r\n\r\nFor source changes, start with [AGENTS.md](AGENTS.md) and the\r\n[architecture guide](docs/architecture.md). They explain where tools, operating\r\nrules, workflows, future Revit subject skills and API guidance belong. The\r\n[evaluation guide](docs/evaluation.md) records offline checks and the live\r\nmeasurements still needed before claiming a speed or reliability improvement.\r\n\r\n## Tools\r\n\r\n| Tool | What it does | Works in |\r\n|---|---|---|\r\n| `find_revit_tools` | Find native/bridge tools and their manuals; activate specialist tools or look up documentation offline. | Pi-side |\r\n| `ping` | Is the bridge reachable? Revit version | Pi-side |\r\n| `manage_revit_instances` | List reachable local Revit sessions or select the target for this Pi session | Pi-side |\r\n| `get_model_overview` | Project info, units, levels, grids, category counts — call first | Project, family |\r\n| `get_model_coordinates` | Read base points and site/project locations; map internal points through the active shared coordinates | Project |\r\n| `get_elements` | Query/count elements: parameter filters, optional parameter values, pagination | Project, family |\r\n| `summarize_elements` | Count all matching elements by category, type, level, or raw parameter value | Project, family |\r\n| `manage_element_sets` | Create, list, read, or forget temporary snapshots of matching host elements | Project, family |\r\n| `get_element_details` | Parameter values, location, bounding box, materials per element | Project, family |\r\n| `get_element_types` | Element types / family symbols, optional placed-instance counts | Project, family |\r\n| `get_linked_models` | Direct Revit link instances, load status, document identities, placement transforms | Project |\r\n| `get_linked_elements` | Query/count one loaded link, with optional bounding boxes in host coordinates | Project |\r\n| `query_spatial_elements` | Find host elements by approximate bounding-box intersection or containment in a region | Project |\r\n| `measure_geometry` | Measure exact point distance or approximate host-element bounding-box separation | Project, family |\r\n| `get_schedules` | List schedules or read fields, widths, specifications, sort/filter rules, and displayed cells | Project |\r\n| `get_schedule_fields` | Discover eligible field parameter/type pairs for an existing schedule | Project |\r\n| `manage_schedules` | Create or configure regular schedules, including fields, widths, sorting, and filters | Project |\r\n| `create_tags` | Create host element, room, space, or area tags, with partial/atomic batches and preview | Project |\r\n| `get_element_relationships` | Host, type, level, members, joined geometry, and logical dependents of one element | Project, family |\r\n| `manage_selection` | Get/set/clear the selection, zoom, temporary isolate | Project, family |\r\n| `open_view` | Activate a view or sheet in the Revit UI (like double-clicking it in the browser) | Project, family |\r\n| `set_parameters` | Bulk parameter writes and renames, with previews and optional atomic batches | Project, family |\r\n| `transform_elements` | Move, copy, or rotate a whole selection, with explicit units and preview | Project, family |\r\n| `delete_elements` | Preview or delete selected elements and report Revit's full deletion set | Project, family |\r\n| `change_element_types` | Change types per target, with preview and optional atomic rollback | Project, family |\r\n| `manage_views` | Create plans, isometric 3D views, or sections; duplicate or update views | Project, family |\r\n| `manage_sheets` | Create, rename, or renumber sheets, with an optional titleblock at creation | Project |\r\n| `manage_sheet_placements` | List, place, or move viewports and schedule instances in sheet paper space | Project |\r\n| `search_api_docs` | Search the offline Revit API docs (works with no document open) | Any, no document needed |\r\n| `execute_csharp` | Run a C# script with separate JSON inputs in one auto-managed transaction | Project, family |\r\n| `manage_revit_scripts` | Save immutable local script versions, inspect source, run an exact version, and read history | Pi-side |\r\n| `capture_view` | PNG snapshot of a view to a temp file (read the returned path to see it) | Project, family |\r\n| `export_documents` | PDF/DWG/PNG/IFC export of sheets and views — sorted into `Models\\<title>--<identity hash>\\exports` | Project, family |\r\n| `get_model_health` | Warnings grouped + worksets, phases, design options audit | Project, family |\r\n| `read_revit_result` | Read bounded fragments of a saved large tool result; extension-only, no Revit call | Pi-side |\r\n| `get_revit_operation` | Inspect a bridge operation receipt and its retained result without waiting for the model thread | Pi-side |\r\n\r\n**Works in:** \"Project, family\" tools run in project and family documents. \"Project\" tools (sheets,\r\nsheet placements, schedules, tags, spatial queries, links, coordinates) refuse a family document before\r\nrunning and name the route to use instead. \"Pi-side\" utilities run in the extension and do not depend on\r\nthe open document; `search_api_docs` needs a running Revit but no open document. Each manual states this under \"Works in\".\r\n\r\n### Work in family documents\r\n\r\n`get_model_overview` reports `project.documentKind` (`project` or `family`). For a family it also returns\r\na family block: category, current type, type names, and parameters (name, instance or type, formula).\r\nFamily types, parameters and formulas are edited through `FamilyManager` with `execute_csharp`; there is\r\nno dedicated family-editing tool.\r\n\r\n### Choose a Revit instance\r\n\r\n`manage_revit_instances` defaults to `action: \"list\"`. It reports reachable\r\nlocal bridge sessions with an opaque `bridge_id`, process ID, Revit/add-in\r\nversions, selection status, and operation-tracking support. Choose the intended\r\nsession with `action: \"select\"` and the exact returned `bridge_id`. Selection\r\nbelongs to the current Pi extension session; it does not activate a document\r\nor change the model.\r\n\r\nWhen the first connection finds a sole instance, Pi binds to it automatically.\r\nIf several instances are available before a target is bound, explicitly select\r\none before model calls. Once bound, Pi keeps that exact bridge session. If it\r\ncloses or restarts, calls fail instead of switching to another instance, even\r\nwhen only one remains. List again and explicitly select the intended new\r\nidentity. Selection refreshes the tool catalogue; check `tool_catalog_ready`,\r\nand retry `ping` if discovery has not completed. Then read `get_model_overview`\r\nfor a fresh document identity before continuing work.\r\n\r\nEach current bridge publishes its own discovery file in\r\n`%APPDATA%\\RevitBridge\\instances\\<bridgeId>.json`. The legacy `bridge.json`\r\ndiscovery file is still supported. Older bridges without a generation ID receive\r\nan opaque hash selector in the instance list; copy it unchanged rather than\r\nconstructing one. Legacy discovery can expose only the older instance named by\r\nthat shared file, so updating each add-in enables discovery of all instances.\r\n\r\nOperation receipts and identical `_operation_id` retries route to the original\r\nbridge encoded in the operation ID, even after selecting a different instance.\r\nThey do not switch the target for new calls. If the original bridge is unavailable,\r\nthe request fails without sending the action to another session.\r\n\r\n### Read project coordinates\r\n\r\n`get_model_coordinates` reads project/survey base points, the active project\r\nlocation, site data, and paginated project locations. Supply a length `unit`;\r\noptional `points` accepts up to 100 positions along document internal axes.\r\nRevit's active project location maps those points to shared coordinates. Returned\r\nlengths use the requested unit, while angles and latitude/longitude use degrees.\r\nLocation pages default to 50 entries (maximum 100); follow `next_offset`.\r\nThe tool requires a project document, makes no coordinate changes, and does not\r\ninfer a GIS coordinate reference system or datum.\r\n\r\n### Query regions and measure distances\r\n\r\n`query_spatial_elements` takes a region `min`/`max` in the document's internal\r\naxes and an explicit length `unit`. It compares host-element axis-aligned\r\nbounding boxes with the region, using `intersects` (default) or `inside`.\r\nContainment requires the whole box to fit; touching boundaries are included.\r\nThe nested `query` uses whole-scope element filters and must match at most\r\n10,000 candidates before region testing. Query-level paging and projections\r\nare not accepted. Results sort by element ID with outer paging (default 100,\r\nmaximum 200); follow `next_offset`. `without_bounds_count` reports candidates\r\nomitted because they have no model bounding box.\r\n\r\n`measure_geometry` measures exact Euclidean distance between supplied points\r\nwith `mode: \"point_distance\"`, or approximate bounding-box separation between\r\ntwo host elements with `mode: \"bounding_box_gap\"`. Point mode returns signed\r\nA-to-B `delta`; box mode returns nonnegative axis gaps. The required `unit`\r\napplies to all inputs and outputs: millimeters, centimeters, meters, feet, or\r\ninches. Both modes use document internal axes; linked contents are not traversed.\r\n\r\nBounding-box gaps are lower bounds on geometry separation. Boxes can enclose\r\nnonphysical geometry, so touching/overlapping boxes do not establish a clash.\r\nAn optional nonnegative `clearance` in box mode flags gaps strictly below that\r\nthreshold; it identifies review candidates, not verified clearance failures.\r\nKeep the returned method and approximation status with any reported result.\r\n\r\nPractical workflows are available in the Pi skill references:\r\n[room documentation](skills/pi-revit/references/room-documentation.md) and\r\n[model audit and export](skills/pi-revit/references/model-audit-export.md).\r\n\r\n### Read parameter values and summarize queries\r\n\r\nAdd `parameter_names` to `get_elements` to read up to 20 requested parameters\r\nalongside element identity fields. Names can be display names, built-in parameter\r\nnames, or `guid:<GUID>` identities. `include_type_parameters: true` also reads\r\nthose parameters from each element's type. Projections expose missing and\r\nambiguous matches and include every matching parameter. Raw `value` uses Revit\r\ninternal units for measurable numbers; `displayValue` uses document formatting.\r\nBare counts return no parameter projections.\r\n\r\n`summarize_elements` groups a host-element `query` by `category`, `typeName`,\r\n`levelId`, or `parameter`. Parameter grouping uses exact raw values, with a\r\nseparate missing-parameter group, and rejects ambiguous display names. Set\r\n`type_parameter: true` to group by a parameter on the type. The outer\r\n`offset`/`limit` pages groups (default 100, maximum 500); counts always cover the\r\nwhole matching scope.\r\n\r\n`summarize_elements` and element-set creation accept category, class, level,\r\ntype, active-view, and parameter filters inside `query`. They reject query-level\r\npaging, projections, and `count_only`, and require at most 10,000 matching\r\nelements. Narrow larger queries; an omitted query covers all host instances.\r\n\r\n### Reuse an element set\r\n\r\nUse `manage_element_sets` with `action: \"create\"` to snapshot query membership,\r\nthen `read` its `set_id`, `list` active-document sets, or `forget` a set. This\r\nchanges neither the model nor selection. The bridge retains at most 32 sets;\r\neach expires 30 minutes after creation and belongs to the exact open document\r\nand bridge session. Reads do not renew it. Reopening the document or restarting\r\nthe bridge requires a fresh set.\r\n\r\nRead pages return current values for the original members, without reapplying\r\nthe query. Deleted or identity-changed members appear in `missing`. Check those\r\nentries before passing surviving IDs to other tools. Pages default to 100\r\nmembers (maximum 1000); follow `next_offset`, which includes missing members in\r\n`visited_count`. Set reads also support `parameter_names` and\r\n`include_type_parameters`.\r\n\r\n### Preview parameter changes\r\n\r\n`set_parameters` accepts 1–200 updates and defaults to committing successful\r\nupdates while reporting failures. Each update has its own subtransaction.\r\n`atomic: true` rolls back the entire batch if any update fails. `preview: true`\r\nperforms eligible commit checks inside a transaction group, then rolls the\r\ngroup back. Both options require the same exact document identity as an ordinary\r\nwrite and can be combined.\r\n\r\nRead `commit_validation_performed`: an atomic batch rejected before commit, or\r\na batch with no accepted updates, has not passed commit-time validation.\r\nSuccessful preview responses confirm model rollback. Errors report the cleanup\r\noutcome instead; inspect it before retrying.\r\n\r\nOnly committed updates appear in `succeeded`. Accepted steps from previews or\r\nrolled-back batches appear in `proposed`, with `updated: 0` and\r\n`committed: false`. Their `before`/`after` values describe each step in input\r\norder, identified by its zero-based `index`. Repeated writes can have intermediate\r\nvalues; reread the element when final values matter. Inspect `failed` and\r\n`commitWarnings` as well. Numeric write inputs use the explicit `unit` or the\r\ndocument's display units; raw numeric values in the returned snapshots use\r\nRevit internal units.\r\n\r\n### Transform, delete, and change types\r\n\r\nThese advanced tools can be activated with `find_revit_tools`. They operate on\r\nthe active host document and require `expected_document_id` for both previews\r\nand writes. Their results use the same `succeeded`, `proposed`, `failed`,\r\n`committed`, and commit-validation fields as parameter batches. `updated` counts\r\nsteps: one whole-selection transform or deletion counts as one step.\r\n\r\n`transform_elements` moves, copies, or rotates 1–200 distinct `element_ids`\r\ntogether. Always supply `unit`: `millimeters`, `centimeters`, `meters`, `feet`,\r\nor `inches`. Move/copy takes a `translation` vector. Rotation takes an\r\n`axis_origin`, a nonzero dimensionless `axis_direction`, and signed right-hand\r\n`angle_degrees`. Coordinates refer to the document's internal origin and axes;\r\nreturned location snapshots use feet, regardless of input units. The selection\r\nsucceeds or rolls back as one step. Move/rotate rejects pinned requested\r\nelements; the tool never unpins them automatically. Copy previews return\r\ntemporary `created_ids`, which must not be reused after rollback.\r\n\r\n`delete_elements` deletes 1–200 distinct requested elements in one step, rejecting\r\npinned requested elements. Use `preview: true` to inspect Revit's complete\r\n`deleted_ids` set and its `dependent_ids`, with rollback. A cascade exceeding\r\n10,000 IDs rolls back. To check a later deletion against the preview, optionally\r\npass the full `deleted_ids` as `expected_deleted_ids`; a changed set causes\r\nrollback before commit. This compares membership only. The actual deletion is\r\na new request, not an identical retry of the preview, so do not reuse the\r\npreview's `_operation_id` for it.\r\n\r\n`change_element_types` accepts 1–200 `element_id`/`type_id` pairs in `updates`,\r\nwith each target appearing once. Invalid types or pinned targets fail individually;\r\nother valid changes can commit by default. `atomic: true` rolls back the complete\r\nbatch on any failure. Some type changes replace the original element: use the\r\ncommitted `resulting_id` and `unique_id` afterward. Replacement IDs reported in\r\n`proposed` are temporary after preview or atomic rollback.\r\n\r\nTransforms and type changes can affect constrained or hosted elements beyond\r\nthe target snapshots. Deletion IDs cover elements returned by Revit's deletion\r\nAPI, not surviving elements Revit may also modify. Review these results as\r\nbounded descriptions of the operation, not a complete audit of every effect.\r\n\r\n### Create views and arrange sheets\r\n\r\nActivate `manage_views`, `manage_sheets`, and `manage_sheet_placements` through\r\n`find_revit_tools`. Edits support `preview: true` and require the exact document\r\nidentity. Each call edits one view, sheet, or placement in one step. Created IDs\r\nin previews are marked `id_is_temporary` and must not be reused after rollback.\r\nInspect the common transaction outcome and validation fields. Use `open_view`\r\nto display committed views/sheets and `delete_elements` to remove them.\r\n\r\n`manage_views` supports `create_plan`, `create_3d`, `create_section`, `duplicate`,\r\nand `update`. Creation uses a compatible `view_family_type_id`; discover it with\r\n`get_element_types` and `of_class: \"ViewFamilyType\"`. Plans also need `level_id`;\r\n3D creation produces an isometric view. Duplicate/update targets `view_id`.\r\nDuplication options are `duplicate`, `with_detailing`, and `dependent` where\r\nsupported. Optional name, scale, and template apply in the same step. Template\r\nID `-1` removes a template explicitly; incompatible templates or controlled\r\nscale changes fail without automatically removing the template.\r\n\r\nSections use the document's internal coordinate frame. Supply `origin`, explicit\r\nlength `unit`, orthogonal nonzero `viewing_direction` and `up`, and positive\r\nwidth/height/depth. Width and height center on the origin; depth extends in the\r\nviewing direction. Direction vectors are dimensionless.\r\n\r\n`manage_sheets` creates a sheet from `name` and `number`, optionally using a loaded\r\ntitleblock `FamilySymbol` specified by `titleblock_type_id`. Omitting it creates\r\na sheet without a titleblock. Updates use `sheet_id` and name/number; changing\r\nan existing titleblock type uses `change_element_types` on its instance instead.\r\n\r\n`manage_sheet_placements` lists both viewports and schedule instances for a\r\n`sheet_id` (default 100 per page, maximum 200). Follow `next_offset`. Although\r\nlisting changes no model state, the tool's write-capable metadata means\r\n`expected_document_id` is required for this action too.\r\n\r\nTo place content, supply `sheet_id`, `view_id`, explicit `unit`, and\r\n`position: [x,y,0]`; to move it, supply `placement_id`, unit, and position.\r\nPositions are paper-space sheet coordinates and must never be multiplied by\r\nview scale. Viewports use their box center excluding the label; schedules use\r\ntheir insertion point. Returned positions use feet and state `position_kind`.\r\nViewports support rotation `none`, `clockwise`, or `counterclockwise`; omit\r\nrotation for schedules. Pinned placements cannot be moved, placeholder sheets\r\ncannot receive content, and Revit checks whether a view can be placed.\r\n\r\n### Configure schedules and create tags\r\n\r\n`manage_schedules` creates a regular schedule from `category` and `name`, with\r\nan optional `area_scheme_id` for area schedules. Configure an existing schedule\r\nwith `schedule_id`. Each call is one atomic step, requires `expected_document_id`,\r\nand supports preview rollback. Revision schedules, templates, embedded schedules,\r\nand calculated/combined-field authoring are outside this tool.\r\n\r\nUse `get_schedule_fields` to discover eligible fields for an existing schedule.\r\nIt supports localized name filtering and paging (default 100, maximum 200).\r\n`add_fields` identifies each field by its `parameter_id` plus `field_type` pair;\r\nnegative built-in parameter IDs are valid. When Count appears in discovery,\r\npass its returned pair unchanged, just like other fields. Count can also be\r\nadded as `{ \"field_type\": \"Count\" }` without a parameter ID. A supplied pair\r\nmust be eligible for the target schedule; do not guess its parameter ID.\r\n`included` marks pairs already present.\r\n\r\nIn contrast, `update_fields`, `sort_fields`, and `filters` use the schedule-local\r\n`field_id` returned by `get_schedules`. These IDs are neither parameter IDs nor\r\ncolumn indices. Read newly committed fields before assigning their sort/filter\r\nrules. New schedule and field IDs returned by previews are temporary.\r\n\r\nField additions and updates support heading, hidden state, and width, with up\r\nto 50 entries each. Widths require explicit length units and apply to both grid\r\nand sheet columns. `sort_fields` allows four rules; `filters` allows eight.\r\nSupplying either array replaces its entire list, including clearing it with\r\n`[]`; omitting the property preserves it. `is_itemized` controls itemization.\r\n\r\nFilter comparisons are `equals`, `not_equals`, `contains`, `greater_than`, or\r\n`less_than`. Supply a matching `value_type` and value. Measured numeric filters\r\nrequire an explicit compatible `unit`; unitless numbers must omit it.\r\n`get_schedules` exposes each field's specification, filtering capabilities,\r\ngrid/sheet widths in feet, and current sort/filter rules. Returned numeric filter\r\nvalues use internal units; returned comparison names use Revit enums rather\r\nthan the write schema's comparison strings.\r\n\r\n`create_tags` accepts 1–100 host-document targets in one explicit view, using a\r\nloaded tag `FamilySymbol`. Choose `kind` as `element`, `room`, `space`, or `area`.\r\nEach target has `element_id` and `head_position: [x,y,z]` in document internal\r\ncoordinates, using the required length `unit`. The position always means the\r\ntag head, including when `leader: true`; returned positions use feet. Linked\r\ntargets and face/subelement references are unsupported.\r\n\r\nElement tags support horizontal/vertical orientation. Spatial tags require a\r\ncompatible plan view and positions at the spatial element's level; omit their\r\norientation property. Independent tags cannot use templates, perspective views,\r\nor unlocked 3D views. Creation requires exact document targeting, defaults to\r\npartial success, and supports `atomic: true` and `preview: true`. IDs in\r\n`proposed` are temporary after preview or atomic rollback; use only committed\r\ntag IDs for subsequent calls.\r\n\r\n### Inspect links, schedules, and relationships\r\n\r\nCall `get_linked_models` before querying a link. Pass its `link_instance_id` and\r\n`linked_document_id` to `get_linked_elements` as `link_instance_id` and\r\n`expected_linked_document_id`. The optional `expected_document_id` still identifies\r\nthe active host model. Refresh discovery after unloading or reloading a link.\r\nQueries support `get_elements` filters and pagination, except active-view scoping.\r\nUnloaded links cannot be queried, and nested links are not traversed.\r\n\r\nKeep the full `reference` returned for each linked element: its numeric ID belongs\r\nto the linked document and must not be used with host selection or write tools.\r\nDifferent placements of one linked model can produce different host coordinates.\r\nOptional `host_bounds` use internal feet and enclose all eight transformed box\r\ncorners; they are axis-aligned bounds, not exact geometry. A missing box is null.\r\n\r\nUse `get_schedules` without an ID to list schedules, or with `schedule_id` to read\r\nfield definitions, width/specification metadata, sort/filter rules, and displayed\r\nbody cells. Text follows Revit's formatting and\r\ncan include grouped entries, headings, and totals; rows are not element IDs.\r\nHidden field definitions need not correspond to displayed columns. Follow both\r\n`next_offset` and `next_column_offset`: finish the column pages for a row page\r\nbefore moving to the next rows. List/body pages default to 50 entries (maximum\r\n200); column pages default to 50 (maximum 50).\r\n\r\n`get_element_relationships` reports each requested relationship separately, with\r\nits own count and continuation offset. It reads host-document relationships only;\r\nlogical dependents are not a complete deletion-impact prediction. In family\r\ndocuments, request relationship kinds that exclude `joined`. Relationship pages\r\ndefault to 100 entries (maximum 200). Link-instance pages default to 100 (maximum\r\n1000), and linked-element pages default to 200 (maximum 1000).\r\n\r\n### Reuse a script with structured inputs\r\n\r\n`execute_csharp` accepts an optional `inputs` JSON object separately from its\r\nsource code. The script reads it through the `inputs` `JsonElement` global,\r\nfor example `inputs.GetProperty(\"value\").GetDouble()`. Inputs default to an\r\nempty object and are not interpolated into source text. Scripts validate their\r\ncontents; the serialized object is limited to 100,000 characters.\r\n\r\n`manage_revit_scripts` stores reusable definitions under\r\n`%APPDATA%\\pi-revit\\scripts`. Its actions are `save`, `list`, `read`, `run`, and\r\n`history`. Saving requires a name, description, code, and `input_types`; it never\r\nexecutes the script. Versions are immutable 64-character SHA-256 hashes of the\r\nsaved definition. Read a version to inspect its source, then explicitly run that\r\nexact name/hash with current `expected_document_id` and inputs. Runs verify\r\nsaved content integrity and require a bridge with operation receipts.\r\n\r\nUp to 40 named `input_types` can be declared as string, number, integer, boolean,\r\nobject, or array. Every declared input is required and extra inputs are rejected.\r\nValidation covers top-level kinds only: scripts still validate nested objects,\r\narray contents, ranges, units, and model-specific rules. The Pi skill includes\r\na short save/read/run example using a numeric input.\r\n\r\nLibrary runs use unrestricted `execute_csharp`, with the same model, UI, file,\r\nand external effects, synchronous execution, transaction, and timeout behavior.\r\nThere is no preview mode, scheduled execution, or automatic model saving. A saved\r\nscript is not a saved Revit model.\r\n\r\nList/history pages default to 20 entries (maximum 100), with optional exact-name\r\nfiltering. Local history stores version, document identity, input hash,\r\ntimestamps, and receipt IDs, rather than raw inputs or results. History states\r\nrecord dispatch/response progress, not a model transaction outcome. After a\r\ntimeout or interruption, inspect `get_revit_operation`; an identical retry uses\r\nthe original `_operation_id`, script version, inputs, and document identity.\r\n\r\n### See what a call changed\r\n\r\nEvery call that can change the model reports `model_changes`: the objects it added, modified and\r\ndeleted, and whether the call was rolled back. `observed: false` means no document change was seen.\r\nThis covers custom C# scripts too. New views list their hidden categories and elements. In a family,\r\nthe report also lists types and parameters added, removed or changed. State what a call changed from\r\nthis report, not from a screenshot.\r\n\r\nObjects made from an existing one carry its state. Duplicating views, copying elements, changing types\r\nand creating tags report `inherited_state`: hidden categories and elements, filters, overrides, the view\r\ntemplate, and carried values such as Mark and Comments. Compare it with the request and say what the\r\nresult derives from.\r\n\r\nObjects that existed before the request are protected from silent reuse. A name already used by a view,\r\nschedule, level, grid, type, material, filter or family type, or a sheet number already taken, is\r\nrejected with `name_collision` and the existing object's ID. When a call writes to an object the request\r\nnames but did not create, the extension adds a scope note, and the agent must ask you or report it.\r\nNames are compared in any writing system; there are no per-language rules.\r\n\r\n### Check an operation after a timeout\r\n\r\nWith a bridge that supports operation tracking, Pi automatically assigns an\r\noperation ID to each bridge tool call and includes it in responses or request\r\nerrors. Call the native `get_revit_operation` tool with that `operation_id` to\r\ncheck progress or recover the original result. This extension tool contacts the\r\noperation's original local bridge directly, even when another instance is selected,\r\nso it works while Revit's model thread is busy or no\r\ndocument is open; the bridge must still be running.\r\n\r\n| Receipt state | Meaning |\r\n|---|---|\r\n| `queued` | Waiting to begin; no tool execution has started. |\r\n| `running` | Execution started; a client timeout or cancellation does not stop it. |\r\n| `succeeded` | The tool returned successfully; inspect its payload for the actual model outcome. |\r\n| `failed` | The call returned an error; this alone does not confirm rollback or absence of effects. |\r\n| `expired_before_start` | Its queue deadline passed before execution; no tool action was performed. |\r\n| `result_unavailable` | The tool finished, but a response could not be retained correctly; effects may already exist. |\r\n| `unknown` | This bridge session has no receipt; the outcome is unknown. |\r\n\r\nA successful receipt is not proof of a committed edit. For example, a completed\r\nparameter preview can have receipt state `succeeded` while its payload reports\r\n`preview: true`, `committed: false`, and proposed changes that were rolled back.\r\nInspect `committed`, validation flags, failures, and warnings in the retained\r\ntool result.\r\n\r\nTo retry the same request, pass its exact ID as `_operation_id` on the original\r\ntool call and preserve all original arguments. Within the same bridge session,\r\nthis waits for the existing operation or returns its cached response; it never\r\nexecutes that ID a second time. Reusing the ID with a different tool or arguments\r\nis rejected. Omitting `_operation_id` creates a new operation, so establish the\r\nprevious outcome before retrying an edit that way.\r\n\r\nThe bridge retains at most 128 completed full results, with a combined 32 MiB\r\nlimit. Older or oversized results can be evicted, but their receipt records\r\nremain reserved for the session and report `result_available: false`. Replaying\r\nan evicted result returns an error without repeating the action. At 10,000\r\nreceipt records, new tracked calls are rejected; existing receipts remain\r\nqueryable. A bridge restart clears all receipts and changes its identity. Old\r\nIDs cannot be replayed in the new session. An unavailable original bridge or an\r\n`unknown` receipt does not prove that an earlier edit never ran. Changing the\r\nselected instance does not redirect old receipts or retries. Inspect the original\r\nmodel before deciding on a new operation.\r\n\r\n### Read complete results\r\n\r\nRequested rows and parameter values are included in model-visible tool content.\r\nResults up to 12,000 characters are complete inline. For a larger result, the Pi\r\nextension saves the complete tool payload as UTF-8 JSON and returns `result_id`,\r\n`file_path`, `total_chars`, `complete_inline: false`, and retrieval instructions.\r\n\r\nCall `read_revit_result` with the returned ID and `offset: 0`, then follow each\r\n`next_offset` until `has_more` is false. A requested fragment is at most 8,000\r\nUTF-16 code units; it may be smaller so the escaped response stays within the\r\nmessage limit. Concatenate each page's `text` in order. Individual fragments are\r\nnot standalone JSON objects from the original result. Use the returned offsets,\r\nnot byte counts or a guessed increment.\r\n\r\nResult IDs are registered in memory by the current extension instance. After an\r\nextension reload or new Pi process, an old ID may no longer resolve; use the\r\noriginal absolute `file_path` with Pi's normal `read` tool while that file remains\r\navailable. Saved results live in a unique OS temporary directory, can contain\r\nmodel data, and are subject to eventual OS/user cleanup. If saving fails after\r\nRevit completed an operation, inspect actual model state before retrying a write.\r\n\r\nComplete payload retrieval does not expand a tool's own query page or declared\r\nlimits. Continue `get_elements`/`get_element_types` pagination separately, and\r\ncheck warning-group or projection truncation indicators. A bridge-only client\r\nmust consume `details.payload` for oversized results; `read_revit_result` belongs\r\nto the Pi extension.\r\n\r\nDisplay-name parameter filters now resolve on every element, including inside a\r\ncategory/class scope. Explicit built-in IDs and shared GUIDs can retain collector\r\noptimization. In `get_element_details`, `include.parameters` and\r\n`include.type_parameters` are independent; disabling instance parameters still\r\nallows a type-only result.\r\n\r\n## Limitations — read before using on real projects\r\n\r\n- **Writes change the open model directly.** There is no confirmation prompt.\r\n  Typed editing tools provide preview and transaction outcomes; `execute_csharp`\r\n  remains unrestricted and attempts rollback after script failure. Parameter\r\n  and type-change batches default to partial success, with optional atomic rollback.\r\n  Transforms and deletions apply the whole selection in one step. Read the\r\n  actual transaction outcome and failed lists. Script result-projection failure\r\n  can leave a successful edit committed with a `returnValueError`; filesystem and\r\n  UI effects are separate from model rollback.\r\n- The add-in multi-targets .NET 8 (Revit 2025/2026) and .NET 10 (Revit 2027); `deploy.ps1`\r\n  auto-detects the Revit versions you have installed and builds only the matching framework(s),\r\n  so you only need the SDK for the Revit you run. Release 0.5.0 was tested live on\r\n  Revit 2025 only: a building project, a sample site model, a sample family, and requests\r\n  written in Chinese, Arabic, Japanese and Russian. Revit 2026/2027 and large-model\r\n  performance are not tested. Export API/file checks do not\r\n  establish full DWG drawing or IFC schema/geometry validation.\r\n- Pi targets one bridge session at a time. Use `manage_revit_instances` to select\r\n  among reachable instances. Closing or restarting the selected bridge requires\r\n  explicit selection of an available identity; model calls never fall back to another.\r\n- A tool call that outlives its timeout is abandoned client-side but may still complete inside\r\n  Revit. Check its receipt with `get_revit_operation`; when retrying the identical request,\r\n  reuse `_operation_id`. If its outcome remains unknown, inspect the model before a new write.\r\n- Long-running scripts cannot be interrupted mid-execution (Revit's API is single-threaded);\r\n  the `execute_csharp` budget is 120s.\r\n\r\n## Uninstall\r\n\r\n### npm install\r\n\r\nClose Revit, then in PowerShell — from any folder **outside** the installed package (Windows\r\ncannot delete a folder your shell is standing in):\r\n\r\n```powershell\r\npowershell -ExecutionPolicy Bypass -File \"$env:USERPROFILE\\.pi\\agent\\npm\\node_modules\\pi-revit\\scripts\\uninstall.ps1\"\r\n```\r\n\r\n### Source install\r\n\r\nClose Revit, then in PowerShell from the GitHub checkout:\r\n\r\n```powershell\r\npowershell -ExecutionPolicy Bypass -File scripts\\uninstall.ps1\r\n```\r\n\r\nThis removes the Revit bridge add-in (every installed Revit version), the global `pi-revit`\r\ncommand, the bridge runtime folder (`%APPDATA%\\RevitBridge\\`), and the Pi package registration\r\n(it tries both the npm and the source-install form, so no extra `pi remove` is needed for\r\neither install kind). Your workspace at `Documents\\pi-revit` (notes + session\r\nhistory) is **preserved** — add `-RemoveWorkspace` to delete it too, or `-RevitVersion 2026` to\r\ntarget a single Revit version. Pi itself is left installed; remove it with\r\n`npm uninstall -g @earendil-works/pi-coding-agent` if you want.\r\n","readmeFilename":"README.md"}