Revit SDK:ScheduleCreation 创建明细表

前言

这个例子介绍如何创建明细表。明细表相关介绍:Revit API:明细表ViewSchedule

内容

在这里插入图片描述
创建明细表 Command 的主要逻辑:

UIDocument uiDocument = commandData.Application.ActiveUIDocument;
ScheduleCreationUtility utility = new ScheduleCreationUtility();
utility.CreateAndAddSchedules(uiDocument);

ScheduleCreationUtility

CreateAndAddSchedules 调用了 CreateSchedulesAddScheduleToNewSheet

public void CreateAndAddSchedules(UIDocument uiDocument)
{
   TransactionGroup tGroup = new TransactionGroup(uiDocument.Document, "Create schedules and sheets");
   tGroup.Start();
   ICollection<ViewSchedule> schedules = CreateSchedules(uiDocument);
   foreach (ViewSchedule schedule in schedules)
   {
      AddScheduleToNewSheet(uiDocument.Document, schedule);
   }
   tGroup.Assimilate();
}

CreateSchedules 创建明细表。
明细表的创建:

ViewSchedule schedule = ViewSchedule.CreateSchedule(document, new ElementId(BuiltInCategory.OST_Walls), ElementId.InvalidElementId);
schedule.Name = "Wall Schedule 1";

从明细表中获取内容 field:

SchedulableField schedulableField in schedule.Definition.GetSchedulableFields()

增加 field及相关过滤器:

ScheduleField field = schedule.Definition.AddField(schedulableField);
double volumeFilterInCubicFt = 0.8 * Math.Pow(3.2808399, 3.0);
ScheduleFilter filter = new ScheduleFilter(field.FieldId, ScheduleFilterType.GreaterThan, volumeFilterInCubicFt);
schedule.Definition.AddFilter(filter);
ScheduleSortGroupField sortGroupField = new ScheduleSortGroupField(field.FieldId);
sortGroupField.ShowHeader = true;
schedule.Definition.AddSortGroupField(sortGroupField);

AddScheduleToNewSheet 把明细表放到图纸上。

//创建图纸
ViewSheet newSheet = ViewSheet.Create(document, titleBlockId);
newSheet.Name = "Sheet for " + schedule.Name;
document.Regenerate();
// 在图纸上放置一个明细表
XYZ upperLeft = new XYZ(); // 放置在图纸上的位置
ScheduleSheetInstance placedInstance = ScheduleSheetInstance.Create(document, newSheet.Id, schedule.Id, upperLeft);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客BIM工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值