Сообщество программистов Autodesk в СНГ

ADN Club => Civil 3D API => Тема начата: Doublefish от 28-05-2014, 13:32:57

Название: Как добавить правило для трубы?
Отправлено: Doublefish от 28-05-2014, 13:32:57
Подскажите пожалуйста, набор правил для трубы  - в списке правил появляется (через PipeRuleSetStyle) - ок, но оно пока пустое.
Как добавить  конкретные правила и задать параметры, например Покрытие и уклон?
Название: Re: Как добавить правило для трубы?
Отправлено: Дмитрий Загорулькин от 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());
Название: Re: Как добавить правило для трубы?
Отправлено: Doublefish от 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.)?

может быть это совсем просто?
Название: Re: Как добавить правило для трубы?
Отправлено: Дмитрий Загорулькин от 20-06-2014, 14:33:13
Как я понял, это значит, что в набор будет добавлено не существующее правило а его копия.
Судя по тексту ошибки, Вы передаете в метод ID не того объекта, который нужен. Показывайте код.
Название: Re: Как добавить правило для трубы?
Отправлено: Doublefish от 20-06-2014, 15:16:36
по итогу - CopyAsSibling("test")
Название: Re: Как добавить правило для трубы?
Отправлено: Дмитрий Загорулькин от 20-06-2014, 15:24:59
по итогу - CopyAsSibling("test")
Не понял, что это?
Название: Re: Как добавить правило для трубы?
Отправлено: Doublefish от 20-06-2014, 15:29:45
копия oSettingsPipeNetwork.Rules.Pipe.Value с уже двумя правилами