private void addProperty(NVApi.ModelItem PropModelItem, string strPropName, string strPropValue)
        {
            try
            {
                COM.InwOpState10 state;
                state = ComApiBridge.State;
                // get current selection
                NVApi.ModelItemCollection modelItemCollectionIn = new NVApi.ModelItemCollection();
                modelItemCollectionIn.Add(PropModelItem);
                // get the selection in COM
                Autodesk.Navisworks.Api.Interop.ComApi.InwOpSelection comSelectionOut = ComApiBridge.ToInwOpSelection(modelItemCollectionIn);
                // get paths within the selection
                COM.InwSelectionPathsColl oPaths = comSelectionOut.Paths();
                COM.InwOaPath3            oPath  = (COM.InwOaPath3)oPaths.Last();
                // get properties collection of the path
                COM.InwGUIPropertyNode2 propn = (COM.InwGUIPropertyNode2)state.GetGUIPropertyNode(oPath, true);

                // create new property category
                // (new tab in the properties dialog)
                COM.InwOaPropertyVec newPvec = (COM.InwOaPropertyVec)state.ObjectFactory(COM.nwEObjectType.eObjectType_nwOaPropertyVec, null, null);
                // create new property
                COM.InwOaProperty newP = (COM.InwOaProperty)state.ObjectFactory(COM.nwEObjectType.eObjectType_nwOaProperty, null, null);
                // set the name, username and value of the new property
                newP.name     = "lc" + strPropName;
                newP.UserName = strPropName;
                newP.value    = strPropValue;
                // add the new property to the new property category
                newPvec.Properties().Add(newP);
                // add the new property category to the path
                propn.SetUserDefined(0, "NV-AddedProety", "lcNVAddedProety", newPvec);
            }
            catch
            {
                throw;
            }
        }