Automating COBie-UK 2012

My poor listing skills are letting me down again - any pointers on where I’m going wrong?

Edit1: Added .dyn & .xlsx
Edit2: This is COBie.Floor (Revit Levels).

try lacing on the elementgetparametervaluebyname set to longest (not sure here)
you’ll need more inputs on the list create node too, the same amount as the parameters.
if that doesn’t work you might want to go back to the spirograph so the lists for every column in excel will be made (even when empty)

Thanks @Marcel_Rijsmus,

Just finding it a bit hard to follow your instruction without any visuals, my apologies; I’m not at that level yet :sweat_smile:

This is about as elegant as I could write the graph, for today.

If I could write the Element.ID and Unique.ID to either call from the code block or map neatly into a single Data.ExportExcel node I would be a lot happier.

I looked at this post, but I couldn’t seem to find the solution I believe I need.

But, its getting the right results:

you’re getting the hang of it
:+1: looks OK to me
now fill in the missing data in excel
keep in mind that the data source (the elements) has its own order
to keep that order always use the same source gathering your data
in other words the transpose node should be used only once so id’s and values are on the same row in excel


ermmm why aren’t you lacing the element.GetParameterValueByName by cross product? (right click that node, go to lacing, choose cross product. … that will change the bottom right value to xxx instead of auto.) no need for using levels @L1 … and no need to transpose the list …

nice and tidy.

Literally just learned about this, still don’t fully understand, but am reading up on it :+1:

“Cross Product Lacing connects each item in one list to all items in the other list. Be careful when using this setting. Large datasets can cause performance issues and cause Dynamo to crash altogether. The number of results is the number of inputs squared”

I’ll keep an eye on this, as COBie.Component can easily get into the high thousands on larger jobs. Not sure if that is considered a “large dataset”.

Can we make it a bit cleaner? Can we refactor to remove these nodes?

For example, can we use a list.insert (ElementId,0) and list.insert (UniqueId, 1) to iterate over all the elements, inserting them at the beginning of the list.

Took a first run at it here, but still learning about list lacing, levels etc.

All out of order again:

notice the difference in list structures. top one is how it should be before writing to excel

I can see the logic there @Marcel_Rijsmus, can’t see how i should apply to my graph though :face_with_monocle:

Super simple approach in the end:

now that you got rid of the spirograph it became more complicated
maybe a transpose node before a list create node and one after it will do the trick

if you use the node element.parameters you will find the Id i think.
so that one can go to the code block
you could try to get the UniqueId by using Revit.ElementSelectorById(Id) statement so it can move to the codeblock that has all parameter names aswell
I dont have Revit here so i can’t test

1 Like

Much better though, thank you for all your help so far!

I would like to attempt this :+1:, I’ll have to study some python/design script first, so it might be a bit further down the line.

its super simple
in the code block just start typing you’'ll get a dropdown list with the correct spelling
its designscript btw.
DesignScriptDocumentation.pdf (705.5 KB)
designscript-final.pdf (1.5 MB)
DesignScriptGuide.pdf (3.7 MB)


Have tidied up and got rid of my Spirographs ':clap:

Any of the errors on the graph are reading from empty parameters in the model. I’m going to begin to run tests on it in a proper model set soon.





Facility & Levels:

:white_check_mark: COBie.Facility [Revit Project Information]
:white_check_mark: COBie.Floor [Revit Levels]

Rooms, Spaces & Zone:

:white_check_mark: COBie.Space [Revit Rooms (Architecture)]
:x: COBie.Space [Revit Spaces (MEP)]

:x: COBie.Zones [The only way I have handled this is from the Autodesk Cobie Extension for Revit - but I will do some research to see if this is possible from Dynamo - although, this may be a “just to see if I can” task]

Categories of Type & Component:

If we look at this from a category point of view (I believe it easier this way when reviewing all Types and Components in a project): If there is a better way please tell me!

:white_check_mark: COBie.Type [Casework Category]
:white_check_mark: COBie.Component [Casework Category]

:x:COBie.Type [Ceilings Category]
:x:COBie.Component [Ceilings Category]
Not normally included as per the NBIMs exclusions list (but we’ll run with it for now as its been requested of me from Clients etc in the past, and was protested as a Room Attribute :man_shrugging:).

:x:COBie.Type [Curtain Mullion Category]
:x:COBie.Component [Curtain Mullion Category]
:x:COBie.Type [Curtain Panel Category]
:x:COBie.Component [Curtain Panel Category]
:x:COBie.Type [Curtain System Category]
:x:COBie.Component [Curtain System Category]

etc etc… will update this post at a later date.

1 Like

Hello! Really interesting stuff here, I am trying to find out alternative workflow for populating parameter and was wondering whether you managed to do it through dynamo?



Hey pal, the short answer is ‘no’. Not unless you completely jettison the COBie.Space aspect of working in the BIT app and create your own parameters outside of the Autodesk ones supplied. But, I’ve only ever theorised this, and never actually done it - so take my comments with that in mind.

I did contact the BIT COBbie plugin builders for a way of integrating and automating parts of their plugin across multiple files, and with dynamo ect. , but they noted they had no plans to do this, or work this way (at the time).

Again, I’m not an authority on these these things and have only done some minor C# plugin work, so the answer to my questions may have been obvious from the get-go.

1 Like

Hm, yeah I see what you mean, I was thinking the same. I guess it depends on the project, sometimes it is not a huge deal to create zones from the tool directly, but anyway, it would be great to be able to control them from dynamo.

@Wayne_Patrick_Dalton Wow! this looks amazing.
Would love to see the entire graph! I’m thinking of undertaking a similar exercise at the moment, searching around for ideas to speed up the process. We’re using Uniclass 2015 as well.