Back to Projects

Bulk Types Creator

Streamline type creation for parametric Revit families with bulk creation from manual input or text file import. Built with pyRevit and WPF for BIM managers and content creators.

Python pyRevit WPF/XAML Revit API

Project Overview

Bulk Types Creator is a pyRevit extension that streamlines the creation of family types for parametric Revit families. Designed for BIM managers and content creators who frequently populate families with dozens or hundreds of type variations, this tool eliminates repetitive manual type creation and reduces human error.

The tool operates exclusively in Family Editor context and leverages the Revit API's FamilyManager to batch-create types from either manual entry or imported text files. With intelligent duplicate detection and per-type error reporting, it ensures data integrity while dramatically accelerating family development workflows.

Key Features

  • Manual Input with Enter Key Support: Quick type name entry in a text box—press Enter to add to queue for rapid data entry
  • Text File Import: OpenFileDialog for .txt files with UTF-8 encoding via codecs.open for reliable international character support
  • Duplicate Detection: Case-insensitive checking against both the queue list and existing FamilyManager.Types to prevent duplicates
  • Queue Management: Add/Remove queue with ListBox display and live count ("X types to create")
  • Batch Creation: Single-transaction creation using FamilyManager.NewType(type_name)
  • Per-Type Error Reporting: Exception details for failed types with result summary (created count and failures)
  • Auto-Close on Success: Window automatically closes when all types are created successfully

Technical Implementation

  • pyRevit Framework: Built on the pyRevit extension platform
  • WPF/XAML UI: WPFWindow-based interface for a professional Windows experience
  • Family Editor Context: Validates and operates only when a family document is active
  • FamilyManager API: Uses FamilyManager.NewType() for type creation within a single transaction
  • UTF-8 File Handling: codecs.open ensures correct encoding for imported type names
  • Transaction Management: All type creations executed in one transaction for consistency

Technical Specifications

Architecture
  • Framework: pyRevit (IronPython)
  • UI Framework: WPF (Windows Presentation Foundation) / XAML
  • API: Autodesk Revit API (FamilyManager)
  • Context: Family Editor only
Core Functionality
  • Input Sources: Manual text box, .txt file import
  • Encoding: UTF-8 for file import
  • Duplicate Check: Case-insensitive against queue and FamilyManager.Types
  • Creation: FamilyManager.NewType() in single transaction
  • Reporting: Per-type exceptions, summary (created/failed), auto-close on full success

Use Cases

Parametric Family Setup

Rapidly populate a parametric door, window, or furniture family with dozens of standard sizes from a spec spreadsheet exported to .txt

Bulk Type Migration

Create multiple type variations when converting or upgrading families that require new type definitions

Content Library Expansion

Build out family type catalogs for standard products (e.g., counter depths, cabinet widths) without manual repetitive entry

Impact

90%+
Time Reduction

Eliminates manual type-by-type creation for large parametric families

Zero Duplicates
Data Integrity

Case-insensitive duplicate detection against queue and existing types

Traceable
Error Visibility

Per-type exception reporting ensures failures are identified and fixable