BricsCAD Licence Pooling
Quick answer: By default, when multiple licence levels are available on a Network License Server, seats are handed out in the order of the ID number in the licence file. You can control this more precisely by editing the bricsys.opt options file, using options like RESERVE, MAX, INCLUDE, and EXCLUDE to control who gets access to what. For reserving a specific licence level per user or group, an additional setup involving the RLM_PROJECT environment variable is available, this part is an IT department task, not something individual users configure themselves.
Editing Pooling Options
Two ways to do this:
- Edit the
bricsys.optfile directly, found in the Network License Server installation folder. - Through the web interface: go to
localhost:5054, click Status, then click bricsys in the OPTIONS column for the bricsys ISV row.
Whichever method you use, reread or restart the licence server afterwards for the change to take effect.
Commonly Used Options
| Option | What it does | Syntax | Example |
|---|---|---|---|
| GROUP | Defines a group of usernames | GROUP name list-of-usernames |
GROUP engineers userA userB userC |
| HOST_GROUP | Defines a group of hostnames | HOST_GROUP name list-of-hostnames |
HOST_GROUP firstFloor machineA machineB machineC |
| INTERNET_GROUP | Defines a group of IP addresses (wildcards allowed) | INTERNET_GROUP name list-of-ip-addresses |
INTERNET_GROUP networkGhent 192.168.1.* 192.168.2.* |
| RESERVE | Reserves a set number of seats for a specific user, host, or group | RESERVE num product user|host|group|host_group|internet|internet_group|project who [id=nnn] |
RESERVE 20 bricscad GROUP engineers id=nnn |
| MAX | Caps the number of seats available to a specific user, host, or group | MAX num product user|host|group|host_group|internet|internet_group|project who [id=nnn] |
MAX 5 bricscad HOST_GROUP firstFloor id=nnn |
| INCLUDE | Only allows the named user, host, or group to use the licence; everyone else is excluded | INCLUDE product user|host|group|host_group|internet|internet_group|project who [id=nnn] |
INCLUDE bricscad GROUP bricscadusers id=nnn |
| EXCLUDE | Blocks the named user, host, or group from using the licence | EXCLUDE product user|host|group|host_group|internet|internet_group|project who [id=nnn] |
EXCLUDE bricscad INTERNET_GROUP networkGhent 192.168.1.* id=nnn |
| TIMEOUT | Sets the inactivity timeout for a specific product (minimum 3600 seconds) | TIMEOUT secs |
TIMEOUT 3600 bricscad id=nnn |
| TIMEOUTALL | Sets the inactivity timeout for every licence on the server (minimum 3600 seconds) | TIMEOUTALL secs |
TIMEOUTALL 3600 |
A Configuration Mistake to Avoid
If reserved seats across multiple GROUPs add up to all the seats on the licence, only the first GROUP listed can actually get a licence. Every other group hits error -22, “All licenses in use,” even though seats were technically reserved for them too. When setting up RESERVE rules for several groups, make sure the numbers actually leave room for everyone you intend to cover.
Licence File Identifiers
Every licence file has an identifier, used to target pooling options at that specific licence:
- Activating a new network licence auto-generates an
_id=nnnfield, appended to the end of the licence file. The number itself can be changed if needed. - Upgrading an existing licence keeps its original identifier unchanged.
Adding [id=nnn] to any option above limits that option to the seats from the matching licence file only.
Reserving Specific Licence Levels with RLM_PROJECT
When multiple licence levels (for example, Lite and Pro) are activated on the same server, you can make sure specific users get a specific level by setting the RLM_PROJECT environment variable on their machine. This requires setup on both the server and each client, and is an IT department task.
On the server, reserve seats per project in bricsys.opt, referencing each licence file’s identifier:
RESERVE 5 bricscad PROJECT bc_lite id=xxxxxxxx
RESERVE 5 bricscad PROJECT bc_pro id=yyyyyyyy
On each client, a launch script sets RLM_PROJECT before starting BricsCAD, rather than users opening it directly. For Command Prompt (.CMD):
@echo off
set RLM_PROJECT=bc_lite
call "C:\Program Files\Bricsys\BricsCAD V26 en_US\bricscad.exe"
For PowerShell (.PS1):
$env:RLM_PROJECT = "bc_lite"
Start-Process -FilePath "C:\Program Files\Bricsys\BricsCAD V26 en_US\bricscad.exe"
Swap bc_lite for bc_pro in either script to launch at the other reserved level instead.
Because every seat is reserved this way, BricsCAD won’t get a licence at all if RLM_PROJECT is missing or doesn’t match one of the server’s reserved projects, it doesn’t fall back to a different level. Adjusting the RESERVE numbers up or down changes how many seats stay available outside this reserved system. RLM_PROJECT can also be combined with INCLUDE and EXCLUDE for more specific setups.
Frequently Asked Questions
What happens if reserved seats for multiple groups add up to all available seats? Only the first group listed gets access. The rest hit error -22, “All licenses in use,” despite having reservations set up.
What happens if a user’s RLM_PROJECT variable doesn’t match any reservation? If all seats are reserved by project, BricsCAD won’t get a licence at all, it doesn’t default to a different level.
Where does a licence’s ID number come from? It’s generated automatically the first time a network licence is activated, and stays the same through later upgrades.
Is RLM_PROJECT pooling something end users set up themselves? No. It’s an IT department task: reserving seats on the server and distributing the launch scripts that set the environment variable on each machine.
