Skip to content

russgreen/Transmittal

Repository files navigation

Transmittal

Revit Version .NET
Revit Version .NET

GitHub last commit License

Transmittal is a comprehensive document management solution for Autodesk® Revit® that provides a wizard interface to assist with setting revisions, managing drawing sheet status, and publishing selected sheets to PDF, DWF, and DWG formats. The solution also includes a standalone desktop application for managing transmittals outside of Revit and can record transmittal history in a SQLite database with reporting capabilities.

Note for Revit 2021 users: To use Transmittal with Revit 2021 the freeware PDF24 printer must be installed. This is not required for Revit 2022 and later. The PDF24 printer can be downloaded from https://download.pdf24.org/pdf24-creator-11.11.1-x64.msi

Screenshot 2022-06-06 064221

Table of Contents

Features

Revit Add-in

  • Sheet Management: Set revisions and status of drawing sheets
  • Multi-format Export: Publish sheets to PDF, DWF, and DWG formats
  • ISO 19650 Compliance: Support for ISO 19650 naming conventions and metadata
  • Custom Parameters: Extensive support for custom project and sheet parameters
  • Batch Processing: Process multiple sheets efficiently
  • File Naming: Flexible file and folder naming with customizable templates

Standalone Desktop Application

  • Universal Document Management: Handle any document type, not just Revit sheets
  • Database Integration: SQLite database for transmittal history tracking
  • Reporting: Generate transmittal reports and historic document issue sheets
  • File Parsing: Automatic filename parsing for standardized naming conventions
  • Drag & Drop: Easy document addition via drag and drop interface

Requirements

For Revit 2021-2024

For Revit 2025-2026

  • Operating System: Windows 10/11 (64-bit)
  • Framework: .NET 8
  • Revit: Autodesk Revit 2025 or 2026

For Desktop Application

  • Operating System: Windows 10/11 (64-bit)
  • Framework: .NET 8
  • Database: SQLite (embedded)

Solution Architecture

The solution consists of multiple projects targeting different .NET frameworks and use cases:

Transmittal/
├── source/
│   ├── Transmittal/                      # Revit Add-in (.NET Framework 4.8 / .NET 8)
│   ├── Transmittal.Desktop/              # Standalone WPF Application (.NET 8)
│   ├── Transmittal.Library/              # Shared Core Library (Multi-target)
│   ├── Transmittal.Reports/              # Report Generation (.NET 8)
│   └── Transmittal.Library.Tests/        # Unit Tests (.NET 8)
├── build/                                # NUKE Build System
├── docs/                                 # Documentation (GitHub Pages)
├── Installer/                            # Advanced Installer Project
└── Directory.Build.props                 # Shared MSBuild Properties

Project Dependencies

Transmittal (Revit Add-in)

  • UI Framework: WPF with Syncfusion controls
  • MVVM: CommunityToolkit.MVVM
  • Revit APIs: Nice3point.Revit.Api packages
  • Logging: Serilog
  • IoC: Microsoft.Extensions.Hosting
  • Assembly Merging: ILRepack
  • Analytics: Transmittal.Analytics.Client

Transmittal.Desktop (Standalone)

  • UI Framework: WPF with Syncfusion controls
  • MVVM: CommunityToolkit.MVVM
  • Dialogs: Ookii.Dialogs.Wpf
  • Logging: Serilog
  • IoC: Microsoft.Extensions.Hosting
  • Analytics: Transmittal.Analytics.Client

Transmittal.Library (Core)

  • Database: Microsoft.Data.Sqlite with Dapper ORM
  • HTTP Client: System.Net.Http
  • JSON: System.Text.Json
  • Utilities: Humanizer.Core
  • IoC: Microsoft.Extensions.Hosting

Development Setup

Project Configurations

The solution uses multiple build configurations for different Revit versions:

Revit Add-in Configurations

  • Debug/Release R21: Revit 2021 (.NET Framework 4.8)
  • Debug/Release R22: Revit 2022 (.NET Framework 4.8)
  • Debug/Release R23: Revit 2023 (.NET Framework 4.8)
  • Debug/Release R24: Revit 2024 (.NET Framework 4.8)
  • Debug/Release R25: Revit 2025 (.NET 8)
  • Debug/Release R26: Revit 2026 (.NET 8)

Building the Solution

Automated Build (NUKE)

The solution uses NUKE for automated builds:

Build Targets

  • Clean: Remove build artifacts
  • Restore: Restore NuGet packages
  • Compile: Build all projects
  • Test: Run unit tests
  • Sign: Code sign assemblies (requires certificates)
  • Installer: Create MSI installer using Advanced Installer

Installation

End Users

  1. Download the latest release from GitHub Releases
  2. Run the MSI installer
  3. Restart Revit to load the add-in

Documentation

Comprehensive documentation is available at: https://russgreen.github.io/Transmittal/

Key Topics

Testing

Test Projects

  • Transmittal.Library.Tests: Unit tests for core library functionality
    • Database operations
    • File naming and parsing
    • Model validation
    • Extension methods

Version Management

Version numbering follows semantic versioning (Major.Minor.Patch):

  • Major: Breaking changes or significant new features
  • Minor: New features maintaining backwards compatibility
  • Patch: Bug fixes and minor improvements

Versions are managed through Directory.Build.props:

  • VersionPrefix: Major.Minor.Patch (e.g., "3.2.3")
  • VersionSuffix: Pre-release identifier (e.g., "beta", "alpha")

Licensing

This project is licensed under the GNU General Public License v3.0.

Third-Party Components

The solution includes the following open-source libraries:

  • CommunityToolkit.MVVM (MIT License)
  • Dapper (Apache 2.0 License)
  • Humanizer (MIT License)
  • Microsoft.Extensions.Hosting (MIT License)
  • Serilog (Apache 2.0 License)
  • SQLite (Public Domain)

Commercial components:

  • Syncfusion WPF Controls (Commercial/Community License Required)

Acknowledgments

  • Autodesk for the Revit API
  • Nice3point for the excellent Revit API packages
  • Syncfusion for the WPF UI controls

Support


Copyright © 2024 Russell Green
Licensed under GPL v3.0 - see LICENSE for details.

Packages

No packages published

Contributors 2

  •  
  •  

Languages