Struct4U Speckle Connector

Hi everyone,
(Especially Structural Engineers)

We have just been started to create a connector between Speckle and XFEM4U 2023. This a modern 3D FEM/FEA program for concrete, steel and timber. If you have any tips & tricks, we are very much interested!

Many thanks in advance!

Have a nice day everyone!

Maarten Vroegindeweij
Rob Baaij
Jonathan van der Gouwe

3 Likes

Amazing to hear, Maarten.

We’re thrilled to support these efforts as Specklers double down on making the platform robust to support you.

I’m not very familiar with XFEM4U, but I see that Rob is the founder, so you are already off to a great start. I don’t see a developer platform for Struct4U, so I presume you are benefiting from internal support from Rob and his team.

Keep in touch here in the community to share progress updates, problems and deep philosophical questions. Feel free to contact me directly if you can’t “code in the open”; we’ll work out who best to help if you need it.

Happy hacking :speckle:

—-
The first tip I’d offer is to start with element conversion with a basic send wrapper. But, maybe you are already that far along :slight_smile:

2 Likes

We have some progress.

5 Likes

:heart_eyes: amazing, keep it up!

How did you go about it? Did you use .NET or Python? Could you use any of our existing UIs?

:+1: We used Python. Currently using Mesh. Now working on the Breps. And adding Structural Properties.

3 Likes

Regarding SpecklePy: Is it correct that there are less objects available in SpecklePy compared with .NET? Especially regarding the Speckle.Objects. In NuGet there are much more functions and classes available.
Is there any way to use these in Python?

Bringing alignment between Core.Objects in .NET and specklepy is an active project. You are correct that it isn’t a complete mirror.

2 Likes

As @jonathon said, the implementation coverage is not 100%, but you can receive data sent from .net connectors.
The missing types will not be converted into the proper python classes (since they are not implemented) but we try to be nice and convert data into Speckle Base objects.
What this means is, you can access every (nested) attribute, but you won’t get type safety and code editor niceties.

Also, please let us know what types are missing and we can prioritize their implementation.

2 Likes

Hi @gjedlicska

many thanks for quick response, help and kind offer!

Some elements from Speckle.Objects like:
Objects.BuiltElements.Revit.RevitColumn
Objects.BuiltElements.Revit.RevitLevel
Objects.BuiltElements.Revit.RevitWall

And others from SpeckleCoreGeometry I think.

But I cannot find a list or XML of all classes online at the NuGet Package Explorer. Perhaps I missed something but is er there somewhere online a full list of all the available classes of these .NET packages?

many many thanks again for your quick response and help.

kind regards.

1 Like

The best place to look at, is the actual .NET class definitions here: speckle-sharp/Objects/Objects at main · specklesystems/speckle-sharp · GitHub

Instead of generating a Objects.BuiltElements.Revit.RevitColumn from the Struct4U connector, you should consider using the Speckle types such as Objects.BuiltElements.Column (or even creating Objects.BuiltElements.Struct4U.Struct4UColumn if needed).

This will guarantee higher compatibility with other non-Revit Connectors. And in case these parent classes don’t have all the properties needed, we can look at evolving the schema by moving or “graduating” these props from the child Revit classes to the parent Speckle class.

Hope it makes sense - and apologies we have not yet documented this!

3 Likes

5 Likes