我有一个反应堆,必须对自定义参数所做的更改做出反应。注册反应堆时,您可以指定其反应的变化类型。
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)
,但到目前为止我还没有找到合适的方法。
答案 0 :(得分:0)
我听到过几次,这些方法显然行不通。解决方法是改用GetChangeTypeAny
。很抱歉这个坏消息。
答案 1 :(得分:0)
该AddTrigger方法仅适用于CategoryFilter和ParameterFilter。
如果您要同时处理两种变更类型,请在单独的调用中为每种变更进行注册:
UpdaterRegistry.AddTrigger(..., ..., changeType1);
UpdaterRegistry.AddTrigger(..., ..., changeType2);
或者,您可以通过
组合更改类型Autodesk.Revit.DB.ChangeType.ConcatenateChangeTypes(changeType1, changeType2)