注册反应器以使用API​​触发自定义参数?

时间:2019-01-28 13:48:29

标签: revit-api revit

我有一个反应堆,必须对自定义参数所做的更改做出反应。注册反应堆时,您可以指定其反应的变化类型。

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 :(得分:0)

我听到过几次,这些方法显然行不通。解决方法是改用GetChangeTypeAny。很抱歉这个坏消息。

答案 1 :(得分:0)

AddTrigger方法仅适用于CategoryFilter和ParameterFilter。

如果您要同时处理两种变更类型,请在单独的调用中为每种变更进行注册:

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

或者,您可以通过

组合更改类型
Autodesk.Revit.DB.ChangeType.ConcatenateChangeTypes(changeType1, changeType2)