BRX API
Pro or higher
Bricsys provides a C/C++ API called the "BRX API". BRX stands
for "BricsCAD Runtime eXtension". The BRX API is available for all supported product architectures
and operating systems. Some features and capabilities are not available in all operating systems
(see BRX API on Linux and Mac).
Code compatibility
BRX is source code compatible with ObjectARX, the standard C++ interface of AutoCAD. Plugin
developers can use the same source code files to build separate binary modules targeting each
CAD platform:
- compile and link with ObjectARX to run on AutoCAD
- compile and link the same source code with BRX to run on BricsCAD.
Note that it is not possible to load the same binary module on multiple platforms. A module
compiled with ObjectARX cannot load in BricsCAD, and a module compiled with BRX cannot
load in AutoCAD.
Features
Following is a partial list of features and functionality supported by the BRX API:
- core functionality including: AcRx, AcAp, AcCm, AcDb, AcEd, AcGe, AcGi, AcGs, AcUt, Ads
- Multiple Document Interface: AcApDocument, AcApDocumentIterator, AcApDocManager
- reactors: AcApDocManagerReactor, AcDbDatabaseReactor, AcEditorReactor
- custom objects and entities: classes derived from AcDbObject, AcDbEntity, and others
- overrules: AcRxOverrule and descendants
- transactions: AcDbTransactionManager, AcTransactionManager
-
input point processing: AcEdInputPointManager,
AcEdInputPointMonitor
- jigs: AcEdJig
- MFC based user interface extensions: AcUi and AdUi (Windows only)
- protocol extensions
- COM type library and interfaces callable from C++.
-
"undocumented" but popular ARX functions: acdbSetDbmod, acedPostCommand, acedEvaluateLisp,
ads_queueexpr, getCurrentPlotStyleName, GetListOfPlotStyles
- registry based demand loading for commands and object enablers
- Object Property Palette (OPM)
- B-modeler, code compatible with A-modeler
- Hidden Line (HLR) API
- Boundary Representation (BREP) API
- Image processing (ATIL) API
- Plot API (AcPl)
- Managed Wrapper Classes (.NET API)
- BRX-specific APIs: diagnostics, 3d constraints, civil, BIM, docking panels, and more
Please note that this list is only a representative subset of the complete API.
Version
BRX is source code compatible with recent ObjectARX versions, with some exceptions.
Where possible, BRX supports both newer and legacy interfaces. In
some cases, legacy interfaces have not yet been updated in BRX.
Compiling BRX applications
BRX modules, typically configured as unmanaged C++ extension DLLs, need to be compiled with
the same platform toolset used for the target version of BricsCAD. This information and other
details are provided in the BRX SDK itself:
- PortingManual.txt: platform toolset, changes, ARX porting instructions, etc.
- KnownDifferences.txt: subtle differences and how to work around them
- C++ OPM API.txt: an optional C++ alternative for the COM-based OPM API
- docs subfolder: a reference guide for all supported BRX functions
- samples subfolder: ARX/BRX based sample applications
Samples
A number of sample applications are installed as part of the main BricsCAD installation. In
the API subfolder you can find:
-
a BRX/C++ sample project that shows some features of the BRX
API (custom entity, dockable dialog, ...). The sample contains
build configurations targeting both BricsCAD and AutoCAD. The
code can be compiled with the BRX SDK and ObjectARX, and the
identical behavior can be checked on both CAD platforms.
-
C# and VB.NET sample projects demonstrating the managed
.NET API, including a C++/CLI mixed mode custom entity sample.
Quality Assurance
Bricsys has an extensive suite of automated tests to continuously monitor and test behaviors of
BRX functions. Every function is checked for normal operation and error return values. In this
way we can ensure correct behavior compatibility with the AutoCAD platform.
BRX SDK
The BRX SDK consists of:
- a set of code compatible C++ headers
- the necessary .lib files to link against
- documentation (reference guide, porting manual)
- sample applications
The BRX SDK is not installed with BricsCAD. The SDK is distributed as a separate download. Access
to the BRX SDK is available free of charge to registered plugin application developers. Visit the
Bricsys Developer Portal to learn more.
Note that the BRX SDK is not required for .NET plugin development. Plugins using the managed .NET API
simply need to reference the desired managed assemblies installed along with BricsCAD. Those
assemblies include:
- BrxMgd.dll (required)
- TD_Mgd.dll (required)
- TD_MgdBrep.dll (optional)
- TD_MgdDbConstraints.dll (optional)
F.A.Q.
Check the Bricsys Support Portal for answers to
frequently asked questions and troubleshooting information.
Final notes
-
The BRX API is only available for BricsCAD Pro and higher license levels. BRX is not available
in BricsCAD Lite or Shape.
- The BRX API is developed exclusively by Bricsys, and for BricsCAD.
© Bricsys NV. All rights reserved. |