I've created a MOC using Stud.io, bought the pieces and built it. Since it was unstable I've changed the model in Stud.io, and now I would like to buy just the pieces I've added. I could compare both version of the model manually to get the differences, but that would be somewhat cumbersome and error prone, so I'm wondering if there is some tool to compare two models, or two parts lists?

I'm thinking about something that could for example take two BrickLink XML files, and produces a new XML containing only the parts (and amount) not present in the older version.

  • You could try and import both XML files into Excel, then sort and compare. Probably the fastest way to do this.
    – Phil B.
    Mar 27, 2018 at 18:09
  • Thanks, but I would consider that finding the differences manually, too.
    – Christian
    Mar 28, 2018 at 10:50

4 Answers 4


Since there doesn't seem to be a tool, I've written my own one. In case anyone else want to use it, check it out here: https://github.com/ChrZae/bricklink-xml-diff

Take care tho, it can only really process the XML generated by Stud.io, the XML-format itself has more fields which I didn't care about (also no guarantees it will always work correctly).


I would use the winmerge tool:


XML files are text files. You can compare two text files with Winmerge and extract the differences... some manual labor would be involved if the same part is present in both lists but with different amounts, but I would expect this to be all rather straight forward...

  • Thanks, but I would consider that finding the differences manually, too.
    – Christian
    Mar 28, 2018 at 10:50
  • @Christian all solutions are in some part manual. Of course, making this part smaller can be desirable. On the other hand, WinMerge is tried and true, deals really well with whitespaces etc, and using it allows user to correct mistakes on the fly. Your program may be all nice and fine, but it didn't have all that many testers.
    – Mołot
    Mar 29, 2018 at 8:37
  • @Molot, on the other hand, parsing and writing XML is not that hard, there are tried and tested libraries... Mar 29, 2018 at 8:45
  • @Mołot true, its bareley tested, but then again I trust myself even less when it comes to comparing 2K parts and finding the 200 differences and writing them up without making a single mistake, however good the diff-tool is ;)
    – Christian
    Mar 29, 2018 at 9:03
  • @Christian winmerge can generate pretty good diff files. Then you'll have just a list of xml blocks added and removed. Rather straightforward, and I did it on things much more "important" (in the terms of $) than something like 200 bricks
    – Mołot
    Mar 29, 2018 at 9:06

I usually use Rebrickable to compare whatever I need.

First, you need to create two custom lists (My LEGO > My Custom Lists). Import tool supports "BrickLink Stud.IO files" so no conversion is required.

Once you got your lists sorted you need to compare them using "Compare sets" feature (Sets > Compare Sets). While the name suggest only sets could be compared in reality functionality is broader - you can compare custom lists as well. You will then be presented with the result, where "unique" parts are the ones that does not exist in compared model. You can also export this list for further use.


A little bit late to the party but I made this notebook to compare your brick: https://github.com/mhoangvslev/bricklink_tool_suites/blob/main/Bricklink_Compare_Parts.ipynb

I simply use 2 part lists downloaded from Bricklink.

Feel free to modify it to your need.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.