我有一个具有向在自定义参数的变化进行反应的反应器。当您注册的反应器,可以指定它反应变化的类型。
UpdaterRegistry.AddTrigger(updaterId, RevitFilters.StructuralElementsFilter, Element.GetChangeTypeAny());
以下是由API允许changetypes:
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)
,但我没有找到到目前为止有道。
我听说过几次,这些方法显然不起作用。解决方法是使用GetChangeTypeAny
代替。关于这些坏消息我很遗憾。
这AddTrigger方法只适用于CategoryFilter和ParameterFilter。
如果要同时处理变更类型,然后登记在每一个单独的呼叫:
UpdaterRegistry.AddTrigger(..., ..., changeType1);
UpdaterRegistry.AddTrigger(..., ..., changeType2);
另外,可以通过组合变化类型
Autodesk.Revit.DB.ChangeType.ConcatenateChangeTypes(changeType1, changeType2)