Параметр не обновляется, а добавляется новый

Автор Тема: Параметр не обновляется, а добавляется новый  (Прочитано 4610 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн niksasaАвтор темы

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
Добрый день.
Есть код, который добавляет пользовательский параметр ДЛИНА:
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

Оффлайн Владимир Ананьев

  • ADN DevHelp
  • *
  • Сообщений: 148
  • Карма: 8
Проблема в том, что в вашем коде не получается корректной ссылки на пользовательский параметр, и из-за этого возникает ошибка.  Управление всегда переходит в блок 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

С Наступающим Новым Годом !  :)
« Последнее редактирование: 27-12-2013, 18:33:09 от Владимир Ананьев »

Оффлайн niksasaАвтор темы

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
Спасибо, Владимир. Все работает в лучшем виде.
С наступающим новым годом!

Оффлайн filat18

  • ADN OPEN
  • Сообщений: 25
  • Карма: 1
А кроме отработчика ошибок Try, можно через If узнать существует параметр с заданным именем или нет?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
А кроме отработчика ошибок Try, можно через If узнать существует параметр с заданным именем или нет?
ну перебрать коллекцию параметров

Оффлайн filat18

  • ADN OPEN
  • Сообщений: 25
  • Карма: 1
ну перебрать коллекцию параметров
да это ж еще дольше, уж лучше Try