Revit二次开发之“过滤得到某一标高上的所有风管”
风管的Level值为空,墙对应Level,风管对应ReferenceLevel
from:http://revit.5d6d.com/thread-1204-1-1.html
//找到标高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;
}
}
[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;
}
}
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。