Mapping Data from Node Results into REVIT Text Parameters

That’s understandable. What I meant was that you shouldn’t be dealing with nulls and empties at this point in the graph. If the data generated from the external software gives nulls that’s fine, but that data needs to be cleaned up before you start comparing it with the Revit data. You want your data to be exactly as you need it before you start manipulating it. As best as you can anyway.

Understood. Is it logical to place the list.clean right after the original node from external software? This way all data following will not have any nulls or empties?

Yes, that’s a great place to start. Again, you want to be careful and confirm that List.Clean isn’t removing anything that changes the order of your lists and leaves you with mismatched information, but it shouldn’t if your data is good.

Getting rid of some empty lists is probably good, but the nulls likely won’t be an issue (besides maybe some unnecessary warnings) since they wouldn’t return any matches anyway. So it may not even be necessary to clean the data at all in this case.

after reviewing your comments here, i see you asked why i was using a list.create node, but my question is: Don’t i have to have one in order to then follow it with a list.transpose node to move forward?

A list is just a data structure. List.Create wraps the input data you feed it into a new list structure. Your data is already a list, so List.Create just adds another list layer and changes the list levels of your data. That’s not what we want.

You can see here:


A single item has no list structure (for the sake of this argument). When wrapped in a list, you can see it has two list levels (@L2 = List, @L1 = Item).
A simple list starts with the same @L2 structure (@L2 = List, @L1 = Item) and when wrapped in another list gets a third level (@L3 = List, @L2 = Sublist, @L1 = Item).
Different list structures will react to nodes in different ways. List structure is very important.