Exemplo n.º 1
0
        public void CreateOverrideGraphicSettings_ValidArgs()
        {
            Revit.Filter.OverrideGraphicSettings overrides = Revit.Filter.OverrideGraphicSettings.ByProperties(null, null, null, null, null, null, null, null);

            Element   wall = ElementSelector.ByType <Autodesk.Revit.DB.FamilyInstance>(true).First();
            Parameter p    = new Parameter(wall.InternalElement.LookupParameter("Comments"));

            var filterRule = Revit.Filter.FilterRule.ByRuleType(Revit.Filter.FilterRule.RuleType.BeginsWith.ToString(), "my", p);

            var filter = Revit.Filter.ParameterFilterElement.ByRules("myFilter",
                                                                     new System.Collections.Generic.List <Category>()
            {
                Category.ByName("Walls")
            },
                                                                     new System.Collections.Generic.List <Revit.Filter.FilterRule>()
            {
                filterRule
            });

            Assert.NotNull(filter);
            Assert.AreEqual(filter.Name, "myFilter");


            Revit.Application.Document.Current.ActiveView.AddFilter(filter);
            Revit.Application.Document.Current.ActiveView.SetFilterOverrides(filter, overrides);

            var appliedOverrides = Revit.Application.Document.Current.ActiveView.FilterOverrides(filter);

            Assert.NotNull(appliedOverrides);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Set Category Overrides.
        /// </summary>
        /// <param name="category">Category</param>
        /// <param name="overrides">Graphics Overrides Settings.</param>
        /// <param name="hide">If True givent Category will be hidden.</param>
        /// <returns name="view">View</returns>
        public Revit.Elements.Views.View SetCategoryOverrides(Category category, Revit.Filter.OverrideGraphicSettings overrides, bool hide = false)
        {
            Autodesk.Revit.DB.ElementId catId = new ElementId(category.Id);
            if (!this.InternalView.IsCategoryOverridable(catId))
            {
                throw new ArgumentException(Properties.Resources.CategoryVisibilityOverrideError);
            }

            RevitServices.Transactions.TransactionManager.Instance.EnsureInTransaction(Application.Document.Current.InternalDocument);
            this.InternalView.SetCategoryOverrides(catId, overrides.InternalOverrideGraphicSettings);
            this.InternalView.SetCategoryHidden(catId, hide); // Revit 2017 specific method
            RevitServices.Transactions.TransactionManager.Instance.TransactionTaskDone();

            return(this);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Override Elements Graphics Settings in Active View.
        /// </summary>
        /// <param name="overrides">Override Graphics Settings.</param>
        /// <param name="hide">If True given Element will be hidden.</param>
        /// <returns></returns>
        public Element OverrideInView(Revit.Filter.OverrideGraphicSettings overrides, bool hide = false)
        {
            TransactionManager.Instance.EnsureInTransaction(DocumentManager.Instance.CurrentDBDocument);
            var view = DocumentManager.Instance.CurrentUIDocument.ActiveView;

            view.SetElementOverrides(InternalElementId, overrides.InternalOverrideGraphicSettings);
            if (hide)
            {
                view.HideElements(new List <ElementId>()
                {
                    InternalElementId
                });
            }
            else
            {
                view.UnhideElements(new List <ElementId>()
                {
                    InternalElementId
                });
            }
            TransactionManager.Instance.TransactionTaskDone();

            return(this);
        }
Exemplo n.º 4
0
        /// <summary>
        ///     Set Filter overrides. If View doesn't have specified Filter, it will be first added to the View and then its settings will be overriden.
        ///     This behavior will persist even if View has a View Template applied which normally would prevent user from adding Filters without first
        ///     disabling or modifying the View Template.
        /// </summary>
        /// <param name="parameterFilter">Parameter Filter</param>
        /// <param name="overrides">Graphic Overrides Settings</param>
        /// <param name="hide">If True given Filter will be hidden.</param>
        /// <returns name="view">View</returns>
        public Revit.Elements.Views.View SetFilterOverrides(Revit.Filter.ParameterFilterElement parameterFilter, Revit.Filter.OverrideGraphicSettings overrides, bool hide = false)
        {
            RevitServices.Transactions.TransactionManager.Instance.EnsureInTransaction(Application.Document.Current.InternalDocument);
            this.InternalView.SetFilterOverrides(parameterFilter.InternalElement.Id, overrides.InternalOverrideGraphicSettings);
            this.InternalView.SetFilterVisibility(parameterFilter.InternalElement.Id, hide);
            RevitServices.Transactions.TransactionManager.Instance.TransactionTaskDone();

            return(this);
        }
Exemplo n.º 5
0
        /// <summary>
        ///     Set Filter overrides. If View doesn't have specified Filter, it will be first added to the View and then its settings will be overriden.
        ///     This behavior will persist even if View has a View Template applied which normally would prevent user from adding Filters without first
        ///     disabling or modifying the View Template.
        /// </summary>
        /// <param name="parameterFilter">Parameter filter</param>
        /// <param name="overrides">overrides settings</param>
        /// <returns name="view">View</returns>
        public Element SetFilterOverrides(Revit.Filter.ParameterFilterElement parameterFilter, Revit.Filter.OverrideGraphicSettings overrides)
        {
            RevitServices.Transactions.TransactionManager.Instance.EnsureInTransaction(Application.Document.Current.InternalDocument);
            this.InternalView.SetFilterOverrides(parameterFilter.InternalElement.Id, overrides.InternalOverrideGraphicSettings);
            RevitServices.Transactions.TransactionManager.Instance.TransactionTaskDone();

            return(this.InternalView.ToDSType(true));
        }