Exemplo n.º 1
0
        bool IGH_PersistentElementComponent.NeedsToBeExpired(Autodesk.Revit.DB.Events.DocumentChangedEventArgs e)
        {
            var filter = new Autodesk.Revit.DB.ElementIsElementTypeFilter(true);
            var added  = e.GetAddedElementIds(filter);

            if (added.Count > 0)
            {
                return(true);
            }

            var modified = e.GetModifiedElementIds(filter);

            if (modified.Count > 0)
            {
                return(true);
            }

            var deleted = e.GetDeletedElementIds();

            if (deleted.Count > 0)
            {
                var document = e.GetDocument();
                var empty    = new ElementId[0];
                foreach (var param in Params.Output.OfType <Parameters.IGH_PersistentElementParam>())
                {
                    if (param.NeedsToBeExpired(document, empty, deleted, empty))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 2
0
        static void ClassifyElementIds(IGrouping <DB.Document, Types.IGH_Element> group, out HashSet <DB.ElementId> elements, out HashSet <DB.ElementId> types)
        {
            elements = new HashSet <DB.ElementId>();
            types    = new HashSet <DB.ElementId>();

            using (var typesFilter = new DB.ElementIsElementTypeFilter())
            {
                foreach (var item in group)
                {
                    var id = item.Id;
                    if (typesFilter.PassesFilter(group.Key, id))
                    {
                        types.Add(id);
                    }
                    else
                    {
                        elements.Add(id);
                    }
                }
            }
        }