Revit二开–红瓦族隐藏显示的方法

2019-04-23  本文已影响0人  using__
[Transaction(TransactionMode.Manual)]
    [Regeneration(RegenerationOption.Manual)]
    [Journaling(JournalingMode.UsingCommandData)]

    class Cmd_HideElementInFamilyDoc : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            UIApplication uiapp = commandData.Application;
            UIDocument uidoc = commandData.Application.ActiveUIDocument;
            Document doc = uidoc.Document;
            Selection sel = uidoc.Selection;
 
            var views = doc.ViewCollector();

            FilteredElementCollector collector = new FilteredElementCollector(doc);

            var elelist = collector.WhereElementIsNotElementType();
           
            Transaction ts = new Transaction(doc, "***********");
            try
            {
                ts.Start();
                foreach (var view in views)
                {
                    if(view is ViewPlan ||view is ViewSection || view is View3D)
                    //ele.IsHidden(acview);
                    //acview.HideElements(new List<ElementId>(){ele.Id});
                    foreach (var item in elelist)
                    {
                        if (item.IsHidden(view))
                        {
                            view.UnhideElements(new List<ElementId>() { item.Id });
                        }
                    }
                }
               

                ts.Commit();
                
            }
            catch (Exception)
            {
                if (ts.GetStatus() == TransactionStatus.Started)
                {
                    ts.RollBack();
                }
                //throw;
            }
            return Result.Succeeded;
        }
    }

作者:binbinstrong
来源:CSDN
原文:https://blog.csdn.net/binbinstrong/article/details/89382708
版权声明:本文为博主原创文章,转载请附上博文链接!

上一篇下一篇

猜你喜欢

热点阅读