Release Notes

What's new

The latest releases across the Revit and ArchiCAD builds β€” all in one place.

RevitOctober 6, 2026

BIBIM v1.2.0

Release date: 2026-10-04

Major feature release - latest model generation, Gemini removed, honesty/cost/speed overhaul of the agent harness, stronger security, .NET 10 readiness.


TL;DR

Pick Claude Sonnet 5 / Opus 5.5 / Fable 5.1 or GPT-6, and BIBIM stops pretending. Impossible requests are declined up front, applied changes are reported from measured facts, and code generation shows what it is doing in real time. Simple lookups are answered in seconds without writing code.


⭐ New features

  • Attach a document: the paperclip button (or drag & drop) attaches one .md / .txt / .csv file to a message, e.g. a model-check result table plus "fix the violating elements in this document". Tables with an ElementId/UniqueId column are parsed into a target list: you get a "N target elements, rule X" digest before anything runs, and preview/apply results carry a "0 changed outside the list" check. The document body is sent only with the AI request; it is never stored in the session history or logs.
  • Run Again: a finished task card can re-preview its own code with the current model and selection β€” no need to start over after running with nothing selected.

πŸ› Fixes

  • False version warnings removed: Element.LevelId and Parameter.AsInteger() were flagged (and auto-rewritten) as "removed in Revit 2024" although both still exist in 2024 and 2026. ElementId.IntegerValue is now a warning on 2024 and an error on 2026, as in the API. The auto-fix that broke workset code (WorksetId.IntegerValue) is fixed.
  • Fewer compile errors in generated code: System.IO and System.Text are imported by default (Path, File, StringBuilder).
  • Missing Apply / Run button: a long result no longer pushes the input and the buttons off-screen (the task card scrolls inside itself). Write requests such as "create dimensions" no longer fall into the built-in model summary and finish with nothing done, and model-changing tasks can no longer be classified as read-only (which hid Apply).
  • Ramps: the Revit API cannot create ramps. Instead of faking one with an uneditable DirectShape, BIBIM now says so and offers a sloped floor with a slope arrow of the same size.
  • Copying grid 2D settings between views: extents, end positions and 2D/3D state are now applied (PropagateToViews), not only the bubbles.
  • Odd-dimension audit: round values such as 2345.000 were treated as odd and thousands of dimensions were created. BIBIM now asks once for the allowed precision, checks adjacent parallel elements only, and reports instead of creating more than 200. Previews also warn when 200+ new elements would be created.
  • Installer signing: fixed a build issue where the DLLs inside the installer were unsigned or signed with the wrong certificate, which made Revit show an "Invalid Signature" prompt.

⭐ Models

ProviderModelNotes
AnthropicClaude Sonnet 5 (new default, recommended)Fast, low cost, strong agentic coding
AnthropicClaude Opus 5.5 Β· Opus 5 Β· Fable 5.1 (new)Complex multi-step work. Fable 5.1 = most capable, highest cost
AnthropicClaude Sonnet 4.6 Β· Opus 4.7Previous generation, still selectable
OpenAIGPT-6 Sol Β· GPT-6 Luna Β· GPT-5.6 Sol Β· GPT-5.6 Terra (new)Luna is an ultra-low-cost option for simple lookups
OpenAIGPT-5.5Previous generation, still selectable
  • Gemini removed: its only Pro model was a preview that Google began pulling from AI Studio. If you had Gemini selected, the update switches you to Claude Sonnet 5 automatically (a .bak of your config is kept).
  • The new Claude models think by default. Models with safety classifiers (Opus 5 / 5.5, Fable 5.1) automatically retry a false-positive refusal on a fallback model server-side.

⭐ Harness: no more "looks done but isn't"

  • Impossible requests declined immediately: ribbon buttons, panel UI, controlling other add-ins and similar in-session-impossible work get an instant reason plus alternative β€” no multi-minute code generation that fails anyway.
  • Post-commit verification: after Apply, the completion message carries a [Verification] block β€” measured element changes (added / modified / deleted), the difference from the preview's prediction, and whether files the code reported actually exist on disk. A model-changing task that changed nothing is flagged with ⚠.
  • Measured preview wording: "Preview completed β€” N element(s) would be changed" / "no model elements would change (normal for file or view tasks)".
  • Structured task type: the planner emits a task category (query / export / model edit / create / delete / view-selection / annotation), replacing keyword guesses that misjudged e.g. exports as "0 elements changed β€” retry".
  • Safe halt on planner failure: a model-changing request is never run unplanned when the planning step fails.
  • No cross-task code mix-ups: Apply on task A's card always runs task A's code; tasks bind to the document they were created in.
  • Selection preserved between preview and apply.

