Automatically get ESO properties ApplicationInternalName

Hi, community, I’m looking for a method to get the variable outputs (Shared Parameters from Revit) from ESO component automatically merge ,another words: track all the shared parameters outputs of ESO node and connect them to merge component). I want the script to be able to adapt to different shared parameters count and names and automatically get only shared parameters properties:


The reason for this is that I build my script based on Revit Shared parameters and if I use different revit project the unique parameter identificators will be different, so the script will broke. I feel like there should be some way, like “property by Key” but key should be found with “text match” or something…
May be an option to extend speckle object properties as Text?? So I can then use “text match” finding properties that have “-” symbol in key and later put them as Keys to “SO Value by Key”?

Please, help with advice :pray:

1 Like

Hi @Mykyta_Onopko!

Well, there’s no direct component to do this (although it has been requested internally, and possibly by the community, before). But that doesn’t mean it’s not possible!

You’ll just have to create a short (2 line) c#/python script, following our guide here Grasshopper | Speckle Docs

Once that’s setup, you can get the names of all properties in an object using this method:

import Speckle.Core.Models.Base as Base

a = speckleObject.GetMemberNames()

Speckle-GetObjectKeys.gh (9.1 KB)

4 Likes

Thank you @AlanRynne! Thats exactly what i needed. I should definitely start with Python /C# :smiley:

2 Likes