AnsweredAssumed Answered

API add configuration specific properties

Question asked by Richard Anthony on Apr 20, 2016
Latest reply on Apr 20, 2016 by Ivana Kolin

Is it possible to add configuration specific properties to a file without opening the file.  I have tried the following code and it appears to be adding the property but it is not saving it when I save the file.  I have hundreds of files to do this too and don't want to open each file.

 

private void UpdateConfigProperties(string vCfgName)

        {

            // Initialize various document configuration objects

            SwDMConfigurationMgr swCfgMgr = default(SwDMConfigurationMgr);

            swCfgMgr = dmDoc.ConfigurationManager;

            string[] vCfgNameArr = null;

            SwDMConfiguration14 swCfg = default(SwDMConfiguration14);

            vCfgNameArr = (string[])swCfgMgr.GetConfigurationNames();

 

 

            swCfg = (SwDMConfiguration14)swCfgMgr.GetConfigurationByName(vCfgName);

 

 

            string[] vCustSpecificNameArr = null;

            string sCustSpecificStr = null;

            SwDmCustomInfoType nSpecificType = 0;

 

 

            vCustSpecificNameArr = (string[])swCfg.GetCustomPropertyNames();

 

 

            if (vCustSpecificNameArr != null)

            {

                foreach (string vCustSpecificName in vCustSpecificNameArr)

                {

                    sCustSpecificStr = swCfg.GetCustomProperty(vCustSpecificName, out nSpecificType);

 

 

                    if (vCustSpecificName == "Part Name")

                    {

                        int propCount = dmDoc.GetCustomPropertyCount();

                        string[] propNames = null;

                        propNames = (string[])dmDoc.GetCustomPropertyNames();

                       

                        // Initialize the document manager class

                        dmClassFact = new SwDMClassFactory();

                        // Initialize the document manager application

                        dmDocMgr = (SwDMApplication4)dmClassFact.GetApplication(GM.LicenseKey());

                        // Read the selected document

                        dmDoc = (SwDMDocument18)dmDocMgr.GetDocument(docPath, dmDocType, true, out dmOpenError);

                        propCount = dmDoc.GetCustomPropertyCount();

                        propNames = dmDoc.GetCustomPropertyNames();

                        swCfg.AddCustomProperty("BOM Description", SwDmCustomInfoType.swDmCustomInfoText, swCfg.GetCustomProperty("Part Name", out nSpecificType));

                        MessageBox.Show(swCfg.GetCustomProperty("BOM Description", out nSpecificType));

                        dmDoc.Save();

                    }

                }

            }

        }

Outcomes