控制事件ElementTypeDuplicated

时间:2018-04-05 14:00:39

标签: revit-api

我正在控制事件“application.ControlledApplication.ElementTypeDuplicated”,并且在新类型的名称被估算之后此事件引发,但之后我想覆盖对话框的结果(ID:“IDD_SYMBOL_ATTRIB”)在事件ElementTypeDuplicated之前引发的。我已经尝试获取一个Object Args并覆盖在索取事件ElementTypeDuplicated的方法中的结果,但是不起作用。有没有办法做到这一点?

示例:

    public void OnElementTypeDuplicated(object o, ElementTypeDuplicatedEventArgs args)
    {
        //doing things 
        duplicatingTypeArgs.OverrideResult(0);

            }
        }
    }

    public void OnDialogDuplicatingELement(object o, DialogBoxShowingEventArgs args)
    {

        if (args.DialogId=="IDD_SYMBOL_ATTRIB")
        {
                    duplicatingTypeArgs = args;
        }
    }

2 个答案:

答案 0 :(得分:0)

Haven尚未对此进行测试,但如何使用" Element.GetChangeTypeElementAddition"来实现IUpdater。而是订阅重复类型事件

答案 1 :(得分:0)

您可以在复制符号之前订阅DocumentChanged事件。这将为您提供所有新创建元素的元素ID。使用它的一个示例由place family instance sample提供。

复制后,再次取消订阅。

您可以使用Idling event在复制终止时收到通知。