# How to get linked elements?

**URL:** <https://forum.dynamobim.com/t/how-to-get-linked-elements/85720>\
**Category:** Developers\
**Created:** [February 3, 2023, 1:19pm UTC](https://forum.dynamobim.com/t/how-to-get-linked-elements/85720 "2023-02-03T13:19:45Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Draxl\_Andreas](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/draxl_andreas/32/145744_2.png) [@Draxl\_Andreas](https://forum.dynamobim.com/u/Draxl_Andreas)\
**Post date:** [February 3, 2023, 1:19pm UTC](https://forum.dynamobim.com/t/how-to-get-linked-elements/85720/1 "2023-02-03T13:19:45Z")

</div>

Hello,

i tried to find some stuff, but it never matches with my collecter. so how do i get Elements from linked files f.e. walls ?

```auto
import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *

clr.AddReference('System')
from System.Collections.Generic import List

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
linkedDoc = FilteredElementCollector(doc).OfClass(RevitLinkInstance)

elelist = UnwrapElement(linkedDoc)

outlist=[]

for ele in elelist:
		type_id = ele.GetTypeId()
		ele_type = doc.GetElement(type_id)
		ele_fam = ele_type.Family
		ele_name = ele_fam.Name
		outlist.append(ele_name)

OUT = outlist

```

![grafik](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/4/e/4ee1c2cf70dbb27f5f334184bba3bca067b29dfe.png)

KR

Andreas

---

<div class="post-metadata">

**Author:** ![leonard.moelders](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/leonard.moelders/32/108216_2.png) [@leonard.moelders](https://forum.dynamobim.com/u/leonard.moelders)\
**Post date:** [February 3, 2023, 1:37pm UTC](https://forum.dynamobim.com/t/how-to-get-linked-elements/85720/2 "2023-02-03T13:37:07Z")

</div>

> [@Draxl\_Andreas](#):
>
> `linkedDoc = FilteredElementCollector(doc).OfClass(RevitLinkInstance)`

Have you tried:

```auto
linkedDoc = FilteredElementCollector(doc).OfClass(RevitLinkInstance).ToElements()

```

---

<div class="post-metadata">

**Author:** ![Draxl\_Andreas](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/draxl_andreas/32/145744_2.png) [@Draxl\_Andreas](https://forum.dynamobim.com/u/Draxl_Andreas)\
**Post date:** [February 3, 2023, 1:38pm UTC](https://forum.dynamobim.com/t/how-to-get-linked-elements/85720/3 "2023-02-03T13:38:15Z")

</div>

> [@leonard.moelders](#):
>
> `linkedDoc = FilteredElementCollector(doc).OfClass(RevitLinkInstance).ToElements()`

@leonard.moelders ,

does not work  
 ![grafik](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/a/0/a007912b60701aee4a1d2d4e8e737568fbf1a12a.png)

```auto
import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *

clr.AddReference('System')
from System.Collections.Generic import List

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
linkedDoc = FilteredElementCollector(doc).OfClass(RevitLinkInstance).ToElements()

elelist = UnwrapElement(linkedDoc)

outlist=[]

for ele in elelist:
		type_id = ele.GetTypeId()
		ele_type = doc.GetElement(type_id)
		ele_fam = ele_type.Family
		ele_name = ele_fam.Name
		outlist.append(ele_name)

OUT = outlist

```

---

<div class="post-metadata">

**Author:** ![c.poupin](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/c.poupin/32/89152_2.png) [@c.poupin](https://forum.dynamobim.com/u/c.poupin)\
**Post date:** [February 3, 2023, 1:50pm UTC](https://forum.dynamobim.com/t/how-to-get-linked-elements/85720/4 "2023-02-03T13:50:37Z")

</div>

Hi,  
an example

```auto

import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *

clr.AddReference('System')
from System.Collections.Generic import List

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument

lst_rvt_link_inst = FilteredElementCollector(doc).OfClass(RevitLinkInstance)

outlist=[]
for inst in lst_rvt_link_inst:
	if RevitLinkType.IsLoaded(doc, inst.GetTypeId()):
		lnkdoc = inst.GetLinkDocument()
		elelist = FilteredElementCollector(lnkdoc).OfClass(FamilyInstance)
		for ele in elelist:
			type_id = ele.GetTypeId()
			ele_type = lnkdoc.GetElement(type_id)
			ele_fam = ele_type.Family
			ele_name = ele_fam.Name
			outlist.append(ele_name)

OUT = outlist

```

---

<div class="post-metadata">

**Author:** ![leonard.moelders](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/leonard.moelders/32/108216_2.png) [@leonard.moelders](https://forum.dynamobim.com/u/leonard.moelders)\
**Post date:** [February 3, 2023, 2:05pm UTC](https://forum.dynamobim.com/t/how-to-get-linked-elements/85720/5 "2023-02-03T14:05:39Z")

</div>

@Draxl_Andreas I know it got solved, but what would happen if you use `.FamilyName` as the property instead of `.Family` as it doesn’t exist for `RevitLinkType` in your old code:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/3/5/3523ac9e8099473179028c17454d4306d3e712b8.png)

---

<div class="post-metadata">

**Author:** ![Draxl\_Andreas](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/draxl_andreas/32/145744_2.png) [@Draxl\_Andreas](https://forum.dynamobim.com/u/Draxl_Andreas)\
**Post date:** [February 3, 2023, 2:06pm UTC](https://forum.dynamobim.com/t/how-to-get-linked-elements/85720/6 "2023-02-03T14:06:30Z")

</div>

@leonard.moelders ,

i modived it a little to my disieres…

```auto
import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *

clr.AddReference('System')
from System.Collections.Generic import List

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument

lst_rvt_link_inst = FilteredElementCollector(doc).OfClass(RevitLinkInstance)

walls=[]
outlist = []

for inst in lst_rvt_link_inst:
	if RevitLinkType.IsLoaded(doc, inst.GetTypeId()):
		lnkdoc = inst.GetLinkDocument()
		elelist = FilteredElementCollector(lnkdoc).OfCategory(BuiltInCategory.OST_Walls)
		for e in elelist:
			outlist.append(e)

OUT = outlist

```

---

<div class="post-metadata">

**Author:** ![leonard.moelders](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/leonard.moelders/32/108216_2.png) [@leonard.moelders](https://forum.dynamobim.com/u/leonard.moelders)\
**Post date:** [February 3, 2023, 2:22pm UTC](https://forum.dynamobim.com/t/how-to-get-linked-elements/85720/7 "2023-02-03T14:22:48Z")

</div>

@Draxl_Andreas I meant more like this:

```auto
import clr

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *

clr.AddReference('System')
from System.Collections.Generic import List

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
linkedDoc = FilteredElementCollector(doc).OfClass(RevitLinkInstance)

elelist = UnwrapElement(linkedDoc)

outlist=[]

for ele in elelist:
		type_id = ele.GetTypeId()
		ele_type = doc.GetElement(type_id)
		ele_famname = ele_type.FamilyName
		outlist.append(ele_famname)

OUT = outlist

```
