FloorByOutline to create multiple floors on various levels (use 2 List question)

Hi, so I have a list of outlines and a list of levels…I do have the main association (Top Level of List) from each list match

"Top level [0] of Floor.Outline matches top level [0] of Levels of each floor) (see image) below.

What do I need to do to the list(s) to have each floor created on the proper level?..I don’t want to have all floors to be assigned to only 1 level with drastic Offset from Level…

Thanks in Advance!List

So is it possible to get a list of levels to be associated with a list of outlines for the “Floor.ByOutlineTypeAndLevel”? If not…is the only way to group outlines by level and have multiple “Floor.ByOutlineTypeAndLevel” nodes? Seems odd.

Hi Luigi ,

I have a few suggestions that might help you:

-Your lacing should be set to longest.

-The Lists of levels and floors should be flattened

-The lists of levels and floor should be the same length( you might need to use a repeater on the levels if you have multiple floor outlines on the same floor)



Alternatively,if you don’t have the levels already, you could try to create new levels at each boundary elevation with the “Level.ByElevation” or “Level.ByElevationAndName” nodes.

1 Like

Dimitri…thank you for answering my main question…that you can create multiple floors with multiple levels…and for reaffirming that the answer lies with getting my list to work nicely together. For some reason I didn’t get an email notifying me that there was an answer to my post…thank you for contributing.

The issue I’m having is that the list I have for the outlines is composed by multiple lines, sometimes 4, sometimes 8, etc…so it seems like I need to find a way to flatten the list to the main amount of floor outlines…rather than floor outlines based on collection of lines…what would you suggest to flatten the list the way I have collected it? I can’t just flatten it, for I won’t have the right list…I need to somehow create a new list…any suggestion on how to take a list of floor outlines (collected by the lunchbox room collector) composed of multiple lines into a list of just outlines? And yes, sometimes there are outlines inside outlines to form 1 floor outline.

Just to be clear…I have the right x amount of outlines correspond to the right amount of levels…but the outlines are composed of multiple line segments…or at times multiple outlines.


Outline List Thank you in advance Dimitri!

Hello Luigi,

That shouldn’t be too difficult. I would try the following:

  • First flatten the output of the room element collector by one level with the List.Flatten node. That gives us the proper list structure for the next step.

  • Notice that there are two Floor. creation nodes. One expects PolyCurves as an input and the second expects lists of curves.

  • Get the correct node for your workflow.



Thank you Dimitri, but the outcome isn’t working on both the floor outline and assigning the proper level…maybe they’re related to each other…basically, sometimes the floor boundary is composed of multiple outlines…like with voids. So in my example I have 11 floors…those 11 floors are composed of seldom with only 1 outline…often with multiple outlines. So within my 11 floors I have 25 different outlines. The level list I have are 11 levels that are associated with the 11 floors (with 25 outlines overall)

When I had tried your suggestion…it created 25 floors…but all with level 4 and various offsets (the example I have are with 3 levels…the 4th level is created, but no floor associated with it…so all floors are being created on Level 4 with negative offsets.

I’ll send more specific snapshots later on today…
Thank you for spending the time to help.

Hi Dimitri, so if you look at my main room boundary list without flattening, you will see I have 11 main “rooms”, with each room containing multiple boundaries, and each boundary containing multiple lines (see image below).


LEVEL LIST WITH AND WITHOUT FLATTENING What I also have is the proper level for each of those room boundaries (see image to the side showing 2 lists of the same 11 boundaries)

errorWhen I connect these lists into the floor.byoutline, I get an error…what else can I do t the lists to get them compatible?

Combining Lists I found a way to get multiple lines to be 1 boundary (by using PolyCurve.ByJoinedCurves)…and this gives an error anyways when brought in the floor node…can’t have multiple “Wires” for outline…anyways… this alone wouldn’t help me because sometimes a floor outline is composed of multiple boundaries (like a hole in a floor) so I still have multiple polycurves per floor…so the list doesn’t play well with the level list… I “think” I need to get a multitude of outlines to be 1 floor outline…which I can do as a surface, or mesh…but that can’t be used as input into a floor outline.

Any other suggestion?



As you’ve discovered, the floor creation node does not work with multiple boundaries. It seems there’s a limitation when creating new floors through the Revit API. Luckily we discussed something earlier in the following thread:


Have a look and try out the custom node HostedFloorOpening.ByCurves. Good luck!

1 Like