FEA link example
This example links an FEA application to IDEA StatiCa Checkbot. It is built on the IdeaStatiCa.BimApiLink package. A small fake FEA application stands in for yours, so the example runs without any FEA software. If your application is written in native C++, see the C++ FEA link example: the same model and the same link, in C++/CLI.
The fake model is one corner of a steel frame: a 3 m column and a 5 m beam, both IPE200 in S 355, meeting at node 2. It has three load cases (self-weight, dead load and snow), four combinations of them, and the internal forces of both members for each load case.
What it shows
- Importing a connection: the user selects a node and the members that meet there.
- Converting nodes, members, cross-sections and materials to IDEA StatiCa objects.
- Importing load groups, load cases and combinations.
- Importing the internal forces of the members, which Checkbot turns into the loads of the connection.
Projects
| Project | What it is |
|---|---|
BimApiLinkFeaExample |
The link. Start your own link from a copy of it. |
FeaExampleApi |
The fake FEA application. Your link uses the API of your application instead. |
Start reading at CheckbotLink.cs, then Model.cs, then the Importers folder.
How the link works
CheckbotLink.Runstarts Checkbot. It registers one importer for each kind of object, andResultsImporterfor the internal forces.- When the user imports in Checkbot, Checkbot asks
Modelwhat is selected.Modelanswers with identifiers only. Each selected node becomes a connection of the selected members that meet there. - Checkbot then asks for each object by its identifier. BimApiLink passes the request to the importer of that kind of object. The importer reads the object from the FEA application and returns an IDEA StatiCa object.
Modelalso gives every combination of the model. Their load cases and load groups are imported with them.- Last, Checkbot asks
ResultsImporterfor the internal forces of the imported members, for every load case.
Every object is identified by its FEA id. Checkbot looks up cross-sections and materials by their names in the IDEA StatiCa library.
Some objects refer to others: a member to its cross-section, a cross-section to its material. The classes in the
BimApi folder keep only the id of the referenced object, and BimApiLink imports it when it reads the reference. An
importer can also get a referenced object itself with Get<T>, as LoadCaseImporter does for the load group.
Lengths are in metres. The fake application gives forces in kN and moments in kNm, and ResultsImporter converts them
to N and Nm. The internal forces are in each member's own axes, which MemberImporter passes on with the member.
Requirements
- Windows with IDEA StatiCa 26.1 installed.
- The .NET 10 SDK.
The link targets .NET Framework 4.8 and .NET 10. All packages come from nuget.org.
Run it
The link is a library. BimLinkExampleRunner, in the folder next to this one, is a small window that starts it.
- Build
examples/IdeaStatiCa-SDK-Examples.sln. - Start
BimLinkExampleRunner. - Select FEA, enter the path to Checkbot, for example
C:\Program Files\IDEA StatiCa\StatiCa 26.1\IdeaCheckbot.exe, and click Run IDEA StatiCa Checkbot. - Checkbot opens and asks for a new project. Keep the EN design code and create the project.
- Import the connections. Checkbot imports the column, the beam and one connection where they meet. Open the connection in IDEA StatiCa Connection to see the loads that come from the internal forces.
The Checkbot project is kept in the folder FeaExampleCheckbotProject next to the runner, and the next run opens it
again. Delete the folder to start over.
Make it your own
- Copy
BimApiLinkFeaExampleand rename it, for example toMyFeaLink. Its package references take their versions fromDirectory.Packages.propsat the root of this repository, so addVersion="26.1.0.5973"to each of them. - Replace
FeaExampleApiwith the API of your application.IFeaGeometryApi,IFeaLoadsApiandIFeaResultsApilist what the link needs from it. - Call
CheckbotLink.Runfrom a command in your application. Give it a writable folder for the Checkbot project, one per model, for example next to the model file.