SetElementOverrides in every view

SetElementOverrides in every view

zrodgersTSSSU
Advocate Advocate
1,100 Views
2 Replies
Message 1 of 3

SetElementOverrides in every view

zrodgersTSSSU
Advocate
Advocate

Hey EAveryone, I want to make overrides to my direct shape in every view in the project but im getting this error. Any ideas?

zrodgersTSSSU_0-1626985494809.png

OverrideGraphicSettings ogs = new OverrideGraphicSettings();
                                ogs.SetProjectionLineColor(color);
                                ogs.SetSurfaceForegroundPatternColor(color);
                                ogs.SetCutFillColor(color);
                                ogs.SetSurfaceTransparency(40);

                                FilteredElementCollector viewCollector = new FilteredElementCollector(doc);
                                viewCollector.OfClass(typeof(Autodesk.Revit.DB.View));

                                foreach (Element viewElement in viewCollector)
                                {
                                    Autodesk.Revit.DB.View view = (Autodesk.Revit.DB.View)viewElement;
                                    view.SetElementOverrides(ds.Id, ogs);
                                }

 

0 Likes
Accepted solutions (1)
1,101 Views
2 Replies
Replies (2)
Message 2 of 3

RPTHOMAS108
Mentor
Mentor
Accepted solution

Your list of views is too broad to start with since Views could also include:

ViewType.Schedule, ViewType.ProjectBrowser, ViewType.SystemBrowser and a few other types that this base class method isn't going to work well with.

 

For your specific issue you should check: View.AreGraphicsOverridesAllowed.

0 Likes
Message 3 of 3

zrodgersTSSSU
Advocate
Advocate

Ahh Duh... Thank you for the response! that fixed it!

Final Code:

OverrideGraphicSettings ogs = new OverrideGraphicSettings();
                                ogs.SetProjectionLineColor(color);
                                ogs.SetSurfaceForegroundPatternColor(color);
                                ogs.SetCutFillColor(color);
                                ogs.SetSurfaceTransparency(40);

                                //uidoc.ActiveView.SetElementOverrides(ds.Id, ogs);

                                FilteredElementCollector viewCollector = new FilteredElementCollector(doc);
                                viewCollector.OfClass(typeof(Autodesk.Revit.DB.View));

                                foreach (Element viewElement in viewCollector)
                                {
                                    Autodesk.Revit.DB.View view = (Autodesk.Revit.DB.View)viewElement;
                                    if(view.AreGraphicsOverridesAllowed() == true)
                                    {
                                        view.SetElementOverrides(ds.Id, ogs);
                                    }
                                    
                                }
0 Likes