Зарегистрировать реактор для запуска по пользовательскому параметру с помощью API? - PullRequest
0 голосов
/ 28 января 2019

У меня есть реактор, который должен реагировать на изменения, сделанные в пользовательском параметре.Когда вы регистрируете реактор, вы указываете тип изменения, на которое он реагирует.

UpdaterRegistry.AddTrigger(updaterId, RevitFilters.StructuralElementsFilter, Element.GetChangeTypeAny());

Ниже приведены типы изменений, разрешенные API:

public static ChangeType GetChangeTypeAny();
public static ChangeType GetChangeTypeElementAddition();
public static ChangeType GetChangeTypeElementDeletion();
public static ChangeType GetChangeTypeGeometry();
public static ChangeType GetChangeTypeParameter(ElementId parameterId);
public static ChangeType GetChangeTypeParameter(Parameter param);

Я хотел бы использоватьGetChangeTypeParameter(Parameter param) или ChangeType GetChangeTypeParameter(ElementId parameterId) но я пока не нашел правильного пути.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Этот метод AddTrigger работает только с CategoryFilter и ParameterFilter.

Если вы хотите обработать оба типа изменений, зарегистрируйтесь для каждого в отдельном вызове:

UpdaterRegistry.AddTrigger(..., ..., changeType1);
UpdaterRegistry.AddTrigger(..., ..., changeType2);

В качестве альтернативы вы можете комбинировать типы изменений через

Autodesk.Revit.DB.ChangeType.ConcatenateChangeTypes(changeType1, changeType2)
0 голосов
/ 29 января 2019

Я пару раз слышал, что эти методы, по-видимому, не работают.Обходной путь должен использовать вместо GetChangeTypeAny.Извините за плохие новости.

...