Wow, that's some great additions!
The error handling is so simple and easy to understand... that was one of the things I planned on adding in as I go, so thank you for saving me from searching for a solution.
I read through it all, slowly, and you've given me some extra tools to use, thank you.
I like how you changed how I counted attributes. Before I had to set a new integer (c) to count with, rather than using the previous (i) because I did not know how to add the attributes, and it was giving me wrong output when I tried. I knew my method was not the best, so thank you for showing me the right way.
I have one question though. I am currently trying to find a solution. How can I take the array of object in a selection set... and reverse the order?
To explain: When it creates the table, it places the information starting with the block I placed LAST, and then descending in order to the block I placed FIRST... I wonder: is there a way to reverse the order it reads the attributes and dxf codes as it loops? I guess I'm wanting to loop in reverse order. I've tried a couple guesses but they've failed.