Объединение параметров

Автор Тема: Объединение параметров  (Прочитано 2235 раз)

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

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

  • ADN OPEN
  • Сообщений: 23
  • Карма: 0
Объединение параметров
« : 22-04-2021, 19:51:40 »
Доброго времени. Задача создать плагин, который бы объединял значения нескольких параметров в один параметр.

Приложил готовое в динамо.



Сам код:

Код - C# [Выбрать]
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Autodesk.Revit.DB;
  7. using Autodesk.Revit.UI;
  8. using Autodesk.Revit.Attributes;
  9. using Autodesk.Revit.UI.Selection;
  10.  
  11. namespace CombineParameters  
  12. {
  13.     [Transaction(TransactionMode.Manual)]
  14.     public class Class : IExternalCommand
  15.     {
  16.  
  17.      public Result Execute(ExternalCommandData commandData,
  18.                            ref string message,
  19.                            ElementSet elements)
  20.        
  21.         {
  22.             UIApplication uiapp = commandData.Application;
  23.             UIDocument uidoc = uiapp.ActiveUIDocument;
  24.             //Application app = uiapp.Application;
  25.             Document doc = uidoc.Document;
  26.  
  27.             //Create Filtered Element Collector and Filter
  28.             FilteredElementCollector collector = new FilteredElementCollector(doc);
  29.  
  30.             ElementCategoryFilter filter = new ElementCategoryFilter(BuiltInCategory.OST_DuctFitting);
  31.  
  32.             //Applying Filter
  33.  
  34.             IList <Element> ducts = collector.WherePasses(filter).WhereElementIsNotElementType().ToElements();
  35.  
  36.             foreach (Element e in ducts)
  37.             {
  38.                 //Get Parameter values
  39.                
  40.                 string parameterValue1 = e.LookupParameter("AA").AsValueString();
  41.                 string parameterValue2 = e.LookupParameter("BB").AsValueString();
  42.                 string parameterValue3 = e.LookupParameter("CC").AsValueString();
  43.  
  44.                 string newValue = parameterValue1 + "-" + parameterValue2 + "-" + parameterValue3;
  45.                
  46.  
  47.  
  48.                 using (Transaction t = new Transaction(doc, "Set Parameter name"))
  49.                 {
  50.                     t.Start();
  51.                  
  52.                     e.LookupParameter("DD").Set(newValue);
  53.                    
  54.                     t.Commit();
  55.                 }
  56.             }
  57.             return Result.Succeeded;
  58.         }
  59.     }
  60. }





Как видно, вставляется только тире. Не совсем понимаю почему и как исправить. (Приложил картинку)

PS: В этой теме только начинаю развиваться. Если можно, посоветуйте, пожалуйста, какие-либо качественные ресурсы, которые вам помогают.  Спасибо.

« Последнее редактирование: 22-04-2021, 21:06:53 от Александр Ривилис »

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Объединение параметров
« Ответ #1 : 22-04-2021, 21:08:25 »
wingsdraw,
Приветствую на форуме и напоминаю правило форматирования кода на нашем форуме (у меня в подписи).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение wingsdraw 24-04-2021, 21:24:11

Оффлайн enot

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Объединение параметров
« Ответ #2 : 23-04-2021, 10:42:27 »
Скорее всего AsString() вместо AsValueString()

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Объединение параметров
« Ответ #3 : 23-04-2021, 11:33:54 »
Скорее всего, енот прав.

Вообще рекомендую поставить RevitLookup, который покажет очень много полезного

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

  • ADN OPEN
  • Сообщений: 23
  • Карма: 0
Re: Объединение параметров
« Ответ #4 : 24-04-2021, 21:28:39 »
Скорее всего, енот прав.

Вообще рекомендую поставить RevitLookup, который покажет очень много полезного

Да, решение оказалось верным. Спасибо за совет.