BRX
acedSSGet() keywords are now highlighted and selectable.
We implemented additional modern signatures of AcGiTextStyle::setFont() and AcGiTextStyle::font().
AcDbPointCloudEx::traverseAllPointData() has been implemented.
The AcLocale getProductLocale() function has been implemented.
Custom commands with the command flag ACRX_CMD_NOHISTORY are no longer listed in the autocomplete command popup.
Dockable bars and palette-sets are now prevented from sharing a dock row with a non-BRX bar. This new requirement is necessary because mixed bars on the same row cannot be reliably synchronized in size, which causes strange visual effects.
We extended demand-load functionality by supporting a language independent registry key: SOFTWARE/Bricsys/BricsCAD/V24x64/Applications under HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE. The new key is now checked in addition to the (similar) language dependent key.
An AModeler::Body instance now survives a round trip save() and restore() without changing the order of its faces.
We fixed a transaction bug that caused unexpected behavior in certain cases when the same object was opened multiple times in a nested transaction, then accessed again in a subsequent nested transaction.
A modal dialog displayed during LAYOUT_CONTROL command notifications is now working as expected.
CAdUiListCtrl::DoAdUiMessage() no longer displays a warning that the function is not implemented.
The layout tabs are now updated correctly after a call to AcDbLayoutManager::copyLayout().
A new AcString signature of acedGetCommandForDocument() has been implemented.
We added an example for setting IfcPositiveLengthMeasure in BimSample.
The contextual menu now displays the complete keyword string.
We implemented the AcDbBreakData and AcDbBreakPointRef classes.
We implemented AcGeNurbCurve3d::makeNonPeriodic().
We implemented AcDbText::getBoundingPoints().
AcDbTable::fieldId() has been implemented.
We implemented the following AcDbTable member functions: breakOffset(), setBreakOffset(), breakFlowDirection(), setBreakFlowDirection(), breakOption(), and setBreakOption().
We implemented AcDbObjectId::isWellBehaved() and modified AcDbObjectId::convertToRedirectedId() to return bool instead of void.
AcDBlockTableRecord::appendAcDbEntity() no longer resets the entity's linetype scale if it had been previously set.
The key entities sent to an input point monitor are now the most deeply nested, instead of appearing at the top level.
AcDbPolygonMesh constructor now generates an entity based on the PolyMeshType.
AModeler::Body::interfere() has been corrected for the case when two separate bodies have intersecting extents but do not interfere.
AcDbTransactionManager::getAllObjects() has been implemented.
We added enum value AcDbViewport::StandardScaleType::k1_5.
The contextual and prompt menus no longer display hidden keywords.
Searching for a word in an external help window no longer crashes BricsCAD whilst the Tips panel is open.
We implemented the CAdUiListCtrl::GetItemAtPoint() method.
Member functions of custom classes derived from AcDbRasterImage are now working properly.
Member functions of custom classes derived from AcDbRasterImage are now working properly.
The C++ Civil API has been given a minor makeover in V24. Class and enum names have been changed to improve naming consistency, and now use the BrxCv prefix for all global names. In addition, a few global enums were moved inside their respective classes in order to limit pollution of the global namespace. Aliases are provided for legacy code that still includes the old headers.
AcGsKernelDescriptor::hasRequirement() replaces the deprecated AcGsKernelDescriptor::requires().
The AcPlPlotConfigInfo class has been implemented.
AcPlPlotConfig::fullPath() has been implemented.
We fixed field formatting being ignored due to ill-formed format code.
We implemented a missing signature of AcDbDatabase::wblock().
Various missing AcDbTable member functions have been implemented.
CAdUiDockControlBar::SetToolID() argument has been changed to 'const CLSID*' as on other platforms.
AcDbLayerTableIterator now honors the setting to skip hidden layers.
We removed the incorrect default value from AcDbObject::erased() callback declarations.
We modified the return type for AcDbObject::addReactor(), AcDbObject::removeReactor() and AcDbObject::addPersistentReactor() from void to Acad::ErrorStatus.
Several AcPlPlotConfig members including getDefaultFileExtension(), isPlotToFile() and fullPath() now return expected values for built-in PC3 configurations.
We implemented another signature of the AcDbRasterImageDef::suggestName() method which accepts a 4th parameter, corresponding to the size of the output buffer.
We fixed an incorrect attempt during AcDbText::subClose() to call adjustAlignment() while the text entity was not write enabled.
Floating paletteset frames with transparency now become opaque while the cursor is over the frame.
The SAVEALL command now activates each document before saving. This improves the compatibility with other platforms.
Newly created attributes and attribute definitions no longer trigger an AUDIT complaint.
We implemented the AcEdSolidSubentitySelector class.
- SR100604
- SR130732
- SR145768
Implemented AcUnderlayLayer class and associated member functions from AcUnderlayReference class.
Fixed an issue with the AcDbDatabase::save() method whereby the autosave filename would be used in place of the drawing filename.
Implemented the AcDbBlockTableRecordIterator::seek() method for an AcDbEntity* argument.
The AcGiPolyline class has been changed to allow safe handling when passing a client instance to internal operations.
Fixed a problem with BimPropertySets::setPSetProperty() function, assigning values to entity when the PropertySet already exists.
BRX/.NET
A new Visual Studio extension is now available along with the BRX SDK files. The extension adds project and item templates for plugin developers to quickly create ready-to-run plugin modules in Visual Studio.
The Civil API now provides access to civil style IDs and names.
- SR145914
- SR162835
- SR164188
The API samples now include sample code based on the GIS API.
The Civil TinSurface API has been extended with new interfaces for TinSurface Definitions that define and expose the Surface history.
We introduced a new BRX (C++) and .NET API for Civil GIS functionality. The BRX API is in the header BrxSpecific/civil/BrxCvGis.h, and the .NET API consists of several new GIS prefixed classes in the BricsCAD Civil namespace.
The LayoutManager.LayoutsReordered (.NET) and AcDbLayoutManagerReactor::layoutsReordered() (C++) events are now firing when layout tabs are repositioned interactively.
The BIM API now correctly reports the shape and size properties of a BIM profile.
Functionality for anchoring block-references to 3D solid faces has been exposed for use from plug-in code.
We implemented an API for Civil points and point groups, including classes Point and PointGroup in the BricsCAD Civil namespace for .NET.
- SR125560
- SR130893
- SR134422
- SR143605
- SR143759
- SR161783
.NET
DatabaseServices.Cannoscale can now be set when the layout is activated.
We implemented UnderlayHost::PdfHost::GetFile(), UnderlayHost::DgnHost::GetFile() and UnderlayHost::DwfHost::GetFile() methods.
GeoCoordinateCategory.CreateAll() is now implemented.
We improved the behavior of the AssocArray.CreateArray() method.
The Editor.PromptedForAngle event handler is now called after GetAngle(), as expected.
We implemented the LayerViewportProperties.IsTransparencyOverridden property.
GripData.OnRightClick() is now called when a custom grip is right-clicked.
The GripData.OnRightClick() signature has been changed to return a collection of menu items.
We implemented the GraphicsSystem.KernelDescriptor and GraphicsSystem.GraphicsKernel classes.
We implemented a hidden line removal API in the new Bricscad::HLR namespace.
- SR89046
- SR99064
- SR125974
- SR131611
- SR132513
- SR154725
Custom context menu items with empty IMenuItem.Text property are now added as menu separators.
The Bricscad.MechanicalComponents API was extended to add support for some missing functionality.
Some oddly named methods in the BIM API have been deprecated and redirected to new versions with more conventional names. Legacy code should continue to compile and run correctly, but may generate compiler warnings about deprecated methods.
The CurveCurveIntersector2d constructor taking an array of curves is now working properly, and the CurveCurveIntersector2d.SetCurve() method no longer crashes.
Calling TransactionManager.GetObject() to open an object from an Xref'ed database now uses the correct transaction manager instance to open the object.
- SR159071
- SR160971
- SR161277
Colorbook dialog now correctly sets for ColorDialog.Color the properties: HasBookName, BookName, HasColorName, ColorName.
Fixed: _AcDb.Entity.Highlight() fails if the entity is highlighted as selection preview.