BIM LISP-API


Since V17.2.07, BricsCAD LISP provides a dedicated interface for the BIM functionality (requires.Platinum license with BIM extension).
This new API part is designed for simplicity, flexibility and following the usual AutoLISP logic in naming, arguments, behaviour and results.

As BIM functionality requires the BricsCAD Platinum license level, with the BIM extension being installed + licensed, the BIM LISP API is also available for this context only; using a lower-level license (or when disabled i.e. by RunAsLevel=0/1), the API module is not active, and all BIM LISP API functions will work in a "no-operation" mode.

As BIM development constantly continues, the BRX and LISP APIs will also expand, provide more functionality and also incorporate the ideas and feedback from third party developers.

How to verify the License Level ?


There are 2 Lisp functions available : (bcad$LicenseLevels) and (vle-licenselevel), which both use identical implementation.
If BIM is available, the returned list will contain the string "BIM".
"RunAsLevel" setting is also respected in result list.

How to activate the BIM LISP API ?


As the LISP function set for BIM is implemented using the BRX core system, it is required to explicitly load / activate the BIM LISP interface functions (somewhat similar to required (vl-load-com) under AutoCAD AutoLISP) using :

(vl-load-bim)


If all context conditions (Platinum + BIM licenses) are met, it will load the extension and return T (or NIL if the BIM API part is not available).

Some general hints & rules


"entity name" usage : in all cases, when a functions requires an "entity name", both "classic ename" and "vla object" are always valid and supported.

"object identification" : in BIM concept, all objects have "names" (as clear-speech strings), this applies for buildings, stories, composition, materials, and so on; therefore, also the BIM LISP interface follows that concept, and all BIM related objects are identified by their string "names";
this significantly simplifies client code (no special Lisp object types, and type verification, necessary).

Note : all identification strings, name strings, type strings etc. are *ALWAYS* case-sensitive (might be more comfortable, using case-insensitive strings, in future BIM versions) !


The BIM API covers the following functional areas :



symbolic Constants for "Element Type"

symbolic Constants for "Object Type"

symbolic Constants for "Property Categories"


symbolic Constants for "Room Representation"








Creator Functions

Classification Functions



Property Functions

Query Functions

GUI + Dialog Functions






PropertyNameSpace Functions

PropertySet Functions




V21 Changes + Additions


With V21, the "Rooms" concept, as used in V20 and before, is now replaced by the more universal concept of "Spaces".
Therefore, with V21 the LISP BIM interface gets some more functions related to "Spaces";
but the LISP BIM API tries to handle rooms and spaces as identical, as far as possible.

For more details, please see the new LISP functions related to "Spaces".




©  Bricsys NV. All rights reserved.