...AND don't forget that my script only lists what is the basic built-in info within any SUP model. IF you were to give components (or any lesser or higher geometry a parts) 'attributes' then these are list-able too... Theoretically every single bit of a model could have a wealth of extra information attached to it via attributes - on a one by one basis - that could then be extracted for later use, or used in the way it interacts withother entities or the user.
Examples of using attributes are the examples of Parametric shapes, or RickW's Windowizer - in which windowized faces 'know' they are windowized and generate an appropriate context-menu entry... OR my Xref Manager that has attributes inserted into Xref skp components (or even dwf/dwg inserts) and checks to see if they are still valid or have been changed since the last insertion. It also has a method (for PC only at present since Macs vary in the way the Ruby runs at startup - but that should be fixed), whereby an attribute is attached to the whole model which then tells Xref Manager on startup if it's to check if Xrefs need updating IF you have set it to do so previously in a simple dialog...
This approach could be the basis of of full BIM BUT it needs a lot of work...