For the community knowledgebank... I was looking to streamline a routine that is called intensively in my program so as to cut down the overall processing time. The method I devised would entail keeping some information about each polyline in the drawing and accessing it later in the program (multiple times). The obvious avenue was XData but I wondered if a Scripting Dictionary might be faster. As I was trying to squeeze as much performance as possible out of the routine I decided to write both methods and compare them. I used the CCRP High Performance Timer Objects as they are specifically optimized for benchmarking and don't require a form to live on. Before I share the results, let me point out one "gotcha". As part of the benchmarking I kept a count of how many times the read and write routines were invoked. I noticed that the Dictionary routines were invoked more times than the XData routines. This didn't make sense to me as they were supposed to be performing the same function (and the end results did appear to be the same) so I endeavoured to isolate the difference. I spent *hours* on this before finally working it out - one part of my main code involved using the Copy method to copy one polyline to another. With the XData method the information was transferred to the copy, but of course with the Dictionary method it was not. Subsequent logic that tested for the presence of the information caused the two paths to diverge. You should decide on a case-by-case basis whether you want copied entities to inherit the "information" from the original. [pre] Invocations XData Dictionary Write 182 41ms 15ms Read 680 6304ms 769ms [/pre] As well as being faster, the Dictionary approach was significantly easier to code. For XData the code had to determine the data type of the data to be stored and set up the XDataType structure accordingly. This was more complex when storing array information. For the Dictionary I simply used the Entity Handle concatenated with the "Property Name" (something made up by the programmer) as the dictionary key and stored the required value against it. Hope this is useful. Regards Wayne Ivory IT Analyst Programmer Wespine Industries Pty Ltd