6 Replies Latest reply on Jun 5, 2014 4:45 PM by Ricardo Av-Oracle

    Retrieving 3D object properties from VueBean

    1053383

      Dear all,

      my company is integrating a AutoVue 3D 20.2.1 in our product. With JVue and ISDK/DMS implementation.

       

      Now in a JVue 3D viewer I am looking for a way to retrieve properties of an Object selected with mouse.

      As of now my goal is to connect a viewer and a model data that are handled by us.

      Taking an example some IFC (Industry Foundation Classes) file. Simply a 3D construction model. Objects there have properties like:

      “IFC Generic Properties:IFC UID  STRING 01DPZ9SBn5r9Sivd0bV8Ar” (copied from Viewers own panel)

       

      Here is a snippet code of what I am trying to implement. Could be embedded in a simple sample client:

       

      jvue.getActiveVueBean().getVueEventBroadcaster().addModelListener(new VueModelListener() {

                          public void onModelEvent(VueModelEvent vueModelEvent) {

                              if (VueModelEvent.ONSELECTIONCHANGED == vueModelEvent.getType()) {

                                  final Vue3DController controller = jvue.getActiveVueBean().getController().get3DController();

      /* ensure the attribs are loaded */

      controller.ensureEntityAttributes(controller.getSelector().get());

                                  VueEntity m = controller.getSelector().get()[0];

                                  final VueEntityAttributes veas = m.getEntityAttributes();

       

      /* here comes a problem part! */

                final Object attribWeAreLookingFor = veas.getEffectiveAttribute("IFC Generic Properties:IFC UID"); //=> null

                m.getEntityAttributes().anyValueContains("IFC Generic Properties:IFC UID")            //=> false, expected true!

      /* but the property we are looking for is there! */

                m.getEntityAttributes().anyValueContains("01DPZ9SBn5r9Sivd0bV8Ar")                  //=> true

       

      A guess from oracle support was:

       

      while (veas.hasMoreElements()) {

      VueEntityDefinitionAttribute attr = (VueEntityDefinitionAttribute) veas.nextElement();

      /* iterate through element properites there */

      }

       

      - however that two methods are NOT implemented! In our fairly actual 20.2.1 release!

       

      Does anyone have idea of further steps?

       

      Many thanks if anyone can help!

      • Anton
        • 1. Re: Retrieving 3D object properties from VueBean
          Docia

          I have the same problem the other way around: knowing the IFC UID and trying to find the VueEntity.

          Only solution in 20.2.* seems to be looping thru every entity in the model and use anyValueContains(). It sort of works, but unfortunately anyValueContains() ignores case, which every so often results in finding the wrong entity, and on some entities anyValueContains() returns false even though I can see in the viewer that the value IS present on that entity.

          Hoping for better 3d support in 20.3.

          • 2. Re: Retrieving 3D object properties from VueBean
            Ricardo Av-Oracle

            Presentation layer for displaying attributes uses a translation to display some names

            IFC is an special type of files, and handles attributes in an specific way, it uses attribute sets

            In this particular case

            IFC Generic Properties

            is the attribute, the sub value in it

            IFC UID

            Is the one you are looking for

            There is a difference between the display and the data,  We display child of attributes in a semi colon separated list of parent:child attribute names

             

            Now, with regards of your last comment, that the methods are not implemented, I have to disagree, they are used and display the correct values (it is the code in the entity properties dialog)

            They are not exposed perhaps or the information for you to make use of it, is not available

             

            The use case, you are planning, is not one AutoVue is covering, if you wish some functionality to be exposed, I would recommend you log an enhancement

            • 3. Re: Retrieving 3D object properties from VueBean
              1053383

              a) Trying to evaluate for “IFC Generic Properties” or “IFC UID” didn’t work for me.

               

              b) Implemented or not, however they are not public. Trying to invoke them via reflections brought no results either.

              • 4. Re: Retrieving 3D object properties from VueBean
                Ricardo Av-Oracle

                Please contact your ORACLE sales representative, he will be able to guide you, without context or information on where you are failing it is nearly impossible to answer any of your questions

                I would also re-iterate my previous ask

                The use case, you are planning, is not one AutoVue is covering, if you wish some functionality to be exposed, I would recommend you log an enhancement

                 

                I you decide to notwithstanding continue with this thread, I would strongly advice you actually post working code, not just a snippet, it does seems, their are missing steps

                For everyone's benefit in this post, please keep a positive attitude and refrain from making generic and incorrect statements

                • 5. Re: Retrieving 3D object properties from VueBean
                  1053383

                  Hello Ricardo, thank you for the reply.

                  I am linked to that forum from Oracle Support!

                  Since, my question could not be answered by the support guys. Their only suggestion is implemented in the thread start message.

                  They mentioned, I have better chance to meet a real AutoVue developer here and they probably could help…

                  I already figured out that is not the regular Use-Case.

                  Things could be so easy if Oracle had provided source code, at least for the client side!

                  Anyway worth asking 

                  • 6. Re: Retrieving 3D object properties from VueBean
                    Ricardo Av-Oracle

                    Again, log an enhancement request and properly describe your ask

                    If you need help, attach code that can be used and debugged