/// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var readonlyViews = new List <ViewType>()
            {
                ViewType.ProjectBrowser,
                ViewType.SystemBrowser,
                ViewType.Undefined,
                ViewType.DrawingSheet,
                ViewType.Internal
            };
            IList <Element> views = new FilteredElementCollector(_doc)
                                    .OfClass(typeof(View))
                                    .WhereElementIsNotElementType()
                                    .Where(view => ConfirmRemoval(view as View))
                                    .ToList();

            if (views.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, views));
            }
            return(0);

            bool ConfirmRemoval(View view)
            {
                if (view.GetType() == typeof(View) ||
                    (view.GetType().IsSubclassOf(typeof(View)) &&
                     view.IsTemplate &&
                     !readonlyViews.Contains(view.ViewType)))
                {
                    return(true);
                }

                return(false);
            }
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var readonlyViews = new List <ViewType>()
            {
                ViewType.ProjectBrowser,
                ViewType.SystemBrowser,
                ViewType.Undefined,
                ViewType.DrawingSheet,
                ViewType.Internal
            };
            var openUiViews = _uiDoc.GetOpenUIViews();
            var openViews   = new List <ElementId>();

            foreach (var ov in openUiViews)
            {
                openViews.Add(ov.ViewId);
            }
            IList <Element> schedules = new FilteredElementCollector(_uiDoc.Document)
                                        .OfClass(typeof(ViewSchedule))
                                        .WhereElementIsNotElementType()
                                        .Where(sch => ConfirmRemoval(sch as View))
                                        .ToList();

            if (schedules.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _uiDoc.Document, schedules));
            }
            return(0);

            bool ConfirmRemoval(View view)
            {
                if (view.GetType() == typeof(ViewSchedule))
                {
                    if (readonlyViews.Contains(view.ViewType))
                    {
                        return(false);
                    }
                    if (view.IsTemplate)
                    {
                        return(false);
                    }
                    if (view.Name.Contains("<"))
                    {
                        return(false);
                    }
                    if (openViews.Contains(view.Id))
                    {
                        return(false);
                    }
                    if (((ViewSchedule)view).Definition.CategoryId.IntegerValue == (int)BuiltInCategory.OST_KeynoteTags)
                    {
                        return(false);
                    }
                    return(true);
                }

                return(false);
            }
        }
        /// <inheritdoc/>
        internal override int Execute(string args)
        {
            var worksetList = new FilteredWorksetCollector(_doc)
                              .OfKind(WorksetKind.UserWorkset)
                              .ToDictionary(wSet => wSet.Name, wSet => wSet.Id);
            ElementFilter elementWorksetFilter = new ElementWorksetFilter(worksetList[args]);
            var           elementsOnWorkset    = new FilteredElementCollector(_doc).WherePasses(elementWorksetFilter).ToElements();

            return(HelperMethods.RemoveElements(Name, _doc, elementsOnWorkset));
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var filters = new FilteredElementCollector(_doc)
                          .OfClass(typeof(FilterElement))
                          .WhereElementIsNotElementType()
                          .ToElements();

            if (filters.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, filters));
            }
            return(0);
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var             cl          = new FilteredElementCollector(_uiDoc);
            IList <Element> constraints = cl.OfCategory(BuiltInCategory.OST_Constraints)
                                          .WhereElementIsNotElementType()
                                          .Where(ConfirmRemoval)
                                          .ToList();

            if (constraints.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _uiDoc, constraints));
            }
            return(0);
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
#if !R2015 && !R2016 && !R2017
            var ids = new FilteredElementCollector(_doc)
                      .OfCategory(BuiltInCategory.OST_Coordination_Model)
                      .ToElementIds()
                      .ToList();

            if (ids.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, ids));
            }
#endif
            return(0);
        }
예제 #7
0
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var filepath = _doc.PathName;

            if (filepath != null)
            {
                IList <Element> xRefLinks    = new List <Element>();
                var             modelPath    = ModelPathUtils.ConvertUserVisiblePathToModelPath(filepath);
                var             wasException = false;
                try
                {
                    var transData          = TransmissionData.ReadTransmissionData(modelPath);
                    var externalReferences = transData.GetAllExternalFileReferenceIds();
                    foreach (var xRefId in externalReferences)
                    {
                        var externalReference = _doc.GetElement(xRefId);
                        if (ConfirmRemoval(externalReference))
                        {
                            xRefLinks.Add(externalReference);
                        }
                    }

                    HelperMethods.RemoveElements(Name, _doc, xRefLinks);
                }
                catch
                {
                    wasException = true;
                }

                try
                {
                    var linkTypesIds = new FilteredElementCollector(_doc).OfClass(typeof(RevitLinkType)).Select(l => l.Id).ToList();

                    HelperMethods.RemoveElements(Name, _doc, linkTypesIds);
                }
                catch
                {
                    wasException = true;
                }

                return(wasException ? 0 : 1);
            }

            // Модель должна быть сохранена для удаления внешних ссылок
            MessageBox.Show(Language.GetItem(RevitCommand.LangItem, "m1"), MessageBoxIcon.Alert);

            return(0);
        }
