всё про API в CAD/PLM/PDM
 
Как удалить файл по типу из атрибута

Как удалить файл по типу из атрибута

Если в атрибуте есть несколько файлов, и один из них например Аутентичный, то удалить его можно найдя по индексу

using System;
using Intermech;
using Intermech.Interfaces;

namespace Test
{
    public class Script
    {
       public ICSharpScriptContext ScriptContext { get; set; }

        public void Execute(IUserSession session, string[] scriptArgs)
        {
            var objVersionID = 91256501;
            var fileType = FileTypes.ftAuthentical;
            var objAttrFile = session.GetObjectAttributeByGuid(objVersionID, new Guid(SystemGUIDs.attributeFile));

            bool valueIsFound = false;
            for (var index = 0; index < objAttrFile.ValuesCount; index++)
            {
                objAttrFile.Index = index;
                var iBlobReader = objAttrFile as IBlobReader;
                if (iBlobReader == null)
                    continue;
                var bi = iBlobReader.OpenBlob(-1);
                iBlobReader.CloseBlob();
                if (bi.FileType == fileType)
                {
                    valueIsFound = true;
                    break;
                }
            }

            if (valueIsFound)
            {
                objAttrFile.DeleteValue();
            }
        }
    }
}

Не забудьте, что атрибут зачастую можно редактировать только у объекта, взятого на изменение и с определенным шагом ЖЦ.