Hi everyone,
How can I copy the settings (visibility, halftone, underlay, display settings) of a linked file from one view to another? For example, I have two Revit models, A and B, and both of them have the same linked file, Link_Test (in a real project there could be many linked files). In model A, I’ve already created a view template and configured everything. I then transferred the view template from model A to model B, but for some reason all the linked files in model B are always turned on.
How can I preserve the link settings exactly as they are in model A?
I’ve read through Can i copy RVT Link Display setting by Revit API? - Revit - Dynamo, but maybe I didn’t use the SetLinkOverrides method correctly, so I still haven’t been able to make it work.
1 Like
I asked this years ago and answer was that this is not available in the Revit API, let me know if it is not the case I am interested too
1 Like
Yes, I will. It’s weird that the view template can’t handle that 
Which Revit release are you in? 2024 started to introduce tools for working with link visibility, but there are still a lot of gaps.
The class in question: Revit API 2026 Documentation
1 Like
I’m in Revit 2025. Is it the SetLinkOverrides method or something else? Because I tried it, but it didn’t work. I’m not sure what went wrong
I’m not sure either as I haven’t seen what you tried. 
Hi @jacob.small , @rrvivancosWTL . I found a solution about setting the Visibility in this post:
Solved: hide/unhide RevitLinkInstance in Visibility settings - Autodesk Community
But still have to find solution for Halftone, Underlay, Display Settings as well. Do you have any ideas?
1 Like
I tried GetLinkOverrides method but it returns None
I think these are known gaps in the Revit API.
Hi @jacob.small , @rrvivancosWTL
Here is the solution for Visibility and Display Settings. I believe the Halftone and Underlay are the limitations of the Revit API for now. I put the code here for anyone who needs it.
def transfer_revit_link_visibility(source_doc, source_view, dest_doc, dest_view):
# Collect all RevitLinkTypes from source document
source_link_types = FilteredElementCollector(source_doc).OfClass(RevitLinkType).ToElements()
# Store visibility status by link type name
visibility_dict = {}
for link_type in source_link_types:
try:
link_name = link_type.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME).AsString()
is_hidden = link_type.IsHidden(source_view)
visibility_dict[link_name] = is_hidden
except:
continue
# Determine the target view (template or actual view)
target_view = dest_doc.GetElement(dest_view.ViewTemplateId) \
if dest_view.ViewTemplateId != ElementId.InvalidElementId else dest_view
# Collect RevitLinkTypes from destination document
dest_link_types = FilteredElementCollector(dest_doc) \
.OfCategory(BuiltInCategory.OST_RvtLinks) \
.OfClass(RevitLinkType) \
.ToElements()
# Prepare lists for hide/unhide actions
to_hide = List[ElementId]()
to_unhide = List[ElementId]()
for link_type in dest_link_types:
link_name = link_type.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME).AsString()
if link_name in visibility_dict:
if visibility_dict[link_name]:
to_hide.Add(link_type.Id)
else:
to_unhide.Add(link_type.Id)
# Apply visibility settings to the target view
if to_hide:
target_view.HideElements(to_hide)
if to_unhide:
target_view.UnhideElements(to_unhide)
def transfer_revit_link_display_settings(source_doc, source_view, dest_doc, dest_view):
# Determine the target view (template or actual view)
target_view = dest_doc.GetElement(dest_view.ViewTemplateId) \
if dest_view.ViewTemplateId != ElementId.InvalidElementId else dest_view
# Collect RevitLinkTypes from source document
source_link_types = FilteredElementCollector(source_doc).OfClass(RevitLinkType).ToElements()
# Store OverrideGraphicSettings by link type name
graphic_override_map = {}
for link_type in source_link_types:
link_name = link_type.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME).AsString()
ogs = source_view.GetLinkOverrides(link_type.Id)
graphic_override_map[link_name] = ogs
# Collect RevitLinkTypes from destination document
dest_link_types = FilteredElementCollector(dest_doc).OfClass(RevitLinkType).ToElements()
# Apply overrides to matching links in destination view
for link_type in dest_link_types:
link_name = link_type.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME).AsString()
for src_name, src_ogs in graphic_override_map.items():
if src_name in link_name:
target_view.SetLinkOverrides(link_type.Id, src_ogs)
break
3 Likes
Could you adjust the visibility for walls? I was trying to do something similar to this, where I go to each link on my template and, besides turning scope boxes off, also change the walls to red (overriding whatever color they have). My first problem seems that I’m working on Revit 2023, but I can definitely move at least to 2024 for this. Any ideas are gladly apreciate