Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

byggstyrning/ifctester-revit

Repository files navigation

IfcTester for Revit and ArchiCAD

A suite of plugins that integrate the IfcTester web application with major BIM software, providing a complete solution for IDS (Information Delivery Specification) authoring and auditing within your design environment.

Revit_9Uevr00Q4e-ezgif.com-gif-to-mp4-converter.mp4

Supported Platforms

Platform Windows macOS Documentation
Autodesk Revit ✅ Ready N/A Revit Plugin Guide
GRAPHISOFT ArchiCAD ✅ Ready ✅ Ready ArchiCAD Add-On Guide

Overview

This repository combines the IfcTester web application (Svelte/Vite) with native plugins for BIM software, creating a seamless integration that allows users to author and validate exported IFC files against IDS specifications directly within their design environment. The web application runs in an embedded browser, while Python-based validation runs client-side via WebAssembly/Pyodide.

Features

  • BIM Software Integration:
    • Dockable panels/palettes in Revit and ArchiCAD
    • Select elements from IFC validation results
    • Export IFC directly from the plugin
  • IDS Authoring: Create and edit IDS documents with a modern web interface
  • IFC Validation: Validate IFC models against IDS specifications using WebAssembly/Pyodide
  • HTTP API Server: Local server for bidirectional communication
  • Offline Support: Python packages bundled locally for offline operation

Project Structure

ifctester/
├── revit/               # Revit plugin (C#/.NET) - Windows only
│   ├── Application.cs   # Entry point
│   ├── RevitApiServer.cs # HTTP API server
│   └── IfcTesterRevit.csproj  # MSBuild project
├── archicad/            # ArchiCAD add-on (C++) - Windows & macOS
│   ├── Src/
│   │   ├── Main.cpp     # Add-on entry point
│   │   ├── BrowserPalette.cpp # Browser control UI
│   │   └── ArchiCADApiServer.cpp # HTTP API server
│   ├── RFIX/            # Non-localizable resources
│   ├── RINT/            # Localizable resources
│   ├── CMakeLists.txt   # CMake build configuration
│   └── Build/           # Generated by CMake (gitignored)
├── web/                 # IfcTester web application (Svelte/Vite)
│   ├── src/
│   │   └── modules/api/ # BIM software integration modules
│   └── public/worker/   # Pyodide and Python packages
├── installer/           # Installer configurations
│   ├── IfcTesterRevit.iss    # Revit installer (Windows)
│   └── IfcTesterArchiCAD.iss # ArchiCAD installer (Windows)
├── scripts/             # Build and deployment scripts
│   ├── dev.ps1          # Interactive dev menu (Windows)
│   ├── revit/           # Revit build scripts (Windows)
│   ├── archicad/        # ArchiCAD build scripts (Windows & macOS)
│   ├── web/             # Web app build scripts
│   └── utils/           # Shared utilities
└── dist/                # Release builds

Quick Start

Interactive Development Menu

The easiest way to build and deploy is using the interactive dev menu:

.\scripts\dev.ps1

This provides a menu-driven interface for all build and deploy operations.

Revit Plugin

# Build only
.\scripts\revit\build.ps1 -Configuration "Debug R25"

# Build and deploy to Revit Add-ins folder
.\scripts\revit\deploy.ps1 -Configuration "Debug R25"

# Build release installer
.\scripts\revit\installer.ps1

See Revit Plugin Documentation for detailed instructions.

ArchiCAD Add-On

The ArchiCAD add-on uses CMake for cross-platform builds (Windows & macOS).

Windows:

cd archicad

# Configure (generates Visual Studio solution)
cmake -B Build -G "Visual Studio 17 2022" -A x64 -DAC_API_DEVKIT_DIR="C:\path\to\API.Development.Kit.WIN.29.3100"

# Build
cmake --build Build --config Release

# Output: archicad/Build/Release/IfcTesterArchiCAD.apx

macOS:

cd archicad

# Configure (generates Xcode project)
cmake -B Build -G Xcode -DAC_API_DEVKIT_DIR="$HOME/Library/Application Support/GRAPHISOFT/API Development Kit 29"

# Build
cmake --build Build --config Release