예제 #8
0
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var roomLines = new FilteredElementCollector(_doc)
                            .OfCategory(BuiltInCategory.OST_RoomSeparationLines)
                            .WhereElementIsNotElementType()
                            .ToElements();

            if (roomLines.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, roomLines));
            }
            else
            {
                return(0);
            }
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            IList <Element> lines = new FilteredElementCollector(_doc)
                                    .OfClass(typeof(LinePatternElement))
                                    .Where(line => ConfirmRemoval(line) == true)
                                    .ToList();

            if (lines.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, lines));
            }
            else
            {
                return(0);
            }
        }
예제 #10
0
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            IList <Element> mats = new FilteredElementCollector(_doc)
                                   .OfCategory(BuiltInCategory.OST_Materials)
                                   .Where(mat => ConfirmRemoval(mat) == true)
                                   .ToList();

            if (mats.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, mats));
            }
            else
            {
                return(0);
            }
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var scBoxes = new FilteredElementCollector(_doc)
                          .OfCategory(BuiltInCategory.OST_VolumeOfInterest)
                          .WhereElementIsNotElementType()
                          .ToElements();

            if (scBoxes.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, scBoxes));
            }
            else
            {
                return(0);
            }
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            IList <Element> elevMarkers = new FilteredElementCollector(_doc)
                                          .OfClass(typeof(ElevationMarker))
                                          .WhereElementIsNotElementType()
                                          .Where(elevMarker => ConfirmRemoval(elevMarker as ElevationMarker))
                                          .ToList();

            if (elevMarkers.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, elevMarkers));
            }
            return(0);

            bool ConfirmRemoval(ElevationMarker elevMarker)
            {
                return(elevMarker.CurrentViewCount == 0);
            }
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var patternElements = new FilteredElementCollector(_doc)
                                  .OfClass(typeof(FillPatternElement))
                                  .WhereElementIsNotElementType()
                                  .ToElements();
            var draftPatterns = new List <Element>();

            foreach (var patternElement in patternElements)
            {
                if (((FillPatternElement)patternElement).GetFillPattern().Target == FillPatternTarget.Drafting)
                {
                    draftPatterns.Add(patternElement);
                }
            }

            if (draftPatterns.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, draftPatterns));
            }
            return(0);
        }
        /// <inheritdoc/>
        internal override int Execute(string args = null)
        {
            var openUIViews = _uiDoc.GetOpenUIViews();

            foreach (var ov in openUIViews)
            {
                openViews.Add(ov.ViewId);
            }
            IList <Element> sheets = new FilteredElementCollector(_uiDoc.Document).OfCategory(BuiltInCategory.OST_Sheets)
                                     .WhereElementIsNotElementType()
                                     .Where(sheet => ConfirmRemoval(sheet) == true)
                                     .ToList();

            if (sheets.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _uiDoc.Document, sheets));
            }
            else
            {
                return(0);
            }
        }
        /// <inheritdoc/>
        internal override int Execute(string args)
        {
            IList <Element> groupTypes = new FilteredElementCollector(_doc)
                                         .OfClass(typeof(GroupType))
                                         .Where(gType => ConfirmRemoval(gType) == true)
                                         .ToList();
            var groups = new FilteredElementCollector(_doc)
                         .OfClass(typeof(Group))
                         .ToElements();

            // ungroup all groups
            if (groups.Count > 0)
            {
                using (var tr = new Transaction(_doc, "Разгруппировать все группы"))
                {
                    if (tr.Start() == TransactionStatus.Started)
                    {
                        foreach (var element in groups)
                        {
                            var grp = (Group)element;
                            grp.UngroupMembers();
                        }

                        if (tr.Commit() != TransactionStatus.Committed)
                        {
                            tr.RollBack();
                        }
                    }
                }
            }

            // delete group types
            if (groupTypes.Count > 0)
            {
                return(HelperMethods.RemoveElements(Name, _doc, groupTypes));
            }
            return(0);
        }