<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Saving Metadata in Document File without changing DbRevisionId or RevisionId in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6302121#M63652</link>
    <description>&lt;P&gt;Morning,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Last week I posted ... &lt;STRONG&gt;&lt;EM&gt;"We are working on a project to generate inventor documents &amp;nbsp;from master "templates"&amp;nbsp;parametrically&amp;nbsp;(similar to iparts) using both iLogic and the api.&amp;nbsp;I am looking for some technique/method to fully qualify if "any edits" have been made to the document after it was generated."&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;At that time I thinking of trying to calc a checksum and looking for some method to embedded the checksum in the doc file. Adam Nagy suggested using the document RevisionId and DatabaseRevisionId to qualify if any edits had been made. Turns ou that works quite nicely.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However I am still evaluationg&amp;nbsp;the best method to embed these values (and also a larger serailized&amp;nbsp;config file)&amp;nbsp;into the file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Did find&amp;nbsp;several articles related to "Save extra data in Inventor file"&amp;nbsp;by&amp;nbsp;&lt;A href="http://adndevblog.typepad.com/manufacturing/xiaodong-liang.html" target="_self"&gt;Xiaodong Liang&lt;/A&gt;&amp;nbsp;on&amp;nbsp;&lt;A href="http://adndevblog.typepad.com/manufacturing/2013/03/save-extra-data-in-inventor-file-1.html" target="_blank"&gt;http://adndevblog.typepad.com/manufacturing/2013/03/save-extra-data-in-inventor-file-1.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;He details three methods available.. &lt;SPAN&gt;1. iProperties &lt;/SPAN&gt;&lt;SPAN&gt;2. Attribute &lt;/SPAN&gt;&lt;SPAN&gt;3. IStorage &amp;amp; IStream&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Did a bit of testing trying each of these techniques to save my metadata. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my test it seems that using Attributes or iStorage requires a full document save.. which changes the DatabaseRevisionId and RevisionId. Which for my purposes is not ideal.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;However did find when using&amp;nbsp;the&amp;nbsp;Custom Property Set and Apprentice FlushToFile to push the properties to the document file the DbRevisionId and RevisionId are not changed. &amp;nbsp;For my purpsose this seems ideal.. but &amp;nbsp;would like to confirm my assumptions before pressing on.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Could anyone confirm that&amp;nbsp;if using Apprentiice PropertySet.FlushToFile with a Custom PropertySet will "never"change the DbRevisionId and RevisionId of the document?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;My second&amp;nbsp;questions is "how much data can each property in the property set contain"? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Reason for second question is I am considering using this propertyset to also store a larger set of data.. serialized configuration data for the app. Did a quick test and &amp;nbsp;a singe property appearred to accept 100k of data.. but 1 mb it fell over. Possibly I can break the serialize string into chunks to store it in the property sets.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I would think that iStorage/Attributes would be really designed to store larger sets of data... But if Custom PropertySets don't effect RevisionId then I think it would be my first choice.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 30 Apr 2016 22:13:05 GMT</pubDate>
    <dc:creator>guilloryt</dc:creator>
    <dc:date>2016-04-30T22:13:05Z</dc:date>
    <item>
      <title>Saving Metadata in Document File without changing DbRevisionId or RevisionId</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6302121#M63652</link>
      <description>&lt;P&gt;Morning,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Last week I posted ... &lt;STRONG&gt;&lt;EM&gt;"We are working on a project to generate inventor documents &amp;nbsp;from master "templates"&amp;nbsp;parametrically&amp;nbsp;(similar to iparts) using both iLogic and the api.&amp;nbsp;I am looking for some technique/method to fully qualify if "any edits" have been made to the document after it was generated."&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;At that time I thinking of trying to calc a checksum and looking for some method to embedded the checksum in the doc file. Adam Nagy suggested using the document RevisionId and DatabaseRevisionId to qualify if any edits had been made. Turns ou that works quite nicely.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However I am still evaluationg&amp;nbsp;the best method to embed these values (and also a larger serailized&amp;nbsp;config file)&amp;nbsp;into the file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Did find&amp;nbsp;several articles related to "Save extra data in Inventor file"&amp;nbsp;by&amp;nbsp;&lt;A href="http://adndevblog.typepad.com/manufacturing/xiaodong-liang.html" target="_self"&gt;Xiaodong Liang&lt;/A&gt;&amp;nbsp;on&amp;nbsp;&lt;A href="http://adndevblog.typepad.com/manufacturing/2013/03/save-extra-data-in-inventor-file-1.html" target="_blank"&gt;http://adndevblog.typepad.com/manufacturing/2013/03/save-extra-data-in-inventor-file-1.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;He details three methods available.. &lt;SPAN&gt;1. iProperties &lt;/SPAN&gt;&lt;SPAN&gt;2. Attribute &lt;/SPAN&gt;&lt;SPAN&gt;3. IStorage &amp;amp; IStream&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Did a bit of testing trying each of these techniques to save my metadata. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my test it seems that using Attributes or iStorage requires a full document save.. which changes the DatabaseRevisionId and RevisionId. Which for my purposes is not ideal.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;However did find when using&amp;nbsp;the&amp;nbsp;Custom Property Set and Apprentice FlushToFile to push the properties to the document file the DbRevisionId and RevisionId are not changed. &amp;nbsp;For my purpsose this seems ideal.. but &amp;nbsp;would like to confirm my assumptions before pressing on.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Could anyone confirm that&amp;nbsp;if using Apprentiice PropertySet.FlushToFile with a Custom PropertySet will "never"change the DbRevisionId and RevisionId of the document?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;My second&amp;nbsp;questions is "how much data can each property in the property set contain"? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Reason for second question is I am considering using this propertyset to also store a larger set of data.. serialized configuration data for the app. Did a quick test and &amp;nbsp;a singe property appearred to accept 100k of data.. but 1 mb it fell over. Possibly I can break the serialize string into chunks to store it in the property sets.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I would think that iStorage/Attributes would be really designed to store larger sets of data... But if Custom PropertySets don't effect RevisionId then I think it would be my first choice.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 30 Apr 2016 22:13:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6302121#M63652</guid>
      <dc:creator>guilloryt</dc:creator>
      <dc:date>2016-04-30T22:13:05Z</dc:date>
    </item>
    <item>
      <title>Re: Saving Metadata in Document File without changing DbRevisionId or RevisionId</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6316063#M63774</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your finding concerning Apprentice could be correct, but I need to double-check with others.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And concerning using IStorage and you saying that "&lt;SPAN&gt;iStorage requires a full document save&lt;/SPAN&gt;". The last paragraph in &lt;A href="http://adndevblog.typepad.com/manufacturing/2013/03/save-extra-data-in-inventor-file-3.html" target="_self"&gt;this blog post&lt;/A&gt; already mentions&amp;nbsp;that you can modify those data &lt;STRONG&gt;without&lt;/STRONG&gt; using &lt;STRONG&gt;Inventor&lt;/STRONG&gt;. Here is another article related to that:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://adndevblog.typepad.com/manufacturing/2014/04/save-extra-data-in-inventor-file-without-inventor-api.html" target="_self"&gt;http://adndevblog.typepad.com/manufacturing/2014/04/save-extra-data-in-inventor-file-without-inventor-api.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 09 May 2016 17:34:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6316063#M63774</guid>
      <dc:creator>adam.nagy</dc:creator>
      <dc:date>2016-05-09T17:34:53Z</dc:date>
    </item>
    <item>
      <title>Re: Saving Metadata in Document File without changing DbRevisionId or RevisionId</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6316400#M63781</link>
      <description>&lt;P&gt;Afternoon Adam,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my testing with iStorage in .net the data was not committed to the file unless I made set the dirty flag and did doc.Save.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The c++ code really is only a mistery to me... But see below the code I converted from your c# example to vb...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there another method I could use with VB to commit?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Imports System.Collections.Generic&lt;BR /&gt;Imports System.ComponentModel&lt;BR /&gt;Imports System.Data&lt;BR /&gt;Imports System.Drawing&lt;BR /&gt;Imports System.Linq&lt;BR /&gt;Imports System.Text&lt;BR /&gt;Imports System.Windows.Forms&lt;BR /&gt;Imports System.Runtime.InteropServices&lt;BR /&gt;Imports System.Reflection&lt;BR /&gt;Imports Inventor&lt;BR /&gt;Imports System.Diagnostics&lt;BR /&gt;Imports MVOI = Microsoft.VisualStudio.OLE.Interop&lt;BR /&gt;Imports Newtonsoft.Json&lt;BR /&gt;Imports Cameron.FOP.ModelCF&lt;/P&gt;&lt;P&gt;Public Class InvDoc_Storage&lt;BR /&gt;Public Enum STGM As Integer&lt;BR /&gt;DIRECT = &amp;amp;H0&lt;BR /&gt;TRANSACTED = &amp;amp;H10000&lt;BR /&gt;SIMPLE = &amp;amp;H8000000&lt;BR /&gt;READ = &amp;amp;H0&lt;BR /&gt;WRITE = &amp;amp;H1&lt;BR /&gt;READWRITE = &amp;amp;H2&lt;BR /&gt;SHARE_DENY_NONE = &amp;amp;H40&lt;BR /&gt;SHARE_DENY_READ = &amp;amp;H30&lt;BR /&gt;SHARE_DENY_WRITE = &amp;amp;H20&lt;BR /&gt;SHARE_EXCLUSIVE = &amp;amp;H10&lt;BR /&gt;PRIORITY = &amp;amp;H40000&lt;BR /&gt;DELETEONRELEASE = &amp;amp;H4000000&lt;BR /&gt;NOSCRATCH = &amp;amp;H100000&lt;BR /&gt;CREATE = &amp;amp;H1000&lt;BR /&gt;CONVERT = &amp;amp;H20000&lt;BR /&gt;FAILIFTHERE = &amp;amp;H0&lt;BR /&gt;NOSNAPSHOT = &amp;amp;H200000&lt;BR /&gt;DIRECT_SWMR = &amp;amp;H400000&lt;BR /&gt;End Enum&lt;/P&gt;&lt;P&gt;' create private storage and stream&lt;BR /&gt;Private Function CreatePrivateStorageAndStream(pDoc As Inventor.Document, StorageName As String, StreamName As String, data As String) As Boolean&lt;BR /&gt;Try&lt;BR /&gt;' create/get storage. "true" means if create&lt;BR /&gt;'if it does not exists.&lt;BR /&gt;Dim pStg As MVOI.IStorage = DirectCast(pDoc.GetPrivateStorage(StorageName, True), MVOI.IStorage)&lt;BR /&gt;If pStg Is Nothing Then&lt;BR /&gt;Return False&lt;BR /&gt;End If&lt;/P&gt;&lt;P&gt;' create stream in the storage&lt;BR /&gt;Dim pStream As MVOI.IStream = Nothing&lt;BR /&gt;pStg.CreateStream(StreamName, CUInt(STGM.DIRECT Or STGM.CREATE Or STGM.READWRITE Or STGM.SHARE_EXCLUSIVE), 0, 0, pStream)&lt;/P&gt;&lt;P&gt;If pStream Is Nothing Then&lt;BR /&gt;Return False&lt;BR /&gt;End If&lt;/P&gt;&lt;P&gt;Dim byteVsize As Byte() = System.BitConverter.GetBytes(data.Length)&lt;BR /&gt;Dim byteVData As Byte() = Encoding.[Default].GetBytes(data)&lt;BR /&gt;Dim dummy As UInteger&lt;/P&gt;&lt;P&gt;' convert string to byte and store it to the stream&lt;BR /&gt;pStream.Write(byteVsize, CUInt(4), dummy)&lt;BR /&gt;pStream.Write(byteVData, CUInt(byteVData.Length), dummy)&lt;/P&gt;&lt;P&gt;' Save the data&lt;BR /&gt;pStream.Commit(CUInt(MVOI.STGC.STGC_OVERWRITE Or MVOI.STGC.STGC_DEFAULT))&lt;/P&gt;&lt;P&gt;'Don't forget to commit changes also in storage&lt;BR /&gt;pStg.Commit(CUInt(MVOI.STGC.STGC_DEFAULT Or MVOI.STGC.STGC_OVERWRITE))&lt;/P&gt;&lt;P&gt;' force document to be dirty thus&lt;BR /&gt;' the change can be saved when document&lt;BR /&gt;'is saved.&lt;BR /&gt;pDoc.Dirty = True&lt;BR /&gt;pDoc.Save()&lt;/P&gt;&lt;P&gt;'Don't forget to release the object!!&lt;BR /&gt;Marshal.ReleaseComObject(pStg)&lt;/P&gt;&lt;P&gt;Return True&lt;BR /&gt;Catch ex As Exception&lt;BR /&gt;MessageBox.Show(ex.ToString())&lt;BR /&gt;Return False&lt;BR /&gt;End Try&lt;BR /&gt;End Function&lt;BR /&gt;' read the storge and stream&lt;BR /&gt;Private Function ReadPrivateStorageAndStream(pDoc As Inventor.Document, StorageName As String, StreamName As String, ByRef outDataStr As String) As Boolean&lt;BR /&gt;outDataStr = ""&lt;BR /&gt;Try&lt;BR /&gt;'get the storge. "false" means do not create&lt;BR /&gt;'if it does not exist&lt;BR /&gt;Dim pStg As MVOI.IStorage = DirectCast(pDoc.GetPrivateStorage(StorageName, False), MVOI.IStorage)&lt;BR /&gt;If pStg Is Nothing Then&lt;BR /&gt;Return False&lt;BR /&gt;End If&lt;/P&gt;&lt;P&gt;' open stream to read&lt;BR /&gt;Dim pStream As MVOI.IStream = Nothing&lt;BR /&gt;pStg.OpenStream(StreamName, IntPtr.Zero, CUInt(STGM.DIRECT Or STGM.READWRITE Or STGM.SHARE_EXCLUSIVE), 0, pStream)&lt;/P&gt;&lt;P&gt;If pStream Is Nothing Then&lt;BR /&gt;Return False&lt;BR /&gt;End If&lt;/P&gt;&lt;P&gt;Dim byteVsize As Byte() = New Byte(15) {}&lt;BR /&gt;Dim intSize As UInteger = 4&lt;/P&gt;&lt;P&gt;' read the stream&lt;BR /&gt;Dim dummy As UInteger&lt;BR /&gt;pStream.Read(byteVsize, CUInt(intSize), dummy)&lt;BR /&gt;Dim lSize As Integer = System.BitConverter.ToInt16(byteVsize, 0)&lt;/P&gt;&lt;P&gt;Dim outDataByte As Byte() = New Byte(8191) {}&lt;BR /&gt;pStream.Read(outDataByte, CUInt(lSize), dummy)&lt;/P&gt;&lt;P&gt;' convert byte to string&lt;BR /&gt;outDataStr = Encoding.[Default].GetString(outDataByte, 0, lSize)&lt;/P&gt;&lt;P&gt;'Don't forget to release the object!!&lt;BR /&gt;Marshal.ReleaseComObject(pStg)&lt;BR /&gt;Return True&lt;BR /&gt;Catch ex As Exception&lt;BR /&gt;MessageBox.Show(ex.ToString())&lt;BR /&gt;Return False&lt;BR /&gt;End Try&lt;/P&gt;&lt;P&gt;End Function&lt;/P&gt;</description>
      <pubDate>Mon, 09 May 2016 19:46:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6316400#M63781</guid>
      <dc:creator>guilloryt</dc:creator>
      <dc:date>2016-05-09T19:46:02Z</dc:date>
    </item>
    <item>
      <title>Re: Saving Metadata in Document File without changing DbRevisionId or RevisionId</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6319993#M63805</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is the feedback I got from engineering:&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Using FlushToFile via Apprentice to update iProperties won’t modify the DatabaseRevisionId(this will be changed for reference changes, geometry changes, etc, but not for file property change), &amp;nbsp;but the RevisionId will be changed.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So if you want to keep &lt;STRONG&gt;RevisionId&lt;/STRONG&gt; unchanged as well then I think you'll have to go with structured storage editing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"&lt;SPAN&gt;In my testing with iStorage in .net the data was not committed to the file unless I made set the dirty flag and did doc.Save.&lt;/SPAN&gt;"&lt;/P&gt;
