@thatopen/services 0.3.11 → 0.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/cli/commands/revit.d.ts +9 -0
  2. package/dist/cli/lib/revit-addin.d.ts +20 -0
  3. package/dist/cli.js +101 -0
  4. package/dist/cloud/LasToPotree.d.ts +59 -0
  5. package/dist/cloud/SplatToFq.d.ts +38 -0
  6. package/dist/cloud/index.d.ts +2 -0
  7. package/docs/builtin/paths.json +86 -86
  8. package/docs/cloud/GaussianSplatConverter.md +43 -0
  9. package/docs/cloud/PointCloudConverter.md +53 -0
  10. package/docs/revit-collab-quickstart.md +151 -0
  11. package/package.json +95 -95
  12. package/src/built-in/ClashesManager/example.ts +283 -283
  13. package/src/built-in/UIManager/src/clashes-panel/example.ts +160 -160
  14. package/src/built-in/UIManager/src/models-list/example.ts +122 -118
  15. package/src/cli/templates/app/package.json +33 -33
  16. package/src/cli/templates/app/src/setups/camera-tools.ts +0 -63
  17. package/src/cli/templates/app/src/setups/camera-views.ts +0 -201
  18. package/src/cli/templates/app/src/setups/card-header.ts +0 -35
  19. package/src/cli/templates/app/src/setups/clipper-tool.ts +0 -773
  20. package/src/cli/templates/app/src/setups/clipper.ts +0 -75
  21. package/src/cli/templates/app/src/setups/cloud-runner.ts +0 -13
  22. package/src/cli/templates/app/src/setups/exploded-view.ts +0 -246
  23. package/src/cli/templates/app/src/setups/helper-panel.ts +0 -88
  24. package/src/cli/templates/app/src/setups/hider.ts +0 -98
  25. package/src/cli/templates/app/src/setups/index.ts +0 -23
  26. package/src/cli/templates/app/src/setups/inspection.ts +0 -136
  27. package/src/cli/templates/app/src/setups/measurement-panel.ts +0 -188
  28. package/src/cli/templates/app/src/setups/measurement-tool.ts +0 -588
  29. package/src/cli/templates/app/src/setups/measurements.ts +0 -133
  30. package/src/cli/templates/app/src/setups/navigation-gizmo.ts +0 -316
  31. package/src/cli/templates/app/src/setups/plans-panel.ts +0 -619
  32. package/src/cli/templates/app/src/setups/right-sidebar.ts +0 -178
  33. package/src/cli/templates/app/src/setups/styles-panel.ts +0 -110
  34. package/src/cli/templates/app/src/setups/styles.ts +0 -375
  35. package/src/cli/templates/app/src/setups/tool-mode-manager.ts +0 -156
  36. package/src/cli/templates/app/src/setups/tool-mode.ts +0 -23
  37. package/src/cli/templates/app/src/setups/toolbar.ts +0 -229
  38. package/src/cli/templates/app/src/setups/ui-manager.ts +0 -27
