Frequently Asked Questions
Getting Started
How do I get an API license key?
Contact Eriksson Software to obtain an API license key:
- Email: support@erikssonsoftware.com
- Website: Contact form on the Eriksson Software website
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:
- Eriksson Beam not running - Start the desktop application first
- 10-minute timeout exceeded - Restart Eriksson Beam and connect within 10 minutes
- 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:
- Batch changes - Make all modifications before pushing once
- 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
ErikssonBeamFileManagerfor 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?
- Check this documentation
- Review Error Handling
- Contact Eriksson Software support
See Also
- Getting Started - Setup guide
- Connection Issues - Connection troubleshooting
- Data Issues - Data operation problems