&lt;P&gt;But in that case you are accessing the storage through the Inventor API, and I think that makes the difference. As shown in the C++ sample you can modify the structured storage data &lt;STRONG&gt;without&lt;/STRONG&gt; using &lt;STRONG&gt;any&lt;/STRONG&gt; Inventor API - Inventor does not even need to be installed in order to modify the structured data.&lt;BR /&gt;Structured storage is a Microsoft technology independent of Inventor.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;</description>
      <pubDate>Wed, 11 May 2016 09:55:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6319993#M63805</guid>
      <dc:creator>adam.nagy</dc:creator>
      <dc:date>2016-05-11T09:55:05Z</dc:date>
    </item>
    <item>
      <title>Re: Saving Metadata in Document File without changing DbRevisionId or RevisionId</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6320087#M63806</link>
      <description>&lt;P&gt;In my testing verified that the&amp;nbsp;RevisionId &amp;nbsp;is changed when I use flushtofile if I update one of the standard inventor property sets.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But seems when I add a new user defined property set and update it with flushtofile neither the neither RevisionId nor DatabaseRevisionId is changed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would it correct to assume going forwar that if I am only updating user defined property sets that neither the RevisionId/DatabaseRevisionId will change when I update with flushtofile?&lt;/P&gt;</description>
      <pubDate>Wed, 11 May 2016 11:00:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6320087#M63806</guid>
      <dc:creator>guilloryt</dc:creator>
      <dc:date>2016-05-11T11:00:57Z</dc:date>
    </item>
    <item>
      <title>Re: Saving Metadata in Document File without changing DbRevisionId or RevisionId</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6328570#M63879</link>
      <description>&lt;P&gt;I haven't got feedback yet from my colleague concerning your last comment.&lt;/P&gt;
&lt;P&gt;But if that's how it works, then that's how it works and I don't expect&amp;nbsp;it to change, but we cannot promise something like that.&lt;/P&gt;
&lt;P&gt;You'll just have to make sure it's part of your tests to check that everything works the same in the next release.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you used the Structured Storage library directly, I think that would be the safest, and that would work on any computer - with or without Inventor installed.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 May 2016 16:00:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/saving-metadata-in-document-file-without-changing-dbrevisionid/m-p/6328570#M63879</guid>
      <dc:creator>adam.nagy</dc:creator>
      <dc:date>2016-05-16T16:00:40Z</dc:date>
    </item>
  </channel>
</rss>

