ETABS Connector Issue with Specklepy

Hello Community,

I’m running into an issue when I try to receive a structural analysis model object with operations.receive . Currently in my code when I try to receive object data for RevitInstance it works fine with no issues, but as soon as I try to receive object data from a structural analysis model I’m getting the following error below although the sourcing of the objectId happens the exact same way and I’ve verified the objectId through calling the ThreadHistory query in the GraphQL API explorer . I’m still getting that the objectId hasn’t been found when I place it in the operations.receive though. I have a theory that it might be from an SQLite thread issue because I am getting another error message with the first one that can be found below, but why is this happening for the structural analysis models and not the Revit Models. For context that Structural Analysis model was imported from ETABS connector while the RevitModel was imported from the Revit connector. I’ve attached a screenshot of where the error is occurring in my code it’s specifically happening in the operations.receive

For more details on the Error and Code is typed below due to 1 media limit for new users. Check below:

transport = ServerTransport(client=self.client, stream_id=stream_id)
obj = operations.receive(obj_id=object_id, remote_transport=transport)

The error shown is correct. There is no object with that ID in the project. You can confirm in a logged-in account with a URL in the form of: https://{{SERVER}}/projects/{{PROJECT_ID}}/models/{{OBJECT_ID}}

So the question regarding your code is, how are you retrieving that ID?

You mentioned ThreadHistory, but I don’t recognise it from the graphql API.


very crudely this gets you all the data from a specific version (latest on a project)

latest_version = client.commit.list( project_id, limit=1 )[0]
obj_id = latest_version.referencedObject
version_data = operations.receive(
    obj_id=obj_id, 
    remote_transport=server_transport
)
1 Like