Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: niksasa от 26-12-2013, 15:56:28

Название: Параметр не обновляется, а добавляется новый
Отправлено: niksasa от 26-12-2013, 15:56:28
Добрый день.
Есть код, который добавляет пользовательский параметр ДЛИНА:
Try
                pDoc = m_inventorApplication.ActiveDocument
                p = pDoc.Parameter.Value(Dlina.Text)
            Catch ex As Exception
                pDoc.ComponentDefinition.Parameters.UserParameters.AddByEx * pression(Dlina.Text, mDlina.Text, UnitsTypeEnum.kMillimeterLengthUnits)
            End Try

Почему при изменении значения в текстовом поле mDlina пользовательский параметр не обновляется, а появляется новый параметр ДЛИНА_1?
Дело по аналогии с ilogic.
Try
p = Parameter.Param("ДЛИНА")
Catch
ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByEx * pression("ДЛИНА", "100", UnitsTypeEnum.kMillimeterLengthUnits)
End Try
Название: Re: Параметр не обновляется, а добавляется новый
Отправлено: Владимир Ананьев от 26-12-2013, 16:56:48
Проблема в том, что в вашем коде не получается корректной ссылки на пользовательский параметр, и из-за этого возникает ошибка.  Управление всегда переходит в блок Catch, а там создается новый параметр.  Поскольку имя Длина занято, параметр автоматически создается с видоизмененным именем Длина_1 (подставляется суффикс "_1"), 
Вот так дожно работать:
Dim oDoc As Inventor.Document = m_inventorApp.ActiveDocument
Dim oUserPars As UserParameters = oDoc.ComponentDefinition.Parameters.UserParameters
Dim oPar As UserParameter = Nothing
Try
    oPar = oUserPars.Item(Name)
    oPar.Expression = "100 мм"
Catch ex As Exception
    oPar = oUserPars.AddByExpression(Name, "100 мм", "mm")
End Try

С Наступающим Новым Годом !  :)
Название: Re: Параметр не обновляется, а добавляется новый
Отправлено: niksasa от 26-12-2013, 17:55:09
Спасибо, Владимир. Все работает в лучшем виде.
С наступающим новым годом!
Название: Re: Параметр не обновляется, а добавляется новый
Отправлено: filat18 от 08-07-2022, 15:37:06
А кроме отработчика ошибок Try, можно через If узнать существует параметр с заданным именем или нет?
Название: Re: Параметр не обновляется, а добавляется новый
Отправлено: mikazakov от 12-07-2022, 18:49:26
А кроме отработчика ошибок Try, можно через If узнать существует параметр с заданным именем или нет?
ну перебрать коллекцию параметров
Название: Re: Параметр не обновляется, а добавляется новый
Отправлено: filat18 от 13-07-2022, 07:49:36
ну перебрать коллекцию параметров
да это ж еще дольше, уж лучше Try