Skip to Main Content
Need Support? Let’s guide you to the right answer or agent.
Status Needs review
Categories Snowflake
Created by Waqar Ahmed
Created on Feb 22, 2024

Feature User Data

With one of the last year's EngSim OKRs we've committed to figure out tracking important interoperability paths between specific Engineering Simulation applications.

An example workflow here would be

  • user A creating a Revit model
    > pushing that model to a local ISM file
    > forwarding that local ISM file to user B
    > user B pulling the model into STAAD, modifying it,
    and pushing the model to Bentley Infrastructure Cloud.

  • In our last week's release of iTwin Analytical Synchronizer we have added feature tracking metadata which should finally allow us to track such workflows.


As this is not a trivial case of feature tracking, a dashboard showcasing the data would be very beneficial for us to keep up more easily. If you could help us with this, could we have a call sometime this week to discuss it? I could present everything in more detail there.


@Steven, please let me know what time works for your team. I think the similar time box as your sprint reviews/town halls would work for us.


Above request came in via email
Below Waqar's initial remarks, same subject

[Yesterday 5:31 PM] Waqar Ahmed

Create Feature User Data (optional)
Initialize Feature User Data Map
FeatureUserDataMapP fud;

StatusInt status = LicenseClient_InitFeatureUserDataMap(&fud);

Add Feature User Data

StatusInt status = LicenseClient_AddFeatureUserData(fud, "Feature Data Key 1", "Feature Data Value 1");

status = LicenseClient_AddFeatureUserData(fud, "Feature Data Key 2", "Feature Data Value 2");

Note: Any number of key-value pairs can be added to the feature record, but data should only be added to answer a question about the use of the feature that will help Product Management make a decision. It's not meant to track every input to a feature.

Do not use Feature User Data to track personal information about the user and do not use it to track full file paths as that will skew the statistical results reported.

[Yesterday 5:31 PM] Waqar Ahmed

Normally Feature tracking is either a Feature Mark - i.e. count only or both a Mark and Capture Start and End time

[Yesterday 5:32 PM] Waqar Ahmed

then for each Feature you can optionally capture additional context in name, value pairs - which is referred to as Feature User Data Map.. I believe it is a separate table in feature tracking database which is linked with Feature ID


Haroldas will also reach out to you about it. I know many products including AutoPIPE track this Feature User Data


  • Attach files
  • Admin
    Hubert Gabel
    Reply
    |
    Feb 26, 2024

    Hey Hubert,


    the actual feature tracking is sent from iTwin Services Add-in (it's bundled in our new iTwin Analytical Synchronizer). Since we've just released it not long ago, there will not be a lot of data there yet (most valuable data will only come in after other applications (e.g. STAAD, RAM, etc.) release with our latest API, so now we've only have data involving iTwin Analytical Synchronizer 23.1.4.62.


    More on the data that we've just started reporting:


    With our push/pull features (Feature IDs below) comes metadata fields - trackedModel, exeName, exeVersion, previousProductName, previousProductVersion. trackedModel is a generated GUID that helps is identify a specific unknown model; exeName and exeVersion identifies which application is currently pushing; previousProductName and previousProductVersion identifies what application has pushed the model previously.

    Feature

    Feature GUID

    Local Sync: Push with UI

    b56322e5-1fb2-4f81-b145-b155778e1ae0

    Local Sync: Push

    8811b721-f54e-4c6e-9693-bf7b305dca8f

    Local Sync: Pull with UI

    2e324876-a007-4eda-a4b3-0c36f70426cd

    Local Sync: Pull

    94db757b-a917-4fd7-b1c4-00611ead78ca

    IModelHub: Push with UI

    73c9f78f-3dd5-4879-80d5-f516d08e3850

    iModelHub: Pull with UI

    716be840-819b-4f13-8544-0519c4cef793

    IModelHub: Push

    c696bd0f-299d-486e-b2b3-8334b34e6ed4

    iModelHub: Pull

    60c90da8-8fb2-45d2-9b2a-50a97ace1f6e


    So if we have a set like this for local push it would mean that a user has created model 837ffc3e-e2c6-4658-9cd8-c2ce78f5fd22 in STAAD and pushed it into a local file:

    trackedModel

    837ffc3e-e2c6-4658-9cd8-c2ce78f5fd22

    exeName

    STAAD.Pro

    exeVersion

    23.00.03.25

    previousProductName

    null

    previousProductVersion

    null


    Then if we have another local pull set like below we'll know that the model that the user previously created in STAAD and pushed to local file was pulled into RAM Elements:

    trackedModel

    837ffc3e-e2c6-4658-9cd8-c2ce78f5fd22

    exeName

    RAM Elements

    exeVersion

    23.00.01.95

    previousProductName

    STAAD.Pro

    previousProductVersion

    23.00.03.25


    Eventually this would allow use to create a directed weighted graph showing what paths between applications are used the most (and we can focus on improving them).
    In the end, for our case we need something specific to leverage the metadata that we've added.
    Thanks,Haroldas

  • Admin
    Hubert Gabel
    Reply
    |
    Feb 26, 2024

    Ah, it is Product ID 3105
    Engineering Applications\Structural Analysis\STAAD\iTwin Services Add-in (3105)

  • Admin
    Hubert Gabel
    Reply
    |
    Feb 26, 2024

    Product (ID): iTwin Analytical Synchronizer (1858)
    Deliverable: 1106423 iTwin Analytical Synchronizer 2023 Update 1
    Version: 23.1.4.62 | 23000100040062
    Release date: 22/02/2024 Released

    Deliverable: 1105060 iTwin Analytical Synchronizer 2023 Update 1
    Version: 23.1.3.42 | 23000100030042
    Release date: 15/12/2023 Released


  • Admin
    Hubert Gabel
    Reply
    |
    Feb 22, 2024

    [1:01 PM] Waqar Ahmed> It’s additional context for a feature which is optional, Maybe 5% of less will store it
    It’s a name, value pair you can store and an unlimited number of properties

    [1:02 PM] Hubert Gabel> Is it available in qlikview/qliksense? example will be helpful
    [1:02 PM] Waqar Ahmed> Not available. We had to ask data team to extract it as no report existed.

    What you normally see with FT is first level data which suffices most use cases .. this is context about each specific feature so it’s a level 2 data

    Don’t know if this is the correct table but same concept