[CONNECT C#] How to determine which properties changed when implementing IDgnECNetChangeListener

I have installed:

MicroStation CONNECT Edition
10.15.0.74

MicroStation CONNECT Edition SDK
10.15.00.076

I have implemented IDgnECNetChangeListener to listen to change events.  I would like to capture a modification event for a given ECProperty on instances of a given ECClass.

The method DgnECInstancesChanged is provided a list of DgnInstanceChangeRecord.  From this record, is there a way to determine which of the ECProperties were the ones that changed?

Thanks,

John M.

Parents
  • Hi John,

    I think the information about changed properties is not tracked. I guess it's because ECInstance is written as the whole, so such event can represent one property change as well as complete update of the whole structure.

    As wrote in his blog, "before change" event (or state) is not available because of performance reasons.

    Can you provide more details and context, what do you want to achieve? In general, the events messaging, where the final state is provided only, leads to system based on state (data available now) and not based on change events (value A is changed to value B).

    When you will go through EC(Objects) API, you will see different "property change" events exist, useful in specific situations (ECPropertyValueChanged or ECPropertyPane.AfterPropertyValueEdit), but I think no from them allows listen for general changes over all ECInstances.

    With regards,

      Jan

Reply
  • Hi John,

    I think the information about changed properties is not tracked. I guess it's because ECInstance is written as the whole, so such event can represent one property change as well as complete update of the whole structure.

    As wrote in his blog, "before change" event (or state) is not available because of performance reasons.

    Can you provide more details and context, what do you want to achieve? In general, the events messaging, where the final state is provided only, leads to system based on state (data available now) and not based on change events (value A is changed to value B).

    When you will go through EC(Objects) API, you will see different "property change" events exist, useful in specific situations (ECPropertyValueChanged or ECPropertyPane.AfterPropertyValueEdit), but I think no from them allows listen for general changes over all ECInstances.

    With regards,

      Jan

Children