Frequently Asked Questions

Frequently Asked Questions

Getting Started

How do I get an API license key?

Contact Eriksson Software to obtain an API license key:

What .NET versions are supported?

  • .NET Framework 4.7.2 or later
  • .NET 6.0 or later (with Windows)

What platform is required?

The API requires Windows and x86 platform target due to dependencies.

<PlatformTarget>x86</PlatformTarget>

Connection

Why can’t I connect to Eriksson Beam?

Most common causes:

  1. Eriksson Beam not running - Start the desktop application first
  2. 10-minute timeout exceeded - Restart Eriksson Beam and connect within 10 minutes
  3. Invalid API license key - Verify your API license key is correct

What is the 10-minute timeout?

Eriksson Beam only listens for API connections for 10 minutes after launch. This timeout:

  • Starts when Eriksson Beam opens
  • Is NOT reset by UI interactions
  • Requires restarting Eriksson Beam to reset

Can I connect to Eriksson Beam that’s already open?

Yes, use ErikssonBeamFinder:

var client = await ErikssonBeamFinder.GetFirstSupportedBeamClient(args);

Can I launch Eriksson Beam programmatically?

Yes, use ErikssonBeamLauncher:

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

Data Operations

Why did my data disappear after pushing?

You likely created a BeamDesign directly instead of pulling first:

// WRONG - causes data loss
var design = new BeamDesign();

// CORRECT - preserves existing data
var design = await client.PullBeamDesignerAsync();

Can I update just one field without pulling everything?

No. The API always pushes the complete BeamDesign. Always pull first to preserve existing data.

What units does the API use?

  • Length: Inches
  • Force: Pounds
  • Unless otherwise documented for specific properties

Are polygonal sections supported?

No, polygonal sections are not currently supported by the API.

Performance

Why are pushes slow?

Push operations serialize the entire design and update Eriksson Beam’s UI. To optimize:

  1. Batch changes - Make all modifications before pushing once
  2. Avoid repeated pushes - Don’t push after each small change
// FAST: Single push
design.Prop1 = val1;
design.Prop2 = val2;
await client.PushBeamDesignerAsync("", design);

// SLOW: Multiple pushes
design.Prop1 = val1;
await client.PushBeamDesignerAsync("", design);
design.Prop2 = val2;
await client.PushBeamDesignerAsync("", design);

How many files can I process at once?

Eriksson Beam can have multiple files open. For large batches, consider:

  • Processing in batches of 5-10 files
  • Using ErikssonBeamFileManager for automatic handling

Files

Can I create new project files?

Yes, use CreateProjects:

await client.CreateProjects(new[] { @"C:\Projects\new.ebf" });

Note: Created files are not automatically opened.

How do I save a project?

await client.SaveProject("projectName", @"C:\path\file.ebf", overwriteExistingFile: true);

How do I know which files are open?

var openProjects = await client.GetOpenBeamProjects();

Errors

What does "LicenseError" mean?

Your API license key is invalid, expired, or not authorized. Check:

  • API license key is correctly set (no typos)
  • Key hasn’t expired
  • Network connectivity for first-time validation

What does "InvalidRequest" mean?

The server rejected your request, usually due to:

  • Invalid property values
  • Project not found
  • Data validation failure

Check ex.Response.ErrorMessage for details.

Why do I get "ErikssonBeamNotRunningException"?

  • Eriksson Beam isn’t running
  • The 10-minute API window has expired
  • The specified process ID is wrong

Multiple Instances

Can I connect to multiple Eriksson Beam instances?

Yes, use different clients for different process IDs:

var client1 = await ErikssonBeamClient.AttemptConnection(args1);
var client2 = await ErikssonBeamClient.AttemptConnection(args2);

How do I find a specific instance?

Find by open file:

var client = await ErikssonBeamFinder.GetFirstClientWithFile("MyProject", args);

List all instances:

var processIds = await ErikssonBeamFinder.GetSupportedErikssonBeamInstances();

Security

How should I store my API license key?

Use environment variables (recommended):

var licenseKey = Environment.GetEnvironmentVariable("ERIKSSON_LICENSE_KEY");

Never hardcode API license keys in source code.

Is the API license key cached?

Yes, valid API license keys are cached for 7 days. The API works offline after initial validation.

Troubleshooting

How do I enable debug logging?

using Microsoft.Extensions.Logging;

var loggerFactory = LoggerFactory.Create(builder =>
{
    builder.AddConsole().SetMinimumLevel(LogLevel.Debug);
});
var logger = loggerFactory.CreateLogger<Program>();

var client = await ErikssonBeamClient.AttemptConnection(args, logger);

Where can I get help?

  1. Check this documentation
  2. Review Error Handling
  3. Contact Eriksson Software support

See Also

>