您的位置:首页 > 其它

Revit二次开发之“过滤得到某一标高上的所有风管”

2011-08-28 10:53 357 查看
风管的Level值为空,墙对应Level,风管对应ReferenceLevel

//找到标高1上的所有风管
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
//[Journaling(JournalingMode.NoCommandData)]
public class cmdGetLevelDuct : IExternalCommand
{
public Result Execute(ExternalCommandData cmdData, ref string message, ElementSet elements)
{
UIDocument uiDoc = cmdData.Application.ActiveUIDocument;//base.m_uiDoc
Selection selection = uiDoc.Selection;

Transaction ts = new Transaction(uiDoc.Document, "LevelDuct");
ts.Start();

FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
collector.OfClass(typeof(Duct)).OfCategory(BuiltInCategory.OST_DuctCurves);

foreach (Element el in collector)
{
Duct duct = el as Duct;
if (duct.ReferenceLevel.Name == "标高 1")
TaskDialog.Show("title", duct.Id.ToString());
}

ts.Commit();

return Result.Succeeded;
}
}from:http://revit.5d6d.com/thread-1204-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: