当前位置: 首页 > news >正文

Revit SDK 介绍:PanelSchedule 配电盘明细表

前言

这个例子介绍 Revit 的配电盘明细表,PanelSchedule。Revit 的电器专业在国内用的并不是十分广泛,但从功能上来说还是比较完整的。

内容

这个例子里有三个命令:

  1. PanelScheduleExport - 导出配电盘明细表
  2. InstanceViewCreation - 创建配电盘明细表
  3. SheetImport - 在图纸中导入配电盘明细表

PanelScheduleExport

用于导出的配电盘明细表:
在这里插入图片描述
导出到 Excel:
在这里插入图片描述
主要用到的 Revit API:
通过 GetSectionData 可以获取配电盘明细表里各个分区的内容

// public class PanelScheduleView : TableView
public TableSectionData GetSectionData(SectionType sectionType);

一个配电盘明细表可以有的分区类型:
头Header、体Body、总结Symmary、尾Footer

namespace Autodesk.Revit.DB
{public enum SectionType{None = -1,Header = 0,Body = 1,Summary = 2,Footer = 3}
}

TableSectionData 可以获取对应的行列:

TableSectionData sectionData = psView.GetSectionData(sectionType);
nRows = sectionData.NumberOfRows;
nCols = sectionData.NumberOfColumns;

通过 GetCellText 可以获取对应的配电盘明细表的内容:

// public class TableView : View
public string GetCellText(SectionType sectionType, int row, int column);

InstanceViewCreation

选中一个配电盘 Panel,通过 CreateInstanceView 创建一个配电盘明细表:

// public class PanelScheduleView : TableView
public static PanelScheduleView CreateInstanceView(Document ADoc, ElementId panelId);

在这里插入图片描述

SheetImport

通过 PanelScheduleSheetInstance::Create 在图纸上放置配电盘明细表:

// public class PanelScheduleSheetInstance : Element
public static PanelScheduleSheetInstance Create(Document ADoc, ElementId scheduleId, View DBView);

在这里插入图片描述
为了将多个明细表放在同一行,计算了各个表的起始位置:

XYZ nextOrigin = new XYZ(0.0, 0.0, 0.0);
foreach (Element element in psViews)
{PanelScheduleView psView = element as PanelScheduleView;if (psView.IsPanelScheduleTemplate()){// ignore the PanelScheduleView instance which is a template.continue;}PanelScheduleSheetInstance onSheet = PanelScheduleSheetInstance.Create(doc, psView.Id, sheet);onSheet.Origin = nextOrigin;BoundingBoxXYZ bbox = onSheet.get_BoundingBox(doc.ActiveView);double width = bbox.Max.X - bbox.Min.X;nextOrigin = new XYZ(onSheet.Origin.X + width, onSheet.Origin.Y, onSheet.Origin.Z);
}
http://www.lryc.cn/news/125487.html

相关文章:

  • Java后端实现不用pagehelper。手写分页如何实现?
  • spring 缓存
  • vue3.0 element-plus 不同版本 el-popover 循环优化
  • 计算机网络实验4:HTTP、DNS协议分析
  • 敏捷项目管理如何做好Sprint Backlog?迭代管理
  • 实验三 图像分割与描述
  • npm使用国内淘宝镜像的方法(两种)
  • 05应用程序设计和文件操作
  • 【果树农药喷洒机器人】Part8:果树对靶变量喷药实验
  • framework.beans.factory.annotation.Autowired(required=true)}
  • 【应用笔记】使用 CW32 实现电池备份(VBAT)功能
  • 探讨uniapp的navigator 页面跳转问题
  • 使用Epoll实现高效的多路I/O转接
  • 流程挖掘in汽车丨宝马的流程效能提升实例
  • 微信小程序实现当前页面更新上一个页面
  • 基于PSO-KELM的时间序列数据预测(含对比实验)
  • 线性代数(二) 矩阵及其运算
  • 【图像分类】理论篇(4)图像增强opencv实现
  • Centos下的tcpdump抓包用法
  • 自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的存储与应用]
  • 微服务与Nacos概述-5
  • 第九章 动态规划part08(代码随想录)
  • 智能家居(1)---工厂模式实现灯光控制(继电器组)以及火灾报警模组的封装
  • kubernetes的存储卷使用
  • centos 之安装 openssl 1.1.1报错
  • matlab使用教程(16)—图论中图的定义与修改
  • 【C++面向对象】--- 继承 的奥秘(下篇)
  • Android 面试笔记整理-Binder机制
  • 编程小白的自学笔记十三(python办公自动化读写文件)
  • 【Mariadb高可用MHA】