Table of Contents

IdeaStatiCa.ConnectionApi

The C# library for the Connection Rest API 5.0

  • API version: 5.0
  • SDK version: 26.1.0.4245

IDEA StatiCa Connection API, used for the automated design and calculation of steel connections.

Frameworks supported

  • .NET Standard >=2.0

Installation

NuGet package

We recommend installing the package to your project using NuGet. This will ensure all dependencies are automatically installed. See IdeaStatiCa.ConnectionApi

Building from source

Generate the DLL using your preferred tool (e.g. dotnet build) or opening the avaliable Visual Studio solution (.sln) and building. See ConRestApiClient.sln

Projects can be created by the template or the the wizard in Visual Studio. See Connection Rest API client wizard.

Usage

ClientApiClientFactory manages creation of clients on the running service. We currently only support connecting to a service running on a localhost (eg. 'http://localhost:5000/').

To start the service, manually navigate to the "C:\Program Files\IDEA StatiCa\StatiCa 26.0" folder. Using CLI:

IdeaStatiCa.ConnectionRestApi.exe -port:5193

Parameter -port: is optional. The default port is 5000.

// Connect any new service to latest version of IDEA StatiCa.
ConnectionApiServiceAttacher clientFactory = new ConnectionApiServiceAttacher('http://localhost:5000/');
IConnectionApiClient conClient = await clientFactory.CreateApiClient();

Getting Started

The below snippet shows a simple getting started example which opens an IDEA StatiCa Connection project and performs the calculation.

using System.Collections.Generic;
using System.Diagnostics;
using IdeaStatiCa.Api.Common;
using IdeaStatiCa.Api.Connection.Model;
using IdeaStatiCa.ConnectionApi;

namespace Example
{
    public class Example
    {
        private static CancellationToken cancellationToken;

        public static async Task Main()
        {
            string ideaConFile = "test1.ideaCon";

            string ideaStatiCaPath = "C:\\Program Files\\IDEA StatiCa\\StatiCa 26.0"; // path to the IdeaStatiCa.ConnectionRestApi.exe

            using (var clientFactory = new ConnectionApiServiceRunner(ideaStatiCaPath))
            {
                // create ConnectionApiClient
                using (var conClient = await clientFactory.CreateApiClient())
                {
                    // open the project and get its id
                    var projData = await conClient.Project.OpenProjectAsync(ideaConFile, cancellationToken);

                    if (!projData.Connections.Any())
                    {
                        return;
                    }

                    // request to run plastic CBFEM for all connections in the project
                    ConCalculationParameter conCalcParam = new ConCalculationParameter()
                    {
                        AnalysisType = ConAnalysisTypeEnum.Stress_Strain,
                        ConnectionIds = projData.Connections.Select(c => c.Id).ToList()
                    };

                    var cbfemResult = await conClient.Calculation.CalculateAsync(projData.ProjectId, conCalcParam, 0, cancellationToken);
                    await conClient.Project.CloseProjectAsync(projData.ProjectId);
                }
            }
        }
    }
}

Documentation for API Endpoints

The ConnectionApiClient wraps all API endpoing controllers into object based or action baseds API endpoints.

Methods marked with an ^ denote that they have an additional extension in the Client.

CalculationApi

Method Description
Calculate Runs CBFEM calculation and returns the summary of the results.
CalculateConnection Runs CBFEM calculation of a single connection and returns the summary of the results.
GetConnectionRawJsonResults Runs CBFEM calculation of a single connection and gets a JSON string which represents its raw CBFEM results (an instance of CheckResultsData).
GetRawJsonResults Gets JSON string which represents raw CBFEM results (an instance of CheckResultsData).
GetResults Gets detailed results of the CBFEM analysis.

CalculationJobsApi

