BRX
Pro or higher
BricsCAD provides a C/C++ API, called the "BRX API". BRX stands
for "BricsCAD Runtime eXtension".
Note concerning BRX under Linux see: BRX
Linux
Code compatibility
BRX is 100% code compatible with the standard C++ interface of
AutoCAD, ObjectARX. As an application developer, you only need to
maintain one set of source code for your modules, to serve multiple
CAD platforms:
- compile and link your code with ObjectARX to run on
AutoCAD
- compile and link the same code with the BRX SDK to run on
BricsCAD. In a project, this can be set up easily through multiple
build configurations.
Besides different header include paths and lib paths, the
settings can be identical. Note that binary compatibility is not
available: a module compiled with ObjectARX can not load in
BricsCAD, and visa versa a module compiled with the BRX SDK can not
load in AutoCAD.
Features
A glimpse of the various items supported in BRX:
- common basic functionality, in categories such as AcRx, AcAp,
AcCm, AcDb, AcEd, AcGe, AcGi, AcGs, AcUt, Ads, ...
- Multiple Document Interface: AcApDocument,
AcApDocumentIterator, AcApDocManager, ...
- reactors: AcApDocManagerReactor, AcDbDatabaseReactor,
AcEditorReactor, ...
- custom objects and entities (your objects derived from
AcDbObject, AcDbEntity, ... )
- overrules: AcRxOverrule, ...
- transactions: AcDbTransactionManager, AcTransactionManager,
...
- input point processing: AcEdInputPointManager,
AcEdInputPointMonitor
- jigs: AcEdJig
- MFC based user interface extensions: AcUi and AdUi
categories
- protocol extensions
- COM interfaces callable from C++. The COM API of BricsCAD, like
BRX, is code compatible with AutoCAD. The necessary *.h, *.c and
*.tlb files are included in the BRX SDK.
- several "undocumented" but popular ARX functions, such as
acdbSetDbmod, acedPostCommand, acedEvaluateLisp, ads_queueexpr,
getCurrentPlotStyleName, GetListOfPlotStyles, ...
- load on demand, for commands registered through the AcadAppInfo
interface.
- Property Pallete Interfaces OPM
- B-modeler, code compatible with A-modeler
- Hidden Line API
- BREP API
- ATIL API
- Plot API (AcPl)
- Managed Wrapper Classes (.NET API)
Please note that this list is not limitative.
Version
BRX V21 is source code compatible with recent ObjectARX versions
2015/2016/2017/2018/2019, 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 Visual Studio platform
toolset as BricsCAD in order to be compatible:
- V19, V20, V21: Visual Studio 2017 (platform toolset = v141)
- V16, V17, V18: Visual Studio 2013 (platform toolset =
v120)
- V13, V14, V15: Visual Studio 2010 (platform toolset =
v100)
- V12 or lower: Visual Studio 2005 (platform toolset = v80)
More detailed documentation is included in the BRX SDK
itself:
- PortingManual.txt: how to port an existing ARX based project to
BRX, probably the best document to start with for an experienced
ARX developer.
- KnownDifferences.txt: known subtle differences with the ARX
interfaces, and how to work around them.
- changelog.txt: the chronological list of BRX functions that
became supported.
- C++ OPM API.txt: an optional C++ alternative for the COM-based
OPM API.
- /docs/ : a reference guide for all supported BRX
functions.
- /samples/ : ARX/BRX based sample applications.
Samples
Amongst the sample applications installed with BricsCAD, you can
find:
1) a BRX/C++ sample project that shows some features of the BRX
API (custom entity, dockable dialog, ...). The sample contains
different build configurations, targeting 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.
2) a C# and a VB.NET sample project calling the managed
wrapper classes.
Quality Assurance
Alongside with the development of the BRX SDK, Bricsys has
developed an extensive suite of automated tests, to back up all
supported BRX functions. Every function is checked for normal
operation and error return values. By this way we maximize:
- the correct functioning across different BricsCAD
versions.
- compatibility with the AutoCAD platform, including the correct
flow of your error handling routines.
- backward compatibility of your application across different
BricsCAD versions.
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, change
log)
- sample applications
The BRX SDK is not installed with BricsCAD itself, but is
distributed through a separate download source. You can get free
access to the BRX SDK, simply by registering yourself as an
application developer on the Bricsys website (www.bricsys.com). During registration,
mark the check box for "ARX/BRX/TX", and you will receive the
necessary information to get started.
The 4 managed wrapper dll's: 'BrxMgd.dll', 'TD_Mgd.dll', 'TD_MgdBrep.dll' and 'TD_MgdDbConstraints.dll' are installed with BricsCAD.
F.A.Q.
In the Bricsys
Support, check our knowledge base for frequently asked
questions and answers. Search for the keyword "BRX" to find the
related topics.
Final notes
- The BRX API is only supported on BricsCAD Pro & Platinum versions, not on BricsCAD Lite versions.
- BRX is supported on BricsCAD versions V8 or higher. BricsCAD V7
or earlier versions do not support BRX. The higher the BricsCAD
version, the more BRX functions are supported.
- The BRX API has been developed by Bricsys, and is exclusively
available for BricsCAD only.
© Bricsys NV. All rights reserved. |