# Select a linked room with Dynamo Player

**URL:** <https://forum.dynamobim.com/t/select-a-linked-room-with-dynamo-player/58983>\
**Category:** Packages\
**Tags:** revit, python, dynamo\
**Created:** [January 6, 2021, 2:29am UTC](https://forum.dynamobim.com/t/select-a-linked-room-with-dynamo-player/58983 "2021-01-06T02:29:10Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jj06jj](https://avatars.discourse-cdn.com/v4/letter/j/87869e/32.png) [@jj06jj](https://forum.dynamobim.com/u/jj06jj)\
**Post date:** [January 6, 2021, 2:29am UTC](https://forum.dynamobim.com/t/select-a-linked-room-with-dynamo-player/58983/1 "2021-01-06T02:29:10Z")

</div>

I would like to know how to select a linked room in the floor plan view.  
I also want to be able to handle it like Select Model Elements using Dynamo Player.  
Any solutions?

---

<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:** [January 7, 2021, 11:03am UTC](https://forum.dynamobim.com/t/select-a-linked-room-with-dynamo-player/58983/2 "2021-01-07T11:03:17Z")

</div>

Hello  
here an alternative with Revit API (Room’s Category must be visible in Visibility Graphics)

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/9/9/99cb500f351298530a84324e995da06a0dd76590.jpeg)

```
import sys
import clr
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

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

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

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

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

class CustomLinkRoomSelection(ISelectionFilter):
	def AllowElement(self, e):
		return True		

	def	AllowReference(self, refer, point):
		rvtlnkInstance = doc.GetElement(refer)
		docLink = rvtlnkInstance.GetLinkDocument()
		elemLink = docLink.GetElement(refer.LinkedElementId)
		if elemLink.Category.Id.IntegerValue == BuiltInCategory.OST_Rooms.value__ :
			return True	
		else:
			return False		

TaskDialog.Show('Selection', ' Select a link Room')
refElemRoom = uidoc.Selection.PickObject(ObjectType.LinkedElement, CustomLinkRoomSelection(), "Select a link Room")
rvtlnkInstance = doc.GetElement(refElemRoom)
docLink = rvtlnkInstance.GetLinkDocument()
elemLink = docLink.GetElement(refElemRoom.LinkedElementId)
OUT = elemLink
```