# Output: archicad/Build/Release/IfcTesterArchiCAD.bundle

Deployment scripts (Windows):

# Build and deploy to ArchiCAD Add-Ons folder
.\scripts\archicad\deploy.ps1 -Configuration Release

# Check add-on status
.\scripts\archicad\status.ps1

# Build release installer
.\scripts\archicad\installer.ps1

See ArchiCAD Add-On Documentation for detailed instructions.

Prerequisites

Common Requirements

Revit Plugin (Windows only)

  • Windows 10/11 (64-bit)
  • .NET SDK 8.0+ - Download here
  • Autodesk Revit 2021-2026
  • WebView2 Runtime (usually pre-installed)

ArchiCAD Add-On (Windows & macOS)

Windows:

  • Visual Studio 2022 with C++ desktop development workload (v143 toolset)

macOS:

  • Xcode with Command Line Tools
  • macOS 10.15 (Catalina) or later

API Communication

Both plugins expose a local HTTP API for communication with the web interface:

Endpoint Method Description
/status GET Check server status
/select-by-guid/{guid} GET Select element by IFC GUID
/ifc-configurations GET List IFC export configurations
/export-ifc POST Export model to IFC

Default Ports:

  • Revit: 48881
  • ArchiCAD: 48882

Building the Web Application

The web application is shared between all plugins:

# Using the build script (recommended)
.\scripts\web\build.ps1

# Or manually
cd web
npm install
npm run build

The built files in web/dist/ are embedded in each plugin.

Development

Interactive Dev Menu

The quickest way to get started is the interactive dev menu:

.\scripts\dev.ps1

Web Application Development

cd web
npm run dev

The dev server runs at http://localhost:5173/. Plugins can be configured to use this URL during development.

Build Scripts Reference

All scripts are in the scripts/ folder with a consistent structure:

Script Platform Description
dev.ps1 Windows Interactive menu for all dev tasks
revit/build.ps1 Windows Build Revit plugin (uses dotnet build)
revit/deploy.ps1 Windows Build + deploy to Revit Add-ins
revit/installer.ps1 Windows Build release installer
archicad/build.ps1 Windows Build ArchiCAD add-on (uses CMake)
archicad/deploy.ps1 Windows Build + deploy to ArchiCAD Add-Ons
archicad/installer.ps1 Windows Build release installer
archicad/status.ps1 Windows Check add-on installation & API status
archicad/build-mac.sh macOS Build ArchiCAD add-on (uses CMake)
archicad/deploy-mac.sh macOS Build + deploy to ArchiCAD Add-Ons
archicad/installer-mac.sh macOS Build release DMG installer
web/build.ps1 Windows Build web application
web/build-mac.sh macOS Build web application
utils/create-certificate.ps1 Windows Create code signing certificate

Common Parameters

  • -Configuration: Build configuration (Debug R25, Release R26, etc.)
  • -SkipBuild: Skip build step (deploy only)
  • -SkipWebBuild: Skip web app build

Debugging

  • Revit: Open revit/IfcTesterRevit.csproj in Visual Studio → F5 launches Revit with debugger attached
  • ArchiCAD (Windows): Open archicad/Build/IfcTesterArchiCAD.sln in Visual Studio → Attach to ARCHICAD.exe
  • ArchiCAD (macOS): Open archicad/Build/IfcTesterArchiCAD.xcodeproj in Xcode → Attach to ArchiCAD process
  • Web: Use browser DevTools or CEF debug port (see platform-specific docs)

Build Systems

Project Build System IDE Support
Revit MSBuild / dotnet build Visual Studio, Rider
ArchiCAD CMake Visual Studio (Windows), Xcode (macOS)
Web Vite / npm Any editor

Why different build systems?

  • Revit is a C#/.NET project - MSBuild is the native build system with full NuGet, multi-targeting, and .NET SDK support
  • ArchiCAD is a C++ project - CMake provides cross-platform builds for Windows (.apx) and macOS (.bundle) from the same source

Project History

This project combines several open-source efforts:

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test with the target BIM software
  5. Submit a pull request

License

MIT License - See LICENSE for details.

Copyright (c) 2025 Byggstyrning


Platform-Specific Documentation

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •