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.