Как изменить текст в Sample Line?

Автор Тема: Как изменить текст в Sample Line?  (Прочитано 5832 раз)

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

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

  • ADN OPEN
  • Сообщений: 40
  • Карма: 1
Добрый день.
В справке дан пример как изменить линию Sample line
Код - C# [Выбрать]
  1. ObjectId sampleLineStyleId = _civildoc.Styles.SampleLineStyles.Add("New SampleLine Style");
  2. SampleLineStyle sampleLineStyle = ts.GetObject(sampleLineStyleId, OpenMode.ForWrite) as SampleLineStyle;
  3. // Display lines in violet
  4. sampleLineStyle.GetDisplayStylePlan(SampleLineDisplayStyleType.Lines).Color = Color.FromColorIndex(ColorMethod.ByAci, 200);
  5. sampleLineStyle.GetDisplayStyleModel(SampleLineDisplayStyleType.Lines).Color = Color.FromColorIndex(ColorMethod.ByAci, 200);
А как изменить текст, скажем по Sample line name вместо Sample line Raw station?
В сивиле это делается через Edit Sample lines labels in Group.
то есть через SampleLineLabelGroup ?
Спасибо заранее.

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как изменить текст в Sample Line?
« Ответ #1 : 19-05-2021, 21:26:53 »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение alsh 23-05-2021, 13:39:12

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

  • ADN OPEN
  • Сообщений: 40
  • Карма: 1
Re: Как изменить текст в Sample Line?
« Ответ #2 : 20-05-2021, 11:38:24 »
Нашел  :)
 
Код - C# [Выбрать]
  1. foreach(ObjectId oid in alignment.GetSampleLineGroupIds())
  2. ...
  3. ObjectIdCollection idColl = Autodesk.Civil.DatabaseServices.SampleLineLabelGroup.GetAvailableLabelGroupIds(oid);
  4.  foreach (ObjectId sId in idColl)
  5. {
  6.                         SampleLineLabelGroup sg = trans.GetObject(sId, OpenMode.ForWrite) as SampleLineLabelGroup;                        
  7.                         IList<LabelGroupSubEntity> labels = sg.SubEntities;
  8.                         foreach (LabelGroupSubEntity label in labels)
  9.                         {
  10.                            ObjectIdCollection componentIDs = label.GetTextComponentIds();
  11.  
  12.                             foreach (ObjectId componentID in componentIDs)
  13.                             {
  14.                                LabelStyleTextComponent component = (LabelStyleTextComponent)trans.GetObject(componentID, OpenMode.ForRead);
  15.                                label.SetTextComponentOverride(componentID, test_str);
  16.                             }
  17.                        }
  18. }