Solibri SDP (API) - Changes from Pre-Beta to Beta
This file briefly lists the main changes in the rule development API between the Pre-Beta version, as contained in SMC v9.9.5 to the first Beta release, in SMC v 9.10.2. This list does not include bug-fixes and minor changes. For a detailed code migration guide from pre-beta to beta API code, refer to Solibri SDP (API) - Code migration guide.
All packages:
- Add Internal annotation and "internal" sub-packages. Interfaces, classes or methods annotated with the Internal annotation or placed in an internal sub-package are not supposed to be used directly, and are not supported by Solibri.
- Remove service interfaces (e.g. SearchService, DistanceService, DisplayNameService, ...). Their functionality is moved in appropriate interfaces (e.g. Model, Component, ...).
Model:
- Rename Entity to Component.
- Add property and property set retrieval for components.
- Add property references.
- Remove ResourceType.
- Remove OperatorType.
- Remove PatternMatcher.
- Remove ReadModelService.
- Remove Field enum.
- Remove unused values from PropertyType enum.
- Remove DataType and DataTypeInterface.
- Remove Quantity.Type.Measure in favour of PropertyType.
- Refactor Relation, removing unused field and improving naming.
- Rename Direction to RelationDirection.
- Rename EntityType to ComponentType.
- Remove non-component component types from ComponentType.
- Remove filter... methods from Model interface. Their functionality is moved in ComponentFilter.
- Remove getRelated... getRelation... methods from Model interface. Their functionality is moved in Component.
Rule:
- This package was removed and its functionality moved into the "checking" package.
Checking:
- Add property reference parameter.
- Allow custom rules to return pre-check results.
- Rename RuleInterface to Rule.
- Add RuleResources interface to retrieve resources of a rule.
- Add PreCheckResult interface to represent and create pre-check results.
- Add RuleParameters to create parameters for custom rules.
- Remove Checking interface and getContext() and setContext() methods in Rule.
- Remove AbstractRule.
- Add Result and ResultCategory as immutable objects, to create and categorize checking results for a custom rule. Remove old mutable Result interface.
- Add generalized checking in Rule, allowing additional control over the custom rule's checking flow.
- Add OneByOneRule abstract class to provide a default implementation for a simple, one component at a time checking.
Geometry (smc-geometry):
- Add TriangleMesh to represent meshes made of triangle.
- Remove PolygonBrep and SolidOperation, now replaced by TriangleMesh.
- Provide in-place and copying methods in Vector2d and Vector3d.
- Add create static methods in all read-only geometric primitives.
- Improve naming and functionality of geometric primitives.
- Improve naming and usability of "algorithms" package.
- Provide distance calculation between components and TriangleMesh instances.
Rendering:
- This package is removed from the API.
- ColorFactory and ARGBColor are moved to the "visualization" package.
Resources:
- This package is removed from the API.
Filter:
- All the filters in this package were removed and partially replaced with ComponentFilter and its derived interfaces.
Visualization:
- Remove Visualizable interface.
- Clean up the visualization items, providing cleaner interfaces and immutability.
BuildingElement:
- This package is removed from the API.
- The functionality of the
Info interfaces (e.g. RampInfo) is moved into the "components" sub-package of "model".
Distance
- This package is removed from the API.
- The functionality of the package is moved to Component and TriangleMesh interfaces, in smc-geometry.
Footprint
- FootprintContainer and FootprintService are removed from the API.
- The footprint functionality is implemented by the Footprint interface in this package and the getFootprint() method in Component.
Intersection
- This package is removed from the API.
- The functionality of the package was moved to the Component interface, in the "model" package.
Geometry (the package in smc-api, not smc-geometry)
- This package is removed from the API. All the geometry related functionality is not accessible from smc-geometry.
Units
- This package is removed from the API.
- The functionality of the package is accessible from the getFormat() method in the PropertyType enum in the "model" package.