# Lunchbox 2016.11.10 - Lunchbox Room Element Collector Issue

**URL:** <https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374>\
**Category:** Uncategorized\
**Created:** [November 9, 2016, 8:05am UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374 "2016-11-09T08:05:35Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Emmanuel\_Manago](https://avatars.discourse-cdn.com/v4/letter/e/b4bc9f/32.png) [@Emmanuel\_Manago](https://forum.dynamobim.com/u/Emmanuel_Manago)\
**Post date:** [November 9, 2016, 8:05am UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/1 "2016-11-09T08:05:35Z")

</div>

The Lunchbox Room Element Collector is not working on the Revit 2017.1 dynamo 1.20 but works on Revit 2016? Has anyone encounter this?

Regards,  
Emmmanuel

---

<div class="post-metadata">

**Author:** ![Kulkul](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/kulkul/32/49801_2.png) [@Kulkul](https://forum.dynamobim.com/u/Kulkul)\
**Post date:** [November 9, 2016, 12:23pm UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/2 "2016-11-09T12:23:36Z")

</div>

Hi @Emmanuel_Manago

Alternatively you can try @john_pierson “Rhythms” Package node “Room Element Collector” node.

 ![](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/8/0/80bb1840563ae05705c181fdefa8aaad824def32.png)

---

<div class="post-metadata">

**Author:** ![Emmanuel\_Manago](https://avatars.discourse-cdn.com/v4/letter/e/b4bc9f/32.png) [@Emmanuel\_Manago](https://forum.dynamobim.com/u/Emmanuel_Manago)\
**Post date:** [November 9, 2016, 12:43pm UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/3 "2016-11-09T12:43:47Z")

</div>

Thanks Kulkul! I hope the package get updated soon. It is really a great package. I will use the “Rhythms” package for now (also a great package).

---

<div class="post-metadata">

**Author:** ![john\_pierson](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/john_pierson/32/191977_2.png) [@john\_pierson](https://forum.dynamobim.com/u/john_pierson)\
**Post date:** [November 9, 2016, 4:42pm UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/4 "2016-11-09T16:42:33Z")

</div>

If you want to use the Lunchbox node, it just requires a change of one piece of code in line 82.

In the Revit 2017 API, the method changed from “BoundarySegment.Curve” to “BoundarySegment.GetCurve”.

I modified the script to figure out if the Revit version is 2016 or 2017 and use the correct method. Just past this in the python script.

```
#Copyright(c) 2015, Nathan Miller
# The Proving Ground, http://theprovingground.org

import clr

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

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

# Import ToDSType(bool) extension method
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

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

#The input to this node will be stored in the IN[0] variable.

doc = DocumentManager.Instance.CurrentDBDocument
app = DocumentManager.Instance.CurrentUIApplication.Application

appversion = app.VersionNumber
toggle = IN[0]

output = []
rooms = []
names = []
numbers = []
areas = []
levels = []
boundaries = []
locations = []
elementids = []
uniqueids = []

if toggle == True:

	collector = FilteredElementCollector(doc)
	collector.OfCategory(BuiltInCategory.OST_Rooms)
 
	famtypeitr = collector.GetElementIdIterator()
	famtypeitr.Reset()

	for item in famtypeitr:
		elmID = item
		eleminst = doc.GetElement(elmID)
    
		#print eleminst
		if eleminst.Area > 0:
			room = eleminst
			roomname = ''
			for p in room.Parameters:
				if p.Definition.Name == 'Name':		
					roomname = p.AsString()
				if p.Definition.Name == 'Level':				
					level = p.AsValueString()
					
			number = eleminst.Number
			area = eleminst.Area
			
			location = eleminst.Location.Point.ToPoint()
			elementid = eleminst.Id.ToString()
			uniqueid = eleminst.UniqueId
    	
			boptions = Autodesk.Revit.DB.SpatialElementBoundaryOptions()
			boundsegs = room.GetBoundarySegments(boptions)
			boundcurves = []
			if app.VersionNumber == 2016:
				for bound in boundsegs:
					crvs = []
					for seg in bound:
						crv = seg.Curve()
						crvs.append(Revit.GeometryConversion.RevitToProtoCurve.ToProtoType( crv, True ))
					boundcurves.append(crvs)
			else:
				for bound in boundsegs:
					crvs = []
					for seg in bound:
						crv = seg.GetCurve()
						crvs.append(Revit.GeometryConversion.RevitToProtoCurve.ToProtoType( crv, True ))
					boundcurves.append(crvs)			
    	
			rooms.append(room)
			names.append(roomname)
			numbers.append(number)
			areas.append(area)
			levels.append(level)
			boundaries.append(boundcurves)
			locations.append(location)
			elementids.append(elementid)
			uniqueids.append(uniqueid)
        
	output.append(rooms)
	output.append(names)
	output.append(numbers)
	output.append(areas)
	output.append(levels)
	output.append(locations)
	output.append(boundaries)	
	output.append(elementids)
	output.append(uniqueids)
        
#Assign your output to the OUT variable
OUT = output
```

---

<div class="post-metadata">

**Author:** ![Emmanuel\_Manago](https://avatars.discourse-cdn.com/v4/letter/e/b4bc9f/32.png) [@Emmanuel\_Manago](https://forum.dynamobim.com/u/Emmanuel_Manago)\
**Post date:** [November 10, 2016, 9:11am UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/5 "2016-11-10T09:11:02Z")

</div>

Wow, thanks a lot John. It works now!  
“The more I learn, the more I realize how much I don’t know.” - Albert Einstein

Regards,  
Emmanuel

---

<div class="post-metadata">

**Author:** ![MOJTABA256](https://avatars.discourse-cdn.com/v4/letter/m/c77e96/32.png) [@MOJTABA256](https://forum.dynamobim.com/u/MOJTABA256)\
**Post date:** [November 23, 2016, 11:21pm UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/6 "2016-11-23T23:21:39Z")

</div>

Hi Guys

I have a question. I want to know whether can we add the parameters that we defined for the rooms in Revit into “LunchBox Room Element Collector” node in Dynamo. I defined a shared parameter namely " Assignable" which is a yes/no parameter and assigned this parameter to each room in my Revit model. Now I want to put it in my “LunchBox Room Element Collector” node. In fact this node as you know has some predefined parameters such as Element, Name, Number, Area, Level Name, Location, Boundaries, Element ID, and Unique ID. and I cannot add any more parameters to these outputs if I want. Do you know how I can do that? Than you so much in advance.

---

<div class="post-metadata">

**Author:** ![john\_pierson](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/john_pierson/32/191977_2.png) [@john\_pierson](https://forum.dynamobim.com/u/john_pierson)\
**Post date:** [November 24, 2016, 12:29am UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/7 "2016-11-24T00:29:07Z")

</div>

Quickest way = use a get parameter value by name node on the elements

---

<div class="post-metadata">

**Author:** ![brian.k.smith](https://avatars.discourse-cdn.com/v4/letter/b/bcef8e/32.png) [@brian.k.smith](https://forum.dynamobim.com/u/brian.k.smith)\
**Post date:** [February 15, 2017, 11:54pm UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/8 "2017-02-15T23:54:47Z")

</div>

Replacing the script did the trick for me! Many thanks! 🕶

---

<div class="post-metadata">

**Author:** ![ShawnZhang55](https://avatars.discourse-cdn.com/v4/letter/s/aca169/32.png) [@ShawnZhang55](https://forum.dynamobim.com/u/ShawnZhang55)\
**Post date:** [December 19, 2019, 3:46am UTC](https://forum.dynamobim.com/t/lunchbox-2016-11-10-lunchbox-room-element-collector-issue/7374/9 "2019-12-19T03:46:36Z")

</div>

When I downloaded the package, I cannot fond anyhthing
