cancel
Showing results for 
Search instead for 
Did you mean: 
EN
cancel
Showing results for 
Search instead for 
Did you mean: 
Ebatte
Enthusiast

I'm using Claude Cowork to fix all of my (global) library problems and it is amazing

I'll keep this brief, but it is interesting enough that others might want to know about it.

Our template evolves with each version and has been building since probably 7.0, so there is a lot of pain when trying to finally get around to the arduous task of moving to the global libraries. I'm finally doing this in the interest of future-proofing.

 

The template is comprised of a main project template, another project containing our visual favorites, and a third project containing standard details. I used Claude Cowork (Max) and, in a nutshell, told it to use the ArchiCAD API, the Tapir MCP for ArchiCAD, python, and the Control Your Mac Claude plugin to write itself the programs suitable to map the most equivalent library parts from my legacy template (hundreds of them!) and replace them. Much of it is completely automated and I'm sitting here watching my missing parts get replaced on screen one-by-one!

It's fascinating and amazing what AI is capable of and this just saved me MANY, MANY hours of manual work.

I'm not a coder, but I'm able to coax Claude into doing some fairly sophisticated stuff like this. Grpahisoft, please tell us that you're actively and rapidly developing full MCP capabilities for ArchiCAD because this is life-changing stuff.


Screenshot 2026-02-11 at 5.40.59 PM.png

Eric Batte
Principal, MG Architects
MacBook Pro M1 Max, 64GB
AC 6.5-29
5 Replies 5
Laszlo Nagy
Community Admin
Community Admin

MCP support is Coming Soon for the AI Assistant:

https://community.graphisoft.com/t5/Product-Roadmap/MCP-Support/idi-p/682950

Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac29
Laszlo Nagy
Community Admin
Community Admin

Can you elaborate in a bit more detail about how exactly you achieve this library part replacement?

Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac29
Ebatte
Enthusiast

It’s basically magic.

I setup a folder for Cowork to use and within it I placed the ArchiCAD API documentation, ArchiCAD python documentation, all of the AC29 libpacks, my company library parts and some other misc. info. Then I told it to review the documentation and determine where the functionality gaps were between the tools and figure out how to close those gaps using other tools (like Control Your Mac, AppleScript, the Tapir MCP, etc.). I fed it the default Archicad keyboard shortcuts and told it to create its own comprehensive keyboard shortcuts for every single command, hoping to allow keyboard control where it would be helpful (this is still not quite working).

It created a “bridge” script that assists with interacting with ArchiCAD and it developed a bunch of python scripts on its own. Once all of that was built, I told it to examine the missing library parts and the libpacks and build a logical mapping of [missing part = replacement part], which it did. Then it used that index to script the interactions with AC. I ran the script which would select the missing parts by name and replace them automatically with the mapped replacement. For some it couldn’t do it automatically so it would select them in AC and then prompt me to open the settings dialog to switch it to the new part, then tell if when I was done and it would move on to the next.

That took care of the vast majority of replacements in the plan window. I started it working out how to navigate through to details & worksheets to replace parts, but I didn’t finish that before the end of the day so I’ll resume tomorrow.

If you guys get a “real” native MCP working soon that will allow full control of AC it will literally change the game since Claude won’t have to invent this cobbled together, but still impressive, collection of tools. 

Eric Batte
Principal, MG Architects
MacBook Pro M1 Max, 64GB
AC 6.5-29
Ebatte
Enthusiast

Laszlo, 
I continued work with Claude today, so I asked it to write a summary of what we've done so far. Here is that summary:

AI-Powered ArchiCAD Template Overhaul — By the Numbers

MG Architects | February 2026 Tool Stack: Claude AI (Cowork) + Tapir MCP + ArchiCAD 29


What We Accomplished

