Особенности GetKeywords

Автор Тема: Особенности GetKeywords  (Прочитано 7255 раз)

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

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

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Особенности GetKeywords
« : 01-09-2016, 07:48:58 »
Код:
Код - Visual Basic [Выбрать]
  1.     <CommandMethod("test2")> _
  2.     Public Sub test2()
  3.         Dim editor As Autodesk.AutoCAD.EditorInput.Editor = acApp.Application.DocumentManager.MdiActiveDocument.Editor()
  4.         Dim sheetSetDatabase As AcSmDatabase = GetSSDB2(editor)
  5.         If sheetSetDatabase IsNot Nothing Then
  6.             Dim pKeyOpts As acEdInp.PromptKeywordOptions = New acEdInp.PromptKeywordOptions(vbLf & "Имя свойства: ")
  7.             pKeyOpts.AppendKeywordsToMessage = True
  8.             pKeyOpts.AllowArbitraryInput = True
  9.             Dim kList As List(Of String) = GetCPNameList(sheetSetDatabase.GetSheetSet.GetCustomPropertyBag)
  10.             kList.ForEach(Sub(obj) pKeyOpts.Keywords.Add("""" & obj & "1""", """" & obj & "2""", """" & obj & "3"""))
  11.             Dim PrRes As acEdInp.PromptResult = editor.GetKeywords(pKeyOpts)
  12.             If PrRes.Status = acEdInp.PromptStatus.OK Then
  13.                 Dim PropertyName As String = PrRes.StringResult
  14.                 If PropertyName <> "" Then
  15.                     editor.WriteMessage("Value: " & PropertyName)
  16.                 End If
  17.             End If
  18.             ' fSubSetSetCP(sheetSetDatabase, sheetSetDatabase.GetSheetSet().GetSheetEnumerator, "", "")
  19.        End If
  20.     End Sub

Результат:
Команда: TEST2
Имя свойства ["01_Разработал3"/"02_Дата разработки3"/"03_Проверил3"/"05_Н контролер3"/"07_ГАП,Гл Констр3"/"10_Номер по генплану3"/"13_Расшифровка13"/"14_Расшифровка23"/"15_Расшифровка33"/"16_Расшифровка43"/"17_Наименование чертежа3"/"18_ГИП3"/"TransmittalSetups3"/"Дата подписи Директора3"/"Директор3"]: Д
Value: Д

Как получить всю строку Keyword?
« Последнее редактирование: 05-09-2016, 07:41:37 от trir »

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Особенности GetKeywords
« Ответ #1 : 01-09-2016, 08:44:19 »
Если возвращается "Д", то что должно быть в строке-результате - "Дата подписи Директора3" или "Директор3"? Насколько я помню из лиспа, ключевые слова должны быть уникальными в пределах одного запроса.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Особенности GetKeywords
« Ответ #2 : 01-09-2016, 09:08:01 »
"Дата подписи Директора3"

Всё, что между кавычками

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Особенности GetKeywords
« Ответ #3 : 01-09-2016, 09:13:13 »
Опять же - по аналогии с лиспом (сейчас проверять в VS не имею возможности): надо в строку ключевых слов подставлять не "Дата" и "Директор3", а, например, "ДАта" и "ДИректор3". Тогда и будет возвращаться либо "ДА", либо "ДИ" - и соответственно фильтровать можно будет.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Особенности GetKeywords
« Ответ #4 : 01-09-2016, 09:21:19 »
Я почему-то начинаю подозревать, что проще будет нарисовать окно с несколькими радиокнопками и выбирать уже в нем...
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Особенности GetKeywords
« Ответ #5 : 01-09-2016, 09:25:02 »
Не хочу окно рисовать. В данном случае мне надо выбрать свойство подшивки...

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Особенности GetKeywords
« Ответ #6 : 01-09-2016, 09:30:36 »
В качестве идеи "пальцем в небо": переведи все свойства (точнее, их названия) в верхний регистр и убери в них пробелы, заменив, например, на "_". И посмотри, что получится.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Особенности GetKeywords
« Ответ #7 : 01-09-2016, 14:58:17 »
Это у тебя не ключевые слова, а какой-то хаос. Запусти какую-нибудь команду автокада с более-менее большим списком опций (например, _-purge) и посмотри, как они там названы.
Присоединяюсь к предложению Алексея - при таком количестве данных лучше сделать диалог.
P.S. Ого, так ты пытаешься из свойств подшивки вытащить данные и не обработав их задать их в качестве ключевых слов? Нет, так работать не будет. Однозначно - диалог.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Особенности GetKeywords
« Ответ #8 : 01-09-2016, 16:09:56 »
trir
1. Вроде бы уже не первый день на форуме и с правилами форматирования кода для форума должен быть знаком. Исправляй.
2. Символ подчеркивания - это разделитель между локализованными и английскими ключевыми словами. Внутри ключевых слов использоваться не может.
3. Пробел не может использоваться внутри ключевых слов.
4. Не могут повторятся ключевые слова (в первую очередь то, что в верхнем регистре).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: Особенности GetKeywords
« Ответ #9 : 01-09-2016, 16:21:05 »
убери в них пробелы, заменив, например, на "_".
Не пойдет, вот тема http://adn-cis.org/forum/index.php?topic=715

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Особенности GetKeywords
« Ответ #10 : 01-09-2016, 16:34:32 »
Ок, уговорили :)
Я-то как-то привык в лиспе, что ключевые слова - одно, а текст в запросе - может быть и другое :)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!