Как добавить правило для трубы?

Автор Тема: Как добавить правило для трубы?  (Прочитано 8024 раз)

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

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Подскажите пожалуйста, набор правил для трубы  - в списке правил появляется (через PipeRuleSetStyle) - ок, но оно пока пустое.
Как добавить  конкретные правила и задать параметры, например Покрытие и уклон?

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Как добавить правило для трубы?
« Ответ #1 : 29-05-2014, 10:23:56 »
У этого объекта (PipeRuleSetStyle - стиль набора правил для труб) есть метод добавления правила - CloneAndAddRule. То есть, как добавить, вроде, очевидно.
А вот где взять эти правила для добавления... По аналогии с иерархией в "Навигаторе", получается, что они должны быть где-то в SettingsPipeNetwork.SettingsRules.
Добраться до них можно так (взято из http://docs.autodesk.com/CIV3D/2014/ENU/API_Reference_Guide/index.html):
SettingsPipeNetwork oSettingsPipeNetwork = doc.Settings.GetSettings<SettingsPipeNetwork>() as SettingsPipeNetwork;
ed.WriteMessage("Using pipe rules: {0}\n", oSettingsPipeNetwork.Rules.Pipe.Value.ToString());

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: Как добавить правило для трубы?
« Ответ #2 : 20-06-2014, 14:08:04 »
что-то не получается или совсем я запутался ((

что значит Remarks: the source rule will not be added into current rule set, instead a copy will be added?

sourceRuleId - это id стиля из настроек (от oSettingsPipeNetwork.Rules.Pipe.Value) ?

надо создать сначала новый стиль, а затем вызвать CloneAndAddRule(пишет ошибку Network Rule's object id is expected.)?

может быть это совсем просто?

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Как добавить правило для трубы?
« Ответ #3 : 20-06-2014, 14:33:13 »
Как я понял, это значит, что в набор будет добавлено не существующее правило а его копия.
Судя по тексту ошибки, Вы передаете в метод ID не того объекта, который нужен. Показывайте код.

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: Как добавить правило для трубы?
« Ответ #4 : 20-06-2014, 15:16:36 »
по итогу - CopyAsSibling("test")

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Как добавить правило для трубы?
« Ответ #5 : 20-06-2014, 15:24:59 »
по итогу - CopyAsSibling("test")
Не понял, что это?

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: Как добавить правило для трубы?
« Ответ #6 : 20-06-2014, 15:29:45 »
копия oSettingsPipeNetwork.Rules.Pipe.Value с уже двумя правилами