QGIS receives only geometry when sending data from Grasshopper and doesn't receive other metadata

Hello, I have been using Speckle to transfer data from QGIS to Grasshopper, and that part works fine. The process doesn’t seem to be working in the other direction when I try to push geometry from Grasshopper or Rhino back to QGIS. It seems like Speckle QGIS only read the geometry branch, and I can’t find the metadata shipped with it. I can however sometimes see it in the Speckle Viewer when expanding the data view!

1 Like

Here are my attempts so far:

1- Send grafted GH geometry with the data straight with the “Sender” D & A / Detached =
Only the geometries are received in QGIS with a “Speckle ID” / on several sublayers

2- Convert the grafted GH data to integers, send with the geometry “Sender” D & A / Detached =
Only the geometries are received in QGIS with a “Speckle ID” / on several sublayers

3- Send grafted GH geometry with the data straight with the “Sender” D & A / NOT Detached =
Only the geometries are received in QGIS with a “Speckle ID” / on several sublayers

4- Send list GH geometry with the data straight with the “Sender” D & A / Detached =
Only the geometries are received in QGIS with a “Speckle ID” / ONE sublayer

5- Send list GH geometry with the data straight with the “Sender” D & A / NOT Detached =
Only the geometries are received in QGIS with a “Speckle ID” / ONE sublayer

6- Send native list GH geometry with the data to “Speckle Obj” then " Sender" D & A / List =
Only the geometries are received in QGIS with a “Speckle ID” / ONE sublayer

7- Send grafted GH geometry with the data to “Speckle Obj” then " Sender" / NOT Detached =
Nothing is received in QGIS / but the data is visible in the online viewer

8- Send grafted GH geometry with the data to “Speckle Obj” as List then " Sender" / Detached =
Only the geometries are received in QGIS with a “Speckle ID” / on several sublayers

9- Merge grafted GH geometry with the data straight with the “Sender” / NOT Detached =
Nothing is received in QGIS / and the data is NOT visible in the online viewer

10- Entwine grafted GH geometry with the data straight with the “Sender” / NOT Detached =
Only the geometries are received in QGIS with a “Speckle ID” / ONE sublayer

11- Entwine grafted GH geometry with the data straight with the “Sender” / Detached =
Only the geometries are received in QGIS with a “Speckle ID” / ONE sublayer

12- Send grafted GH geometry via JSON convertor to “Speckle Obj” then “Sender” / Detached =
Nothing is received in QGIS / but the data is visible in the online viewer with Null values

13- Send grafted GH geometry via JSON convertor to “Speckle Obj” then “Sender” / NOT Detached =
Nothing is received in QGIS / but the data is visible in the online viewer with Null values

Hay @Ossama_Gabrallah thanks for the detailed report and welcome to our forum!

We’ve tracked this internally and will get back to you soon :slight_smile:

Hi @Ossama_Gabrallah , sorry for your experience. Could you please share any of the commits (with the data visible in the web viewer) which you cannot receive/or can partially receive in QGIS?

Hey @teocomi thank you for your efforts! For now I found a “manual” way around it, using BearGIS to export shape files and a small automator in QGIS to load the files. BearGIS

1 Like

Hey @Kateryna thank you for your reply! Here comes an example as requested. Using the same approach like attempt No.7 in the post (geometry is visible in the viewer, and it contain the data, but nothing is received in QGIS) : Speckle

@Kateryna perhaps this is has better result. This is attempt No.4 where 1- the geometry is visible on the viewer, 2- the data (BTA) is also visible, 3- the features are received on one layer, but they only carry the Speckle ID. Speckle

Thanks for the examples!
The last one (Speckle): it does have the features, but they don’t have any dynamic properties, therefore none are added to the attribute table.


BTA Base object basically contains a list of integers with no relations to the previous features (also it’s a completely separate object). As for now, QGIS-Speckle connector doesn’t receive the data tables without geometry. But to help understand your case, how would you expect BTA data to be received? Would it be a Table data with every integer as a row in this table?
image

Regarding the example that doesn’t receive data at all (Speckle): the reason is very technical, and related to how the majority of the connectors are structuring the objects. Generally, the geometry objects (e.g. Polyline) are expected to be contained in a List, rather than attached as a property directly. So, in your commit, the QGIS connector is trying to find a list of geometries under Geo property. I will need to see how to go about this! (UPD: will be fixed in 2.14, thanks for raising this issue!)

1 Like

Hey @Kateryna Thank you for your answer!
(BTA) is the Swedish abbreviation for (bruttototalarea) that is GEA (Gross External Area) in English, sorry for not translating beforehand.

The list of integers are the (BTA) of the geometries. I tried to use the (key & value) Speckle component in the sending process, but I couldn’t figure out how to “connect” the integers with the geometries! The datatrees are aligned though, so item(0) in the BTA list matches item(0) in the geometry list.

So my question is: how to associate the data with the geometries in the sending process? My goal is to have the building footprints in QGIS as one layer, with the BTA as (field) and their integers as the attribute values.

I see your pain! I’ve been there multiple times too :smiley:
Here are 2 ways to add custom attributes to Speckle Object in Grasshopper (you can see that the deconstructed objects have all attributes in the right place):

3 Likes