private void ModifyKeywordInCurrentDocument(Document doc, string keywordType, string keywordValue) { using (DocumentLock documentLock = doc.LockDocument()) { if (documentLock.Status == DocumentLockStatus.LockObtained) { KeywordModifier keymod = doc.CreateKeywordModifier(); KeywordType keyType = _app.Core.KeywordTypes.Find(keywordType); if (keyType == null) { keymod.AddKeyword(keywordType, keywordValue); } else { KeywordRecord keyRec = doc.KeywordRecords.Find(keyType); KeywordRecordType keyRecType = keyRec.KeywordRecordType; Keyword newKeyword = keyType.CreateKeyword(keywordValue); if (keyRecType.RecordType == RecordType.MultiInstance) { EditableKeywordRecord editKeyRec = keyRec.CreateEditableKeywordRecord(); Keyword keyword = editKeyRec.Keywords.Find(keywordType); editKeyRec.UpdateKeyword(keyword, newKeyword); keymod.AddKeywordRecord(editKeyRec); } else { Keyword keyword = keyRec.Keywords.Find(keywordType); keymod.UpdateKeyword(keyword, newKeyword); } } keymod.ApplyChanges(); } } }