Eriksson Beam API
Search Results for

    Show / Hide Table of Contents

    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 Application Eriksson Beam
    ErikssonBeamClient ↔ API Server
    BeamDesign objects Named Pipes / JSON BeamDesign 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

    Aspect Details
    Protocol Named Pipes (Windows IPC)
    Serialization JSON (Newtonsoft.Json)
    Authentication License key per request
    Threading Async/await throughout
    Platform Windows only (x86)

    API Sections

    Connection Methods

    How to connect to Eriksson Beam:

    Class Purpose
    ErikssonBeamLauncher Launch fresh instance
    ErikssonBeamFinder Find running instances
    ErikssonBeamClient Direct connection
    ErikssonBeamFileManager Batch file operations

    Data Operations

    Read and write beam design data:

    Operation Description
    Pulling Data Retrieve designs from Eriksson Beam
    Pushing Data Send modifications back
    Project Management List, save, create files

    Data Model

    The BeamDesign object structure:

    Section Contents
    ConcreteExtents Section geometry
    DesignCriteria Project info, materials, settings
    StructuralModel Loading, bearing, supports
    Reinforcement Prestress, 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

    License Key

    All API operations require a valid license key:

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

    Keys are validated against Eriksson Software's license server and cached for 7 days.

    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

    • Getting Started - Installation and first steps
    • Guides - Best practices and common tasks
    • Troubleshooting - Problem resolution
    • Edit this page
    In this article
    Back to top Generated by DocFX