Answers.Body: <p>I would use the winmerge tool:</p>
  
  <p><a href="http://winmerge.org/downloads/" rel="nofollow noreferrer">http://winmerge.org/downloads/</a></p>
  
  <p>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...</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-28T10:50:17.877Z
Answers.Text: Thanks, but I would consider that finding the differences manually, too.
Answers.UserDisplayName: Christian
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-29T08:37:59.297Z
Answers.Text: @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.
Answers.UserDisplayName: Mołot
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-29T08:45:11.033Z
Answers.Text: @Molot, on the other hand, parsing and writing XML is not that hard, there are tried and tested libraries...
Answers.UserDisplayName: Michael Verschaeve
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-29T09:03:20.503Z
Answers.Text: @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 ;)
Answers.UserDisplayName: Christian
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-29T09:06:10.720Z
Answers.Text: @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
Answers.UserDisplayName: Mołot
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-29T09:10:25.350Z
Answers.Text: @Mołot how do you deal with parts that are out of order? The XML generated by Stud.io is not sorted, so the same part may turn up at totally different positions in the file. So unless winmerge knows how to sort the xml, you would have to find these all yourself?
Answers.UserDisplayName: Christian
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-29T12:08:48.950Z
Answers.Text: @Christian there is an option to detect moved blocks. See this screenshot: https://i.sstatic.net/90Whq.png
Answers.UserDisplayName: Mołot
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-27T19:12:20.577Z
Answers.LastActivityDate: 2018-03-27T19:12:20.577Z
Answers.UserDisplayName: Michael Verschaeve
Answers.Body: <p>I usually use Rebrickable to compare whatever I need.</p>
  <p>First, you need to create two custom lists (My LEGO &gt; My Custom Lists). Import tool supports &quot;BrickLink Stud.IO files&quot; so no conversion is required.</p>
  <p>Once you got your lists sorted you need to compare them using &quot;Compare sets&quot; feature (Sets &gt; 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 &quot;unique&quot; parts are the ones that does not exist in compared model. You can also export this list for further use.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-12-19T09:03:02.663Z
Answers.LastActivityDate: 2020-12-19T09:03:02.663Z
Answers.UserDisplayName: Alex
Answers.Body: <p>A little bit late to the party but I made this notebook to compare your brick:
  <a href="https://github.com/mhoangvslev/bricklink_tool_suites/blob/main/Bricklink_Compare_Parts.ipynb" rel="nofollow noreferrer">https://github.com/mhoangvslev/bricklink_tool_suites/blob/main/Bricklink_Compare_Parts.ipynb</a></p>
  <p>I simply use 2 part lists downloaded from Bricklink.</p>
  <p>Feel free to modify it to your need.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-07-25T12:18:39.297Z
Answers.LastActivityDate: 2023-07-25T12:18:39.297Z
Answers.UserDisplayName: Minh-Hoang DANG
Answers.Body: <p>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: <a href="https://github.com/ChrZae/bricklink-xml-diff" rel="noreferrer">https://github.com/ChrZae/bricklink-xml-diff</a></p>
  
  <p>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).</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-29T12:05:20.830Z
Answers.Text: Thanks for automating this.  It'd be great if your `README` explained how to use it, what the requirements were, and whether filing github issues is the preferred support venue.  https://gist.github.com/PurpleBooth/109311bb0361f32d87a2
Answers.UserDisplayName: chicks
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-28T10:49:08.050Z
Answers.LastActivityDate: 2018-03-28T10:49:08.050Z
Answers.UserDisplayName: Christian
Body: <p>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?</p>
  
  <p>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.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-27T18:09:59.560Z
Comments.Text: You could try and import both XML files into Excel, then sort and compare. Probably the fastest way to do this.
Comments.UserDisplayName: Phil B.
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-28T10:50:00.313Z
Comments.Text: Thanks, but I would consider that finding the differences manually, too.
Comments.UserDisplayName: Christian
Tags: <software><tools><bricklink-studio>
Title: Compare part lists between Stud.io models?
UserDisplayName: Christian
ThreadText: # Compare part lists between Stud.io models?
  
  (Asked by: username_0 on 2018-03-27)
  
  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.
  
  **Tags:** software, tools, bricklink-studio
  > **Comments:**
  > **username_1**: You could try and import both XML files into Excel, then sort and compare. Probably the fastest way to do this.  
  > **username_0**: Thanks, but I would consider that finding the differences manually, too.  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_0 on 2018-03-28. Score: 8 | Accepted answer
  
  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).
  
  > **Comments:**
  > **username_6**: Thanks for automating this.  It'd be great if your `README` explained how to use it, what the requirements were, and whether filing github issues is the preferred support venue.  https://gist.github.com/PurpleBooth/109311bb0361f32d87a2  
  
  ---
  
  ### Answer by username_2 on 2018-03-27. Score: 3
  
  I would use the winmerge tool:
  
  <http://winmerge.org/downloads/>
  
  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...
  
  > **Comments:**
  > **username_0**: Thanks, but I would consider that finding the differences manually, too.  
  > **username_3**: @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.  
  > **username_2**: @Molot, on the other hand, parsing and writing XML is not that hard, there are tried and tested libraries...  
  > **username_0**: @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 ;)  
  > **username_3**: @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  
  > **username_0**: @Mołot how do you deal with parts that are out of order? The XML generated by Stud.io is not sorted, so the same part may turn up at totally different positions in the file. So unless winmerge knows how to sort the xml, you would have to find these all yourself?  
  > **username_3**: @Christian there is an option to detect moved blocks. See this screenshot: https://i.sstatic.net/90Whq.png  
  
  ---
  
  ### Answer by username_4 on 2020-12-19. Score: 1
  
  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.
  
  
  ---
  
  ### Answer by username_5 on 2023-07-25. Score: 0
  
  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.
  
  
  ---
  
  