<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/01f9b8a6-3c36-442b-bed3-ec193007d66f/ic_01_idea.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/01f9b8a6-3c36-442b-bed3-ec193007d66f/ic_01_idea.png" width="40px" /> Start with the short introduction to extension bundles at Create Your First Command This document provides detailed information about Extension bundles and their functionality
</aside>
UI extension bundles are a set of tools grouped to be easily accessible through the user interface.
See Extension Metadata for more information about UI Extension metadata files
See Extension Startup Script for more information about UI Extension startup scripts
See Bundle Lib & bin for more info on the bundle lib/
and bin/
directories
See Extension Hooks/ for more information about hook scripts inside hooks/
directory
extension: .extension
requires:
- extension.yaml # includes extension metadata e.g. author
optional:
- *startup.* # can include a startup script that runs when Revit is launched
- bin/ # can include a bin/ directory that hosts binaries required by the child bundles
- lib/ # can include a lib/ directory that hosts modules required by the child bundles
- hooks/ # can include a hooks/ directory that hosts the hook scripts
The extension bundle discussed above, is the most important type of extension bundles. There are however more extension types that are designed for specific purposes.
Library extensions are created to share IronPython modules between all extensions. They’re in essence IronPython module packages. Some users might decide to develop an IronPython library (e.g. RevitPythonWrapper Library) that other users can use in their tools and benefit from.
extension: .lib
requires:
- bundle.yaml # includes extension metadata e.g. author
Run extensions are designed to be used with the pyRevit CLI. See Batch Process Revit Models
extension: .run
requires:
- bundle.yaml # includes extension metadata e.g. author
- <name>_command.py # one or more Run commands. <name> is name of the command.
# e.g. "make3dview" is the name of "make3dview_command.py"
# these named commands can be used with pyRevit CLI for batch processing models