.NET
We fixed an unusual case in which Solid3d.CreateSculptedSolid() created a solid with an invalid face on one side.
A managed LispFunction declared with void return type now returns nothing, instead of NIL.
The RibbonTab.PropertyChanged event is now notified for RibbonTab.IsActive changes when a new ribbon tab is activated by the user.
The Dimension.Dimtxtdirection and DimStyleTableRecord.Dimtxtdirection properties have been implemented.
Several signatures of RibbonControl.FindPanel(), RibbonControl.FindItem(), and RibbonTab.FindItem() are now returning the parent item of the found items as out arguments.
We fixed a recently introduced ArgumentOutOfRange exception that could occur when accessing a ribbon item collection while the BEDIT command was active.
The BlockPropertiesTableColumn.Parameter property is now returning the correct name and value in certain problematic drawings.
The LineSegment3d.Overlap() method no longer throws InvalidOperationException when the two supplied line segments do not overlap.
The ShowImage = false property is now obeyed in ribbon combos.
Several missing application context members in the DocumentCollection class are now implemented.
We fixed a crash that occurred when removing a ribbon tab that contained a WPF ribbon panel.
The MText.getMTextWithFieldCodes() method has been implemented. This method returns the text content with fields as raw field codes.
We resolved an eNotOpenForRead exception when constructing a Brep instance from FullSubentityPath.
The ObjectId class has been extended with support for dynamic late-bound access to properties and methods of the underlying database object.
The OPM Extension API is now available for .NET plugins to extend the object properties displayed in the Properties panel.
A new generic properties API, based on the similar C++ API, is now available in .NET at Bricscad.Global.PropertyService and Bricscad.Global.ObjectIdPropertyAccessor.
The BrxMgd assembly is now marked with ExtensionAttribute, so that extension methods can be directly called from VB.net client code.
The PromptSelectionOptions.AllowSubSelections flag is now ignored when PrepareOptionalDetails is also set, as subentity selection is not supported in that case.
Implemented classes to facilitate the creation and manipulation of Civil Label Styles.
BRX
We implemented the AcDbAssocManager::getGlobalEvaluationCallbacks() method.
We implemented a number of missing functions in the AcDbAssocVariable class.
Table editing is now temporarily suspended while a custom context menu command executes.
A multitude of AcDbAssocArray classes were implemented, exposing the functionality of associative arrays to the BRX API.
Graphics created by acedGrDraw() no longer remain visible after the command ends.
The BIM classification API can now classify a database for later insertion as a block.
We implemented the AcDbViewSymbol, AcDbDetailSymbol, and AcDbSectionSymbol classes.
We implemented the AcDbAssocGeomDependency class.
We implemented the AcDbAssoc2dConstraintGroup class.
Calling AcDbLayout::copyFrom() with a source layout from a different database now copies the source xdata as well.
We deprecated the non-conforming defaultDoubleNull type from BREP API, and adjusted affected function signatures to use double* instead of double&.
We implemented the AcGraphNode and AcConstraintGroupNode classes.
We implemented the AcGeomConstraint, AcHelpParameter, and AcCompositeConstraint classes.
We implemented the AcExplicitConstraint class and related explicit constraint classes.
We implemented the AcConstrainedGeometry class and related geometric constraint classes.
The first and second derivatives at the start point of a polyline are now properly computed by getFirstDeriv() and getSecondDeriv(), even when the first segment is an arc segment.
Per-instance dynamic properties can now be registered on a base class of the class where the properties are implemented.
The automatically generated SDK documentation has been cleaned up, and presentation has been much improved, with better formatting and the addition of class inheritance graphs.
We implemented a new generic properties API to access any and all object properties from DWG database objects, including properties defined by BIM, MCAD, Civil, IFC, Point Cloud, and third party party OPM extensions. See header file BrxSpecific/BrxGenericPropertiesAccess.h for documentation.
We added a special signature of the cast() member function to civil alignment element classes that accepts and returns an AcSharedPtr instance. This enables more natural usage of runtime casting of temporary alignment elements returned as shared pointers, without accidentally creating duplicate or orphaned references.
It is now possible to call clone() on a custom class derived directly from AcRxObject.
Improved performance and functionality of BRX HLR module, also reducing the amount of generated entities (no duplicates, no overlaps, etc.).
A number of missing functions were implemented in the AcDbAssocAction, AcDbAssocActionBody, and AcDbAssocVariable classes.
The AcDbAssocParamBasedActionBody class was implemented.
Object snap calculation for custom entities now calls the 8-argument subGetOsnapPoints() signature, then falls back to the older 7-argument signature if the newer version was not implemented for the entity class.
AcDbViewport::setVisualStyle() now sets the correct render mode based on the visual style.
Several missing methods have been added to the AcValue class.
A WM_HELP message is again being generated when pressing F1 in a modal MFC dialog. This was broken in V24.2.
While a modal dialog is active, the main frame window is disabled. Other floating application windows like the miniframe command line are also now disabled while a modal dialog is active.
We've implemented AcApDocManager member functions beginExecuteInCommandContext() and beginExecuteInApplicationContext().
Several new methods have been added to the BModeler Face class to more cleanly expose internal loops of faces.
The document that is current when a document context command starts, now remains the current document until the command has ended (or been cancelled), even when a new document tab is activated while the command is running.
We fixed some incorrect behavior when calling member functions of a custom class derived from AcDbWipeout.
The annotative context data of custom entity classes derived from AcDbMText is now preserved during handOverTo().
We fixed an issue whereby setting a new current dimension style, then applying it to a newly created dimension, would result in dimension style overrides corresponding to the previously active dimension style.
It is now possible to assign BIM spatial location to objects classified as annotation.
The AcDbEvalGraph class and several related classes have been implemented.
AcDbObjectPointer::create() has been extended with a signature that accepts arguments to pass to the constructed object. The new utility class AcDbObjectPointer2 calls the new create() function directly from its constructor by forwarding arguments.
BrxBimPolicies functions setPolicy() and getPolicy() no longer produce linker errors when used.
During input point monitoring, the list returned by AcEdInputPoint::pickedEntities() now includes one top level entity for each nested entity, even if this results in duplicates. The new behavior is compatible with other platforms.
We fixed a V24.2 regression that caused issues with custom entities displaying inside a dialog based AcGsView instance.
BRX/.NET
A new BrxPlotStampSettings class was created for the BRX API and a corresponding PlotStampSettings class was created for the .NET API to facilitate programmatic manipulation of plot stamp settings.
Changing the annotative property of blocks has been improved to be more compatible with other platforms.
The Anchoring API has been extended, including a new protocol extension BrxAnchorfeaturePE (C++) and Bricscad.Parametric.AnchorFeaturePE (.NET) that enables plugins to dynamically filter the allowed target faces for an anchor.
The BrxCvDbPoint (C++) and Civil.Point (.NET) classes have been extended with new static methods importPointsFromFile(), assignPointsToPointGroup(), and assignStylesToPoints().
Calling CreateAnchoredBlockReference() with an invalid input id no longer crashes.
The acedTraceBoundary() and TraceBoundary() functions now correctly interpret the seed point as UCS coordinates.
The BIM IFC import and export classes have been extended with several new options. As part of this work, some classes have been changed slightly to make them more consistent with other classes.
Registered ADS functions (or LispFunction in managed code) no longer become exposed at the command prompt as if they were regular commands unless they use the C:XXX syntax.
We've changed behavior when setting plot style "ByLayer" or "ByBlock" in a drawing whose plot styles dictionary actual contains plot styles with those special names. The logical plot styles are now preferred, and the similarly named plot styles in the dictionary are ignored. This behavior is compatible with other platforms.
It is now supported to show a ribbon combo control label with any combination of text or icon, or both, depending on its label style.
New BRX classes BrxCvDbSymbolStyleManager, BrxCvDbStyle, BrxCvDbSymbolStyle, and BrxCvDbStylePartDisplaySettings, as well as .NET classes SymbolStyleManager, Style, SymbolStyle, and StylePartDisplaySettings, facilitate creating and changing Civil Point Symbol Styles.
The BrxCvDbPoint (C++) and Civil.Point (.NET) classes have been extended with a new static method assignPointToPointGroup().
We introduced new classes for creation and manipulation of Civil Label Styles.
The raw description and full description properties for civil points can now be set independently by API.
- SR164057
- SR164188
- SR164318
- SR182316
LISP
Enhanced the BIM LISP API to include a new function (bim:pset-list-all) to return all Property Set properties associated with a supplied entity.
The (getcfg) and (setcfg) functions now read and write in-memory user profile settings when the supplied value path starts with "../Profile/". This enables something like (setcfg "../Profiles/Default/Dialogs/XXX/rect" "200,200,300,100") to change the in-memory value baing used by the application code.
We improved compatibility of reactors using the 'all-document flag.
The (vla-Delete) function has been fixed to trigger a Lisp error when attempting to delete the current UCS (compatible with AutoLISP).
We added support for more COM Methods and Properties on Linux/Mac, including Annotation, Evaluate, Url, UrlDescription, and UrlNamedLocation.
A timing issue related to evaluation of (S::STARTUP) has been fixed. Now all defined (S::STARTUP) functions are processed after the drawing is loaded and all startup files have been processed.
We improved performance of certain lisp scripts that frequently invalidate the display.
We fixed a problem with LISP database and object reactors that occurred when MTFLAGS (MultiThreading mode) was enabled.
The (vlax-add-cmd) function documentation was updated to correct the example expression. The function's optional localisedName argument may now be nil, consistent with other CAD platforms.
Some constraints API functions did not return expected results when they were called multiple times in succession. The problem has been fixed.
We fixed a regression with nested partial incomplete (command) calls causing the command line to malfunction.
The function (vla-get-MomentOfInertia) now returns results compatible with other platforms.
When calling (bim:pset-create-property), the data type for a newly created PropertySet property can now be defined by the value assigned in a following call to (bim:pset-set-property ename propertyset name value). Additionally, both functions now support specifying the data type explicitly for a newly created property. We also fixed some improper mixing of property "Name" and "Label".
The (bim:get-bimtype) function was revised to enable the use of dynamic BIM types.
A memory access fault has been fixed when calling (entmod) with an entity definition list containing certain invalid entries.
Some new and enhanced Civil API functions have been added.