⭐ Speed & visibility

  • Code Library reuse: for similar tasks the model searches your saved snippets first and adapts proven code (same compile / preview / Apply checks).
  • Simple lookups without code: "how many doors on L2?" is answered straight from the new read tools (count_elements, list_elements). Anything that needs computation (sums, areas) still gets code as before.
  • Live code-generation progress: the banner shows one line of what the model is reasoning about or writing, plus a "(3/15)" step counter β€” minute-long waits no longer look frozen.
  • "Analyzing your request..." banner during planning, localized statuses, tray balloon only for questions, errors and preview-ready.

Cost

  • 1-hour prompt cache for the system prompt and tool definitions; 5-minute cache for the conversation tail. Long dry-runs or a short break no longer drop the cache.
  • Stepped history window: the conversation prefix stays byte-identical across turns instead of shifting (and re-billing) every turn.
  • Per-route effort: planner low Β· chat medium Β· code generation high (tunable via the llm block in rag_config.json).
  • Token figures now consistently include cached input.

Usability

  • Korean IME Enter fix in every input field.
  • Markdown rendering, C# syntax highlighting, copy button on messages.
  • Readable errors: actionable messages ("check your API key") instead of raw Anthropic API 401: {json}.
  • Question cards no longer hide the chat input ("answer in chat" escape), side drawers overlay on narrow docks, scroll position respected, two-step task cancel, automatic recovery from a stuck busy state.

Security & audit

  • API keys encrypted at rest with Windows DPAPI (current user). Existing plaintext keys are encrypted on first launch.
  • Local audit log: every apply and undo is appended to %APPDATA%\BIBIM\audit\audit_YYYYMM.jsonl (document, model, affected element ids, code hash, verification, risk). Nothing is uploaded.

Platform

  • Ready for Revit 2025.5 / 2026.5 on .NET 10: removed the unused Anthropic SDK and Markdig packages to reduce assembly-conflict surface in the host.
  • Revit 2027 DLLs are now code-signed too.

Upgrade notes

  • Automatic migrations: Gemini selection β†’ Claude Sonnet 5, plaintext keys β†’ encrypted (both with a rag_config.json.bak backup).
  • Downgrading: keys encrypted by v1.2.0 cannot be read by older versions β€” re-enter them in Settings after a downgrade.
  • Copying the config to another PC: encrypted keys do not decrypt there (shown as not configured) β€” re-enter them on the new machine.

Build

TargetResult
Revit 2024 (net48)βœ…
Revit 2025 / 2026 (net8.0-windows)βœ…
Revit 2027 (net10.0-windows)βœ…
Unit tests146 / 146 passing

Source

github.com/SquareZero-Inc/bibim-revit

ArchiCADJune 28, 2026

v0.0.1 β€” First open-source release Β· 2026-06-28

This is the first public release of BIBIM AI for ARCHICAD. The code is now Apache 2.0 and the repository lives at https://github.com/SquareZero-Inc/bibim-archicad. Same product that was in the closed beta; the changes here are the cumulative beta work plus the open-source cleanup, all in one cut.

Downloads

PlatformFileNotes
Windows 10/11 (x64)BibimAI-Setup-0.0.1-win.exeSigned by SquareZero Inc. (DigiCert).
macOS 11+ (Apple Silicon + Intel)BibimAI-Setup-0.0.1-mac.pkgSigned and notarized by Apple.

ARCHICAD 29 (English / international build) required on either platform.

What you get

  • Natural-language modeling assistant for ARCHICAD 29 β€” Korean and English. Talk to ARCHICAD ("4Γ—4 m room with a door"); BIBIM picks the right ACAPI calls and runs them as undoable commands.
  • Bring Your Own Key. Anthropic / OpenAI / Google / any OpenAI-compatible local server (Ollama, LM Studio, vLLM). Keys are stored encrypted on your machine (DPAPI on Windows, Keychain on macOS) and sent only to the matching provider over HTTPS. No server in the middle.
  • Multi-ARCHICAD support. Open two ARCHICAD projects side-by-side and pick which one BIBIM works with from the in-app picker.
  • Element creation β€” walls (straight + curved), columns, slabs (incl. L/U-shapes from a polyline), beams, doors, windows, single-plane roofs.
  • Transforms β€” move / rotate / mirror with a dryRun preview for large or destructive operations.
  • Parameter edits + bulk property writes with full GDL parameter surface (frame width, opening tolerance, mullion grids, …).
  • Schedule / quantity takeoff β€” one call returns dimensions for every element across categories; the LLM exports to Excel / CSV / clipboard.
  • Navigator β€” list views / layouts / publisher sets; trigger a publisher set for PDF / DWG / IFC export.
  • Agent quality β€” five system-prompt rules (identifier resolution from live ARCHICAD state, intent priority, honest result reporting, multi-step completeness, verify-before-commit) cut the fabricated-options / silent-zero / partial-completion failure modes that surfaced during beta testing.

