在API里管段对应了一个PipeSegment类,要获取可以用Class过滤去来过滤
如果要创建管段可以使用PipeSegment的Create方法来创建,这是个静态方法
public static PipeSegment Create( Document ADocument, ElementId MaterialId, ElementId ScheduleId, ICollection<MEPSize> sizeSet )
下面是一个获取管段的小例子:
private void PipeSegment()
{
FilteredElementCollector temc = new FilteredElementCollector(doc);
temc.OfClass(typeof(PipeSegment));
string info = null;
foreach(Element e in temc)
{
info += e.Name + Environment.NewLine;
}
ModlessWindow.Show(info);
//结果:
//碳钢 - Schedule 40
//碳钢 - Schedule 80
//不锈钢 - 5S
//不锈钢 - 10S
//铜 - A
//铜 - B
//铜 - C
//铜 - D
//塑料 - Schedule 40
//塑料 - Schedule 80
//铸铁 - 22
//铸铁 - 30
PipeSegment ps = temc.First() as PipeSegment;
ICollection<MEPSize> mpSizes = ps.GetSizes();//获取尺寸列表
info = null;
info += ps.Name + Environment.NewLine;
foreach(MEPSize ms in mpSizes)
{
info += (ms.NominalDiameter * 304.8).ToString() + "\t\t"+ (ms.OuterDiameter * 304.8).ToString() + "\t\t" + (ms.InnerDiameter * 304.8).ToString() + Environment.NewLine;
}
ModlessWindow.Show(info);
/*
* 结果
* 碳钢 - Schedule 40
15 21.336 15.7988
20 26.67 20.9296
25 33.401 26.6446
32 42.164 35.052
40 48.26 40.894
50 60.325 52.5018
65 73.025 62.7126
80 88.9 77.9272
90 101.6 90.1192
100 114.3 102.2604
125 141.3002 128.1938
150 168.275 154.051
200 219.075 202.7174
250 273.05 254.508
300 323.85 303.2252
350 355.6 333.4004
400 406.4 381
450 457.2 428.6504
500 508 477.8756
600 609.6 574.7004
*/
}
本文介绍了如何在API中通过过滤获取PipeSegment类实例的方法,并展示了如何利用此类的静态Create方法创建新的管段实例。此外,还提供了一个具体的示例代码,演示了获取管段及其尺寸的具体步骤。
602

被折叠的 条评论
为什么被折叠?