@@ -0,0 +1,151 @@
1
+ # That Open — Revit Collaboration Quickstart (for AI assistants)
2
+
3
+ You are an AI assistant. A user pointed you at this guide so you can set up or join
4
+ **real‑time Revit collaboration** through the That Open platform. Follow the steps
5
+ **in order**. Ask the user for anything you don't already have. Do **exactly** what each
6
+ step says — don't improvise, don't skip the verification lines, and don't call platform
7
+ APIs directly. Everything is done with the `thatopen` CLI.
8
+
9
+ ## What this does
10
+ Multiple people work on **one shared Revit central model** using Revit's native
11
+ worksharing. The central lives on the That Open platform. Each person has their own
12
+ local; when they **sync**, their changes go up and their teammates' changes come down.
13
+ All syncs are automatically **queued**, so the central never conflicts or diverges.
14
+
15
+ ## Rules (read first, follow throughout)
16
+ - **Never** print, echo, store, or commit the user's access token.
17
+ - **Ask, don't assume.** If you're missing a value (project id, file path, central name),
18
+ ask the user for it before running a command.
19
+ - **Use only the `thatopen` CLI** commands in this guide. Don't hand‑edit files or call
20
+ HTTP APIs.
21
+ - Revit‑specific work (enable worksharing, create local, sync) happens **inside the That
22
+ Open Revit add‑in**; the CLI drives it. The user must have Revit open with the add‑in.
23
+ - After each command, **check the output** matches what this guide says before moving on.
24
+
25
+ ---
26
+
27
+ ## Step 0 — Prerequisites (check, don't assume)
28
+
29
+ 1. **Node.js 18+** — run `node -v`. If missing, ask the user to install Node.js, then continue.
30
+ 2. **The CLI** — install/upgrade it:
31
+ ```
32
+ npm install -g @thatopen/services@latest
33
+ ```
34
+ Verify with `thatopen --version`.
35
+ 3. **Revit 2026 is open** on this machine. Ask the user to confirm.
36
+ 4. **The That Open Revit add‑in is installed.** Ask the user:
37
+ *"Do you already have the That Open Revit add‑in installed?"*
38
+ - **If no / not sure — the plugin files ship in the SAME folder as this guide**
39
+ (this guide travels inside the plugin zip). Install it:
40
+ 1. In this folder, right‑click `install.ps1` → **Run with PowerShell**
41
+ (or run `powershell -ExecutionPolicy Bypass -File .\install.ps1`).
42
+ 2. **Restart Revit 2026.** If Revit warns the add‑in is from an unknown publisher,
43
+ choose **"Always Load"**.
44
+ - *If you have only this guide and not the plugin files, download the plugin zip here,
45
+ unzip it, and run `install.ps1`:*
46
+ **https://drive.google.com/file/d/1HL_Ti7N_qN0Q-X7vNYOQst3yEgIY-xXO/view?usp=drive_link**
47
+ 5. **Verify the add‑in is running** — run:
48
+ ```
49
+ thatopen revit status
50
+ ```
51
+ It should print JSON containing `"loaded": true`. If instead you see
52
+ *"The That Open Revit add‑in is not running"*, the user must open Revit 2026 (with the
53
+ add‑in installed) and — if they just installed it — **restart Revit**. Then retry.
54
+
55
+ ---
56
+
57
+ ## Step 1 — Log in
58
+
59
+ Ask the user for their **platform access token**:
60
+ *"Please paste your That Open access token (dashboard → Data → API Tokens → Create → copy)."*
61
+ **Never echo the token back.** Then run:
62
+ ```
63
+ thatopen login --token <TOKEN>
64
+ ```
65
+ - For the **dev** environment, add: `--api-url https://dev.platform.thatopen.com`
66
+ - Success looks like: `Logged in successfully. Config saved to ~/.thatopen/config.json`.
67
+
68
+ ---
69
+
70
+ ## Step 2 — Which project?
71
+
72
+ Ask the user for the **platform Project ID** they want to collaborate in
73
+ (they can find it in the platform dashboard / project settings / project URL).
74
+ Remember it as `<PROJECT>` for the commands below.
75
+
76
+ ---
77
+
78
+ ## Step 3 — Publish or Join?
79
+
80
+ Ask the user:
81
+ *"Do you want to **(A) share a Revit model** with your team for the first time, or
82
+ **(B) join a shared model** a teammate already uploaded?"*
83
+
84
+ ### 3A — Share a model (publisher)
85
+ Use this when the user has a Revit file on their machine they want the team to work on.
86
+ It works whether the file is a **normal (non‑workshared) model** or already a **central** —
87
+ both are fine.
88
+
89
+ 1. Ask for the **absolute path** to the `.rvt` on this machine → `<FILE>`.
90
+ 2. Ask for a **short name** for this shared central, e.g. `tower-central` → `<DOC>`.
91
+ (This is how teammates will refer to it when they join. Keep it lowercase, no spaces.)
92
+ 3. Run:
93
+ ```
94
+ thatopen revit publish-central --project <PROJECT> --doc <DOC> --file "<FILE>"
95
+ ```
96
+ This enables worksharing, saves it as a central, uploads it, and opens **your** local in
97
+ Revit. It can take a bit (Revit is doing the worksharing conversion).
98
+ 4. Success prints `Published. Central: ... (version N).` Tell the user their teammates can
99
+ now join with:
100
+ ```
101
+ thatopen revit join --project <PROJECT> --doc <DOC>
102
+ ```
103
+
104
+ ### 3B — Join a shared model (collaborator)
105
+ Use this when a teammate has already published a central to this project.
106
+
107
+ 1. Ask for the **central name** the publisher gave them → `<DOC>`.
108
+ 2. Run:
109
+ ```
110
+ thatopen revit join --project <PROJECT> --doc <DOC>
111
+ ```
112
+ This downloads the central, creates the user's **local**, and opens it in Revit.
113
+ Success prints `Joined. Your local was created and opened in Revit: ...`.
114
+
115
+ ---
116
+
117
+ ## Step 4 — Work, then sync
118
+
119
+ Tell the user: **model normally** in the local that Revit just opened.
120
+ When they want to **send their changes to the team and pull the team's changes**, run:
121
+ ```
122
+ thatopen revit sync
123
+ ```
124
+ …or click **"Sync to team"** in the **"That Open"** panel of Revit's **Add‑Ins** tab.
125
+ Success prints `Synced. vN → vM.` Everyone's syncs are queued automatically — no conflicts.
126
+
127
+ They can keep working and sync as often as they like. Repeat this step.
128
+
129
+ ---
130
+
131
+ ## Special case — the user already has their local open
132
+ If the user **already has their local `.rvt` open in Revit** from a previous session, they
133
+ do **not** need to log in / join again. The open file already knows its project and central.
134
+ Just tell them to run `thatopen revit sync` (or click **"Sync to team"**) — it reads
135
+ everything it needs from the open local.
136
+
137
+ ---
138
+
139
+ ## Troubleshooting
140
+ - **"The That Open Revit add‑in is not running"** → open Revit 2026 with the add‑in
141
+ installed; if just installed, restart Revit; then retry.
142
+ - **"Not logged in"** → do Step 1.
143
+ - **publish/join says a value is missing** → you omitted an `--option`. Re‑run with all of
144
+ `--project`, `--doc`, and (for publish) `--file`.
145
+ - **"Could not reach the Revit add‑in"** → Revit was closed. Reopen it and retry.
146
+
147
+ ## Rules recap (for the AI)
148
+ - Ask for every value you don't have — never guess a project id, file path, or central name.
149
+ - Never echo or store the user's token.
150
+ - Only use the `thatopen` CLI commands shown here; verify each command's output before
151
+ proceeding.
package/package.json CHANGED
@@ -1,95 +1,95 @@
1
- {
2
- "name": "@thatopen/services",
3
- "description": "Client library and CLI for building BIM apps and cloud components on the That Open Platform",
4
- "author": "That Open Company",
5
- "license": "MIT",
6
- "homepage": "https://github.com/ThatOpen/engine_services#readme",
7
- "bugs": {
8
- "url": "https://github.com/ThatOpen/engine_services/issues"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/ThatOpen/engine_services.git"
13
- },
14
- "publishConfig": {
15
- "access": "public"
16
- },
17
- "private": false,
18
- "version": "0.3.11",
19
- "main": "dist/index.cjs.js",
20
- "module": "dist/index.es.js",
21
- "types": "dist/index.d.ts",
22
- "bin": {
23
- "thatopen": "dist/cli.js"
24
- },
25
- "files": [
26
- "dist",
27
- "src/cli/templates",
28
- "src/built-in",
29
- "docs",
30
- "resources"
31
- ],
32
- "scripts": {
33
- "dev": "vite",
34
- "lint": "eslint src/",
35
- "build": "eslint src/ && tsc && vite build && vite build --config vite.config.cli.mts && node scripts/generate-cli-docs-paths.mjs && node scripts/generate-client-examples-paths.mjs",
36
- "build:lib": "tsc && vite build",
37
- "test": "vitest run",
38
- "test:watch": "vitest",
39
- "build:cli": "vite build --config vite.config.cli.mts",
40
- "preview": "vite preview",
41
- "test:ui": "vite --config test/vite.config.mts",
42
- "template:app": "cd src/cli/templates/app && npm install && cd ../../../.. && node scripts/generate-template-tsconfig.mjs",
43
- "template:app:dev": "cd src/cli/templates/app && npm run dev",
44
- "changeset": "changeset",
45
- "version": "changeset version",
46
- "prepublishOnly": "npm run build"
47
- },
48
- "devDependencies": {
49
- "@changesets/cli": "^2.27.7",
50
- "@thatopen/components": "~3.4.0",
51
- "@thatopen/components-front": "~3.4.0",
52
- "@thatopen/fragments": "~3.4.0",
53
- "@thatopen/ui": "~3.4.0",
54
- "@thatopen/ui-obc": "~3.4.0",
55
- "@types/node": "^20.12.12",
56
- "@types/three": "^0.182.0",
57
- "commander": "^14.0.3",
58
- "esbuild": "^0.27.3",
59
- "eslint": "9.x",
60
- "eslint-config-prettier": "^9.1.0",
61
- "eslint-plugin-prettier": "^5.1.3",
62
- "globals": "^15.3.0",
63
- "jszip": "^3.10.1",
64
- "prettier": "^3.2.5",
65
- "three": ">=0.182.0",
66
- "tsx": "^4.16.2",
67
- "typescript": "^5.2.2",
68
- "typescript-eslint": "^7.10.0",
69
- "vite": "^5.2.0",
70
- "vite-plugin-dts": "^3.9.1",
71
- "vite-plugin-eslint": "^1.8.1",
72
- "vitest": "^4.1.4"
73
- },
74
- "dependencies": {
75
- "dotenv": "^16.4.5",
76
- "socket.io": "^4.8.0",
77
- "socket.io-client": "^4.8.0"
78
- },
79
- "peerDependencies": {
80
- "@thatopen/components": "~3.4.0",
81
- "@thatopen/ui": "~3.4.0",
82
- "three": ">=0.182.0"
83
- },
84
- "peerDependenciesMeta": {
85
- "@thatopen/components": {
86
- "optional": true
87
- },
88
- "@thatopen/ui": {
89
- "optional": true
90
- },
91
- "three": {
92
- "optional": true
93
- }
94
- }
95
- }
1
+ {
2
+ "name": "@thatopen/services",
3
+ "description": "Client library and CLI for building BIM apps and cloud components on the That Open Platform",
4
+ "author": "That Open Company",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/ThatOpen/engine_services#readme",
7
+ "bugs": {
8
+ "url": "https://github.com/ThatOpen/engine_services/issues"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/ThatOpen/engine_services.git"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "private": false,
18
+ "version": "0.3.12",
19
+ "main": "dist/index.cjs.js",
20
+ "module": "dist/index.es.js",
21
+ "types": "dist/index.d.ts",
22
+ "bin": {
23
+ "thatopen": "dist/cli.js"
24
+ },
25
+ "files": [
26
+ "dist",
27
+ "src/cli/templates",
28
+ "src/built-in",
29
+ "docs",
30
+ "resources"
31
+ ],
32
+ "scripts": {
33
+ "dev": "vite",
34
+ "lint": "eslint src/",
35
+ "build": "eslint src/ && tsc && vite build && vite build --config vite.config.cli.mts && node scripts/generate-cli-docs-paths.mjs && node scripts/generate-client-examples-paths.mjs",
36
+ "build:lib": "tsc && vite build",
37
+ "test": "vitest run",
38
+ "test:watch": "vitest",
39
+ "build:cli": "vite build --config vite.config.cli.mts",
40
+ "preview": "vite preview",
41
+ "test:ui": "vite --config test/vite.config.mts",
42
+ "template:app": "cd src/cli/templates/app && npm install && cd ../../../.. && node scripts/generate-template-tsconfig.mjs",
43
+ "template:app:dev": "cd src/cli/templates/app && npm run dev",
44
+ "changeset": "changeset",
45
+ "version": "changeset version",
46
+ "prepublishOnly": "npm run build"
47
+ },
48
+ "devDependencies": {
49
+ "@changesets/cli": "^2.27.7",
50
+ "@thatopen/components": "~3.4.0",
51
+ "@thatopen/components-front": "~3.4.0",
52
+ "@thatopen/fragments": "~3.4.0",
53
+ "@thatopen/ui": "~3.4.0",
54
+ "@thatopen/ui-obc": "~3.4.0",
55
+ "@types/node": "^20.12.12",
56
+ "@types/three": "^0.182.0",
57
+ "commander": "^14.0.3",
58
+ "esbuild": "^0.27.3",
59
+ "eslint": "9.x",
60
+ "eslint-config-prettier": "^9.1.0",
61
+ "eslint-plugin-prettier": "^5.1.3",
62
+ "globals": "^15.3.0",
63
+ "jszip": "^3.10.1",
64
+ "prettier": "^3.2.5",
65
+ "three": ">=0.182.0",
66
+ "tsx": "^4.16.2",
67
+ "typescript": "^5.2.2",
68
+ "typescript-eslint": "^7.10.0",
69
+ "vite": "^5.2.0",
70
+ "vite-plugin-dts": "^3.9.1",
71
+ "vite-plugin-eslint": "^1.8.1",
72
+ "vitest": "^4.1.4"
73
+ },
74
+ "dependencies": {
75
+ "dotenv": "^16.4.5",
76
+ "socket.io": "^4.8.0",
77
+ "socket.io-client": "^4.8.0"
78
+ },
79
+ "peerDependencies": {
80
+ "@thatopen/components": "~3.4.0",
81
+ "@thatopen/ui": "~3.4.0",
82
+ "three": ">=0.182.0"
83
+ },
84
+ "peerDependenciesMeta": {
85
+ "@thatopen/components": {
86
+ "optional": true
87
+ },
88
+ "@thatopen/ui": {
89
+ "optional": true
90
+ },
91
+ "three": {
92
+ "optional": true
93
+ }
94
+ }
95
+ }