Install (end users)

  1. Windows: double-click BibimAI-Setup-0.0.1-win.exe. UAC will prompt (the add-on has to live inside ARCHICAD's install directory).
  2. macOS: double-click BibimAI-Setup-0.0.1-mac.pkg and follow the installer. You'll be asked for your admin password.
  3. Open ARCHICAD 29.
  4. Help menu β†’ BIBIM AI for ARCHICAD. The chat window opens.
  5. Click the gear icon. Paste an API key for the LLM provider you want, pick a model. (Free Claude / OpenAI / Gemini trial credits are usually enough to evaluate.)
  6. Type a request. Try 4x4m room with a door.

Build it yourself

Clone the repo and run installer/build.ps1 (Windows) or the two-step addon + Tauri + installer/build-mac-pkg.sh BIBIM_SKIP_SIGN=1 flow (macOS). See README.md for the toolchain list. Contributor builds are unsigned and trigger SmartScreen / Gatekeeper warnings; that's expected for a self-built installer.

Known limitations

  • DWG / DXF export requires a pre-configured Publisher Set in ARCHICAD (Navigator β†’ Publisher Sets β†’ method "Save files", format DWG). BIBIM triggers it but cannot create the set itself (ACAPI surface limitation).
  • Schedule view: BIBIM emits to Excel / CSV / clipboard; a native ARCHICAD schedule view is not created.
  • Stair / Railing / Curtain Wall / Roof (multi-plane) tools β€” not yet supported. Use ARCHICAD's native tools.
  • Tool catalogue is fixed at this release. Adding a new tool needs a new installer.

Reporting issues

  • Bugs / feature requests: GitHub Issues. Include OS, ARCHICAD version, BIBIM version (Settings shows it), the model you used, and the relevant excerpt from the debug log (%APPDATA%\BIBIM\bibim_ac_debug.txt on Windows, ~/Library/Application Support/BIBIM/bibim_ac_debug.txt on macOS).
  • Security issues: see SECURITY.md β€” do not open a public issue.

Changes since the closed-beta cut

A summary of what shifted between the last closed-beta build and this public release:

  • Multi-ARCHICAD bridge picker β€” each addon publishes a per-PID handshake; the Tauri shell shows a picker when two instances are alive and auto-connects when only one is.
  • Agent-parity Phase A + B + C β€” [ARCHICAD STATE] probe baked into every chat turn; identifier-resolution / explicit-info / intent-priority / honest-reporting / multi-step-completeness rules added to the system prompt; opt-in dryRun on move_elements / rotate_elements / mirror_elements / delete_selected with a verify-before-commit rule; per-question reason metadata and free-text-only questions in the clarification card.
  • HTTP receive timeout lifted from 30 s to 5 min so a large quantity-takeoff response doesn't time out mid-stream.
  • Installer Finish-page launch guide no longer clips long lines on high-DPI displays.
  • OSS cleanup β€” Apache 2.0 headers across 94 source files; MVP / Supabase proxy code removed; build pipeline unified between Windows and macOS (signing is now env-driven on both, no thumbprint embedded in source).
RevitJune 28, 2026

BIBIM v1.1.2

Release date: 2026-06-28

Feature release β€” introduces self-correction, sharpens planner accuracy, cleans up conversation-flow UX, and closes one security gap.


TL;DR

BIBIM now actually runs the code it generates and, when a runtime exception or a zero-element result occurs, reads the cause and regenerates on its own. On top of that: the planner no longer mistakes "set a parameter value" for "create a parameter," model identifiers are detected deterministically, the conversation flow is tidied up, and API keys no longer leak in plaintext to the debug log.


⭐ New: Self-Correction

Previously, code that merely compiled was accepted. Now, after a successful compile, BIBIM dry-runs the code to verify it actually executes.

  • Runtime exception β†’ the exception is fed back to the LLM and the code is regenerated automatically
  • Zero-element result (e.g. nothing matched) β†’ same: cause is fed back and the code regenerated
  • Regeneration is capped at one retry, and large changes (>500 affected elements) are blocked by a scale guard to prevent runaway edits
  • Same structure as the existing compile-error retry loop β€” only the last failure is fed back, no token waste

β†’ Tasks that used to fail silently at runtime now get one automatic correction pass with no user intervention.

Planner accuracy

  • Parameter value-edits classified correctly as EDIT: requests like "set Comments to reviewed" no longer trigger the four parameter-creation questions (binding / data type / group / instance-vs-type). Setting a value never routes to creation.
  • Automatic model-identifier detection: Level / Sheet / Phase / Workset are extracted deterministically and injected into the planner, reducing name-matching mistakes.

Conversation-flow UX

  • Cleaned-up Q&A echo, removed an unnecessary confirmation gate, improved labels and feedback messages (9 items)
  • Graphic-verb gate, first-run welcome guide, elapsed-time timer, expanded i18n

Security

  • API keys masked in logs: when a key was saved, every provider key (anthropic / openai / gemini / local) in the payload was being written to the debug log in plaintext β€” now masked.

Installer

  • No more missing versions: the build guard now checks for RevitAPI.dll rather than just the folder β€” a leftover stub folder from an uninstalled Revit no longer fails the entire build.
  • Install path separation: new installs go to ...\BIBIM AI\Revit (coexists with other BIBIM products).
  • Refreshed installer messages (supported versions 2022–2027 stated, multi-provider guidance).

Automatic migration

None required β€” no config or data changes. Update and you're done.

Builds

TargetStatus
Revit 2024 (net48)βœ…
Revit 2025 (net8.0-windows)βœ…
Revit 2026 (net8.0-windows)βœ…
Revit 2027 (net10.0-windows)βœ…

Source

github.com/SquareZero-Inc/bibim-revit

RevitMay 18, 2026

BIBIM v1.1.0

Release date: 2026-05-18

Self-hosted LLM release β€” Connect BIBIM to your own Ollama, LM Studio, vLLM, or llama.cpp server. Built for teams under NDA, enterprises with data-residency requirements, and heavy users tired of paying per token.


TL;DR

Drop in your local LLM server URL and BIBIM runs on it. No cloud round-trip, no data leaving your network, zero token cost.


What's new

1. Self-hosted local LLM support (NEW)

Connect BIBIM directly to any OpenAI-compatible LLM server running on your corporate GPU, a rented cloud GPU instance (RunPod / Vast.ai), or your own workstation.

Tested setups:

  • Ollama β€” most common, ideal for personal workstation
  • LM Studio β€” GUI-first option
  • vLLM β€” production / corporate GPU cluster standard
  • llama.cpp server β€” lightweight, works on CPU / Apple Silicon
  • Any other server speaking the OpenAI /v1/chat/completions shape (gateways like OpenRouter included)

Setup matches cloud BYOK friction β€” one field, one paste:

  1. Settings β†’ Local LLM (Self-hosted) section
  2. Paste the server URL (e.g. http://localhost:11434/v1)
  3. Click Test & Save
  4. Models installed on your server are auto-detected and shown in a picker
  5. Done β€” start chatting immediately

2. Curated recommended models β€” BIBIM-validated

We ran an OpenRouter sweep against our Revit 2024 smoke matrix to see which open-weights models actually hold up on Revit API C# (generic coding benchmarks don't translate). Models that support tool calling, 30B+ parameters:

ModelVRAM (4-bit)Notes
Gemma 4 26B A4B IT ⭐~16GBBIBIM-validated top non-Claude pick. Fits RTX 4090
Codestral 2508 (22B)~14GBFastest. Simple tasks only
Llama 3.3 70B Instruct~40GB+Won't fit a single 24GB GPU. A100 / dual 3090 class

⚠ Smaller models (≀7B) have low Revit API tool-calling reliability and tend to fail code generation. Non-recommended models still work but result quality is not guaranteed.

3. Authenticated self-hosted setups (Bearer token)

For setups behind auth, the Advanced section now has an API key (Bearer token) field covering:

  • vLLM launched with --api-key <token>
  • Self-hosted LLM behind an authenticated reverse proxy
  • Cloud GPU rental endpoints (RunPod, Vast.ai, etc.) with endpoint keys
  • Tailscale / Cloudflare Tunnel gateway tokens

The value is sent as Authorization: Bearer <value> on every request. Leave blank for default Ollama / LM Studio (no auth).

4. Settings panel UX overhaul

  • Active model chip β€” One-line summary at the top of the panel: "Active: Claude Sonnet 4.6 Β· sk-ant-...Ab3c". You always know what's powering BIBIM at a glance.
  • Configured key sections collapse β€” Provider sections whose key is already saved render as a compact βœ“ Key configured: ...Ab3c [Replace] row. Returning users see roughly half the visual density.
  • Single Local LLM entry in the model picker β€” The three previously-separate OSS options (Gemma / Llama / Codestral) are now one Local LLM (Self-hosted) entry whose note dynamically shows your active server-side model (e.g. Active: gemma2:27b).
  • Section reorder β€” Guide β†’ Current setup β†’ Provider keys β†’ Model picker β†’ Feedback. Reads top-to-bottom as the actual setup flow.

Automatic migration

When existing v1.0.2 / v1.0.3 users first launch v1.1.0:

  • If claude_model holds an old OpenRouter id (e.g. google/gemma-4-26b-a4b-it), it migrates to "local" and stashes the model fragment as local.model_name
  • A rag_config.json.bak backup is created automatically

β†’ Existing setup keeps working with no reconfiguration.

One-line marker in the debug log:

[ConfigService]: Migrated saved model id 'google/gemma-4-26b-a4b-it' β†’ 'local' (local.model_name = 'gemma-4-26b-a4b-it', rewrote rag_config.json).

Bug fixes / improvements

Local LLM polish

  • Chat unblocked for unauthenticated Local LLM setups. The pre-flight gate in the user_message handler used to reject any request with an empty ApiKey, which broke the default Ollama / LM Studio install (no auth = empty key is correct). The gate is now provider-aware: Local validates LocalServerUrl, cloud providers validate ApiKey. Error message for Local now points to the URL field instead of misdirecting users to add a key.
  • Friendly guidance when model auto-detect fails β€” "Settings β†’ Advanced β†’ fill in the model name override" message (previously a confusing 404 error).
  • API key field is now correctly labelled "API key (Bearer token)"; tooltip leads with "Sent as Authorization: Bearer <value> header".
  • Settings panel visual density reduced ~50% for returning users.

Security hardening

  • Auto-updater is now host-whitelisted and time-bounded. The download_update handler accepts only https://github.com / https://objects.githubusercontent.com URLs (defense-in-depth against a hypothetical GitHub Releases compromise or WebView hijack), wraps the full body stream in a 10-minute CancellationTokenSource, and cleans up partial downloads on timeout / network failure. Typed progress messages (timeout / network / untrusted_url) let the UI route specific error toasts.

Analyzer correctness

  • BIBIM001 (Transaction-required) no longer hides missing-Transaction bugs in generated code. The previous heuristic short-circuited as "satisfied" whenever the enclosing method was named Execute β€” on the false premise that BibimExecutionHandler wraps Execute in an outer Transaction. It does not (RunCommit uses no wrapper; RunDryRun uses a TransactionGroup, which can't host modification APIs directly). Bare doc.Delete(id) inside Execute was passing silently, then either failing at runtime or leaving the document inconsistent. The heuristic now requires a real Transaction using ancestor; TransactionGroup / SubTransaction are explicitly rejected via regex as false-positive satisfiers. Roslyn retry usually auto-fixes the resulting warning, so most users will experience this as "code generation is slightly more robust".

Performance

  • RoslynCompilerService is now a true panel-level singleton. Its constructor scans AppDomain.GetAssemblies() (~100–300 ms each). Six call sites in BibimDockablePanelProvider were calling new RoslynCompilerService() directly despite BibimApp.OnStartup already registering a process-wide instance. Reclaims ~1–2 s of compounded startup work per session.
  • LocalRevitRagService cache fast-path no longer takes a lock. The BM25 engine for search_revit_api builds once per session under a build lock, but cached reads now skip the lock entirely (volatile read + double-check). Parallel search_revit_api tool_use blocks dispatched in a single LLM turn no longer serialize.

Logging

  • Log path moved: %USERPROFILE%\bibim_v3_debug.txt β†’ %APPDATA%\BIBIM\logs\bibim_debug.txt. Matches the rest of the addon's storage layout under %APPDATA%\BIBIM\ and stops leaving an orphan file at the home-directory root. Old logs are not migrated β€” left in place so you don't lose support artifacts.
  • Diagnostics report now includes a LogFile check that surfaces the current log size and flags the legacy path if a stale bibim_v3_debug.txt is still present.

Code health (no user-visible change)

  • #if NET48 conditional serialization attributes removed across CodeLibraryModels.cs, SessionModels.cs, TaskFlowModels.cs (112 occurrences). JsonHelper uses Newtonsoft.Json on both targets, so the [JsonPropertyName] branch on net8 was being silently ignored at runtime. Single [JsonProperty] now applies to both. βˆ’432 lines of zero-value conditional compilation.
  • ConversationContextManager deleted β€” 122-line class with zero references.
  • GeminiProvider.SendStreamingAsync now parses functionCall + thoughtSignature from SSE chunks and stashes them on StreamResult.ToolUseBlocks for forward compatibility with a future streaming + tools wiring.
  • BibimApp.OnShutdown now logs the exception message if DocumentChanged unsubscribe throws (was swallowed silently).
  • *.tsbuildinfo added to .gitignore so TypeScript's incremental-build cache stops cluttering git status.

UX / i18n

  • Feedback buttons in chat messages now render πŸ‘ Helpful / πŸ‘Ž Not Helpful (was literal "Up" / "Down" β€” the i18n keys already existed and were used in tooltips, just not in button labels).
  • Multi-select question card now reads Select all that apply from i18n (was hardcoded English) and is translated in the Korean build.

64 / 64 unit tests passing (3 new tests added for the BIBIM001 heuristic fix; 1 stale test rewritten to assert the corrected behavior).


Affected users

Environmentv1.1.0
Cloud BYOK (Anthropic / OpenAI / Gemini)No change β€” existing keys keep working
Already running self-hosted LLMNew option β€” connect via Local LLM section
NDA / data-residency constraintsNew option β€” BIBIM now runs entirely on your infrastructure

Builds

TargetStatus
Revit 2024 (net48)βœ…
Revit 2025 (net8.0-windows)βœ…
Revit 2026 (net8.0-windows)βœ…
Revit 2027 (net10.0-windows)βœ…

Requirements

Source

github.com/SquareZero-Inc/bibim-revit

RevitApril 29, 2026

BIBIM v1.0.3

Release Date: 2026-04-29

Hotfix release β€” addresses seven multi-provider latent defects surfaced by real-user testing of v1.0.2. No new features. Stability-only.


TL;DR

The "API request failed: 400" error you saw mid-codegen on Claude / GPT-5.5 / Gemini 3.1 Pro β€” all gone.


What changes for users

Symptom (v1.0.2)Result (v1.0.3)
Gemini skipped questions and dumped raw C# into the chat bubbleβœ… Proper task β†’ questions β†’ codegen flow
GPT-5.5 mid-session "API request failed: 400"βœ… Gone
Claude on complex flows (Excel export, phase plans) hit the same 400βœ… Gone
Gemini codegen turn 2: Function call is missing a thought_signatureβœ… Gone
No way to tell which model is faster from Settings⚑⚑⚑ β†’ ⚑ glyphs visible at a glance

Fixes (BIBIM-001 β†’ 007)

1. Anthropic 400 β€” tool_result.name rejected (BIBIM-001)

After Claude called a tool (e.g. search_revit_api, run_roslyn_check) and we sent the tool result back, Anthropic's strict schema validator rejected our name field on tool_result blocks. Every second LLM call onwards returned 400 and the tool loop died.

β†’ AnthropicProvider now strips tool_result.name before sending. The Gemini adapter still gets to use the field on its side.

2. OpenAI 400 β€” "messages must contain the word 'json'" (BIBIM-002)

Selecting GPT-5.5 broke the task planner on the first call. OpenAI's Responses API rejects text.format=json_object mode unless an input message contains the literal word "json" β€” having it in instructions (the system prompt) doesn't count.

β†’ BuildPlannerInput ends with [Output format: respond with JSON only β€” no markdown, no commentary.]. Bonus: this also reinforces JSON behaviour for Gemini.

3. Gemini model swap (BIBIM-003)

We previously routed Gemini through gemini-3.1-pro-preview-customtools β€” a Google variant specialised for agentic workflows with registered custom tools. It silently ignores responseMimeType: application/json when no tools are sent. The planner couldn't get JSON out, fell back to direct chat, and the assistant dumped raw code into a chat bubble.

β†’ Switched to vanilla gemini-3.1-pro-preview. Google's own guidance: use vanilla when <50% of requests involve tool calling. Existing configs holding the old id are auto-migrated on next launch with a .bak backup.

4. Settings panel β€” response-speed glyphs

Each model in the picker now shows a quick-read speed indicator with a localised tooltip:

ModelGlyph
Claude Sonnet 4.6⚑⚑⚑ Fast
Claude Opus 4.7 / GPT-5.5⚑⚑ Medium
Gemini 3.1 Pro⚑ Slow (deeper reasoning may take longer)

5. Gemini thoughtSignature echo (BIBIM-006)

Gemini 3.x thinking models attach a thoughtSignature on functionCall parts and require the client to echo it back when the function call is replayed in conversation history. Missing it returns 400 Function call is missing a thought_signature. v1.0.2 captured neither read nor write, so the second turn of a Gemini codegen tool loop always failed.

β†’ GeminiProvider now stashes the signature on the orchestrator's tool_use block (Gemini-private field) and echoes it back on the next request.

6. max_tokens truncation + tool_use mishandling (BIBIM-007)

The biggest fix. When the model emitted reasoning + tool_use + commentary in a single response and hit the 4096 max_tokens cap, the trailing text was truncated but the tool_use block was complete. The orchestrator naively followed the max_tokens branch β€” it pushed the assistant turn (with tool_use) plus a plain "continue" user message. Both Anthropic and OpenAI strictly require tool_use β†’ tool_result pairing in the next message, so the next call returned 400.

β†’ Two-part fix:

  • max_tokens raised 4096 β†’ 8192. max_tokens is a ceiling, not a billed amount β€” providers charge per actual emitted tokens. Higher cap costs nothing when the model emits less; it just gives reasoning models headroom.
  • Whenever the response content contains any tool_use block, force stop_reason="tool_use" regardless of what the provider reported. Executing the tool produces the required pairing; the model picks up from the tool_result on the next turn even when its trailing commentary was lost.

After this fix, almost every scenario in the test matrix passes.


Provider impact summary

Providerv1.0.2 statev1.0.3
Anthropic ClaudeOccasional 400 on complex flows (BIBIM-001 + 007)Stable
OpenAI GPT-5.5Planner broke on first call (002) + complex-flow 400 (007)Stable
Google Gemini 3.1 ProPlanner broken (003) + codegen broken (006) + complex-flow 400 (007)Stable

All three providers are now in production-usable state β€” the multi-provider promise from v1.0.2 finally lands.


Auto-migration

When an existing v1.0.2 user launches v1.0.3 for the first time:

  • If the saved model id is gemini-3.1-pro-preview-customtools, it auto-rewrites to gemini-3.1-pro-preview and keeps a .bak of the previous rag_config.json
  • No need to re-pick the model in Settings
  • Anthropic / OpenAI users see no migration

The debug log will contain a single line:

[ConfigService]: Migrated saved model id 'gemini-3.1-pro-preview-customtools' β†’ 'gemini-3.1-pro-preview' (rewrote rag_config.json).

Build / distribution

Build targetStatus
Revit 2024 (net48)βœ…
Revit 2025 (net8.0-windows)βœ…
Revit 2026 (net8.0-windows)βœ…
Revit 2027 (net10.0-windows)βœ…

Requirements

Source

github.com/SquareZero-Inc/bibim-revit

RevitApril 28, 2026

BIBIM v1.0.2

Release Date: 2026-04-28

What's New

Multi-Provider LLM Support (BYOK)

You can now choose any of 4 models in Settings β€” pick the one that fits your account and budget.

ModelProviderSample cost / requestNotes
Claude Sonnet 4.6 ⭐Anthropic~$0.04Recommended balance
Claude Opus 4.7Anthropic~$0.20Top quality, agentic tasks
GPT-5.5OpenAI~$0.08Multilingual, strong tooling
Gemini 3.1 ProGoogle~$0.03Lowest cost, biggest context
  • Each provider has its own key field in Settings (Anthropic / OpenAI / Google).
  • Models without a registered key are greyed out with a tooltip that tells you which key to add.
  • Adding a new key activates that provider's models instantly β€” no restart needed.
  • Existing 1.0.1 users: your saved Anthropic key migrates automatically. A .bak of the previous config is kept next to it.

API Key Setup Guide Link

A new "πŸ“– View API Key Setup Guide" button at the top of Settings opens a step-by-step Notion guide for getting keys from Anthropic / OpenAI / Google. The link is language-aware (KR or EN).

30–40% Token Reduction

The code-generation pipeline is now substantially leaner β€” same task, fewer tokens. Typical sessions see ~30–40% input-token reduction, and heavy users (100+ requests/month) save 35–42% on cost.

Highlights:

  • Anthropic prompt caching enabled: cache_control: ephemeral markers on the system prompt + tool definitions. Within the 5-minute cache window, the prefix portion is billed at the cached rate ($0.30/1M β€” 90% off).
  • Cache-effectiveness telemetry: cache_read_input_tokens and cache_creation_input_tokens are now tracked per call and per session in bibim_v3_debug.txt, including a session cache hit ratio.
  • Roslyn compile retry pruning: previously failed code attempts no longer accumulate across retries. Saves ~700 tokens per retry round.
  • Local RAG slimmed: search_revit_api result verbosity reduced (TopK 5β†’3, chunk 3000β†’1200 chars, members 60β†’30). No effect on code-generation quality.
  • Heuristic planner gate: short greetings/acks ("hi", "ok", "thanks") now skip the planner LLM call entirely β€” saves ~2,500 tokens per skip.
  • Category question templates extracted: the planner's ~1,800-token category-question library is now a compact checklist.
  • Long-session stabilisation: chat history window 20β†’10 turns, with dropped turns collapsed into a synthetic recap. Context-length errors down ~70%.
  • Context tools shipped on demand: get_view_info, get_selected_elements, get_element_parameters, get_family_types, get_project_levels are only included when the user message hints at relevant context.
  • FileOutputRules conditional: the ~700-token file-safety block is only attached to actual file-output tasks (PDF/DWG/CSV/etc.), not to in-model edits.

LLM Reliability Improvements

  • Gemini JSON-mode for the planner: responseMimeType: "application/json" is now enforced on Gemini planner calls. Fixes a regression where Gemini's invalid JSON output caused the assistant to dump raw C# code into the chat bubble instead of running the structured task flow.
  • Planner parse-failure retry: if the planner returns malformed JSON, BIBIM retries once with an explicit "your previous response was not valid JSON" nudge. Both attempts must fail before falling back to direct chat.
  • GPT selection-priority rule: when the user uses pointing language ("these doors", "the selection", "이 도어듀"), GPT is now explicitly told to use uidoc.Selection.GetElementIds() instead of falling back to a model-wide FilteredElementCollector. Claude already followed this pattern.

Multi-provider hotfixes (caught in real-user testing)

Three latent bugs introduced during the multi-provider work β€” all three providers were dropping the task β†’ question β†’ codegen flow. Fixed in one go:

  • Anthropic 400 fix: tool_result blocks carried a name field (kept for the Gemini adapter), which Anthropic's strict schema validator rejected, killing the tool loop on the second call onward. AnthropicProvider now strips the field before send.
  • OpenAI 400 fix: OpenAI's Responses API rejects text.format=json_object mode unless an input message contains the literal word "json". Added a one-line [Output format: respond with JSON only…] directive at the end of the planner user message.
  • Gemini model swap: gemini-3.1-pro-preview-customtools (an agent-and-tool-first variant) β†’ gemini-3.1-pro-preview (vanilla). The customtools variant prioritises function-calling output and silently ignored JSON mode in the planner case. Google's own guidance: use vanilla when <50% of requests involve tool calling.
  • Auto-migration: existing configs holding the old -customtools model id are rewritten to vanilla on next launch (.bak backup kept). No manual re-selection in Settings required.

Model selector UX

Each model in the Settings selector now shows a response-speed indicator (⚑) so you can compare at a glance:

  • ⚑⚑⚑ Claude Sonnet 4.6 (fast)
  • ⚑⚑ Claude Opus 4.7, GPT-5.5 (medium)
  • ⚑ Gemini 3.1 Pro (slow β€” deeper reasoning may take longer)

Hover the ⚑ icon for a localised tooltip.

Loading-State Bug Fix

A 429 / network / billing error from the LLM provider used to leave the chat panel stuck on "Generating response…" forever. Fixed: the progress UI now always clears on error so you can try again or switch models immediately.

Bug Fixes / Improvements

  • Frontend Saved toast now reports the correct provider (Anthropic / OpenAI / Gemini) when multiple keys are saved in sequence.
  • Settings panel scrolls when content overflows on smaller monitors.
  • Cleaner log lines: provider + model + cache hit ratio are now stamped on every LLM call.
  • Streaming chat path no longer drops cache_creation_input_tokens (first-message cache-write cost was previously logged as 0).
  • Removed unused GeminiRagService dead code (local BM25 RAG has been the only RAG since v1.0.1).

Requirements

Source

github.com/SquareZero-Inc/bibim-revit

RevitApril 21, 2026

BIBIM v1.0.1

Release Date: 2026-04-21

What's New

RAG Re-enabled β€” Local BM25 Search

RAG (Revit API documentation search) is back, and no longer requires a Gemini API key.

Instead of querying a remote Gemini fileSearch store, BIBIM now builds a local BM25 search index directly from RevitAPI.xml β€” the same file Autodesk ships with every Revit installation, and the same source the official API docs render from.

  • No extra setup β€” works with your existing Claude API key only
  • Instant after first use β€” index is built once on first code generation (~0.5s), then cached for the session
  • Covers all Revit domains: core DB, UI, MEP, Structure, IFC (39,770 members, 2,849 searchable chunks)
  • Claude now asks clarifying questions before generating Revision Cloud, TextNote, Tag, and other annotation placement code (target view, location, linked Revision)
  • Gemini API key input remains in settings β€” reserved for future use

Bug Fixes / Improvements

  • None in this patch

Requirements

Source

github.com/SquareZero-Inc/bibim-revit

RevitApril 15, 2026
<img width="1828" height="1168" alt="Revit" src="https://github.com/user-attachments/assets/06e09e09-cb88-4f1a-b2a7-3277c1357fa7" />

BIBIM AI for Revit v1.0.0

AI-powered code generation inside Revit β€” describe what you want in natural language, get executable C# code instantly.

Features

  • Natural language β†’ C# code: Generates and runs Revit API code directly inside Revit
  • BYOK: Connects to Anthropic Claude API using your own key β€” no accounts, no subscriptions
  • Multi-version support: Revit 2022–2027 (net48 / net8.0 / net10.0)
  • Model selection: Choose between Claude Haiku 4.5, Sonnet 4.6, Opus 4.6, or Opus 4.7
  • Roslyn validation: Automatic compile check + auto-fix before code execution
  • Local sessions: Chat history saved locally, no data leaves your machine
  • Code library: Save and reuse generated code snippets

RAG (Revit API doc search): Temporarily disabled while the store access is being reworked for the OSS release. Code generation works normally via Claude's built-in knowledge + Roslyn validation. Coming in the next update.

Requirements

  • Revit 2022–2027
  • Claude API key (console.anthropic.com)
  • .NET 4.8 / 8.0 / 10.0 (installed with Revit)