//
显示或隐藏3D视图中的元素
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
// [Journaling(JournalingMode.NoCommandData)]
public class HideUnHideIn3DView : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uiDoc = commandData.Application.ActiveUIDocument;
Selection selection = uiDoc.Selection;
// 根据Id找到元素的方法
ElementId elId = new ElementId( 618621 );
Element el = commandData.Application.ActiveUIDocument.Document.get_Element(elId);
Transaction ts = new Transaction(uiDoc.Document, " HideUnHide " );
ts.Start();
Autodesk.Revit.DB.View view = uiDoc.Document.ActiveView;
// 判断是不是3D视图
if (view.Name != " {3D} " )
{
ts.RollBack();
return Result.Cancelled;
}
// 判断在此视图下是否可以隐藏
if (el.CanBeHidden(view) == true )
{
ElementSet elementSet = new ElementSet();
elementSet.Clear();
elementSet.Insert(el);
if (el.IsHidden(view) == true )
{
view.Unhide(elementSet);
}
else
{
view.Hide(elementSet);
}
}
ts.Commit();
return Result.Succeeded;
}
}
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
// [Journaling(JournalingMode.NoCommandData)]
public class HideUnHideIn3DView : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uiDoc = commandData.Application.ActiveUIDocument;
Selection selection = uiDoc.Selection;
// 根据Id找到元素的方法
ElementId elId = new ElementId( 618621 );
Element el = commandData.Application.ActiveUIDocument.Document.get_Element(elId);
Transaction ts = new Transaction(uiDoc.Document, " HideUnHide " );
ts.Start();
Autodesk.Revit.DB.View view = uiDoc.Document.ActiveView;
// 判断是不是3D视图
if (view.Name != " {3D} " )
{
ts.RollBack();
return Result.Cancelled;
}
// 判断在此视图下是否可以隐藏
if (el.CanBeHidden(view) == true )
{
ElementSet elementSet = new ElementSet();
elementSet.Clear();
elementSet.Insert(el);
if (el.IsHidden(view) == true )
{
view.Unhide(elementSet);
}
else
{
view.Hide(elementSet);
}
}
ts.Commit();
return Result.Succeeded;
}
}
本文介绍了一个Revit API示例,通过该示例可以在3D视图中显示或隐藏特定元素。示例代码展示了如何创建事务并根据元素ID获取元素,然后检查当前视图是否为3D视图,并实现元素的隐藏或显示。

1000

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



