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}
}
```