# Script Returning Null

**URL:** <https://forum.dynamobim.com/t/script-returning-null/77100>\
**Category:** DesignScript\
**Tags:** revit, python, dynamo\
**Created:** [May 30, 2022, 5:35pm UTC](https://forum.dynamobim.com/t/script-returning-null/77100 "2022-05-30T17:35:13Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![diptajit](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/diptajit/32/130445_2.png) [@diptajit](https://forum.dynamobim.com/u/diptajit)\
**Post date:** [May 30, 2022, 5:35pm UTC](https://forum.dynamobim.com/t/script-returning-null/77100/1 "2022-05-30T17:35:13Z")

</div>

```auto

"import clr
clr.AddReference('RevitAPI')
clr.AddReference('System')
clr.AddReference('RevitNodes')
clr.AddReference('RevitServices')
import Revit
import RevitServices
from Autodesk.Revit.DB import *
from System.Collections.Generic import List
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
doc = DocumentManager.Instance.CurrentDBDocument

#Functions for list handling
def ProcessList(_func, _list):
   return map( lambda x: ProcessList(_func, x) if type(x)==list else _func(x), _list )

#Preparing input from dynamo to revit

def ToRevit(item):
	return item.ToRevitType(True)

if IN[1]==True:
	if isinstance(IN[0], list):
		bblist = ProcessList(ToRevit, IN[0])
	else:
		bblist = [ToRevit(IN[0])]

else: OUT = 'Change Toggle to True'

def collectElementsInBB(bb):
	outline = Outline(bb.Min, bb.Max)
	filter = BoundingBoxIntersectsFilter(outline)
	collector = FilteredElementCollector(doc, doc.ActiveView.Id).WherePasses(filter)
	return [e.ToDSType(True) for e in collector]

	OUT = ProcessList(collectElementsInBB, bblist)";

```

Can someone point me out what is wrong with the script. I am just trying to get a conditional out-put from the script. It will wait until the Toggle value turns true.  
[/quote]

---

<div class="post-metadata">

**Author:** ![SeanP](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/seanp/32/42560_2.png) [@SeanP](https://forum.dynamobim.com/u/SeanP)\
**Post date:** [May 30, 2022, 5:41pm UTC](https://forum.dynamobim.com/t/script-returning-null/77100/2 "2022-05-30T17:41:26Z")

</div>

> [@diptajit](#):
>
> `OUT = ProcessList(collectElementsInBB`

Unindent this line, the OUT should not be inside the DEF.

---

<div class="post-metadata">

**Author:** ![diptajit](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/diptajit/32/130445_2.png) [@diptajit](https://forum.dynamobim.com/u/diptajit)\
**Post date:** [May 31, 2022, 5:51am UTC](https://forum.dynamobim.com/t/script-returning-null/77100/3 "2022-05-31T05:51:21Z")

</div>

```auto
import clr
clr.AddReference('RevitAPI')
clr.AddReference('System')
clr.AddReference('RevitNodes')
clr.AddReference('RevitServices')
import Revit
import RevitServices
from Autodesk.Revit.DB import *
from System.Collections.Generic import List
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
doc = DocumentManager.Instance.CurrentDBDocument

#Functions for list handling
def ProcessList(_func, _list):
   return map( lambda x: ProcessList(_func, x) if type(x)==list else _func(x), _list )

#Preparing input from dynamo to revit

def ToRevit(item):
	return item.ToRevitType(True)

def collectElementsInBB(bb):
	outline = Outline(bb.Min, bb.Max)
	filter = BoundingBoxIntersectsFilter(outline)
	collector = FilteredElementCollector(doc, doc.ActiveView.Id).WherePasses(filter)
	return [e.ToDSType(True) for e in collector]

if IN[1]==True:
	if isinstance(IN[0], list):
		bblist = ProcessList(ToRevit, IN[0])
	else:
		bblist = [ToRevit(IN[0])]

	OUT = ProcessList(collectElementsInBB, bblist)

else: OUT = "Change Toggle to True";

```

Yes you are absolutely right about that. That was a stupid mistake. I have edited the script but still it’s returning an empty list.

 ![Script](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/3/3/333c289a03507d7e18d1035c3f952cc7bab6b0fe.png)  
I am still missing out something.

---

<div class="post-metadata">

**Author:** ![jw.vanasselt](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jw.vanasselt/32/133533_2.png) [@jw.vanasselt](https://forum.dynamobim.com/u/jw.vanasselt)\
**Post date:** [May 31, 2022, 8:53am UTC](https://forum.dynamobim.com/t/script-returning-null/77100/4 "2022-05-31T08:53:40Z")

</div>

> [@diptajit](#):
>
> I have edited the script but still it’s returning an empty list.

I don’t know what you exactly want but your script works fine by me:

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/8/f/8f0c17ae58004189271e97ff7d78bcb0c6d3785d.png)
