Skip to Main Content
Need Support? Let’s guide you to the right answer or agent.
Categories Acquisition
Created by Ed Krkoska
Created on Sep 12, 2024

PS Acquisition Service cannot work against any schema other than Process Physical and Process Functional.

The existing PS Acquisition Service cannot work against any schema other than Process Physical and Process Functional.

While BECS is calling an API, “iModel.Acquisition.Service”, we are having an issue using the PS Acquisition Service (Swagger UI (bentley.com)) to update a property of an existing item in an iModel. It is throwing an error:

Invalid ECClass in ECSQL: ECClass 'TRANSFORM3D' is not supported in ECSQL as it is neither an entity class nor a relationship class. | stack: BE_SQLITE_ERROR: Invalid ECClass in ECSQL: ECClass 'TRANSFORM3D' is not supported in ECSQL as it is neither an entity class nor a relationship class. at ECSqlStatement.prepare (/app/main.js:50911:19) at BriefcaseDb.prepareStatement (/app/main.js:55874:14) at BriefcaseDb.withPreparedStatement (/app/main.js:55368:109) at PrimitiveTypeHelper.readPropertiesMetaData (/app/main.js:1419:12) at /app/main.js:1405:22 at BriefcaseDb.withPreparedStatement (/app/main.js:55371:25) at PrimitiveTypeHelper.initialize (/app/main.js:1402:12) at Conversion.loadAndInitialize (/app/main.js:902:51) at Conversion.create (/app/main.js:894:26) at PSSynchronizeAgent.run (/app/main.js:774:58)

Transform3D is a struct class and if you debug you’ll see that somewhere in the call stack ECDb is only catering for Entity and Relationship classes.

  • Mehreen Javaid
    Reply
    |
    Oct 4, 2024

    Also, @Rob Harper, It would be worthwhile supporting this as it would allow us to extend BECS iModel update usecases to other disciplines and also non Process BIS schemas.

  • Mehreen Javaid
    Reply
    |
    Oct 4, 2024

    Hello @Rob Harper, this issue came to light recently when trying to update OpenPlant_3D schema elements in the iModel using the PS Acquisition Service API called via BECS.

    The issue is reproducible using the Swagger UI as well, and is due to the presence of Struct properties in the class even if they are not being edited. Since we can sync the struct properties to the iModel already, we can restrict the editing of struct properties if needed, but still allow users to update the other properties.

  • Admin
    Rob Harper
    Reply
    |
    Sep 16, 2024

    @Mehreen Javaid Sameer suggested that you may have another use case around this item - can we discuss?