Coloring from a doubly nested parameter and overlapping artifacts

Hi all,

I’ve been playing along with the powerBI connection but have encountered a few roadblocks.

First, I cannot seem to color the model based on parameters that are not nested (ex. ObjectID) or multi-nested. I have only managed to generate color using parameters that are singly-nested. Am I missing something? Is there a workaround?
https://speckle.xyz/streams/5faca2efb2
PB_Test1.pbix (1.6 MB)

I am also getting overlapping color artifacts for certain parameters, despite elements not overlapping in the model.

Finally, the bi-directional behavior has only been working for certain parameters, like Id, but not for others, like area or volume (these also trigger the overlap artifacts so they might be connected)

Some notes:

  • I uploaded to speckle from rhino
  • I am trying to access user strings set in rhino, which are doubly nested (data>userStrings>[Values])

I appreciate any input on these subjects!

Thanks

1 Like

Hi @mapendo

We’ve been working on improving some of this issues and we’re about to make a new release that should address most of them… so right now my recommendation would be to wait it out for a couple days

  • Bidirectional selection has been greatly improved and should be more stable now
  • Coloring will now be possible even for fields not present in the original speckle object (coming from another PowerBI data source?)

As for the overlap artifacts, these will also be fixed in the next release, and the result should be 100% the same as in our website viewer)

But just for future reference, here’s what I think is happening:

The result of GetByUrl is a flat list of all nested children in your commit. So if you have the following structure

  • Layer A
    • Layer B
      • Solid

It will come out as

  • Layer A
  • Layer B
  • Solid

This will happen recursively for every object in that commit. In the case of BREPs, we also send their mesh representation inside a displayValue property so they could be displayed in other platforms that don’t support BREP/Solid.

This, in combination with the flattening behaviour explained above, leads to the BREP and it’s mesh representation appearing on the list:

  • Layer A
    • Layer B
      • Solid
        • displayValue (mesh)

It will come out as

  • Layer A
  • Layer B
  • Solid
  • displayValue (mesh)

Since they both end up in the list, they will be requested to be loaded by the viewer, but the solid already contains the mesh, so the mesh will be loaded twice.

Currently, the recommended approach is to filter out any data that is not necessary after using GetByUrl. This is also the recommended approach by Microsoft when creating any type of PowerBI report, but in this case there is some information that we haven’t yet fully documented.

2 Likes