Tracking element changes - as they happen?

Hi guys,

Is there a means of tracking the changes being made to an element as hey happen? ie, you click on the start point of a line, say, and as you move it, you get notified (cursor position, the element being changed etc).

Is this possible?

I know of the IChangeTrackEvents interface, but I think that only pre/post notifies you of a change event, but not as it happens (dragging etc).

 

Regards

John.

Parents Reply Children
  • John: How would you even monitor every command?

    mdlInput_setMonitorFunction

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions

  • Hi All,

    Trawling through past posts that mention 'dependency API' it looks like the callback functions were developed for associative elements like dimensions early on, and later revamped for V8, when the Dependency Manager appeared. See attached zip.

    At the moment, we have the beginnings of pervasive end-user programming (spearheaded by GC, and even Design++?), a lot more dynamic relationships between elements, either in the form of 1/. Graphic to graphic: Dynamic Views, GC symbolic views, XFM,  geometric constraints modeling in PowerCivils 2/. Graphic to non-graphic: To support bi-directional parametric updates between schedules and graphics, hot links between structural design and analysis apps, energy modeling feedback. etc 3/. Non-graphic to non-graphic: ProjectWise dependency tracking, OpenPlant data integration...Promis-E  associated document tracking...

    Managing change propagation is nothing new to coders, but how will end-user programming be integrated into the mix?

    GC's data modeling constructs are being embedded into the dgn. The last standalone version 8.11.8.202 has an interesting dialogue "Parametric Modeling (PM) Settings" that appears to give the user the option to control the propagation / dependencies between elements.  At the moment, if you dimension a GC construct associatively, Mstn bombs when there is a change. Apparently, the shadowy Bentley Interoperability Platform are working on gluing everything together, and the end user programming bits will be able propagate to and from the Bentley bits, in due course.

    MDL-only API: I guess this should change? I wonder how this is going to be implemented across the managed / non-managed code gulf. Will all Mstn elements like associative dimensions, patterns, feature solids etc be re-written as GC features? I guess that the Dependency API would become part of GC's DAG transaction manager? Will there need to be an overarching D-Cubed-style two-pass constraints manager that decides which order the dependency chains are fired, and on which core ? Will Garbage Collection / undo's / transactions need to be updated to cater for data modeling and well as the normal event-based scenario? The whole dotNet reflection, wrappers, Interops, overloading stuff seems like a huge uncharted 'no man's land' where a lot of grown men are on their knees poking the spot in front of them with a bayonet, hoping not to hit a mine.

    Hopefully, Bentley will be more transparent than Revit. Looking at some of the forum discussions, the dependency mechanism is not very well documented and a lot of plugin developers manage their dependencies independently, especially to avoid the dreaded 'regen all'. I hear CATIA is similarly opaque about its dependency management . Maybe things will be simpler with DAG-based tools like Grasshopper (and GC). GH is integrating its SDK into RhinoCommon for V5. GH is also interesting as it licences components from QuantumWhale, which is due incorporate LINQ . Who knows? Maybe T-Splines, RhinoDirect, RhinoParametrics and RhinoBIM will be able to feed off each other and allow the user to modify objects produced by the other plugins without losing their design intent / behaviour. I.e. no return to the old 'zombie' artifact days. Hello synergistic Interoperability.

    I was amazed to find out that LabView is a $600m company. They seem to be a pioneering force as far as integrating end-user programming (using visual programming interfaces, state charts etc) and professional coding, data modeling and even parallel processing. Anyone have experience with LabView? Or MZ-Platform?

     

    Dominic

     

     

     

     

    Dependency-Example.zip
  • National Instruments, Inc

    Dominic: I was amazed to find out that LabView is a $600m company. Anyone have experience with LabView?

    LabVIEW™ is a product — the vendor is National Instruments They've been around for about as long as Bentley Systems. Their speciality is instrumentation control and data acquisition.

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions

  •  

    Yes.. But, instrumentation control and data acquisition are only one side of what NI does. Check out their development tools based on 'G', a visual dataflow programming language originally developed for the Macintosh as far back as 1986. Apparently, Lego Mindstorms NXT was based on 'G'. NI has developed tools for multiple programming approaches. Modelica is also another programming language / platform that is popular in the simulation world.

    Simulation platforms have been dealing with componentising objects and behaviours, hierarchial models / solvers, multi-domain design, ETO-style port-based modeling, digital mockups, KBE ... etc for a comparatively long time, even before dotNet and Java.

     

     

  • Dominic: But, instrumentation control and data acquisition are...

    Interesting though this conversation may be, it's veered far off the original topic of this thread.

    You may want to post to a more appropriate Forum.

    Regards, Jon Summers
    LA Solutions

     
    Regards, Jon Summers
    LA Solutions