File size: 6,072 Bytes
bdb2dd7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | ---
license: apache-2.0
language:
- en
tags:
- revit
- bim
- architecture
- code-generation
- fine-tuned
- gguf
- construction
- aec
- autodesk
base_model: Qwen/Qwen3-14B
library_name: gguf
pipeline_tag: text-generation
---
# revit-coder-14b
A domain-adapted 14B parameter language model fine-tuned for Autodesk Revit 2025+ API development. Generates production-grade C# code with correct transaction management, thread safety patterns, and crash-resistant architecture.
Built on Qwen3-14B using QLoRA. Available in F16 (full precision) and Q4_K_M (quantized) GGUF formats.
## What This Model Does
This model is specialized for Revit API code generation and validation. It understands:
- Transaction hierarchy (Transaction, TransactionGroup, SubTransaction) and when to use each
- Thread safety with IExternalEventHandler and ExternalEvent patterns
- IFailuresPreprocessor for agentic/automated execution without modal dialog popups
- FilteredElementCollector efficiency patterns and filter chaining
- Batch APIs (NewFamilyInstances2, Delete(ICollection)) for high-performance operations
- Element lifecycle management and stale reference prevention
- Revit 2025+ specifics: .NET 8, C# 12, ElementId.Value (long), net8.0-windows targeting
- Worksharing safety checks and checkout patterns
- Electrical systems, PanelScheduleView handling, and unit conversion
## Quick Start (Ollama)
Download the Q4_K_M GGUF (recommended for most hardware):
```bash
# Create a Modelfile
cat > Modelfile << 'EOF'
FROM ./revit-coder-14b-Q4_K_M.gguf
TEMPLATE """{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
<think>
</think>
"""
SYSTEM "You are a Revit API specialist for Autodesk Revit 2025+ (.NET 8, C# 12). You generate production-grade C# code that is crash-resistant, transaction-safe, and optimized for agentic execution."
PARAMETER temperature 0.7
PARAMETER num_ctx 16384
PARAMETER stop "<|im_end|>"
PARAMETER repeat_penalty 1.1
EOF
# Create and run
ollama create revit-coder-14b -f Modelfile
ollama run revit-coder-14b "Write code to create 100 structural columns at specified coordinates"
```
## Available Files
| File | Size | Precision | VRAM Required | Use Case |
|------|------|-----------|---------------|----------|
| `revit-coder-14b-Q4_K_M.gguf` | 9 GB | 4-bit quantized | ~12 GB | Recommended for local use |
| `revit-coder-14b-f16.gguf` | 26 GB | Full FP16 | ~28 GB | Maximum quality, requires 32GB+ RAM |
## Example Outputs
### Transaction Safety
**Prompt:** "What's wrong with this code?"
```csharp
for (int i = 0; i < walls.Count; i++)
{
var t = new Transaction(doc);
t.Start("Delete");
doc.Delete(walls[i].Id);
t.Commit();
}
```
**Model response identifies:**
- Anti-pattern: Transaction per loop iteration causes N regenerations instead of 1
- Missing `using` block (resource leak if exception thrown)
- Should use batch API: `doc.Delete(wallIds)` in a single Transaction
- Missing IFailuresPreprocessor (modal dialogs will block execution)
### Batch API Knowledge
**Prompt:** "Create 100 structural columns at XYZ coordinates in Revit 2025"
The model generates code using `doc.Create.NewFamilyInstances2()` (the batch API) rather than looping with individual `NewFamilyInstance()` calls, resulting in 5-15x faster execution with a single regeneration.
### Thread Safety
**Prompt:** "How do I call the Revit API from a background thread?"
The model correctly explains that Revit API is single-threaded and provides the IExternalEventHandler + ConcurrentQueue pattern, warning against Task.Run() or ThreadPool approaches that cause crashes.
## Training Details
- **Base model:** Qwen3-14B
- **Method:** QLoRA (rank 64, alpha 128)
- **Training data:** Curated Revit API documentation, code patterns, and domain knowledge
- **Domains:** Revit C# API, IFC reasoning, APS/Forge schemas
- **Epochs:** 3
- **Validation loss:** 0.1586
- **Hardware:** RunPod GPU cluster
## Recommended System Prompt
For best results, use a system prompt that encodes Revit transaction rules. A comprehensive system prompt is available in the [companion repository](https://github.com/schauh11/revit-trained-llm) under `docs/`.
Key rules to include:
- Transaction decision tree (dependent ops -> TransactionGroup, batch available -> batch API, otherwise -> single Transaction)
- Batch size limits (max 50 elements per Transaction, max 10 Transactions per TransactionGroup)
- Thread safety (IExternalEventHandler only, never background threads)
- Element lifecycle (store ElementId, never Element; re-fetch after commit)
- Always include IFailuresPreprocessor for agentic execution
## Hardware Requirements
| Format | Minimum RAM | Recommended | Inference Speed (M1 Max 64GB) |
|--------|-------------|-------------|-------------------------------|
| Q4_K_M | 16 GB | 32 GB | ~11 tok/s |
| F16 | 32 GB | 64 GB | ~7 tok/s |
## Use Cases
- **Revit plugin development:** Generate boilerplate with correct transaction patterns
- **Code review:** Validate existing Revit API code against best practices
- **Agentic AI:** Serve as the code generation/validation layer in a Revit automation pipeline
- **Learning:** Understand Revit API patterns through conversational Q&A
## Limitations
- Specialized for Revit 2025+ (.NET 8). May generate outdated patterns for Revit 2023/2024 (.NET Framework 4.8)
- Code generation, not execution. Generated code should be reviewed before running in production
- 14B parameter model. For complex multi-file architectural decisions, pair with a frontier model
## License
Apache 2.0. Based on [Qwen3-14B](https://huggingface.co/Qwen/Qwen3-14B) (Apache 2.0).
## Author
Sanjay Chauhan -- [GitHub](https://github.com/schauh11) | [LinkedIn](https://linkedin.com/in/schauh11)
## Citation
```bibtex
@misc{chauhan2026revitcoder,
title={revit-coder-14b: A Domain-Adapted LLM for Revit API Development},
author={Chauhan, Sanjay},
year={2026},
url={https://huggingface.co/schauh11/revit-coder-14b}
}
```
|