BricsCAD® (Windows) V21 installs and runs independently from
previous BricsCAD versions.
The BricsCAD® installer that you downloaded contains all editions
of BricsCAD: Shape, Lite, Pro, Mechanical, BIM and
A BricsCAD Pro (or higher) license is required for running compiled (BRX)
A BricsCAD Pro license is required for rendering, 3D modeling
and drawing view creation.
A BricsCAD Pro license is required to create 3D Constraint systems and
mechanical components (parts). Pro licenses also enable BricsCAD's
deformable solid modeling functionality.
A BricsCAD Pro license is required to enable Civil TIN surface, grading
and alignment creation.
BricsCAD Pro is also the foundation for our BIM and Mechanical
BricsCAD Ultimate is a single license that includes BricsCAD Shape, Lite,
Pro, BIM and Mechanical.
Applications: BricsCAD V21 is compiled with Visual Studio 2017. C++
extension DLLs (Dynamic Link Libraries) need to be compiled with the same
platform tool set in order to be compatible with BricsCAD V21.
Please help us make BricsCAD better - submit a Support
Request if you find anything that doesn't work the way you think it
should. Everyone at Bricsys thanks you for helping us build the best product
possible. We couldn't do it without you.
These release notes reflect what has been included in each major, minor or maintenance version
according to the
English release. Dependent on the language, a specific mainenance version might have been skipped,
means the changes listed under that version become available in a subsequent release for that
Welcome to BricsCAD, where
continuous product development is more than a Marketing tag line. In a world
where everybody is complaining that they don't get enough value from their
software spend, your friends at Bricsys are cranking out thousands of
improvements and fixes to make BricsCAD a better product. For you.
Improvements to BricsCAD Core
CUIWe updated many tool icons, removed some obsolete icons, and added some cool
DisplayWe improved 2dwireframe display performance of drawings containing many circles and arcs.
Library PanelIcons in the Library Panel now update properly when you click the
"Generate Thumbnails" button.
Point CloudsAdded "Pointcloud nearest point" snap to status bar, context menu,
toolbar and the '-3DOSNAP' command
The visibility of point cloud scan bubbles can now be toggled on/off.
SR114412 SR117275 SR117768
TINSERTThe TINSERT dialog's block list is now sorted alphabetically. SR117117
VIEWPORTPanning inside of a viewport now works as expected on Linux versions of
Improvements to BIM
BIMSECTION SCALEThe scale list of a drawing is used for the Bimsection scale
property. This list can be edited via the "Scalelist edit.." item selection. SR101026 SR115350 SR115358
BIMSECTIONUPDATEAxis labels are no longer displayed in section result drawings
when the "Display Labels" option is turned off for a BIMGRID.
Drawing CustomizationsAdded a "nested property search" option to the filters. This
allows users to control which property is used for filtering in assemblies: the default for the
assembly, or the default for the nested entities. This makes it possible to customize entities
inside assemblies, separately.
Added a versioning system for drawing customizations.
Exposed additional properties for use in drawing customizations.
Project BrowserAdded a new dialog for creating a project library, and the option
to connect all drawings to the new library.
A progress bar is now displayed in the project setup dialog when BricsCAD BIM is analyzing the
library's status and connecting drawings.
QuickbuildingImproved Quickbuilding's ability to create a building from
spherical or wedge-shaped solids.
Improved the unit detection algorithm when detecting a building's story height.
RVT ImportAdded auto-classification of imported entities as properly named
BIM entities, whenever possible. SR115712SR116654
Improvements to Communicator
STEP File IMPORTAdded layers conversion on STEP file import, when Communicator is running
in background mode.
Improvements to Civil
LANDXMLEXPORTImperial 'miles' units are now supported. If units are not specified,
the user is asked to specify the desired units.
LANDXMLIMPORTUnits are now considered on LandXML import. When unsupported units
are set as drawing units, the user has three options: 1.) the geometry is scaled, 2.) the geometry
is imported without units, or 3.) the command is canceled.
UCS for Vertical Alignment ViewsIt is now possible to set the UCS origin at the
bottom-left corner of a Vertical Alignment View, when the UCS is defined by entity. SR117284
3D CONSTRAINTSThe default values applied to 3D dimensional constraints upon
creation are now computed from geometry, with maximal precision. They are no longer affected
by (or limited by) the LUPREC and AUPREC precision settings. SR116819
3D MouseA period of sluggish cursor movement after startup was caused by
3D Mouse resource initialization. This initialization was performed even when there was no
3D Mouse installed. We've improved the startup experience by running the initialization
sequence only when a 3D Mouse is installed. SR116914
3D Display and RenderingA bug in an AMD display driver caused the tiles created by
the RENDER command to be scrambled. Another consequence of the bug caused 3D screen output
to run one frame behind real-time. This caused some user actions to not be immediately visible
(e.g. highlighting, de-selection, etc). Both of these issues are now fixed. SR105040SR113825SR115072SR115531SR116955SR117221
BricsCAD: Application WindowIt is now possible to start BricsCAD with the application
(main window) minimized. Floating tools will no longer be shown while BricsCAD's main window is
minimized or hidden. This is a regression since BricsCAD V18.2.20; potentially even earlier. #oops SR113703SR117067SR117559
BIMSECTIONUPDATEComposition/Material names with special characters no longer cause
BricsCAD BIM to crash. SR103983
BIMSECTIONUPDATEFixed volume section result generation when a polyline entity is
present in a BimGrid. The problem is fixed, and we've temporarily removed support for Polyline
entities in BIMGrids. More to come, soonest. SR115630
BIMIFYNow performs better than ever! #SoundsLikeMarketing, but really, it does.
COMMANDLINEScroll bars are no longer (improperly) trimmed in the (old style)
floating panel. SR115918
DMFILLET/DMCHAMFERBlinking that occured when DYNMODE==(-3) is fixed. SR116345
DMPATH3DThe Mechanical Browser now displays the DMPATH3D parameter value,
truncated in accordance with the LUPREC system setting.
DimensionNewly created annotative dimensions are now properly scaled, depending on
the setting of the CANNOSCALE system variable. SR114842SR116248SR116268SR116574SR116930SR117388SR117476SR117642SR117856SR118047SR118022
Drawing ExplorerThe grid view of the Block Explorer panel could take a long
time to display on first open, when the drawing was stored on a slow disk (or being accessed
across a slow network connection).
We've improved performance in these situations. SR82203SR82828
The global material now uses "Inherit" as diffuse color instead of "white".
Drawing ViewsImproved the reaction time of the ISOLATE/UNISOLATE commands. SR116497
EXPORTPDFFixed some potential issues in the EXPORTPDF command.
FBXEXPORTFBXEXPORT now supports non-ASCII characters in file paths. SR101328SR117058
The CRS EPSG:6668-EPSG:6687 for the Japanese market are added again.
IFCEXPORTImproved the export of Compositions to IFC. SR104650
IMPORTFixed a bug that caused an empty Mechanical Browser to be displayed,
after an import ran in Communicator's background mode.
INSERT commandRe-definition of an existing block, after insertion via the INSERT
dialog, now functions as expected. #IHateRegressions SR117302SR117327SR117504SR118081
Library PanelItems shown in the Library Panel can now be translated properly
in localized versions of BricsCAD. SR116508
Library PanelForcing Thumbnail generation sometimes activated a random application
window. It drove us a bit buggy, so we fixed it. #haha
Linetype GenerationThe incorrect linetype scale is no longer applied
when generating linetypes in particular cases (e.g., an XCLIPped Insert, when a global
LTSCALE is set). SR116661SR116959SR116974
Localized Versions of BricsCADWe fixed several translation issues. SR116088 SR116948
MECHANICAL WorkspaceWe circumvented a crash that could occur for some users,
when opening the Mechanical workspace. SR115489SR117421SR117459
NEW and OPEN dialogsThe last chosen drawing or template is now always displayed,
highlighted and with cursor focus, in NEW/OPEN dialogs.
OLE ObjectsPlotting of OLEFRAME entities with a rotated plot orientation was broken
in earlier versions of BricsCAD V21. This issue has been corrected. SR116674SR117861SR117909SR118052
OptimizeA safety check was added in order to avoid elongating lines to
infinity. #GoesOnForever SR116484
Point Cloud ImportFixed an issue that caused the import of specific RCP files to
Point Cloud ImportNow takes into account the global transformation matrix
stored in the RCP file.
Point Cloud ImportFixed an issue that caused the import of specific E57 files
to fail. SR 117096
RibbonUnder certain conditions the right-most ribbon tab did not move as the main
frame window was re-sized. This has been fixed. SR115934
SETBYLAYERSETBYLAYER applies "ByLayer" properties to linetypes, lineweights,
plotstyles, material and transparency settings.
Pressing 'Enter' to select the new license level now works correctly in license levels higher than
SettingsSome Layer name Settings can accept a Layer name that has not
yet been created, i.e. a 'future' layer. These 'future' layer names could not be displayed
or entered in the Settings dialog. This issue has been corrected.
A sub-set of the BricsCAD system Settings can have spaces in their names. These Settings could not be
entered at the BricsCAD command line, because the required space bar press was interpreted as
an 'Enter' by BricsCAD. This issue is fixed, too.
.NETA custom Windows.Panel now updates as expected when its Icon or Title
properties are changed. SR116038
.NETA re-startable Windows.Panel, hidden by a 'Visible=false' flag before the application
closes, no longer tries to re-start. #KillZombies SR117015
.NETAdded 'Bricscad.MechanicalComponents' sample code that displays the Mechanical
component assembly tree. SR99601SR102545SR102619SR104440SR113425SR113559SR116683SR117227
.NETCreating icons for Ribbon buttons via an idle event hander no longer causes
BricsCAD to freeze or crash. SR116901
.NETFaceData.GetMaterials() now returns a valid collection of Object IDs when
materials are specified. SR102875
.NETGetObject() no longer opens ForWrite objects on locked layers, unless this is
explicitly enabled via a third argument to the function.
.NETSpline.ModifyPositionAndTangent() has been implemented. SR102338
.NETWe fixed a V21 performance regression experienced when working with
transactions containing many objects. SR117583
.NETWhen prompting for an absolute point, DrawJig and EntityJig now ignore
ORTHOMODE unless the 'GovernedByOrthoMode' flag is explicitly set in prompt options. SR99254
.NETThe Style property of TinVolumeSurface and Grading can now be modified again.
BRX AcDbHatch::getLoopAt()A performance issue has been fixed when iterating with
AcDbHatch::getLoopAt() over hatches with many loops. SR117879
BRX HLRFixes incorrect HLR projection for ACIS entities inside BlockReferences or XRefs
when being clipped (or when said entities are completely inside the clipping box). SR114981
BRXAcDbCivilTinSurface::triangles() now returns all three points on a triangle, as
one would expect... SR117838
BRXCompleted support for the derivation of custom classes from AcDbDeepCloneFiler and
BRXCustom COM properties with dispatch IDs greater than 0x2000 are now shown on the
Properties panel in V21. Note: dispatch IDs in the range 0x0400 - 0x2000 are reserved for native
BRXCustom classes derived from AcDbObjectContextInterface no longer generate a
linker error. SR116636
BRXDeclared and implemented missing "acgsGetCurrentAcGsView()" function. SR116828
LISP (Linux/Mac)Fixed some COM emulation issues as exposed by LeeMac's tool
LISP (entmod)Improved compatibility for (entmod) when using hatch definition
LISP BLADEFixes a timing issue when closing the last file in the editor. This
could sometimes cause a crash to occur. SR117424
LISP TinSurface APIAdded new Lisp TinSurface interface functions.
LISP Memory ConfigurationFixed an incorrect LISP memory preset when using
the custom setup via "lispex.dll.cfg". SR116046
LISP/BRX : HATCH (entmod) issueFixed (entmod) with respect to 'acdbEntMod()',
for Hatch entities - sometimes, angle and scale were not correctly applied. SR117435SR118095
LISP/SDS/BRXSsget("A") mode did not properly ignore entities on viewport-frozen
layers, now fixed to provide compatible behaviour. SR117047
LISPImplemented (bpoly point) function, returning a polyline for the boundary
around a specified point.
SDS/BRXImproved compatibility for ads_entnext(), setting the "errno" environment
variable for a set of particular error cases. SR116763
UNDO for Lisp expressionsWe fixed a V21 regression that caused LISP expressions
to not be un-done by (command "_U"). #ThatsAllFolks SR116618
Improvements to BricsCAD Core
OPTIMIZEA progress meter and a cancel option have been added to the Optimize
PARAMETRIC BLOCKIFYWarnings about 2D geometry, fixed and external constraints are
TOOL PALETTESTool palettes containing separators now display a single scrollbar for
the entire palette. SR99154SR100309
Improvements to BricsCAD BIM
BIM PropertiesThe Room Bounding property now displays correctly, as a Space
BIMPYTHONNow allows for the selection of entities inside of nested blocks.
We've optimized the performance of 'within distance mapping', to detect interferences with
geometry during a Propagate command run.
Drawing CustomizationIt is now possible to load drawing customizations from an
external folder to the local library.
We have optimized the processing of drawings for large models.
Performance of the axis calculation algorithm for linear elements is improved.
Improvements to BricsCAD Mechanical
SMEXPORTOSMA problem that occured, when assigning different thicknesses per body in
sheet metal assembly, has been fixed. SR116241
Improvements to Civil Modeling
Alignment PropertiesArc radius and element type properties for SCS elements are now
Improvements to Communicator for BricsCAD
IMPORTA new, experimental option is available when importing SolidWorks files.
It allows users to choose the data you want to import from SolidWorks files
(SLDASM/SLDPRT). The following procedures are available: Graphics - B-Rep data will be
imported as Meshes; Geometry - is the default mode, imports B-Rep data as ACIS solids;
Geometry with Preview Graphics - imports saved graphics first, displays them, and then
imports B-Rep data. The "Geometry with Preview Graphics" option can be very useful when importing
large assemblies/parts. To enable it, set the CommunicatorBackgroundImport option to .
IMPORTImproved support for the import of Autodesk® Inventor 2020 files.
BIMCLASSIFYCopies of BIM Rooms can now be correctly classified as Spaces.
BIMQUICKDRAWThe reference faces of walls are now set correctly.
BIMSPACEThe default representation of Spaces created by Bimify is set to
BLOCKWindows included in new Blocks are now processed correctly.
BLOCKIFYNow correctly identifies and converts bend solids in a HVAC model. SR115751
BMINSERTWhen the 'Select all affected solids' option is chosen, adjacent solids are
now properly cut by the subtractor solids.
CHAMFER3D solids processed by the CHAMFER command no longer disappear after saving
drawing as AutoCAD 2010 or later. SR81794
CUIA problem that occured when loading a .mnu (or .mns) file, with duplicated menu
labels of inconsistent case, is fixed. SR115697
DMPUSHPULLThe Hot Key Assistant (HKA) now shows the correct, current action.
DimensionsDimension tools now allow for the selection of source entities on
locked Layers. SR115801
Drawing Customization PanelWe performed a small fix to remove an unwanted warning
that occurred when creating a new entity customization using the default name.
Drawing CustomizationFixed a bug in the customization of hidden line types.
Fixed a bug rearing its ugly head during the modification of a specific dynamic block. SR116187
Export to DatasmithThe missing file 'DatasmithSDK.dll' was added to the BricsCAD
installer. SR116411 SR116255 SR116419 SR116502 SR116503 SR116588 SR116407 SR116536 SR116477
Import TIN FileWhen importing a TIN from a file, the value of the FILEDIA system
variable was not respected, causing the File dialog box to always be displayed. This is fixed now.
Library PanelThe category and item name now show on top of the Gallery view in the
Fix setting geometry-driven status of a constraint in Mechanical Browser property editor. SR116458
MoveGuidedFixed an issue where Hatches were not created properly.
OPENA specific drawing file, written by Autodesk® Inventor, now displays
all geometry as expected. SR114955
POLYSOLIDChanging the justification option no longer creates zero-width
PanelsDeleting the current Panel when 'STACKPANELTYPE=0' now properly activates
the next Panel. SR115919
Properties PanelCenterMark and CenterLine properties are now properly preserved
after property edits are made to these entity types, via the Properties Panel. This is a regression
since V21 FCS.
QuickbuildingSpatial location assignments are improved, when Spaces are used as
QuickbuildingOuter walls consisting of multiple lumps are now separated into
RFA - Components PanelRFA thumbnails are now generated through the "Generate
Thumbnail" menu. SR104368
SELECTText on top of a 3D Solid can be easily selected now.
Sheet Sets Panel
The sheet set title is displayed once again after fixing a regression introduced in the previous
SMEXPORTOSMFixed a form-feature extraction issue with one-sided, closed form
VBASaving a loaded VBA project no longer prompts the user to save a drawing
WMFOUT for TTF fontsExport of WMF files that include TTF fonts now works as
BRX AcDbSweepOptionsProvided "setSweepEntityTransform()" and
"setPathEntityTransform()" functions. SR103556
LISP (vl-propagate)LISP variables are properly propagated into newly-created
(or the second assignment of the same drawing). SR115966
Improvements to BricsCAD Core
3DDWFDepending on the value of the DWFFORMAT setting, the 3DDWF command will create
either a 3D DWF or a 3D DWFx file. SR63081SR95981SR102550
3DOSNAPThe 3DOSNAP toggle is now accessible via the F4 function key. SR98410
3DPOLYLINE3D polyline vertices are now supported for sub-entity selection, the
Properties panel, and nearest distance.
3D DisplayMaterial glossiness has been adjusted to ensure that entity details are
distinguishable, even with glossy materials. The glossy effect is less intense for light materials,
and more intense for dark materials. SR90134
ANIMATIONEDITOROPENIt is now possible to animate exploded views in model space,
using the Animation Editor. SR101710
ARCTEXTThe Properties panel displays the properties for selected Arctext entities.
AUDITThe AUDIT command has been extended to clean up duplicate ACIS
BLOCKICONThe new BLOCKICON command automatically generates block preview
BLOCKIFYBLOCKIFY performance is improved when using the 'Equal Solids' option on
The BLOCKIFYTOLERANCE system variable defines a relative tolerance that is used to determine whether
two entities are equal.
When the value is negative, the software sets the optimal tolerance.
A new "Compare geometry only" option has been added to the BLOCKIFYMODE system variable. SR99148SR101904
CLEANUNUSEDVARIABLES A combination of AUDIT and CLEANUNUSEDVARIABLES now cleans a
drawing of multiple orphaned parameters. SR104050
COMMANDLINEThe Command line now supports clickable command options.
CONVTOMESHThe CONVTOMESH command only triangulates planar faces as necessary, e.g.,
when there are holes in them.
CONVTOSOLIDThe CONVTOSOLID command supports the conversion of meshes into an
optimized 3D solid (surface). In this mode, coplanar and adjacent faces are merged into a single
face. You can control this behavior with the new SMOOTHMESHCONVERT setting.
COPYThe COPY command now offers an Array option, enabling you to copy in a linear
COMMANDSThe COMMANDS command now returns (only) the list of the commands that are
available in the current license level.
DGN ExportA new DGNEXPORT command enables you to export the current drawing to DGN
Diagnostics and Usage Data CollectionThe Diagnostics and Usage Data Collection
process allows users to help improve BricsCAD by sending anonimized diagnostics and usage data to
When you launch BricsCAD for the second time, a dialog box will display, inviting you to participate
in the program.
When Bricscad is started from a script, the login dialog is suppressed.
You can decide at any time to withdraw your consent and have your data removed from our databases.
DMCHAMFERThe DMCHAMFER command now offers the following advanced modes:
Asymmetrical, Angular, Variable Symmetrical, Variable Asymmetrical and Variable Angular. SR80699 SR81966 SR87096 SR87229
DMFILLETThe DMFILLET command now offers a Variable Radius mode. SR70880SR87229 SR92080
DMPUSHPULLThe DMPUSHPULL command now includes an option to specify subtract mode
(on/off), which is also controlled by DMPUSHPULLSUBTRACT setting.
It also allows you to switch the starting point of the dynamic dimensions on cylindrical faces.
Press the Tab key to switch between radial and offset dimensions. SR99625
DMTHREADThe DMTHREAD command creates threads on cylindrical and conical faces,
which are represented according to drafting standards in drawing views.
Drawing Optimization A new Drawing Optimizations ribbon panel provides easy access
to tools for cleaning up and optimizing drawings.
ESNAPThe "Snap to Point" items in the ESNAP toolbar and context menu are renamed to
"Snap to Node". SR99482
EXPLODE/XPLODE commandsThe EXPLMODE variable is now taken into account when
exploding non-uniformly scaled blocks with the EXPLODE and XPLODE commands. SR35566SR97313
EXPORTPDFThe EXPORTPDF command now supports export to 3D PDF. You can use the
PDFPRCEXPORT setting to specify whether 3D entities are exported and whether they are exported as
meshes or as B-Reps. [Note: exporting as B-Rep is experimental functionality and may not always work
You can enable the PDFPRCEXPORTPRODUCTSTRUCTUREMODE setting if you want to export a PDF with product
Also, PDF Export peformance is improved for rendered views.
EXPUCSThe Coordinate Systems panel in Drawing Explorer now includes the World
coordinate, system, making it easy to switch from a user coordinate system back to the WCS. SR95181
FINDThe Find and Replace dialog box includes new buttons to Zoom In and Zoom
FIELDThe Field dialog box now supports nested formula fields. SR45317SR73799SR76141SR77158SR77192SR82557SR90646SR93416SR93476SR99369
GENERATEASSOCATTRS A new setting controls generation of associative data on 3D
solids during modeling. When it is On, 3D solids will contain associative data from the moment of
creation. This allows the BIMSECTIONUPDATE and VIEWBASE commands to produce drawings for which
dimensions and tags can be automatically updated when changes are made to the 3D model.
HyperlinksHyperlinks now enable you to link to layouts and views inside a
ImagesSelected images temporarily display above overlapping objects, regardless of
their draw order.
Selected images dynamically display and update during manipulation, enabling you to visually
position, align, scale and grip-edit them. SR94251
LayoutsThe active layout tab automatically scrolls to remain visible in the layout
tab list. The Layout Manager now supports the publishing of multiple layouts. SR88227SR98356SR103321
LayersThe new SETBYLAYER and -SETBYLAYER commands enable you quickly change the
property overrides of selected entities to ByLayer.
Use the new SETBYLAYERMODE system variable to control which properties are affected by the
The VPLAYER command now allows you to select entities on layers for which you want to apply viewport
The new LAYTRANS command displays the Layer Translator dialog box, where you can quickly map layer
names and properties from another drawing file into the current drawing.
SR22893 SR26276SR29592SR32754 SR36761 SR36834 SR45063 SR46474SR61907SR72144SR77897SR81314 SR81316SR91334 SR92383 SR92992
LCONNECTThe LCONNECT command now supports the connection of planar surfaces and
Library PanelThe Library panel, now available in all workspaces and in Shape,
replaces the Components and 2D Parametric Blocks panels.
A library of threaded hole components has been added.
LicenseThe RUNASLEVEL command is renamed to SETLICENSELEVEL to avoid confusion with
the RUNASLEVEL setting, especially in localized versions.
The following deprecated commands are removed: LICPROPERTIES, LICPROPERTIESBIM,
LICPROPERTIESCOMMUNICATOR, LICPROPERTIESMECHANICAL, and LICENTERKEY. SR101068
LTGAPSELECTIONA new LTGAPSELECTION setting allows you to select non-continuous
linetypes by picking on the gaps.
MANIPULATORYou can now press the SHIFT key to rotate the Manipulator 90 degrees
about its Z-axis.
The Copy and Repeat options in the Manipulator are now visible, clickable, and localized.
The Manipulator now enables you to edit individual polyline segments.
MENULoading a .MNU file now automatically adds menus to the workspace. SR74092
MOVEGUIDEDThe new MOVEGUIDED command enables you to move selected entities, using
MText EditorThe in-place Mtext Editor is enhanced to account for the width factor
of single-line text.
An MText edit session that requires rotating the view keeps the view centered after rotation and
MTFLAGSA new option in the MTFLAGS settings allows you to delay the loading of
Xrefs until the system is idle.
NEARESTDISTANCEThe NEARESTDISTANCE command offers improved performance and
behavior. Point entities are now supported. SR95820SR101731
OLEFRAMEThe Properties panel for OLE objects now displays Type
(Embedded/Static,..), Plot quality, and Source application. SR99996
OPENA new "Open as Read-only" option is included in the menu when you drag and drop
with the right mouse button.
Performance is improved for opening drawings that contain large solid hatches with text box
OPTIMIZEThe new OPTIMIZE command helps you clean up 2D lines in your drawings. It
displays the Optimize 2D Lines dialog box where you can control which lines are affected.
OVERKILLThe enhanced OVERKILL command allows you to choose if you want to delete
duplicate entities, or move them to a layer specified by the new OVERKILLLAYER setting.
A new option enables you to combine duplicate block definitions by specifing block properties and a
PanelsStacked flyout panels (STACKPANELTYPE 1) now retain their sizes between
restarts, in the case where they are manually sized by dragging the bottom or right edge. SR99664
Parameters and ConstraintsAll BricsCAD license levels now support 2D parameters and
Blocks containing parametric entities can be parametrically driven after insertion, via the native
Parameters, in addition to constraints, support the new "Geometry-driven" attribute.
The new VISIBILITYSTATES command enables you to define visibility parameters and states.
The new AUTOCONSTRAIN command enables you to automatically apply 2D geometric and dimensional
constraints to selected 2D geometry.
The new GUIDECURVES command enables you to assign guide curves, to automatically align an inserted
block with relevant geometry.
Negative values are now accepted [as their absolute values] for 2D radius and diameter
3D constraints can now be added to vertices and edges of 3D polylines.
3D constraints that depend [directly or indirectly] on geometry-driven parameters, via simple
arithmetic expressions, are automatically treated as 'geometry-driven'. Their geometry will change
as a result of a constraint being solved, but their expressions will be left intact.
Also, their defining geometry-driven parameters and constraints, as declared by the user, will
change their values accordingly.
3D angle and radius constraints can be used in blocks and components.
SR84932 SR94801 SR95470SR97585 SR98003 SR113652
Parameters and Constraints PanelThe Parameters and Constraints panel is extended to
include 3D geometric constraints, 2D dimensional constraints, parametric blocks, and arrays. It
allows users to specify if a parameter is 'geometry-driven' and whether a parameter is exposed for
editing in an inserted block. SR84741
PARAMETRICBLOCKIFYThe new PARAMETRICBLOCKIFY command enables you to quickly convert
drawing geometry to parametric blocks.
Select a parametric block or parametrized entities as input geometry, to compare it against other
geometry in the drawing.
Users can control PARAMETRICBLOCKIFY behavior with the BLOCKIFYMODE and BLOCKIFYTOLERANCE
PLANThe PLAN command is enhanced to support dynamic UCS detection for the "Current
UCS" option. SR97362
Point CloudsConverting point clouds is approximately five times faster during
The new POINTCLOUDEXPORT command allows you to export a cropped selection of a point cloud to a .pts
The new POINTCLOUDALIGN command rotates a point cloud to align it maximally with the X and Y axis.
You can now turn off entity snaps for the Point Cloud entities only.
Properties PanelThe Properties panel offers a new History property when a single
entity is selected. This enables you to view or revert to various previous states of the entity.
This History property also allows you to undo editing operations, on a per-entity basis.
Properties of subdivision mesh entities and properties of mesh subentities (faces, edges and
vertices) are supported in the Properties panel.
Selected Attribute(s) inside a Block Reference entity can now be edited via the Properties
Use Ctrl+LeftMouseClick to select an attribute or a nested entity for editing via the Properties
RibbonThe mousewheel can now be used to scroll through ribbon tabs.
The new RIBBONTOOLSIZE system variable controls the ribbon tool size, independent of toolbar
Selection PreviewSelection preview highlighting is deactivated now during Pan
operations, resulting in a smoother user-experience.
SETVARAn error message is now displayed when attempting to change an on/off system
variable by entering a number other than 0 or 1. SR114086
SIMPLIFYThe new SIMPLIFY command reduces the number of vertices of polylines and
hatch boundaries without changing their shape.
The SMOOTHEN option controls whether at least 3 consecutive polyline segments of which the endpoints
lie on a circular arc are replaced by a
bulged polyline segment.
The simplified entities are easier to manipulate and can reduce the overall size of a drawing file.
SINGLETONWhen SINGLETON mode is enabled, double-clicking a drawing file in the
operating system will open it in the current running session of BricsCAD, even if the user profile
has been changed since the start of the session. SR104370
SKPIMPORTThe SKPIMPORT command offers improved support for importing Trimble
Now Subdivision meshes are supported, entities are imported as named blocks, and render material
textures are imported, too. SR98958
Standard partsConstraints now are automatically restored after changing the
parameters of a standard part. SR96254 SR100060
TCONNECTThe TCONNECT command now supports the connection of planar surfaces and
ToolbarsNew UCS and UCS options toolbars offer easy access to UCS commands and
TXT2MTXTThe new TXT2MTXT command (alias COMBINETEXT) enables you to combine single-
and multi-line text into a single mtext entity. SR96202
User Profile ManagerThe User Profile Manager is more powerful! It can now delete or
replace existing user profiles, including the current one. Deleting the current profile doesn't
completely remove it, but it will reset all settings to factory defaults.
VERSIONCONTROLThe new VERSIONCONTROL command enables you to check drawings in and
out from a cloud-based project.
Multiple users can edit the same drawings simultaneously with revision tracking. [Note: this is
-VIEWThe Twist option has been added as a hidden option to the -VIEW command.
VIEWBREAKThe new VIEWBREAK command enables you to add broken view symbols to a
selected drawing view in a layout. SR96394 SR101500 SR101633 SR115382
Improvements to BIM
ACTIVATESECTIONVIEWThis new command allows a user to look at the model from a
section plane's perspective, without actually generating the section.
BIMANALYTICALMODELProfiles and eccentricities are supported in the IFC export of
BIM APIConfigurable quantities are now available in the BIM API.
Bim API for SpacesThe Create Bim API for Spaces is now available.
BIMAPPLYPROFILE/BIMLINEARSOLIDThe material assigned to a profile is now attached to
created solid representation in the BIMAPPLYPROFILE and BIMLINEARSOLID commands. SR98369
BIMAUTOMATCH dialogThe initial size of the dialog box is correct now on all screen
BIMCLASSIFYAdded "Space", "Story", and "Building" types.
BIM CompositionsThe RenderCompositionMaterial user preference controls the
rendering of composition materials, independent of the model's Level of Detail (LOD) setting. A new
button in the Home/View ribbon panel, next to the LOD button, allows users to toggle the rendering
BIMPROFILESWhen changing the Offset property of a 'CustomShape' profile via the
Profiles dialog, you can choose whether to keep the position of the solid, or its axis, for linear
solids using said profile.
BIMPROFILESTANDARDSThe BIMPROFILESTANDARDS setting is no longer case sensitive. In
case there are no profiles matching the value of the BIMPROFILESTANDARDS setting, a warning message
BIMPROPERTIES The 'Per Instance' option of a custom property set allows users to
enable/disable user-defined properties, on a per-entity basis.
The 'Enum' option allows users to define a fixed number of possible values for custom BIM
BIMQUICKBUILDINGThe first prototype of the new BIMQUICKBUILDING command has been
Spatial Locations can now be used as input for BIMQUICKBUILDING. This workflow allows you to process
different buildings simultaneously.
BIMROOMThe BIMROOM command has been replaced by the BIMSPACE command. You can still
open BIMROOMs created in V20, but it is not possible to create new BIMROOMs or update the geometry
of existing BIMROOMs in BricsCAD BIM V21.
BIMSPACE Rooms are replaced by Spaces. The BIMCLASSIFY command converts Room block
references to solids. Room properties and interior elevations, if any, are transferred to the
BIM Space tool icons are available in the Quad, the Ribbon and the BIM Spaces toolbar.
The Edit option of the BIMSPACE command allows users to add or remove the bounding elements of a
The Update Method property for spaces is added; possible states are Automatic or Manual.
The Centerline property of bounding elements is taken into account when creating the space
The Representation property allows to toggle between Solid or Footprint representation of a
The Status property indicates whether a space is up-to-date or out-of-date.
The Space tag has been added.
When a space is cut by a section, it shows as a fire body [in contrast to treating it as a solid]
and Space tags are created.
The space label inherits the color of the space entity.
The space footprint preview displays when executing the BIMSPACE command.
BIMSECTIONUPDATEThe associative data for 3D solids, needed for section generation
and tagging of the section results by the BIMTAG command, are generated automatically in BricsCAD
BIM V21 as you model, unless the new GENERATEASSOCATTRS (Generate Associative Attributes) system
variable is set to 'Off'.
BIMSETLOADBEARINGDIRECTIONA tool button has been added to the ribbon and the Quad.
BIMTAGTool buttons for spot-elevation and load-bearing options have been added to
the Quad and the ribbon.
The Spot-elevation tag type indicates the elevation of a point in a section or an elevation.
Automatically generated tags can have an offset, which is defined through the Offset attribute in
TagTypeToStyle.xml. If the offset is not specified, the center of the tag block is used.
Automatically and manually placed tags can be rotated if the autoRotation attribute is set "true" in
Entities on layers which are frozen or switched off do not generate tags. SR87102SR96685SR104611
BIM templatesThe BIM templates are updated to use the DEFAULTSPACEHEIGHT setting
BIMUPDATESPACE Spaces are not updated when overlapping another Space.
BMINSERT The new Smart Insert option is added for easy insertion of components.
BIMPYTHON This new command allows Python Scripting and Querying of a BIM
The distance calculation for directed bounding boxes has been improved.
DATAEXTRACTIONComposition and physical material data can be now be extracted. SR91909SR92850SR93436SR95895SR101826
DISCONNECTA Disconnect option is implemented for the LCONNECT, TCONNECT and
BIMSTRUCTURALCONNECT commands. SR98122
Documentation When switching to the model from a sheet view using the
BIMSECTIONOPEN command, the model is rotated and zoomed in to the same zoom level as the sheet
Available properties and property values display in the filter parameters form.
Drawing Customizations The rules for assigning entity customizations have been
A string is accepted as a filter for "does not contain" operations.
Special characters are not allowed in style names.
Existing customization layers are updated when customization parameters are edited.
You can copy external symbol sources as a part of the cloning of drawing customizations.
Customization of BIM spaces on drawings is possible.
Fields New field type: the Extension properties are available for a selected
The Extension properties are divided into categories in the Field dialog.
Grasshopper Improved support for blocks in a Grasshopper definition.
It is now possible to link a Grasshopper script to an entity. This Grasshopper component is
visualized in real-time and its parameters can be changed in the properties panel.
IFC IMPORT/EXPORT A mechanism has been implemented to map IFC/BIM entities to
BIM/IFC entities, to control which entities are imported/exported. The IfcImportMappingPath and
IfcExportMappingPath user preferences set the paths to the necessary mapping files.
It is now possible to have configurable quantities in an IFC export.
The IfcCreateUniqueGuid user preference has been added to enable/disable the creation of unique
guids for nested elements inside classified blocks and xrefs.
The flow connection point is exported to IFC as IfcBuildingElementProxy. Only 2D geometry, or a
block reference with 2D geometry, can be classified as a flow connection point.
Added IFC Export of Annotation entities. SR93934 SR95205 SR95829 SR97897 SR101718 SR104786 SR105024 SR105025 SR105026 SR105027
INTERIOR ELEVATIONSThe Interior option of the BIMSECTION command now supports
Point CloudsThe new POINTCLOUDFITPLANAR command enables you to fit planar surface
geometry to parts of point
clouds that represent planar surfaces.
The new POINTCLOUDPROJECTSECTION command enables you to fit lines to a flat projection of a point
cloud volume section.
The new POINTCLOUDDETECTFLOORS command generates volume sections for each floor found in a point
cloud representing a building (based on regions of points with similar Z-coordinate).
Project Browser It is now possible to create a layout from scratch in the Sheetset
setup dialog box.
The Project Browser displays the Sheet Number (if it exists). The Sheet Number is assigned by the
"Create Sheets" procedure. Sheet View Numbers are assigned starting from 1 for all section results
created by the BIMSECTIONUPDATE command.
Master drawings and external references are listed in a tree-structured manner.
A balloon is available to fix a project libraries' connection to a drawing sheet.
The Add Schedule wizard, available in a context menu, allows users to quickly add a BIM schedule
without the creation of a new .dxd file.
The Create/Update Table and Create/Update CSV options are available, in a context menu, for creating
or updating a schedule or a CSV output file.
The use of relative paths is now supported for Schedules.
Editing of a schedule can be initiated via the Project Browser.
BIM project data are now stored in an external project '.bsyslib', instead of the previously used
When opening a pre-V21 BIM project, the '.projectroot' can be converted to a V21 project
To simplify opening of a BIM project at a new location, paths to '.bsyslib' files are now stored
with a relative path.
Incorporated initial support for handling sections with multiple section results linked to them in
(the same or different) 2D drawings.
A new context menu option is available in the project setup dialog for connecting a
selection of drawings to the project library.
The default sheetset name is set as the project name. SR99699SR101456
PropagateThe INTERFERENCELEVEL system variable has a new option to include
with the new spatial elements (spaces, stories, buildings).
Command prompts are made more instructive.
Changed terminology: "base solids" are named "reference solids" now.
Spaces can be used as input for Quickbuilding.
The command now also works on solids without edges - e.g, a sphere or a torus.
The Quickdraw cursor now snaps to (double) lines inside XREFs.
Walls now inherit the spatial location of the slab on which they are created.
ROOMHEIGHT / DefaultSpaceHeightThe ROOMHEIGHT system variable is replaced by the
DefaultSpaceHeight user preference; the setting applies to Spaces. SR103791
RVT Import When importing Revit Objects using RVT Import, they can be filtered
based on Revit Views, Categories, Levels or WorkSets.
Colors and transparencies are now imported when importing a RVT file.
Space iconsEdit Space, Update Space and Define Interior Elevations icons are
available in the Ribbon and the Quad.
STANDARD PARTSPiping parts were added to the standard parts category of the Library
panel. SR93863 SR94192 SR94260 SR94490
Structure TreeThe default configuration settings file in the BIM workspace
(bim.cst) is updated. Spatial Elements
are grouped in a separate node now.
Improvements to Mechanical
BMBOM Aggregated columns are supported now in top-level and bottom-level BOM
tables. They allow users to calculate sum, minimal, maximal or average value of a given property
with respect to the current grouping. In addition, it is possible to select the required grouping
mode for a BOM table.
A dialog to configure BOM filters is available now.
It is now possible to set one of several predefined column filters, for any column in a BOM.
Template Columns are a new type of evaluated columns, which allow users to combine values of several
properties into a single BOM column, as text, using DIESEL expressions. In addition, you can
configure formula or template column expressions, using the expression editor dialog with
An option has been introduced to limit the reported level of a hierarchical BOM.
Options to set the number prefix, suffix and delimiter are available in BOM tables. The new Column
Role setting allows users to specify which column should be the source of numbers for drawing
Wildcard expressions are supported for string properties in a BOM filter.
It is now possible to select a unit for material density, both in the Physical Materials dialog and
in BOM tables. Supported units are: kg/m³, kg/dm³, g/cm³, lbs/ft³ and lbs/in³. SR89780SR99018SR101100SR103168SR104554
BMBOMPANELOPENIt is possible to directly export the current BOM table to CSV.
BMCONNECTThis new command connects components such as pipes and elbows.
Threaded holes display correctly according to drafting standards in 2D projected views based on the
VIEWBASE command. SR73999 SR79745 SR79897 SR87392 SR92323 SR94191 SR97101 SR98425 SR99185 SR100258 SR100401 SR101528 SR102196 SR115735
Mechanical object enablers
Added reading and editing of properties for the following mechanical symbols via 'Property panel':
ACMBALLOON, ACMDATUMID, ACMFCFRAME, ACMSURFACETEXTURE, ACMFEATUREID.
SMCONVERTSMCONVERT recognizes a zero radius bend design as a Zero Bend feature,
unless the SmConvertPreferZeroBendFeatures user preference is set to 0.
SMASSEMBLYEXPORTThe SmAssemblyExportMode user preference allows you to keep
recognized features for both (good) sheet metal and poor sheet metal parts. SR100060SR103923
SMEXTRUDEYou can extrude a single-segment polyline lying on a
flange, to create a new flange, orthogonal to the first one, to form a T-Junction feature.
SMSMARTFEATURESA new option allows users to automatically create junctions when
bends are created on hard edges, if such junctions are necessary to unfold the part.
SMTABCREATEThe command now has an option to create a curved tab on a curved hard
edge, connecting a flange and a bend, including lofted bends.
SMUNFOLDConical lofted bends can be unfolded analytically now, to avoid splitting
them into a number of bends and flanges. SR104809
The newly added Bevel feature is supported in the SMCONVERT, SMREPAIR and SMUNFOLD commands.
A specific bend table can be assigned to each solid.
Parts with a different thickness are allowed to exist in the same block.
A specific kind of Bend feature with a zero internal radius has been added.
Two new sheet metal features are introduced: T-Junction and T-Tab, which can create a T-like
connection between two Flanges.
Improvements to Civil
AlignmentsThe ALIGNMENT command workflow is simplified but still offers all the
The new DEFAULTCURVETYPEHA and DEFAULTCURVETYPEVA alignment settings enable you to specify the
default curve type for creating new horizontal and vertical alignments, or adding a new PI.
Horizontal and vertical alignments now support Endpoint, Midpoint, and Nearest eSnaps.
Horizontal alignments now support Perpendicular eSnaps.
Horizontal and 3D alignments can now calculate their intersections with other curves.
The Properties panel now displays properties for Spiral-Curve-Spiral elements.
Vertical alignment views now support the following types of eSnap points: Endpoint, Midpoint,
Perpendicular, Intersection, and Nearest.
A new option allows you to select a 3D alignment, when creating a vertical alignment view. Vertical
alignments now support parabolic curves.
API SamplesThe following API samples are provided: Horizontal alignment report,
Color surface triangles by elevation, Color surface triangles by slope.
Civil Entity PropertiesAll Civil entities now include Name and Description
properties in the Properties panel.
Selected sub-entities of (Civil) custom entities are now displayed in the Properties panel.
Civil settingsA new Civil node is included in the Settings dialog box for easy
access to Civil settings.
CorridorsThe new CORRIDOR command enables you to create a corridor based on a
corridor template, 3D alignment and/or TIN Surface.
The new CORRIDORTEMPLATE command enables you to create a corridor template from template
The new CORRIDORTEMPLATEELEMENT command enables you to create a corridor template element from
The new CORRIDOREDIT command enables you to edit a corridor.
The new CORRIDOREXTRACT command enables you to extract a 3D solid, 3D mesh, or 3D polyline from a
GradingsThe new GRADINGBALANCE command enables you to balance grading cut and fill
Import Civil 3DThe new CIVIL3DIMPORT command enables you to create multiple civil
entities, from an external Autodesk® Civil 3D drawing, in one operation.
LandXML Import/ExportLANDXML Import/Export is enhanced to support new Alignment
curves (Spiral-Curve-Spiral combinations and parabolas for Vertical Alignment).
3D Alignments are now drawn for all imported Vertical Alignments.
When importing a surface with breaklines, a new option allows you to specify whether said breaklines
should be drawn (or not).
Breaklines from TIN Surfaces are now imported as 3D polylines.
You can now import LANDXML data from SiTECH 3D. SR98086
TIN SurfacesThe new TINASSIGNIMAGE command enables you to assign a raster image as
a TIN Surface material.
The new TINPROJECT command enables you to project point (Point, Bock, Text) or linear (Line,
Polyline, Circle) entities to a TIN Surface.
The new TINWATERDROP command enables you to draw a water drop's path from a point on a TIN
The TINEDIT command is now updated with clearer prompts for the Add Points option.
The TINEXTRACT command now allows the extraction of Mesh, Solid, Faces, Points, Contours, Contours
at elevation, and Border.
A new option in TINEXTRACT enables you to extract TIN Surface from Grading and TIN Volume
A new option enables you to clip a TIN Surface according to a given polyline boundary.
Points and blocks are dynamically linked to the TIN surface.
Exploding a Contour twice will yield Polylines. SR94757SR94757SR100637SR100637SR104460
TIN Volume SurfacesThe ASSOCIATIVITY setting includes a new control for TIN Volume
TIN volume surfaces automatically rebuild when their source surfaces change. SR94757
Improvements to Communicator
COMMUNICATORFixed compatibility issues between minor and maintenance releases of
BricsCAD and Communicator. SR93021SR101174SR101232SR101326SR101353SR101361SR101537SR101549
Export file versions updatedACIS, CATIA v5, and XCGM are updated to v2020, and
Parasolid is updated to version 32.
IMPORTIntroduced the CommunicatorBackgroundImport user preference which executes
the import in a background thread, and allows the user to continue working in the drawing while
Communicator runs. This new preference is experimental and only supports the following file
extensions at this time: STEP, STP, STPZ; IGES, IGS; SLDASM, SLDPRT, CATProduct,
CATPart (Windows and Linux only); IAM, IPT (Windows only); X_T, XMT_TXT, X_B,
2D CONSTRAINTSFixed several cases where 2D constrained geometry became distorted
after COPYCLIP/PASTECLIP operations.
3D MouseAn XRC error about a missing tool icon, raised when CUI tools specify an
image file path, is fixed. SR101569
ACISOUTFixed the wrong color index being saved in the ACIS attribute
'rgb_color-st-attrib' during ACISOUT. SR99236
AI_PYRAMIDCancelling the AI_PYRAMID command now behaves are expected.
Aliases to VariablesA problem registering aliases to variables is fixed. SR114841SR115459
ANIMATIONEDITOROPENLocalization of category names in the property grid of the
Animation Editor is now enabled.
An issue with cut labels for text buttons in the Animation Editor is fixed. SR104124SR104109
Annotation scaleThe annotation scale list no longer displays duplicate names. SR98560
ApplicationStart menu shortcuts now set the program folder, instead of the user's
personal documents folder, as the initial working directory. This change corrects problems with
installations run under a system account where personal folders are not accessible. SR102093
Associative DimensionsA crash on a user-provided drawing containing associative
dimensions has been fixed. SR114018
AUDIT and RECOVERThe commands now remove invalid OdDbAssocAction objects from
ACAD_ASSOCNETWORK dictionary. SR99328
BCF PanelSmall snapshots are now correctly displayed.
BHATCH, HATCHEDITSelecting hatch boundary entities in a block now works as
BIMAUTOMATCHThe text strings of command option names in the BIMAUTOMATCH command
(e.g. "Compositions") are now translatable. Automatch on BIM
Properties is improved. SR104931
BIMCLASSIFYFixed a situation that occured when classifying a drawing or room as a
Space. An issue with incorrect flow direction of classified Flow Connection Points is fixed.
BimFlowConnect now works correctly on said Flow Connection Points. SR98337
BIMFLOWCONNECTA crash that occured when encountering a specific flow terminal
configuration is fixed. SR103804
BIMGRIDBIM grids now keep their BIM classification after block editing. SR104602
BIMIFYBimify clears selected geometry after running the command. This reduces the
need to manually de-select Bimified entities.
BIM QuantitiesSpecific issues with BricsCAD BIM freezing during quantities
calculation are fixed. SR103336
BIMQUICKDRAWYou can now choose "blue" or "red" mode, independent of mouse position.
The Settings option is disabled in BricsCAD Shape.
It no longer connects/miters new walls with existing walls of other buildings.
Extra inner walls are no longer drawn when "breaking through" a wall with a window.
Reference faces of slabs and roofs are now set correctly.
The reference face of walls is now set correctly.
BIMROOM/BIMDRAGAn issue where a room solid is dragged when one of its bounding
walls is dragged is fixed.
BIMROOMBOUNDINGELEMENTSThe BIMROOMBOUNDINGELEMENTS command is removed.
BIMSECTIONUPDATE The INSUNITS of the section result now match the model's INSUNITS
Story callouts and tags in the section result now honor section scale.
A section result can now be updated starting from an empty viewport, such as a viewport created by
the Sheetset Setup Manager.
Hidden BIM grids are no longer displayed in section results.
A problem resulting from regions with compositions is fixed.
The origins of section result blocks are now based on the projection of the World Coordinate System
origin to the section plane.
Room lines are no longer generated on reflected ceiling plans. SR99682 SR103173 SR105017
BIMSTAIRA problem with stair parameters between the first and third flights is
BIMTAGA crash that occurred when BIMTAG was used on an unrecognized element has
been fixed. SR114338
BLOCKThe draworder of entities in a block is now stored inside of the Block
Block EditorVisible 2D constraint glyphs are now updated upon exiting the Block
BLOCKIFYBLOCKIFY now recognizes mirrored groups of 2D entities containing
Problems that occured when the 'Recognize Arrays' setting is enabled are fixed.
BIM data is now transfered correctly from the solid to its replacement Block reference.
A problem that occured when rotating 3D solids containing cylindrical and toroidal faces is
A problem correctly recognizing 2D line geometry is fixed.
BMBOMPANELOPENIn the BOM manager, it is now possible to select multiple rows,
either manually or by using the search tool. SR113532
BMINSERTBIM Components will subtract only the placement solid, by default, when
inserted using BMINSERT.
BOUNDARYThe BOUNDARY command now handles elliptical islands correctly. SR101499
BricsCAD LauncherThe BricsCAD Launcher no longer specifies the BASEFILE variable
when a workspace is chosen (when BASEFILE was previously specified). SR114535
CameraThe Camera entity is now copied correctly. SR102677
CENTERLINE, CENTERMARK A problem in a specific drawing with center lines and
center marks is fixed. Thanks to this fix, BricsCAD no longer displays a meaningless error message
on every operation (when said drawing was loaded). SR113500
CHPROP commandA problem with language translation of "ByLayer" and "ByBlock" for
the Color, Linetype and Material properties is fixed. SR21437
Civil 3D enablerProblems that occured when loading large C3D drawings have been
CLEANSCREENThe Clean Screen toolbar button state now changes, as expected, when
exiting Clean Screen state.
COLORTHEMEThe look of themed controls has been improved. SR104407SR115341
COM Unregistering COM types now works reliably, e.g. when specifying the
'/unregister' command line option.
Enumerated MenuBar menu items now return their correct parent items.
IAcadPreferencesProfiles::ResetProfile() now works on any user profile, not only the active
COMMANDLINETyping the Turkish 'ş' character no longer triggers the F11 shortcut key
(toggling object snap tracking). SR115121
CONVTOMESHCONVTOMESH respects ACIS modeler properties when SpaUseFACETRES is
CONVTOSOLIDA result verification step was added when converting from a subdivision
mesh to 3D solids and surfaces, to prevent the creation of improper entities.
An issue that sometimes occured when processing non-watertight meshes is fixed.
Copy/Paste of annotative MLeaderA problem with annotative MLeaders becoming
invisible after a CopyClip/Paste operation is fixed. SR103542SR103545SR103745SR103819SR113449SR113610SR113999SR113451SR114875SR114753SR115078SR115349
CopyFacesThe 'NoCut' and 'Cutting by selected' faces options now work as designed.
CUSTOMIZEThe active main menu bar items are now included when saving a workspace to
The command macro for the "Entity snap to dimension lines" tool is fixed.
Opening the CUSTOMIZE dialog with the Properties tab active now fills the rollover properties list
The Ribbon Panel Margin workspace property is now included in the
workspace property grid.
DATAEXTRACTIONData Extraction now supports the extraction of entities from
Deform TIN SurfaceThe Deform TIN Surface and Smooth TIN Surface tools are
replaced by Modify TIN Surface in the ribbon, menu and toolbar. SR104471
DMAUDITThe stability of audit operations on bad models is improved. SR104045
DMEXTRUDENew entities created with the Limit option are correctly placed on the
current layer. SR104242
DMRADIUS3D/DMANGLE3DAn argument inside a block or a component is permitted to allow
creation of the correspondent geometry-driven parameters.
3D angle and radius constraints can be used in blocks and components.
Draw orderEntities with duplicate keys in the SortEnts table are included in the
list of entities that are displayed based on their Draworder properties. SR82220
Drawing ExplorerThe sorting of strings with embedded numbers is improved.
The list of blocks in the Block panel is properly loaded when switching to the Folder tab.
Captions of panels update correctly when switching between panels in the Folder tab.
Drawing File Save DialogSaving a new drawing without including a file extension in
the filename field no longer silently overwrites an existing .dwg file of the same name.
DWF EXPORTThe height of block attributes in an exported DWF file is now
Dynamic BlocksRedefining a Dynamic Block correctly removes the dynamic block data
from the resultant block definition.
The context menu of a BlockPropertiesTable grip point is improved.
The copying of dynamic blocks with constraints is improved.
The evaluation of dynamic blocks with constraints is fixed.
Dynamic dimensionsFocus now switches from dynamic dimensions edit boxes to the
command line, when appropriate.
The main frame title bar no longer flickers or de-activates when a dynamic dimension input field is
Enscape Orthographic cameraThe new version of Enscape fixes unexpected behaviour
that occurred when starting Enscape with an orthographic camera. SR97812
ESNAPThe undesired ability to snap to entities in turned-off viewports has been
EXPORTAn issue with the double scaling of parts, if their ACIS header specifies
non-mm units, is fixed.
The unwanted wait cursor is removed. SR99405 SR104297 SR104776
EXTRUDEA bug when extruding along a path is fixed. Under some conditions, this bug
produced an incorrect start position for the profile relative to the path. SR103670
FACETINGTo reduce the potential negative effects of careless changes to low level
settings that control faceting, and to make faceting control simpler, all settings related to
faceting (e.g. SpaMaxFacetEdgeLength, SpaNormalTol, SpaSurfaceTol, SpaTriangMode...) are ignored if
SpaUseFacetRes is ON. In this case faceting tolerances are calculated from FACETRES and other
settings have default values. SR101960
FIELDProperty values in the Field dialog box are now properly updated when the
combo box selection changes. SR114293
FieldsDrawings with Fields referencing a Sheet Set no longer cause BricsCAD Shape
to hang after opening.
Support of fields in dimension override text is improved, too.
Find and ReplaceThe "Current selection" option in the Find and Replace dialog box
no longer closes the dialog. SR102376SR102959
FLATSHOTEntities residing on 'off' or 'frozen' Layers in Xrefs are ignored by
HATCHEDITThe Hatch Edit dialog now displays Custom as the hatch pattern type when
editing a hatch whose pattern is not currently available. SR102653SR102927
HatchHatches in Dynamic Blocks maintain their orientation when stretching the
block, even if the hatch was inserted into a block with a UCS other than the World Coordinate
IFCEXPORTExporting faulty solid geometry to IFC4 is now more tolerant. On Linux and
Mac OSX, a zero-area solid face no longer causes a crash.
Cones and transformed toruses are now exported correctly.
Composition materials with ply layers now export correctly in cases where the .bsyslib and the host
.dwg have different units.
Profile name for flow segments is now exported correctly.
Exporting BIM elements without geometry representations is now supported. SR99981SR99375SR101349SR101575SR102090
IFCIMPORTModels with a tolerance of less than 1.0x10e-7 now import
Profile size is now appended to the name while importing a profile from IFC.
IFC properties are imported as per instance properties.
Spaces with footprints now import correctly. SR76345 SR79266SR94995SR100499 SR104045SR104406
INSERTThe INSERT now command works correctly when UNDO is disabled. SR114854
Layer StateIncorrect characters no longer appear in the layer state name after
editing a layer state in Japanese versions of BricsCAD. SR85339
LAYERPThe LAYERP command now restores changes made to layers in the sequential
order in which they were executed. SR99657
Layers PanelAn issue with layer names overflowing into property cells in the Layers
Panels is fixed. SR100900
LCONNECTThe connection when selecting two solids is fixed. The connection plane for
first/second base options is corrected. SR102710
LEADERThe LEADER command no longer breaks leader annotation text on lines, when the
command is executed from the menu. SR98187SR90030
Library PanelThe new Library panel is now enabled by default in the BIM and
Mechanical workspaces, and in BricsCAD Shape.
LicenseAn invalid RunAsLevel value no longer causes the Launcher to appear in Trial
Linetypes DisplayLines with linetypes no longer affect the display of continuous
LookFromThe LookFrom widget now remains active while a focal dynamic dimension edit
field is shown during jigging. SR101546
MANIPULATORThe Manipulator ruler now depends on the SNAPTYPE system variable. SR100704
Mass Properties calculationsCalculation of mass properties for multiple solids is
optimised for Properties panel updates. SR104062
MATCHPROPThe MATCHPROP command correctly applies "ByLayer" and "ByBlock" plotstyle
names to destination entities. SR103458
Mechanical BrowserContext menu commands to set BOM status and assign a material now
support multiple entity selection. SR113532
Mesh EntitiesYou can now select the first edge of a mesh entity (OdDbSubDMesh) when
the shaded visual style is active.
The Smoothness property of subdivision meshes has been added to the Properties Panel.
MText EditorPerformance when entering text in the MText editor is improved.
Keyboard input focus now remains in text input fields until an explicit click is made outside the
The MText editor no longer flashes to an inactive state while editing. SR96957
OLEFRAMEA display problem with certain types of embedded OLE Picture objects, which
caused display garbage when zooming or panning, is fixed. SR66679SR78934
Parameters and Constraints PanelThe hatches associated with parametric geometry are
now properly updated when said parameters change. SR101170
Print dialogThe previous paper size item is removed, after applying changes. SR92669
Profile ManagerComments can now be included in '.arg' files by prefixing the
comment with a semicolon character.
Comments are ignored when importing the user profile. It is now permitted to overwrite an existing
user profile when importing.
Renaming a custom profile definition no longer causes the profile definition to be deleted. SR99129SR99183
Project BrowserThe library tab in the project setup dialog contains both stored and
found library paths.
A right click menu offers the option to turn absolute paths into relative paths.
A problem that occured when background update was switched on is fixed.
PropagateRefinement of edge following logic with the 'inside' option. SR115284
Properties PanelA focus problem when selecting a grid property is fixed. SR104181
PROXYINFOThe proxy information dialog now honors the kDisableProxyWarning proxy
flag by omitting such proxy objects from the report. SR99315
PURGEThe Batch, All, and Orphaned data options in the PURGE command now erase more
invalid items in the drawing.
QuadPre-selection of a corrupted surface face no longer causes problems. SR103753
QuadThe QUADICONSIZE system variable is now saved in the workspace instead of the
user profile. Instead of nominal pixel size, it now has logical values 0/small, 1/large, and
QUICKDRAWThe QUICKDRAW command now allows double line snapping when the UCS is
Render Composition MaterialsSolids with compositions are now shown in red if the
composition is missing or failing.
RibbonA problem resulting in the incorrect display of the activated tab after
switching away from, and then removing, a contextual tab is fixed.
When switching to a ribbon tab that has all panels collapsed, the ribbon bar height is now
calculated correctly to include the collapsed panel labels.
Split buttons using the "no follow" style now display their own icon and label, if one was
The layer combo on a collapsed ribbon panel is now always filled when a drawing is opened.
The view control now displays the current predefined view when no named view matches the current
The spacing between tab captions was too large on high resolution displays.
This has been corrected. SR102154SR104951SR113471SR115017
Rotate viewportFixed a bug that caused the geometry in a non-WCS viewport to
disappear after rotating that viewport. SR114080
RTWALKA crash when switching to RTWALK (ALT+LMB) from an active command is
SAVEFORMATThe version of .dwg files created by BricsCAD in BIMSECTIONUPDATE and
BIMSCHEDULE commands is now defined by SAVEFORMAT setting.
SECTIONPLANETOBLOCKThe application of section plane settings for mesh entities
(OdDbSubDMesh) is fixed.
Background geometry can now be turned off in a 2D section.
Turning off intersection fill doesn't turn off intersection boundaries in 3D sections.
SELECTSIMILARThe SELECTSIMILAR command now respects MLeaderStyle.
SettingsObsolete settings are not migrated from V20 to V21.
Settings DialogChanges to settings stored in the drawing are now only indicated
during a drawing comparison session (DWGCOMPARE). SR85174
SheetsetsA problem with sheetsets finding their referenced files after an autosave
is fixed. SR100727SR104177
SMEXPORTOSMAn issue resulting in a failed .OSM export is fixed. SR98081
SMREPAIRAn issue where the SMREPAIR command removed imprinted edges on junctions is
SMUNFOLD SMEXPORTOSMUnfolding issues that occured when a bend hole touches a
flange's border are fixed. SR94380
SpacesFootprint representations now replace hatch representations and these are
generated from the space solid.
Rooms converted to Spaces are no longer marked as out of date after conversion. Spaces are no longer
marked as out of date when new bounding elements are added after BIMUPDATESPACE. SR90574
Spatial ElementsThe transparency of Buildings and Stories are now automatically set
to 90 after using BIMCLASSIFY.
Structure PanelThe state of expanded and collapsed items in the structure panel is
now preserved when switching back and forth between panels.
Using the left arrow key when navigating the structure tree now collapses items as expected.
SWEEPA problem causing incorrect alignment of the profile to non-planar paths is
Table EditorThe Table editor improves the application of table styles to individual
The in-place Table editor no longer flashes to inactive state while editing. SR101253
TIN Volume SurfaceThe Entity name for 'TIN Volume Surfaces' in the Properties panel
and Structure browser is now correct.
Tool PaletteA problem with BricsCAD crashing when _CLOSE was used as a command tool
is fixed. SR103951
Tool PaletteWhen inserting a Block that has been moved from its original file
storage location, the tool now searches for the block file in all folders on the current support
path. This was a regression since BricsCAD V20. SR35514
TooltipsTooltips are now displayed for overlapping entities. SR85204
TrackingDirect distance entry works properly when tracking along an arc extension
snap. A regression since V20. SR105028
TRIM/EXTENDThe TRIM and EXTEND commands now support selection of multiline entities
with fence and crossing modes.
UNION/SUBTRACT/INTERSECTA problem with failing Boolean operations on specific 3D
Solids is fixed. SR99060SR100131
User ProfileAll user-profile-based BIM and Civil settings are now saved, then
reloaded from the new user profile when the current user profile is changed at runtime.
VBA IDEThe Find dialog now shows non-ASCII characters correctly. SR114906
Vertex EditEditing vertices with the Manipulator, DMMOVE and DMROTATE is now
supported. The Manipulator and DMROTATE also support editing with adjacent faces'
VIEWBASEThe VIEWBASE command is better at detecting deleted, exploded
VIEWDETAIL Detail views maintain their positions when their base view is moved.
ViewsSetting a large TARGET value for a View, to avoid a degenerate view direction
value, no longer results in a distorted view. SR80438
XrefsA problem with incorrect coordinates of attached Xrefs when attaching multiple
files is fixed.
A problem resulting in drawing errors created by canceling an Xref Attach operation is
A problem that could prevent saving a file with attached Xrefs that failed to load is fixed. SR101426SR103946SR114121
ZOOMIncorrect behavior for Zoom Extents, when lids are "On" for a section entity,
is repaired. SR99101
.NETA new Alignment API has been introduced in the Civil namespace, to enable
working with vertical and horizontal alignments.
.NETNew RibbonTab properties 'IsVisible' and 'IsActive' have been
.NETSymbolUtilityServices.RepairSymbolName() and RepairPreExtendedSymbolName() now
return the supplied name when it is found to be already valid. SR99631
.NETThe Civil.TinSurface class now uses TinSurfaceTriangle, TinSurfaceEdge, and
TinSurfacePoint instances to represent every node on the surface network. Properties on each node
enable traversing the surface network along every edge. SR95626
.NETThe CivilTin namespace has been renamed to just Civil, and the classes within
it have been given a good makeover to make them more comfortable to use and more similar to APIs on
other platforms. In particular, the TinSurface class includes many new properties (some of which
used to be methods) and now exposes direct access to every connected node on the surface network.
.NETThe DatabaseServices.ViewRepBlockreference class has been implemented. SR104885
.NETAccessing the Image (or LargeImage) properties of a RibbonItem when no image
source is set
no longer throws a NullReference exception.
.NETAdded .NET IFC export API.
.NETAdded QuadReactor.registerQuadReactor and QuadReactor.unregisterQuadReactor to
register and unregister a custom QuadReactor. QuadReactorManager is deleted.
.NETAn InvalidCastException has been fixed in
.NETIFCImportReactor has been added.
.NETNew class RibbonCommandItem.CommandHandler allows the setting of a custom
command handler for ribbon buttons. SR71692SR79726SR83775SR87797SR88712SR92583SR100880
.NETThe RibbonSplitButton.Current property has been implemented.
.NETThe extension application instance is now created immediately when the managed
module loads, instead of delaying until Initialize() is called.
.NETThe single-argument 'PromptOptions' constructor no longer parses keywords from
the prompt. SR92562
.NETTo improve compatibility, RibbonItem properties Image and LargeImage are now of
type ImageSource. RibbonItem.ImagePath still works as expected, so it can be used by older code. In
addition, RibbonItem now supports ShowText and ShowImage properties. SR72958SR79729SR83775SR99758SR99834
.NETWe fixed a NullReferenceException thrown whilst using material components with
null MaterialMap properties. SR104333
.NETThe 'ViewToBeUpdated' and 'ViewWasUpdated' events are now implemented on
.NETThe AssocArray.IsAssociativeArray() function no longer returns true for
centermark and centerline entities.
.NETThe new managed module TD_MgdDbConstraints.dll includes the complete 2D
constraints API, including classes like AssocNetwork, AssocArray, AssocAction, along with many other
related classes. SR93633SR102332
.NET Disabled state of ribbon items is no longer ignored when adding them to an
active panel source. SR113651
.NETGraphicsInterface.MaterialMap can now be constructed successfully with a null
.NETReactors added to Document.GraphicsManager are now fired reliably for all
visual styles. SR102884
.NETThe Database.DataLinkManager and DataLinkDictionaryId properties are now
.NETThe Database.OriginalFileName property has been implemented. SR104238
.NETRibbonSplitButton with SplitFollowStaticText style now shows the correct label.
A regression since V20. SR114946
.NETThe Table.TableStyleName property is now implememnted. SR100919
.NET DrawJigDynamic dimension input is now working correctly when a DrawJig is
started from a ribbon button or other modeless context. SR90530
.NET RibbonThe background of custom WPF ribbon panels is now themed to match the
host ribbon panel's background colors. SR103727
.NET/BRXIntroduced new C++/MFC BcUiPanelMFC and managed .NET Windows.Panel classes
for implementing custom panels that behave like native panels. These classes are not ARX compatible,
but are designed to make it as easy as possible to port existing ARX compatible palettes to work as
native panels. SR83017SR83034SR83257SR84006SR93150SR94491SR97147SR97709SR97985SR102541
BIM LISPFixes (bim:create-associativeroom) to properly assign the room. SR103791
BIM LISPFixed (bim:set-property ...) for Boolean BIM properties. SR103976
BLADEFixes an endless loop case when saving a Lisp file to disk under a different
BRXAdded 'isFullySupported' function to IfcImportCustomizer object; returns whether
the specified IFC class is fully supported in BricsCAD's IFC import complex. SR104788
BRXSetting an empty tooltip from an input point monitor, when the quad is otherwise
empty, now hides the entire quad window - as expected. SR105019
BRXThe old style AcGsClassFactory returned by AcGsManager::getGSClassFactory() is
now associated with the current document, and uses the same graphics kernel as the active viewport
of its associated document. In earlier versions, it always used a generic 2D graphics kernel.
BRXA problem with AcDbSpline constructor has been corrected. SR114765
BRXUndocumented function acedNEntSelPEx() now works properly for selecting entities
inside a model space viewport while in paper space. SR79125
BRX 3D ConstraintsExtended the 3D Constraints API with a few additional
BRX AcComponentsThe components API is now initialized automatically upon use. It is
no longer necessary to call acdbInitComponentsClasses() before calling the API.
BRX AcDbEllipseAdded missing AcDbEllipse member functions. SR113331
BRX AcDbMPolygonImplemented the AcDbMPolygon::balanceDisplay(),
AcDbMPolygon::balanceTree() and AcDbMPolygon::isBalanced() functions
BRX AcDbPolylineFixed the implementation of getVertexIdentifierAt(), always returns
BRX AcDbSweepOptionsProvided "setSweepEntityTransform()" and
"setPathEntityTransform()" functions. SR103556
BRX AcGiTextEngineFixes an issue with the tesselation of SHX fonts; the assigned
SHX font was ignored and txt.shx was always used. SR114582
BRX BIMSome API functions crashed when they encountered invalid data. Now they
return an appropriate error. SR113423
BRX C++ OPM APIFixes a problem with custom AcDbTable entities not showing proper
extension properties. SR100358
BRX Civil AlignmentsImplemented BRX interface classes for Civil alignments.
BRX HLRFixed HLR processing of overlapping entities : edges occluded by other edges
could sometimes get a wrong "hidden/occluded" status, instead of "visible". SR114507
BRX IFC Import"beforeCompletion()" reactor event was not called (in rare cases),
this has been fixed! SR104987
BRX OPM APIEnabled PickButton editor for PropertiesPanel grid items of type
'opmTypeAngle' and 'opmTypeDistance', grid items of type 'opmTypeDouble' do not enable the
BRX PaletteSetThe CAdUiPaletteSet::SizeChanged() notification now receives a
rectangle that excludes the area occupied by the palette tab control. SR100412
BRX Ribbon APISetting split button properties now reliably updates the button
BRX/.NET Civil TinSurface APIFixes a problem with
AcDbCivilTinSurface::getConstraints() function, where the array did not contain expected objects.
The function signature changed, so client code will need to change for V21. SR103763
BRX/.NETAcDbSubDMesh (Mesh in .NET) now sets correct vertex orientation flag when
generating graphics. SR102886
BRX/.NETThe BRX acedTraceBoundary() and .NET Editor.TraceBoundary() API function
signatures have been extended to support more than two island detection depths. SR101514
BRX/.NETThe raw image drawn with Geometry.Image() or AcGiGeometry::image() is now
scaled correctly based on the supplied u/v vectors. SR95525
BRX/.NET/LispTo match ARX behavior, there are several important changes in existing
APIs. These will break existing code that was written for BRX only: 1.) The BRX acedGrVecs(),
Lisp (grvecs), and .NET Editor.DrawVectors() functions now interpret input vectors in DCS
coordinates instead of UCS. 2.) The transformation matrix in acedDragGen() callback is now a WCS
transformation instead of UCS. SR68142SR71833
BRX/.NET/LispThe various APIs for getting the implied selection set, like (ssget
"I") in Lisp or Editor.SelectImplied() in .NET, now work as expected when the PICKFIRST system
variable is set to zero. SR113329
BRXIn V20, the kLoadDwgMsg notification was sometimes sent after the editor entered
a quiescent state. Now, in V21, it is always sent before entering quiescent state. SR99973
BRXA jig's sampler() loop is now called when the Ctrl key is pressed without moving
the mouse. SR90876
BRXACRX_*_DEFINE_MEMBERS macros have been modified in order to eliminate the need
BRXAcGsReactor events now send notifications with valid AcGsView arguments. SR98509
BRXCAdUiBaseDialog now uses the AdUi message tooltip mechanism for
CAdUiOwnerDrawButton tooltips. After this change, plain MFC controls no longer show automatic
BRXCore entity classes include default dynamic properties which are inherited by
custom entity classes. These default dynamic properties are now implemented as per-instance dynamic
BRXFloating paletteset windows are now moved to the main display when their
position is not visible, due to a change in the current display configuration. SR104526
BRXIt is now possible to cancel closing the application by calling veto() from
within the AcEditorReactor::beginQuit() handler. SR102142
BRXLocking the current document for write, within an input point monitor, no longer
causes problems while using the mouse wheel to zoom. SR104781
BRXRaw image drawing function AcGiGeometry::image() has been implemented.
BRXSeveral incomplete or unimplemented AcGiContext member functions have been
properly implemented. SR84681
BRXThe acedTraceBoundary() function now returns 'AcDbPolyline' entities when
possible... otherwise 'AcDbRegion' entities. SR101499
BRXThe application no longer freezes if a document reactor vetoes document closing
during application shutdown. #thankgoodness
BRXThe text window now opens automatically during the LIST command, even if a
custom entity overrides AcDbEntity::subList() and does not call the base class. SR99271
BRXLayoutSwitched() reactor event is not sent during database undo operations, to
improve compatibility. SR100663SR99935
BRXThe UNDO command now works correctly after a custom hot grip function modifies
the gripped entity. SR83524
BRX/LISPProvided methods to determine if a lofted bend feature can be analytically
unfolded. Provided the option to set analytical unfolding as default behaviour. SR103985SR104395SR104809
COMThe COM dynamic property editor offers the following new controls: color, text
style, linetype, lineweight, and distance pick button. SR85108
LISP (entmake)Improved compatibility for entmake() and Lisp (entmake) to properly
update MLeaderStyle objects and MLeader entities, for recreated Blocks. SR99273
LISP (safearray-value)improved compatibility for undocumented (safearray-value)
function, which returns NIL for an empty or invalid SafeArray. [note: official
(vlax-safearray->list) triggers an error in such cases] SR100652
LISP + COMFixed ZoomCenter method to also work in Perspective views. SR103791
LISP + DCLFixed a Lisp lockup for some Lisp code, using a strange combination of
(done_dialog) and (exit) in a DCL handler callback. But we aim to please, so we fixed it. SR103801
LISP/BRX viewport update crashFixed an issue with some specific Lisp/BRX code, that
occurred when Modelspace tiled Viewport(s) are added, and a display operation is triggered
immediately afterwards (zoom, ddvpoint etc.). SR94110
LISP/BRX/OpenDCLFixes a regression from V20.2.06 where Lisp user input functions
trigger a BRX/OpenDCL function call : results from nested function calls should not be echoed to
LISPAn input prompt now discards all, save for the first item, when an inline Lisp
expression returns a list.
LISPThe result of a nested lisp function executed as part of a WM_COPYDATA message
is no longer processed out of sequence. SR102149
LISP BIM APIextended LISP BIM functions for new "Spaces" support.
LISP compatibilityadded support for a strange (but allowed) AutoLISP code
construction :(apply/mapcar (list 'quote (lambda (x) (+ x x))) '(1))(apply/mappcar '(eval '(lambda
(x) (+ x x))) '(1)). SR114567
SHEET METAL APISheet Metal BRX/TX API has been updated. SR104809