List containing: Multiple flr outlines and multiple lvls - How to create Floors


I have a list of multiple Outlines and a list of multiple Levels…they work together (in example below…I have 11 outlines and 11 levels)…how can I go about creating multiple floors on multiple levels? Seems like if I use the “Floor.ByOutlineTypeAndLevel” I can create multiple floors, but with only 1 Level…the moment I use a list of levels, it goes haywire…goes through some kind of loop and It crashes. Is there a way I can repeat the floor by outline node for each group of outline/levels I have? Is there another way to go about this? Thank you in Advance!



Check Height Offset From Level Parameter after the floor creation?

i am not sure what is going wrong on your node , but i guess the floor is on the right level but wrong offset.


Hi…thank you for taking the time…I’m using List.Map to create a list of levels…instead of List.Create…when I use that for the Level in the “Floor.ByOutlineTypeAndLevel” it just goes thru some kind of loop…and I need to force revit shut. I’ll try to do something else with the list I have to see what’s up… In essence, I have lots of boundaries that need to be assigned to lots of levels. The levels list I have is a string…so I’m using a custom node to convert the string level name to a real level name (Get Level by Name)…then use List.Map to create the list of actual levels…if I use this list…it crashes. If you have other thoughts…let me know…I’ll let you know what I find by playing with a different list. Thanks, Luigi


from your image i only see a list of level and Floor types plug in to the floor creation node that’s all fine with the node, but Floor.ByOutlineTypeAndLevel node only work with the PolyCurve , that’s mean the only close loop without floor opening floor can be create by this node, maybe you can through the revit api with python to achieve that on dynamo.


<span id=“nsrTitle”>Document NewFloor Method</span>


So if I have the same procedure/nodes…except for a list that looks identical to the one I created with “List.Map”…only I make it with “List.Create” the 2nd list works, the 1st doesn’t…but both lists are single branch [0], [1], [2], etc. Why would a list created with “List.Map” be different than “List.Create” when the actual list reads the same under the watch node? I’m ok with not getting holes in floors…the issue is the level assignment


hmm, i guess,

you forget to close the empty socket on list.create node index 4 …


I’m not using that index in image…that was part of another function.

I can get List.create to work…it’s the List.Map that causes a crash. I can’t really use List.create for what I’m trying to do… Thanks for trying to help though


My guess is it is not crashing just taking forever to run thru all the permutations, your lacing is set to longest, for the combinations of the curves list and levels list. I think you would be better suited to do this with a code block to fine tune the combinations of the curves list and levels list to get the results you want.


Hi Donald…I’m in a testing file, and I have a list of 11 levels and 11 outlines…so shortest/longest shouldn’t matter…but I set it to shortest and it is still stuck. It’s strange…I have a list of 11 levels created from “List.Map” and 11 levels created from “List.Create” both lists with a prime index level…the list from “List.Map” goes thru infinite loop…and list from"List.Create" works. The reason I can’t use List.Create is because that is a manual process…where the list from List.Map is coordinated with the outlines.


hmmm just spitballing here but I would try both a code block and an item at index node to see if the value at [0] in both the manual list and the lists are in fact the same. Although your watch nodes clearly show the same thing at each index.


It was a good thought…but seem to be the same…


yeah very weird indeed, try dumping your mapped list into a list.create and then flatten it as it will likely take the form of [0][0]…[0][x] instead of [0]…[x]. My guess is a mapped list is not exactly the same as a list for whatever reason.


I did the list create and flatten…still stuck in some phantom loop… :s


OK…still doesn’t make sense…but at least I know what’s going on…and how I can continue on… For some reason (no explanation I have) when I use the List.Map in the floor creation…it wants re “constantly” replace the floors…so I get 11 floors…but they constantly get replaced with 11 new floors…that’s the loop (I used write to excel to see the element id constantly changing).

My current solution to to “Manually” Run, rather than automatic…so everything works and it doesn’t go into a crazy loop.

Very bizarre…sounds like a bug? Not sure how I should go about letting the Dynamo team know…in case it’s something they can fix.


Thank you both for your help!


I can’t analyze it deeper now I’ll check it later, but have you tried List.LaceShortest instead of List.Map ?


Hi Viktor, I’m not sure how I can use that node for what I’m doing.

I’m using the custom node “Get Level by Name” to create a list of all the room’s levels in order…I’ve been able to use the function in List.Map to do this…not sure how I can get the same result with the List.LaceShortest node.

I’m about to create a new post with just the specific problem…but the uploading images isn’t currently working…so I’ll try to post it later on. I’m hoping to get a larger group of people to look at it and point out the difference…

I really don’t know why the outcome is different…maybe because the “List.Map” in conjunction with the “Get Level by Name” is constantly looking for the status of the project? Where the “List.Create” is more finite? Regardless it is weird…Even though the list produced in both cases is the same list with the same Element Id and Unique Id. (verified that both are the same no matter how many times the script is run)

Stay tuned…as soon as my post is up, I’ll notify this thread.