前言
这个例子介绍 Revit 的配电盘明细表,PanelSchedule。Revit 的电器专业在国内用的并不是十分广泛,但从功能上来说还是比较完整的。
内容
这个例子里有三个命令:
- PanelScheduleExport - 导出配电盘明细表
- InstanceViewCreation - 创建配电盘明细表
- 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
在图纸上放置配电盘明细表:文章来源:https://www.toymoban.com/news/detail-650245.html
// public class PanelScheduleSheetInstance : Element
public static PanelScheduleSheetInstance Create(Document ADoc, ElementId scheduleId, View DBView);
为了将多个明细表放在同一行,计算了各个表的起始位置:文章来源地址https://www.toymoban.com/news/detail-650245.html
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);
}
到了这里,关于Revit SDK 介绍:PanelSchedule 配电盘明细表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!