Hello Jeff. I am not quite following . I am not a Pro
I will rephrase the problem. Not a good writer but I do my best.
1- Matt and I don't want to have a constant object.modified event in our applicaton, because of it's overload.
2- Changing a block attribute or a layer , off the properties window doesn't fire any command. If it did we could've catch the start command event and now we could start the object.modiied event.and find what object's being modifed.
Now, how we could catch the entities which have been modified off the properties window?
Now could you please re-explain what is your suggestion?
My solution is to add three handlers to each entity (Modified, Unmodified and Erased). In each of these I record what has happened by storing the entities ObjectId and an Enum describing what happened. This then gies into a collection of object which i then process later. As you have probably seen the AutoCAD will throw a conbination of those changes at which point I only remember the most important of the events for each entity.
At the top of each handler I already do as Jeff suggests and check the CommandName to see if changes need to be process. I.e. 'Save' commands will cause MText objects to refresh however no changes need to be tracked for my data.
I then process the collection in the 'EnteringQuiescentstate' handler, which will only lead to updates if some of my object had added to the collection. So far this is working out well for me, obviously there are redudant calls to the handler, but they have minimum overheads. That said there were also redudant calls when I was using CommandEnded as not all commands would affect my entities. i.e. adjusting an entity elsewhere.
Ideally CommandEnded (or another event such as 'UpdatesFinished') would be thrown when changes to entities had finished either via the drawing or Properties Palette. This is unlikely to happen anytime soon though
Does that help at all Janet?
Can't really add to aything already mentioned but you could look at Stephen Preston's Network example for using overrules.
I found in ObjectArx there is an event handler named "ModelessOperationWillStart" in Editor objct. This triggers if Proreties window is being editted on or no . and if we can check for OPM change properties, it would be good.
But unfortunately this is not available in API. or it is and I don't know how to implement it. in objectarx its being called OPM ( Guess it stands for Object Properties modelss or something )
I am not ADN memeber. I already shoot this question here. But maybe you can ask ADN and those Big guys and they can clarify this for us.
Let me know .
Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register
Start with some of our most frequented solutions to get help installing your software.