Using AI desktop automation (Anthropic's Cowork) connected directly to a live ArchiCAD session via the Tapir API, we systematically audited, analyzed, and began modernizing MGA's AC 29 Project Template — a file that has evolved across 20+ ArchiCAD versions.


The Numbers

Template Attribute Audit

  • 119 Building Materials inventoried in the MGA template
  • 73 AC 29 default Building Materials cross-referenced — 100% coverage confirmed (all 73 Graphisoft defaults present in template, plus 46 MGA custom additions)
  • 77 Line Types cataloged — 100% coverage of AC 29's 50 defaults, plus 27 MGA custom line types
  • 54 Layers audited against the 46-layer 2017 MGA standard
  • 8 non-standard layers identified and flagged for review
  • 26 Layer Combinations verified against the full visibility matrix
  • 8 standard pen weights validated across the color system

Library Parts Audit

  • 57 total libraries inventoried (14 Built-in + 42 Server + 1 Embedded)
  • 44 Graphisoft server library packs cataloged on BIMcloud
  • 100+ placed walls queried with layer assignments checked element-by-element
  • Library part mapping completed: legacy AC 23 parts → AC 29 global equivalents with match confidence scores (EXACT / LIKELY / manual review)

Automation Infrastructure

  • Tapir MCP installed, configured, and connected to live BIMcloud Teamwork project
  • macOS automation MCP configured with Accessibility permissions (MDM/PPPC profile deployed via Mosyle)
  • 7-phase attribute migration instruction set generated — ready to execute the full Graphisoft-default adoption
  • 6-phase master work plan created covering template audit → deprecated library rescue → library migration → attribute cleanup → QC system → ongoing maintenance
  • Custom keyboard shortcut scheme designed for automation commands
  • Custom ArchiCAD workspace profiles built for consistent AI automation (Info Box, palettes, shortcuts)

Code Generated by Claude

  • 6,734 lines of Python across 24 scripts — a complete automation framework plus task-specific tools
  • 273 lines of shell scripts and YAML task definitions
  • 4,370 lines of structured JSON data catalogs and migration mappings
  • 857-line Cowork SKILL.md teaching Claude how to operate ArchiCAD
  • 13,500+ lines of analysis reports, comparison data, and migration logs

Documentation & Standards

  • Full pen & color system documented and encoded for automated QC
  • Complete layer visibility matrix digitized (46 layers × 26 combinations)
  • Layer conversion/migration table built (legacy → current mappings)
  • Attribute comparison analysis generated across template vs. Graphisoft defaults
  • Reusable migration process established — applicable to every active MGA project file, not just the template

Tools & Technology Stack

AI & Automation Platform

  • Claude AI — Anthropic's large language model, driving all analysis, code generation, and decision-making
  • Cowork — Anthropic's desktop automation agent, providing Claude with direct control of the Mac desktop, file system, and running applications
  • Cowork SKILL.md — 857-line custom skill definition written to teach Claude how to operate ArchiCAD, combining API, UI, and screen-reading strategies

ArchiCAD Integration

  • Tapir Add-On — Open-source ArchiCAD extension exposing the full JSON-RPC API (element queries, attribute reads, property access, selection management)
  • Tapir MCP Server — Model Context Protocol bridge connecting Claude Desktop / Cowork to ArchiCAD's live API over localhost
  • ArchiCAD 29 — Running a live BIMcloud Teamwork project 

macOS Automation Layer

  • macOS Automation MCP (Control_your_Mac) — MCP server granting Claude system-level control: AppleScript execution, keyboard/mouse input, screenshot capture
  • Mosyle MDM — Used to deploy a PPPC (Privacy Preferences Policy Control) profile granting node process Accessibility permissions system-wide — required for UI automation without manual approval dialogs
  • cliclick — Homebrew utility for precise, scriptable mouse clicks (used by the UI layer for coordinate-based interactions)
  • macOS Vision Framework — Apple's built-in OCR engine, invoked via Swift, for reading text from screenshots of ArchiCAD dialogs and panels

Languages & Runtimes

  • Python 3.8+ (with archicad pip package) — All automation scripts and data processing
  • AppleScript / osascript — Menu navigation, dialog interaction, window management
  • Swift — OCR text recognition via macOS Vision framework
  • Bash — Bridge scripts and setup automation
  • YAML — Reusable task definitions for repeatable UI workflows
  • XML / ElementTree — Parsing ArchiCAD attribute export files (9.2 MB template + 49 MB favorites)

Scripts Catalog

Claude generated 6,734 lines of Python, 273 lines of shell/YAML, and 4,370 lines of structured JSON data across 26 scripts, 2 task definitions, and 6 data catalogs — all purpose-built for this project.

Core Automation Framework (archicad-automation/scripts/)

These seven modules form a complete ArchiCAD automation engine with three integrated layers: API, UI, and Screen.

Script Lines Purpose
ac_auto.py 1,485 Main CLI tool. Command router for all ArchiCAD operations — element find/select, linetype changes, migration map with 40+ legacy→AC29 library part mappings, multi-pass auto-migration engine, rollback support
api.py 1,053 ArchiCAD JSON-RPC client. Port auto-detection across 19723–19729, raw HTTP client (zero dependencies), element queries by type, property reads/writes, batch operations with 500-element pagination, selection management via Tapir
strategy.py 863 Natural language intent router. Maintains an action library of known operations with keywords/patterns; when Claude gives a natural language instruction, matches it to the right API call, UI sequence, or composite action
teach.py 861 Task recorder and player. Records user actions via OCR, saves as YAML task files with text-anchored steps (not fixed coordinates), replays tasks adaptively by finding UI targets on screen
ui.py 607 AppleScript UI automation. Menu clicking across 850+ ArchiCAD commands, keyboard shortcuts, dialog exploration, bridge protocol communication (reads/writes command files for the Accessibility bridge)
screen.py 469 Screenshot + OCR engine. Captures screen regions via screencapture, runs text recognition through macOS Vision framework via compiled Swift, finds text locations for click targeting
config.py 137 Central configuration. ArchiCAD port ranges, known Property GUIDs, Built-in Property names, Line Type GUIDs, Menu path mappings, screenshot directories

Standalone Task Scripts

Purpose-built scripts for specific audit and migration operations, each connecting to the live ArchiCAD API:

Script Lines Purpose
run_auto_migrate.py 163 Auto-migration runner. Extracts the 40+ entry MIGRATION_MAP from ac_auto.py, connects to template project, iterates all element types, batch-replaces legacy library parts with AC29 equivalents, logs every change
extract_missing_library_parts.py 119 Missing parts extractor. Queries the Warnings panel data and library manager to identify all missing library parts by source library version
full_scan.py 96 Comprehensive element scanner. Iterates ALL 19 ArchiCAD element types (Object, Door, Window, Skylight, Lamp, Column, Beam, Wall, Slab, Roof, Shell, Morph, Stair, Railing, Zone, Mesh, CurtainWall, Opening, Label), catalogs every library part in use with counts and GUIDs
probe_create.py 93 API schema probe #1. Reverse-engineers the Tapir CreateObjects command schema by testing element detail retrieval and GDL parameter extraction
probe_create2.py 91 API schema probe #2. Exhaustive search across 15+ possible root field names for the CreateObjects endpoint
probe_create3.py 79 API schema probe #3. Brute-force exploration of 40+ field name variations to map the undocumented CreateObjects API
scan_doors_windows.py 87 Door/window migration scanner. Identifies all Door and Window elements using legacy library parts (AC23, AC27) and maps them to AC29 replacements — flags elements requiring interactive (non-API) migration
scan_ac20.py 87 AC Library 20 scanner. Finds all elements still referencing ArchiCAD Library 20 parts (30+ legacy detail components, structural shapes, and niche objects) and identifies AC29 equivalents
scan_markers.py 76 Marker element scanner. Examines Label elements with blank property names, uses GetDetailsOfElements to identify actual library part names for section/elevation/detail markers
handle_ac20_remaining.py 75 AC20 cleanup handler. Targeted script for final remaining AC20 items — replaces DET_Mtl Track with MGA equivalent, flags W Niche 20 and Telephone 20 for deletion
final_scan_template.py 64 Post-migration verification. Parses the full MIGRATION_MAP, scans all element types to confirm every legacy part was successfully replaced, reports any remaining stragglers
scan_labels.py 50 Label element scanner. Catalogs all Label elements by library part name, tracks owner element types, reports counts per label type
select_group.py 40 Batch element selector. Reads door/window scan results, selects groups of elements by migration category so the user can apply interactive replacements in ArchiCAD's UI
select_labels.py 40 Label selector. Finds and selects all Label elements matching a specified library part name — enables batch operations on specific marker types

Shell Scripts

Script Lines Purpose
archicad_bridge.sh 85 Accessibility bridge. File-watch daemon that runs inside Terminal.app (which has Accessibility permissions). Claude writes AppleScript commands to /tmp/ac_bridge/cmd.scpt, the bridge executes them via osascript and returns results — solves the macOS permission sandboxing problem
setup.sh 86 Environment installer. Installs the archicad pip package, checks for and installs cliclick via Homebrew, verifies all dependencies

Reusable Task Definitions (YAML)

Task File Purpose
set-symbol-linetype.yaml Automates changing Symbol Lines linetype on selected objects via the Object Selection Settings dialog — navigates to Floor Plan & Section panel, scrolls to field, opens dropdown, selects target linetype, confirms
find-and-select-by-name.yaml Finds all elements of a given type whose Library Part Name matches a substring, then selects them in ArchiCAD — enables batch operations by name

Structured Data & Catalogs (JSON)

File Purpose
action_library.json Strategy engine's registry of known automation actions with keywords, patterns, methods, and parameters
library_migration_index.json Complete mapping of legacy library parts to AC29 equivalents with match confidence
missing_parts_inventory.json Structured inventory of all missing library parts by source library version
appliances_libpack_catalog.json Full catalog of the Appliances.libpack contents for migration reference
plumbing_steel_catalog.json Plumbing and structural steel library part catalog
annotation_catalog.json Annotation and marker library part catalog
misc_catalog.json Miscellaneous library part catalog
surface_mapping.json Machine-readable mapping of 66 surfaces with missing textures to AC29 replacements
surface_replacement_map.json Final surface replacement directives for batch processing

Generated Analysis Reports

File Lines Content
ANALYSIS_COMPLETE.txt 540 Full 12-category attribute comparison across 1,228 template items vs. 717 AC29 defaults
attribute_comparison.txt 1,624 Detailed comparison with EXACT MATCH, TEMPLATE ONLY, AC29 ONLY, and LIKELY MATCH for every attribute type
FINAL_REPORT.txt 380 Executive summary with critical findings (MEP system gaps, surface texture issues)
missing_texture_surface_mapping.txt 614 66 affected surfaces mapped to remediation paths (29 with AC29 replacements, 37 needing custom solutions)
auto_migrate_log.txt through pass4.log 600+ Four-pass migration logs documenting every element replacement across all passes
full_scan_results.json 420 Complete element-by-element scan results across all 19 element types

Custom ArchiCAD Workspace Profiles

  • Claude_Cowork_Comprehensive_29.xml — Full workspace profile optimized for AI automation
  • Claude_Cowork_Info_Box_29.xml — Info Box layout configured for automation reads
  • Claude_Cowork_Palette_Layout_29.xml — Palette positions for consistent screenshot targeting
  • Claude_Cowork_More_Options_29.xml — Extended options panel configuration
  • Claude_Cowork_Shortcut_Reference.docx — Custom keyboard shortcut documentation

What This Means

Work that would have taken weeks of manual effort — opening Attribute Manager, cross-referencing spreadsheets, checking element placements one by one — was accomplished in two focused sessions with AI doing the heavy lifting.

 

The process is repeatable. The same audit can run on any MGA project file to bring it into compliance with the new standard.

Eric Batte
Principal, MG Architects
MacBook Pro M1 Max, 64GB
AC 6.5-29
qingdom
Enthusiast

They changed it to "in progress" :)))))

AC27 INT | WIN10

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!