# Revit SDK 2020
**Repository Path**: Medithaibet/Revit-SDK-2020
## Basic Information
- **Project Name**: Revit SDK 2020
- **Description**: 官网SDK
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-30
- **Last Updated**: 2026-04-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Revit SDK 2020
Revit 软件开发工具包(SDK)2020 版本,包含了丰富的示例代码,演示了 Autodesk Revit 2020 的各种 API 功能。
## 项目简介
Revit SDK 是 Autodesk 官方提供的 Revit 二次开发示例集合,旨在帮助开发者学习和掌握 Revit API 的使用方法。该 SDK 涵盖了 Revit 开发的各个领域,包括但不限于:
- **外部命令与应用程序**:创建自定义 Revit 命令和应用程序
- **族创建**:使用 API 创建和编辑族
- **结构分析**:边界条件、钢筋、配筋等
- **MEP/机电**:管道、风道、Fabrication 零件等
- **建筑元素**:墙体、幕墙、门窗、楼板等
- **视图与图纸**:创建视图、标注、尺寸标注等
- **事件处理**:监听和处理 Revit 各种事件
- **可扩展存储**:使用 Extensible Storage 存储自定义数据
## 项目结构
该 SDK 包含多个示例项目,按功能分类组织:
### 核心 API 示例
| 目录 | 说明 |
|------|------|
| `ExternalCommand` | 外部命令注册与实现 |
| `APIAppStartup` | 应用程序启动与关闭 |
| `DisableCommand` | 命令禁用 |
### 建筑元素
| 目录 | 说明 |
|------|------|
| `CreateBeamsColumnsBraces` | 创建梁柱支撑结构 |
| `CreateBeamSystem` | 创建梁系统 |
| `CreateWallinBeamProfile` | 在梁轮廓中创建墙体 |
| `CreateWallsUnderBeams` | 在梁下方创建墙体 |
| `CurtainSystem` | 幕墙系统 |
| `CurtainWallGrid` | 幕墙网格 |
| `DoorSwing` | 门 swinging 功能 |
| `AutoTagRooms` | 自动标记房间 |
### 结构工程
| 目录 | 说明 |
|------|------|
| `AreaReinCurve` | 区域配筋曲线 |
| `AreaReinParameters` | 区域配筋参数 |
| `CreateComplexAreaRein` | 创建复杂区域配筋 |
| `CreateSimpleAreaRein` | 创建简单区域配筋 |
| `BoundaryConditions` | 边界条件 |
| `BeamAndSlabNewParameter` | 梁板新参数 |
### MEP/机电
| 目录 | 说明 |
|------|------|
| `AddSpaceAndZone` | 添加空间和区域 |
| `AutoRoute` | 自动路由 |
| `AvoidObstruction` | 避让障碍物 |
| `FabricationPartLayout` | 加工零件布局 |
### 族创建
| 目录 | 说明 |
|------|------|
| `FamilyCreation/AutoJoin` | 自动连接 |
| `FamilyCreation/AutoParameter` | 自动参数 |
| `FamilyCreation/CreateAirHandler` | 创建空气处理机 |
| `FamilyCreation/CreateTruss` | 创建桁架 |
| `FamilyCreation/DWGFamilyCreation` | DWG 族创建 |
| `FamilyCreation/GenericModelCreation` | 通用模型创建 |
| `FamilyCreation/WindowWizard` | 窗户向导 |
| `FamilyCreation/TypeRegeneration` | 类型重新生成 |
| `FamilyCreation/ValidateParameters` | 参数验证 |
### 视图与图纸
| 目录 | 说明 |
|------|------|
| `AllViews` | 所有视图 |
| `CreateViewSection` | 创建视图剖面 |
| `CreateDimensions` | 创建标注 |
| `DimensionLeaderEnd` | 标注引线末端 |
| `DeleteDimensions` | 删除标注 |
| `DuplicateViews` | 复制视图 |
### 事件与监控
| 目录 | 说明 |
|------|------|
| `Events/AutoStamp` | 自动戳记 |
| `Events/AutoUpdate` | 自动更新 |
| `Events/CancelSave` | 取消保存 |
| `Events/EventsMonitor` | 事件监控 |
| `Events/PrintLog` | 打印日志 |
| `Events/ProgressNotifier` | 进度通知 |
| `DocumentChanged` | 文档变更监控 |
### 高级功能
| 目录 | 说明 |
|------|------|
| `AnalysisVisualizationFramework` | 分析可视化框架 |
| `DynamicModelUpdate` | 动态模型更新 |
| `DockableDialogs` | 可停靠对话框 |
| `DuplicateGraphics` | 重复图形 |
| `ExtensibleStorageManager` | 可扩展存储管理 |
| `ExtensibleStorageUtility` | 可扩展存储工具 |
| `CustomExporter` | 自定义导出器 |
## 技术要求
- **Revit 2020** 或更高版本
- **Visual Studio 2017** 或更高版本
- **.NET Framework 4.7.2** 或更高版本
- **Revit API** (随 Revit 2020 安装)
## 使用说明
### 构建项目
1. 打开 Visual Studio
2. 导航到所需的示例目录
3. 打开 `.csproj` 或 `.vbproj` 项目文件
4. 确保引用了正确的 Revit API 程序集
5. 构建项目
### 加载示例
1. 编译生成的 `.dll` 文件
2. 将 `.dll` 和对应的 `.addin` 文件复制到 Revit Addins 文件夹:
- `%PROGRAMFILES%\Autodesk\Revit 2020\Addins`
- 或 `%APPDATA%\Autodesk\Revit\Addins\2020`
3. 启动 Revit,插件将自动加载
### .addin 文件格式
```xml
C:\Path\To\YourAssembly.dll
Namespace.ClassName
GUID
Command Name
Vendor
```
## 示例代码结构
每个示例通常包含:
- **Command.cs**:实现 `IExternalCommand` 接口的命令类
- **Form.Designer.cs / Form.cs**:用户界面
- **数据类**:业务逻辑和数据处理
- **.addin**:Revit 加载配置
- **.rvt**:测试用 Revit 项目文件
### 基本命令结构
```csharp
[Transaction(TransactionMode.Manual)]
public class Command : IExternalCommand
{
public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{
// 在这里实现您的逻辑
return Result.Succeeded;
}
}
```
## 主要功能模块
### 1. 事务处理
Revit API 要求在事务中修改模型:
```csharp
using (Transaction tx = new Transaction(doc))
{
tx.Start("操作名称");
// 修改模型
tx.Commit();
}
```
### 2. 元素过滤
```csharp
FilteredElementCollector collector = new FilteredElementCollector(doc);
ICollection walls = collector.OfClass(typeof(Wall)).ToElements();
```
### 3. 参数访问
```csharp
Parameter param = element.get_Parameter(BuiltInParameter.WALL_HEIGHT_TYPE);
string value = param.AsString();
```
## 许可证
本项目仅供学习和研究使用。使用前请查阅 Autodesk 相关的 API 使用条款和许可协议。
## 资源链接
- [Autodesk Revit API 文档](https://www.autodesk.com/developrevit)
- [Revit API 论坛](https://forums.autodesk.com/t5/revit-api-forum/bd-p/160)
- [Revit SDK 官方示例](https://www.autodesk.com/revit-sdk)
## 注意事项
1. 部分示例需要特定的 Revit 版本或附加模块
2. 修改和运行示例代码时请备份原始文件
3. 某些操作可能需要企业版或教育版 Revit
4. 示例代码主要用于演示 API 用法,可能需要根据实际需求调整
---
**注意**:本 README 基于代码分析生成,具体使用方式请参考各示例目录下的原始文档。