Revit二次开发之“选择某一楼层的墙”
其实就是过滤器的用法。这里想要找到同一楼层中的风管,不可行。
要用:duct.ReferenceLevel
from:http://revit.5d6d.com/thread-1076-1-3.html
要用:duct.ReferenceLevel
//选择某一楼层上的墙
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
//[Journaling(JournalingMode.NoCommandData)]
public class SelectFloorObj : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uiDoc = commandData.Application.ActiveUIDocument;
Selection selection = uiDoc.Selection;
//把标高1上的墙加入选择集
FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
collector.OfClass(typeof(Wall)).OfCategory(BuiltInCategory.OST_Walls);
IList<Element> lists = collector.ToElements();
foreach (Element el in lists)
{
if (el.Level.Name == "标高 1")
selection.Elements.Add(el);//添加到选择集
}
//风管的Level属性为空,不能这样做。
//FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
//collector.OfClass(typeof(Duct)).OfCategory(BuiltInCategory.OST_DuctCurves);
//IList<Element> lists = collector.ToElements();
//foreach (Element el in lists)
//{
// Duct duct = el as Duct;
// MessageBox.Show(duct.LevelOffset.ToString());
// if (duct.Level != null)
// {
// if (duct.Level.Name == "标高 1")
// {
// selection.Elements.Add(duct);
// }
// }
//}
return Result.Succeeded;
}
}
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
//[Journaling(JournalingMode.NoCommandData)]
public class SelectFloorObj : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uiDoc = commandData.Application.ActiveUIDocument;
Selection selection = uiDoc.Selection;
//把标高1上的墙加入选择集
FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
collector.OfClass(typeof(Wall)).OfCategory(BuiltInCategory.OST_Walls);
IList<Element> lists = collector.ToElements();
foreach (Element el in lists)
{
if (el.Level.Name == "标高 1")
selection.Elements.Add(el);//添加到选择集
}
//风管的Level属性为空,不能这样做。
//FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
//collector.OfClass(typeof(Duct)).OfCategory(BuiltInCategory.OST_DuctCurves);
//IList<Element> lists = collector.ToElements();
//foreach (Element el in lists)
//{
// Duct duct = el as Duct;
// MessageBox.Show(duct.LevelOffset.ToString());
// if (duct.Level != null)
// {
// if (duct.Level.Name == "标高 1")
// {
// selection.Elements.Add(duct);
// }
// }
//}
return Result.Succeeded;
}
}
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。

浙公网安备 33010602011771号