Method Description
CancelCalculationJob Requests cancellation of an asynchronous calculation job: the in-flight solver process is killed and remaining connections are skipped. Connections whose solve was interrupted stay not-calculated; already completed connections keep their results. Idempotent — cancelling a finished job leaves it unchanged.
GetCalculationJob Gets the current state of an asynchronous calculation job: its status, the connection currently being calculated with its per-load-case solver progress, and — once finished — the result summaries.
StartCalculation Starts an asynchronous CBFEM calculation job for the given connections.
StartConnectionCalculation Starts an asynchronous CBFEM calculation job for a single connection.

ClientApi

Method Description
ConnectClient Connects a client to the ConnectionRestApi service and returns a unique identifier for the client.
GetVersion Gets the IdeaStatica API assembly version.

ConnectionApi

Method Description
CopyConnection Creates a copy of an existing connection in the project.
CreateEmptyConnection Adds a new empty connection to the project.
DeleteConnection Deletes a specific connection from the project.
GetConnection Gets data about a specific connection in the project.
GetConnectionTopology Gets the topology of the connection in JSON format.
GetConnections Gets data about all connections in the project.
GetProductionCost Gets the production cost of the connection.
UpdateConnection Updates data of a specific connection in the project.

ConnectionLibraryApi

Method Description
GetDesignItemPicture Retrieves the picture associated with the specified design item as a PNG image.
GetDesignSets Retrieves a list of design sets available for the user.
GetTemplate Retrieves the template associated with the specified design set and design item.
Propose Proposes a list of design items for a specified connection within a project.
PublishConnection Publish template to Private or Company set.

ConversionApi

Method Description
ChangeCode Changes the design code of the project.
GetConversionMapping Gets default conversion mappings for converting the project to a different design code.

ExportApi

