API Reference

API Reference

This section provides comprehensive documentation for the Eriksson Beam API, including architecture, connection methods, data operations, and the data model.

Architecture Overview

The Eriksson Beam API uses Named Pipes for inter-process communication (IPC). This provides fast, reliable communication between your application and Eriksson Beam.

Your ApplicationEriksson Beam
ErikssonBeamClientAPI Server
BeamDesign objectsNamed Pipes / JSONBeamDesign data

Communication Flow

  1. Client connects to Eriksson Beam via Named Pipes
  2. Requests are serialized as JSON and sent to the server
  3. Server processes the request (pull data, push changes, etc.)
  4. Response is serialized as JSON and returned to the client
  5. Client deserializes the response into .NET objects

Key Characteristics

AspectDetails
ProtocolNamed Pipes (Windows IPC)
SerializationJSON (Newtonsoft.Json)
AuthenticationAPI license key per request
ThreadingAsync/await throughout
PlatformWindows only (x86)

API Sections

Connection Methods

How to connect to Eriksson Beam:

ClassPurpose
ErikssonBeamLauncherLaunch fresh instance
ErikssonBeamFinderFind running instances
ErikssonBeamClientDirect connection
ErikssonBeamFileManagerBatch file operations

Data Operations

Read and write beam design data:

OperationDescription
Pulling DataRetrieve designs from Eriksson Beam
Pushing DataSend modifications back
Project ManagementList, save, create files

Data Model

The BeamDesign object structure:

SectionContents
ConcreteExtentsSection geometry
DesignCriteriaProject info, materials, settings
StructuralModelLoading, bearing, supports
ReinforcementPrestress, rebar, shear

Quick Reference

Namespaces

using ErikssonBeam.API.BeamClient;     // Client, Launcher, Finder
using ErikssonBeam.API.BeamDesigner;   // BeamDesign, section types

Minimal Example

var args = new ErikssonBeamLauncherArgs
{
    LicenseKey = Environment.GetEnvironmentVariable("ERIKSSON_LICENSE_KEY"),
    ExecutablePath = @"C:\...\ErikssonBeam.exe",
    FilesToOpen = new[] { @"C:\Projects\beam.ebf" },
    CloseErikssonBeamOnClientDisconnect = true
};

using var launcher = await ErikssonBeamLauncher.LaunchErikssonBeam(args);
var client = launcher.Client;

var design = await client.PullBeamDesignerAsync();
design.DesignCriteria.ProjectInformation.DesignerName = "Updated";
await client.PushBeamDesignerAsync("", design);

Important Concepts

API License Key

All API operations require a valid API license key:

var args = new ErikssonBeamLauncherArgs
{
    LicenseKey = Environment.GetEnvironmentVariable("ERIKSSON_LICENSE_KEY"),
    // ...
};

API license keys are validated against Eriksson Software’s license server and cached for 7 days. See License Setup for details on obtaining and configuring your key.

10-Minute Idle Timeout

Eriksson Beam only listens for API connections for 10 minutes after launch. This timeout is not reset by UI interactions. If connections fail, restart Eriksson Beam.

Pull-Before-Push

Always pull before modifying data to avoid overwriting existing values:

var design = await client.PullBeamDesignerAsync();  // Get current state
design.Property = newValue;                          // Modify
await client.PushBeamDesignerAsync("", design);     // Push back

Disposal

Always dispose connection objects:

using var launcher = await ErikssonBeamLauncher.LaunchErikssonBeam(args);
// or
client.Dispose();

Units

The API uses inches and pounds for most dimensional and force values. Verify units for specific properties in the data model documentation.

See Also