Method Description
ExportDWG^ Exports the connection to DWG format. Internally opens the project on the cloud Viewer, starts a Forge work item via the async DWG flow, blocks until completion (up to 10 minutes), then streams the generated DWG. The client does not need to pass any authentication — the ConnectionRestApi reuses the IDEA license access token from the Credential Manager (via AuthenticatedHttpRequestsDelegatingHandler) when calling the Viewer's authenticated DWG endpoints. User identity (email) is part of that JWT.
ExportIFC^ Exports the connection to IFC format.
ExportIom Exports the connection to XML which includes the OpenModelContainer (https://github.com/idea-statica/ideastatica-public/blob/main/src/IdeaRS.OpenModel/OpenModelContainer.cs).
ExportIomConnectionData Gets the ConnectionData for the specified connection (https://github.com/idea-statica/ideastatica-public/blob/main/src/IdeaRS.OpenModel/Connection/ConnectionData.cs).

LoadEffectApi

Method Description
AddLoadEffect Adds a new load effect to the connection.
CalculateLoadExtremes Calculates load extremes for the connection and keeps only the critical load effects active.
DeleteAllLoadEffects Deletes every load effect in the specified connection, together with their internal forces.
DeleteLoadEffect Delete load effect loadEffectId.
GetLoadEffect Gets load impulses from the specified load effect.
GetLoadEffects Gets all load effects defined in the specified connection.
GetLoadSettings Get Load settings for connection in project.
SetLoadSettings Set Load settings for connection in project.
UpdateLoadEffect Update load impulses in conLoading.

MaterialApi

Method Description
AddBoltAssembly Add bolt assembly to the project. Accepted names come from GET .../materials/bolt-assemblies/library.
AddCrossSection Adds a library cross-section (by its MPRL name and material) to the project.
AddMaterialBoltGrade Adds a material to the project.
AddMaterialConcrete Adds a material to the project.
AddMaterialHeadedStudGrade Adds a material to the project.
AddMaterialReinforcement Adds a material to the project.
AddMaterialSteel Adds a material to the project.
AddMaterialWeld Adds a material to the project.
AddParametricCrossSection Creates a parametric cross-section (welded, boxed, cold-formed, parametric rolled) from its shape type and dimensions. Dimension ids are the stable parameter ids the section GET exposes; dimensions not named keep the shape's defaults.
AddPin Add pin to the project. Pins are available only for the ECEN design code; list the accepted names via GET .../materials/pin/library.
GetAllMaterials Gets materials used in the specified project.
GetBoltAssemblies Gets bolt assemblies used in the specified project.
GetBoltGradeMaterials Gets materials used in the specified project.
GetConcreteMaterials Gets materials used in the specified project.
GetCrossSection Gets one cross-section of the project: the same object the listing returns for it.
GetCrossSectionGeometry Gets the evaluated outline geometry of one cross-section: per component the closed outline and the openings as ordered chains of line/arc segments, with the material the component is made of.
GetCrossSections Gets the cross-sections of the project: id, display name and the definition of each (library / parametric / custom). The evaluated outline of a section is served by cross-sections/{cssId}/geometry.
GetHeadedStudGradeMaterials Gets materials used in the specified project.
GetMaterialLibrary Lists the MPRL names available in the material library for the project's design code.
GetParametricCrossSectionShapeTemplate The fill-in template of a parametric shape: every dimension with its stable id, its stable code name (e.g. "wH") and the shape's default value, in SI units. Change the values you care about, set the material, and POST it to cross-sections/parametric.
GetParametricCrossSectionShapes Lists the shape types the parametric cross-section endpoints accept (e.g. "Iw", "Tw", "CHSPar"). Get a shape's fill-in template from cross-sections/parametric/shapes/{shapeType}.
GetPins Gets pins used in the specified project.
GetReinforcementMaterials Gets materials used in the specified project.
GetSteelMaterials Gets materials used in the specified project.
GetWeldingMaterials Gets materials used in the specified project.
UpdateParametricCrossSection Replaces the definition of parametric cross-section cssId with the given one — a full replacement: dimensions not named revert to the shape's defaults, so send the complete definition obtained from the section GET. Answers 409 when the id stores a library or general section.

MemberApi

Method Description
AddMember Adds a new member to the connection.
DeleteMember Deletes the specified member from the connection.
GetMember Gets information about the specified member in the connection.
GetMembers Gets information about all members in the connection.
SetBearingMember Set bearing member for memberId.
UpdateMember Updates the member in the connection with the provided data.

OperationApi

Method Description
AddAnchorGridOperation Adds a new anchor grid operation to the connection.
AddBoltGridOperation Adds a new bolt grid operation to the connection.
AddContactGridOperation Adds a new contact grid operation to the connection.
AddContactOperation Adds a new contact operation to the connection.
AddCutOperation Adds a new cut operation to the connection.
AddNegativeMemberOperation Adds a new negative member operation to the connection.
AddNegativePlateOperation Adds a new negative plate operation to the connection.
AddPinGridOperation Adds a new pin grid operation to the connection.
AddPlateCutOperation Adds a new plate cut operation to the connection.
AddStiffeningMember Adds a new stiffening member operation to the connection.
AddStiffeningPlate Adds a new stiffening plate operation to the connection.
AddWeldOperation Adds a new weld operation to the connection.
AddWorkPlaneOperation Adds a new work plane operation to the connection.
DeleteOperations Delete all operations for the connection.
GetAnchorGridOperation Returns the Anchor Grid operation with the given id, with all fields populated.
GetAnchorGridOperations Returns all Anchor Grid operations in the connection.
GetBoltGridOperation Returns the Bolt Grid operation with the given id, with all fields populated.
GetBoltGridOperations Returns all Bolt Grid operations in the connection.
GetCommonOperationProperties Gets common operation properties.
GetContactGridOperation Returns the Contact Grid operation with the given id, with all fields populated.
GetContactGridOperations Returns all Contact Grid operations in the connection.
GetContactOperation Returns the Contact operation with the given id, with all fields populated.
GetContactOperations Returns all Contact operations in the connection.
GetCutOperation Returns the Cut operation with the given id, with all fields populated.
GetCutOperations Returns all Cut operations in the connection.
GetNegativeMemberOperation Returns the Negative Member operation with the given id, with all fields populated.
GetNegativeMemberOperations Returns all Negative Member operations in the connection.
GetNegativePlateOperation Returns the Negative Plate operation with the given id, with all fields populated.
GetNegativePlateOperations Returns all Negative Plate operations in the connection.
GetOperations Gets the list of operations for the connection.
GetPinGridOperation Returns the Pin Grid operation with the given id, with all fields populated.
GetPinGridOperations Returns all Pin Grid operations in the connection.
GetPlateCutOperation Returns the Plate Cut operation with the given id, with all fields populated.
GetPlateCutOperations Returns all Plate Cut operations in the connection.
GetStiffeningMemberOperation Returns the Stiffening Member operation with the given id.
GetStiffeningMemberOperations Returns all Stiffening Member operations in the connection.
GetStiffeningPlateOperation Returns the Stiffening Plate operation with the given id, with all fields populated.
GetStiffeningPlateOperations Returns all Stiffening Plate operations in the connection.
GetWeldOperation Returns the Weld operation with the given id, with all fields populated.
GetWeldOperations Returns all Weld operations in the connection.
GetWorkPlaneOperation Returns the Work Plane operation with the given id, with all fields populated.
GetWorkPlaneOperations Returns all Work Plane operations in the connection.
PreDesignWelds Pre-designs welds in the connection.
UpdateAnchorGridOperation Replaces an Anchor Grid operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateBoltGridOperation Replaces a Bolt Grid operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateCommonOperationProperties Updates common properties for all operations.
UpdateContactGridOperation Replaces a Contact Grid operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateContactOperation Replaces a Contact operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateCutOperation Replaces a Cut operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateNegativeMemberOperation Replaces a Negative Member operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateNegativePlateOperation Replaces a Negative Plate operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdatePinGridOperation Replaces a Pin Grid operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdatePlateCutOperation Replaces a Plate Cut operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateStiffeningMemberOperation Replaces a Stiffening Member operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateStiffeningPlateOperation Replaces a Stiffening Plate operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateWeldOperation Replaces a Weld operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.
UpdateWorkPlaneOperation Replaces a Work Plane operation (PUT semantics). Target id is taken from request.Id; returns 404 when no operation with that id exists in the connection.

ParameterApi

Method Description
CreateParameter Creates a parameter in the connection. The expression is evaluated before the parameter is stored, and the request is rejected if it cannot be evaluated - an unknown identifier, a syntax error, a reference to the parameter being created. It must therefore reference only parameters that already exist, so a set of dependent parameters is created driver-first. Bounds are checked, not enforced: a value outside the bounds given in the same request is created and applied, and reported with a warning status and a message saying which bound it exceeds - the same answer a later update of that value gives.
CreateParameterLink Links a parameter to a model property so the parameter drives it. Name the owner exactly as the linkable-properties catalog reports it and pass its propertyId unchanged. A link is deliberately type-agnostic: the parameter's type is not checked against the property's valueType, because an Expression parameter can evaluate to any type and the value a parameter yields is only known once it is evaluated. A parameter whose value the property cannot take is reported by the engine when the parameters are applied, not when the link is created - so match the catalog's valueType when choosing which parameter to link.
DeleteParameter Deletes one parameter and every link through which it drove a model property.
DeleteParameterLink Removes a parameter-to-property link. The parameter is kept, and the property retains the value the parameter last applied.
DeleteParameters Delete all parameters and parameter model links for the connection connectionId in the project projectId.
EvaluateExpression Evaluate the expression and return the result. For more details see documentation about parameters: https://developer.ideastatica.com/docs/api/api_parameters_getting_started.html or https://developer.ideastatica.com/docs/api/api_parameter_reference_guide.html
GetLinkableProperties Lists every model property of the connection that a parameter can be linked to, across operations, members and the library items the connection edits (cross-sections, materials, bolt assemblies). Each row names its owner. The list is not filtered by what the Design tab currently shows: deciding that needs the desktop editor context, which the service does not have. Some rows therefore belong to a property the application hides for the operation's present configuration, and linking a parameter to one of those drives a value the design does not use.
GetMemberLinkableProperties Lists the model properties of one member that a parameter can be linked to.
GetOperationLinkableProperties Lists the model properties of one operation that a parameter can be linked to.
GetParameterLinks Lists the parameter-to-property links of the connection.
GetParameters Gets all parameters defined for the specified project and connection.
Update Updates parameters for the specified connection in the project with the values provided.

PresentationApi

Method Description
GetDataScene3D Returns data for Scene3D visualization.
GetDataScene3DText Returns serialized data for Scene3D in JSON format.

ProjectApi

Method Description
CloseProject Closes the project and releases resources in the service.
CreateEmptyProject^ Creates a new empty IdeaCon project with no connections.
DownloadProject^ Downloads the current IdeaCon project from the service, including all changes made by previous API calls.
GetActiveProjects Gets the list of projects in the service that were opened by the client connected via M:IdeaStatiCa.ConnectionRestApi.Controllers.ClientController.ConnectClient.
GetProjectData Get data of the project.
ImportIOM^ Create the IDEA Connection project from IOM provided in xml format. The parameter 'containerXmlFile' passed in HTTP body represents : IdeaRS.OpenModel.OpenModelContainer which is serialized to XML string by IdeaRS.OpenModel.Tools.OpenModelContainerToXml
OpenProject^ Opens an IdeaCon project from the provided file.
UpdateFromIOM^ Update the IDEA Connection project by IdeaRS.OpenModel.OpenModelContainer (model and results). IOM is passed in the body of the request as the xml string. IdeaRS.OpenModel.Tools.OpenModelContainerToXml should be used to generate the valid xml string
UpdateProjectData Updates ConProjectData of project.

ReportApi

Method Description
GenerateHtmlZip^ Generates a report for the specified connection in PDF, Word, or HTML zip format.
GeneratePdf^ Generates a report for the specified connection in PDF, Word, or HTML zip format.
GeneratePdfForMutliple^ Generates a report for multiple connections in PDF or Word format.
GenerateWord^ Generates a report for the specified connection in PDF, Word, or HTML zip format.
GenerateWordForMultiple^ Generates a report for multiple connections in PDF or Word format.

SettingsApi

Method Description
GetSettings Gets setting values for the project.
UpdateSettings Updates one or multiple setting values in the project.

TemplateApi

Method Description
ApplyTemplate Apply the connection template applyTemplateParam on the connection connectionId in the project projectId.
CreateConTemplate Create a template for the connection connectionId in the project projectId.
CreateTemplateFromConnection Create a reusable connection template from connectionId with structured metadata. Captures the connection's parametric design — operations, parameters, parametric links, analysis info, loads and clipping/section data — and returns it as a contemp payload alongside metadata inherited from the source connection (design code, version, manufacturing type, member typology, and operation/parameter/link counts).
Delete Delete specific template.
DeleteAll Delete all templates in connection.
Explode Explode specific template (delete parameters, keep operations).
ExplodeAll Explode all templates (delete parameters, keep operations).
GetDefaultTemplateMapping Get the default mappings for the application of the connection template passed in templateToApply on connectionId in the project projectId.
GetTemplateCommonOperationProperties Get common properties for specific template.
GetTemplateInConnection Retrieves a specific template by its ID for a given connection within a project.
GetTemplatesInConnection Retrieves a list of templates associated with a specific connection within a project.
LoadDefaults Load parameter defaults for specific template.
UpdateTemplateCommonOperationProperties Set common properties for specific template.

Documentation for Models

Documentation for Authorization

Endpoints do not require authorization.

Notes

This C# SDK is automatically generated by the OpenAPI Generator project: