### Configure Solibri Installation Path in Maven Source: https://solibri.github.io/Developer-Platform/9.10.3/getting-started This XML snippet shows how to configure the Solibri installation path within the 'pom.xml' file. It includes separate configurations for Windows and macOS operating systems, essential for building and deploying Solibri rules. ```xml C:/Program Files/Solibri/Solibri /Applications/Solibri ``` -------------------------------- ### MVector3d Creation Methods Source: https://solibri.github.io/Developer-Platform/24.9.0/javadoc/com/solibri/geometry/linearalgebra/MVector3d Provides static methods for creating new MVector3d instances with various initializations. ```APIDOC ## MVector3d Creation Methods ### create static MVector3d create() Returns a new instance with all components set to zero. **Returns:** a new zero vector **Since:** 9.10.2 --- ### create static MVector3d create(double xyz) Returns a new instance with all components set to the given value. **Parameters:** - **xyz** (double) - the value set to all components of the returned vector **Returns:** a new instance with all components set to the given value **Since:** 9.10.2 --- ### create static MVector3d create(Vector3d vector) Returns a new instance with the same component values as in the given vector. **Parameters:** - **vector** (Vector3d) - the vector used for setting the values of the returned vector **Returns:** a new instance with the same component values as in the given vector **Since:** 9.10.2 --- ### create static MVector3d create(double x, double y, double z) Returns a new instance with the given component values. **Parameters:** - **x** (double) - the X component value - **y** (double) - the Y component value - **z** (double) - the Z component value **Returns:** a vector with the given component values **Since:** 9.10.2 ``` -------------------------------- ### Configure Solibri Installation Path in Maven Source: https://solibri.github.io/Developer-Platform/9.10.2/getting-started Shows how to configure the Solibri installation path within the pom.xml file for Maven builds. This is crucial for ensuring the generated rule JAR is correctly placed in the Solibri installation directory. ```xml C:/Program Files/Solibri/Solibri /Applications/Solibri ``` -------------------------------- ### MLine3d API Source: https://solibri.github.io/Developer-Platform/9.13.7/javadoc/com/solibri/geometry/primitive3d/MLine3d This section details the methods available for the MLine3d interface, including creation, setting start/end points, and setting both points. ```APIDOC ## MLine3d Interface ### Description Interface for handling lines in 3D. ### Methods #### `static MLine3d create(Vector3d firstPoint, Vector3d secondPoint)` Creates a new instance of MLine3d. - **Parameters** - `firstPoint` (Vector3d) - The first point of the line. - `secondPoint` (Vector3d) - The second point of the line. - **Returns** - `MLine3d` - A new MLine3d instance. - **Since** - 9.10.2 #### `void setStartPoint(Vector3d startPoint)` Sets the starting point of this line. - **Parameters** - `startPoint` (Vector3d) - The value to set as the starting point. - **Since** - 9.10.2 #### `void setEndPoint(Vector3d endPoint)` Sets the end point of this line. - **Parameters** - `endPoint` (Vector3d) - The value to set as the end point. - **Since** - 9.10.2 #### `void set(Vector3d startPoint, Vector3d endPoint)` Sets the start and end points of this line. - **Parameters** - `startPoint` (Vector3d) - The value to set as the starting point. - `endPoint` (Vector3d) - The value to set as the end point. - **Since** - 9.10.2 ### Inherited Methods from `Line3d` - `distance` - `distanceSqr` - `getDirection` - `getFirstPoint` - `getIntersectionPoint` - `getSecondPoint` - `intersects` ``` -------------------------------- ### Configure Solibri Installation Path (XML) Source: https://solibri.github.io/Developer-Platform/24.12.0/getting-started This snippet shows how to configure the Solibri installation path within the pom.xml file. It provides separate configurations for Windows and macOS, ensuring the built jar file is correctly placed in the Solibri installation directory for Solibri Office to recognize the new rule. ```xml C:/Program Files/Solibri/Solibri /Applications/Solibri ``` -------------------------------- ### MVector3d Creation Methods Source: https://solibri.github.io/Developer-Platform/9.13.1/javadoc/com/solibri/geometry/linearalgebra/MVector3d Methods for creating new MVector3d instances with various initializations. ```APIDOC ## MVector3d Creation ### create() **Description**: Returns a new instance with all components set to zero. **Method**: static **Endpoint**: N/A (Class method) **Parameters**: None **Response**: #### Success Response (200) - **MVector3d** (object) - A new zero vector. #### Response Example ```json { "x": 0.0, "y": 0.0, "z": 0.0 } ``` ### create(double xyz) **Description**: Returns a new instance with all components set to the given value. **Method**: static **Endpoint**: N/A (Class method) **Parameters**: #### Path Parameters - **xyz** (double) - Required - The value to set for all components. **Response**: #### Success Response (200) - **MVector3d** (object) - A new instance with all components set to the given value. #### Response Example ```json { "x": xyz, "y": xyz, "z": xyz } ``` ### create(Vector3d vector) **Description**: Returns a new instance with the same component values as in the given vector. **Method**: static **Endpoint**: N/A (Class method) **Parameters**: #### Path Parameters - **vector** (Vector3d) - Required - The vector used for setting the values of the returned vector. **Response**: #### Success Response (200) - **MVector3d** (object) - A new instance with the same component values as the input vector. #### Response Example ```json { "x": vector.x, "y": vector.y, "z": vector.z } ``` ### create(double x, double y, double z) **Description**: Returns a new instance with the given component values. **Method**: static **Endpoint**: N/A (Class method) **Parameters**: #### Path Parameters - **x** (double) - Required - The X component value. - **y** (double) - Required - The Y component value. - **z** (double) - Required - The Z component value. **Response**: #### Success Response (200) - **MVector3d** (object) - A vector with the given component values. #### Response Example ```json { "x": x, "y": y, "z": z } ``` ``` -------------------------------- ### Implement Check Method in Java Source: https://solibri.github.io/Developer-Platform/latest/getting-started Provides an example of the 'check' method implementation for a Solibri API rule. This method processes individual components, creates results, and associates them with components. ```Java @Override public void check(Component component, Checking context) { String key = component.getUUID().toString(); Result result = context.getResultService().createResult(key); String stringParameterValue = stringParameter.getValue(); result.setName(stringParameterValue); result.setDescription("Description"); result.addInvolvedComponent(component); } ``` -------------------------------- ### Vector3d Creation Methods Source: https://solibri.github.io/Developer-Platform/24.5.0/javadoc/com/solibri/geometry/linearalgebra/MVector3d Documentation for static methods used to create new Vector3d instances. ```APIDOC ## Static MVector3d create() ### Description Returns a new instance with all components set to zero. ### Method `static MVector3d create()` ### Endpoint N/A (Static method) ### Parameters None ### Request Example ```json { "description": "Creating a zero vector." } ``` ### Response #### Success Response (MVector3d) - **Instance** (MVector3d) - A new zero vector. #### Response Example ```json { "vector": { "x": 0.0, "y": 0.0, "z": 0.0 } } ``` ## Static MVector3d create(double xyz) ### Description Returns a new instance with all components set to the given value. ### Method `static MVector3d create(double xyz)` ### Endpoint N/A (Static method) ### Parameters #### Path Parameters - **xyz** (double) - Required - The value to set for all components of the returned vector. ### Request Example ```json { "description": "Creating a vector with all components set to 5.0.", "xyz": 5.0 } ``` ### Response #### Success Response (MVector3d) - **Instance** (MVector3d) - A new vector with all components set to the provided value. #### Response Example ```json { "vector": { "x": 5.0, "y": 5.0, "z": 5.0 } } ``` ## Static MVector3d create(Vector3d vector) ### Description Returns a new instance with the same component values as in the given vector. ### Method `static MVector3d create(Vector3d vector)` ### Endpoint N/A (Static method) ### Parameters #### Request Body - **vector** (Vector3d) - Required - The vector used for setting the values of the returned vector. ### Request Example ```json { "description": "Creating a vector by copying another vector.", "vector": { "x": 1.0, "y": 2.0, "z": 3.0 } } ``` ### Response #### Success Response (MVector3d) - **Instance** (MVector3d) - A new vector with the same component values as the input vector. #### Response Example ```json { "vector": { "x": 1.0, "y": 2.0, "z": 3.0 } } ``` ## Static MVector3d create(double x, double y, double z) ### Description Returns a new instance with the given component values. ### Method `static MVector3d create(double x, double y, double z)` ### Endpoint N/A (Static method) ### Parameters #### Path Parameters - **x** (double) - Required - The X component value. - **y** (double) - Required - The Y component value. - **z** (double) - Required - The Z component value. ### Request Example ```json { "description": "Creating a vector with specific x, y, and z values.", "x": 1.5, "y": -2.5, "z": 0.5 } ``` ### Response #### Success Response (MVector3d) - **Instance** (MVector3d) - A vector with the given component values. #### Response Example ```json { "vector": { "x": 1.5, "y": -2.5, "z": 0.5 } } ``` ## Static List to3dVectors(List vectors) ### Description Returns a list of 3-dimensional vectors with the X and Y components from the given vectors and the Z component set to 0. The order of the vectors is preserved. ### Method `static List to3dVectors(List vectors)` ### Endpoint N/A (Static method) ### Parameters #### Request Body - **vectors** (List) - Required - Vectors in the XY-plane that are used for setting the X and Y components of the returned vectors. ### Request Example ```json { "description": "Converting a list of 2D vectors to 3D vectors.", "vectors": [ {"x": 1.0, "y": 2.0}, {"x": 3.0, "y": 4.0} ] } ``` ### Response #### Success Response (List) - **List** (List) - A list of 3-dimensional vectors with X and Y components from the input and Z set to 0. #### Response Example ```json { "vectors": [ {"x": 1.0, "y": 2.0, "z": 0.0}, {"x": 3.0, "y": 4.0, "z": 0.0} ] } ``` ``` -------------------------------- ### Implement Solibri Rule Check Method Source: https://solibri.github.io/Developer-Platform/9.10.2/getting-started Provides an example implementation of the 'check' method in a Solibri rule. This method processes individual components, creates results, and associates them with the component. ```java @Override public void check(Component component, Checking context) { String key = component.getUUID().toString(); Result result = context.getResultService().createResult(key); String stringParameterValue = stringParameter.getValue(); result.setName(stringParameterValue); result.setDescription("Description"); result.addInvolvedComponent(component); } ``` -------------------------------- ### Vector3d Creation Methods Source: https://solibri.github.io/Developer-Platform/24.12.0/javadoc/com/solibri/geometry/linearalgebra/MVector3d Provides static methods for creating new Vector3d instances with various initializations. ```APIDOC ## Static Methods for Vector3d Creation ### create() - **Description**: Returns a new instance with all components set to zero. - **Method**: static - **Returns**: `MVector3d` - A new zero vector. - **Since**: 9.10.2 ### create(double xyz) - **Description**: Returns a new instance with all components set to the given value. - **Parameters**: - `xyz` (double) - The value to set for all components. - **Method**: static - **Returns**: `MVector3d` - A new instance with all components set to the given value. - **Since**: 9.10.2 ### create(Vector3d vector) - **Description**: Returns a new instance with the same component values as the given vector. - **Parameters**: - `vector` (Vector3d) - The vector used for setting the values. - **Method**: static - **Returns**: `MVector3d` - A new instance with the same component values. - **Since**: 9.10.2 ### create(double x, double y, double z) - **Description**: Returns a new instance with the given component values. - **Parameters**: - `x` (double) - The X component value. - `y` (double) - The Y component value. - `z` (double) - The Z component value. - **Method**: static - **Returns**: `MVector3d` - A vector with the given component values. - **Since**: 9.10.2 ### to3dVectors(List vectors) - **Description**: Returns a list of 3-dimensional vectors with X and Y components from the given 2D vectors and Z component set to 0. Preserves the order. - **Parameters**: - `vectors` (List) - Vectors in the XY-plane to set X and Y components. - **Method**: static - **Returns**: `List` - A list of 3D vectors. - **Since**: 9.10.2 ``` -------------------------------- ### Model Component by Guid Source: https://solibri.github.io/Developer-Platform/9.13.3/javadoc/index-all Gets a model component by its IFC GUID. ```APIDOC ## getComponentByGuid ### Description Gets the component with the given IFC GUID. ### Method GET ### Endpoint `/api/model/component/guid` ### Parameters #### Query Parameters - **guid** (string) - Required - The IFC GUID of the component. ### Response #### Success Response (200) - **component** (object) - The component object. - **id** (string) - The unique identifier of the component. - **name** (string) - The name of the component. - **type** (string) - The type of the component. #### Response Example ```json { "component": { "id": "comp-67890", "name": "Slab_002", "type": "IfcSlab" } } ``` ``` -------------------------------- ### MLine3d Interface Documentation Source: https://solibri.github.io/Developer-Platform/9.13.2/javadoc/com/solibri/geometry/primitive3d/MLine3d This section details the methods available for the MLine3d interface, including creating new instances and setting line endpoints. ```APIDOC ## MLine3d Interface ### Description Interface for handling lines in 3D space. It extends the `Line3d` interface and provides methods for creating and modifying 3D lines. ### Methods #### `create(Vector3d firstPoint, Vector3d secondPoint)` ### Description Creates a new MLine3d instance. ### Method `static MLine3d` ### Endpoint N/A (This is a static factory method within the interface) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```java MLine3d newLine = MLine3d.create(new Vector3d(0,0,0), new Vector3d(1,1,1)); ``` ### Response #### Success Response (200) - **MLine3d** (MLine3d) - A new instance of MLine3d. #### Response Example ```java // Returns a MLine3d object representing the line from (0,0,0) to (1,1,1) ``` #### `setStartPoint(Vector3d startPoint)` ### Description Sets the starting point of this line. ### Method `void` ### Endpoint N/A (Instance method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```java Vector3d newStart = new Vector3d(2, 2, 2); myLine.setStartPoint(newStart); ``` ### Response #### Success Response (200) No content is returned upon successful execution. #### Response Example ``` // No response body ``` #### `setEndPoint(Vector3d endPoint)` ### Description Sets the end point of this line. ### Method `void` ### Endpoint N/A (Instance method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```java Vector3d newEnd = new Vector3d(3, 3, 3); myLine.setEndPoint(newEnd); ``` ### Response #### Success Response (200) No content is returned upon successful execution. #### Response Example ``` // No response body ``` #### `set(Vector3d startPoint, Vector3d endPoint)` ### Description Sets the start and end points of this line. ### Method `void` ### Endpoint N/A (Instance method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```java Vector3d newStart = new Vector3d(4, 4, 4); Vector3d newEnd = new Vector3d(5, 5, 5); myLine.set(newStart, newEnd); ``` ### Response #### Success Response (200) No content is returned upon successful execution. #### Response Example ``` // No response body ``` ### Inherited Methods from `Line3d` - `distance` - `distanceSqr` - `getDirection` - `getFirstPoint` - `getIntersectionPoint` - `getSecondPoint` - `intersects` ``` -------------------------------- ### ModelComponent By Guid API Source: https://solibri.github.io/Developer-Platform/9.13.6/javadoc/index-all Gets a component from the model using its IFC GUID. ```APIDOC ## GET /api/model/component/by-guid ### Description Gets the component with the given IFC GUID. ### Method GET ### Endpoint /api/model/component/by-guid ### Parameters #### Query Parameters - **guid** (string) - Required - The IFC GUID of the component. ### Response #### Success Response (200) - **component** (object) - The component object. #### Response Example { "component": { "id": "comp_xyz", "name": "Door" } } ``` -------------------------------- ### MVector2d Creation Methods Source: https://solibri.github.io/Developer-Platform/9.12.6/javadoc/com/solibri/geometry/linearalgebra/MVector2d Provides static methods for creating new MVector2d instances with various initializations. ```APIDOC ## MVector2d Creation ### Description Static methods to create new mutable 2D vectors. ### Methods #### `create()` ##### Description Returns a 2-dimensional vector with the X and Y values set to 0. ##### Method `static MVector2d create()` ##### Returns a vector with all components set to 0. #### `create(double x, double y)` ##### Description Returns a 2-dimensional vector with the given component values. ##### Method `static MVector2d create(double x, double y)` ##### Parameters - **x** (double) - the value of the X component - **y** (double) - the value of the Y component ##### Returns a 2-dimensional vector with the given component values. #### `create(Vector2d vec)` ##### Description Returns a 2-dimensional vector with the X and Y values set to those of the given vector. ##### Method `static MVector2d create(Vector2d vec)` ##### Parameters - **vec** (Vector2d) - the vector used for setting the values of the created vector ##### Returns a 2-dimensional vector with the values set to those of the given vector. ``` -------------------------------- ### Get Model IFC GUIDs Source: https://solibri.github.io/Developer-Platform/9.12.7/solibri-api-v1 Retrieves a list of IFC GUIDs for a specific model. ```APIDOC ## GET /models/{modelId}/ifc-guids ### Description Retrieves a list of IFC GUIDs associated with a specific model. ### Method GET ### Endpoint /models/{modelId}/ifc-guids ### Parameters #### Path Parameters - **modelId** (string) - Required - The unique identifier of the model. ### Response #### Success Response (200) - **ifcGuidList** (array) - A list of IFC GUID strings. #### Response Example ```json [ "1$X1v5MXr3Buiox$k6BAhK", "10pglqEGT2cQr8PnzBOj2n", "20naGoyUXDkuMa2t7ZoZUh" ] ``` #### Error Responses - **404** - Not Found: The specified model was not found. ``` -------------------------------- ### Triangle3d Creation Source: https://solibri.github.io/Developer-Platform/9.13.4/javadoc/com/solibri/geometry/primitive3d/Triangle3d Static methods for creating new Triangle3d instances. ```APIDOC ## Triangle3d Creation ### create * **Description**: Creates a new Triangle3d instance from a list of points. * **Method**: POST * **Endpoint**: `/triangle3d/create` * **Parameters**: * **Request Body**: * `points` (List) - Required - List of points. * **Response**: * **Success Response (200)**: Triangle3d - The newly created instance. * **Throws**: * `IllegalArgumentException` - if the list does not contain exactly three points. * **Since**: 9.10.2 ### create * **Description**: Creates a new Triangle3d instance from three Vector3d points. * **Method**: POST * **Endpoint**: `/triangle3d/create` * **Parameters**: * **Request Body**: * `firstPoint` (Vector3d) - Required - The first point. * `secondPoint` (Vector3d) - Required - The second point. * `thirdPoint` (Vector3d) - Required - The third point. * **Response**: * **Success Response (200)**: Triangle3d - The newly created instance. * **Throws**: * `IllegalArgumentException` - if the list does not contain exactly three points. * **Since**: 9.10.2 ### create * **Description**: Creates a new Triangle3d instance by copying another triangle. * **Method**: POST * **Endpoint**: `/triangle3d/create` * **Parameters**: * **Request Body**: * `other` (Triangle3d) - Required - The other triangle to copy. * **Response**: * **Success Response (200)**: Triangle3d - The newly created instance. * **Since**: 9.10.2 ``` -------------------------------- ### Component Retrieval and Filtering (Java) Source: https://solibri.github.io/Developer-Platform/9.13.2/javadoc/com/solibri/smc/api/model/class-use/Component Provides Java code examples for retrieving components based on filters and type, getting components by unique IDs (BIM Authoring Tool ID and GUID), and accessing grouped components. These methods are essential for querying and manipulating component data. ```java Set getComponents(ComponentFilter filter, Class type) where T extends Component; Optional getComponentByBatId(String batId); Optional getComponentByGuid(String guid); Set getComponents(ComponentFilter filter); Set getGroupedComponents(); ``` -------------------------------- ### MVector2d Creation Source: https://solibri.github.io/Developer-Platform/24.5.0/javadoc/com/solibri/geometry/linearalgebra/MVector2d Provides methods to create new MVector2d instances with various initializations. ```APIDOC ## MVector2d Creation ### Description Methods for creating new MVector2d objects. ### Method `static MVector2d create()` ### Description Returns a 2-dimensional vector with the X and Y values set to 0. ### Method `static MVector2d create(double x, double y)` ### Description Returns a 2-dimensional vector with the given component values. ### Method `static MVector2d create(Vector2d vec)` ### Description Returns a 2-dimensional vector with the X and Y values set to those of the given vector. ### Method `static List to2dVectors(List vectors)` ### Description Returns the vectors in the given list projected to the XY-plane. ``` -------------------------------- ### MVector3d Creation Methods Source: https://solibri.github.io/Developer-Platform/9.12.3/javadoc/com/solibri/geometry/linearalgebra/MVector3d This section covers the static methods available for creating new MVector3d instances with various initializations. ```APIDOC ## Static Methods for MVector3d Creation ### create() #### Description Returns a new instance with all components set to zero. #### Method `static MVector3d create()` #### Returns - `MVector3d` - a new zero vector #### Since 9.10.2 ### create(double xyz) #### Description Returns a new instance with all components set to the given value. #### Method `static MVector3d create(double xyz)` #### Parameters - **xyz** (double) - Required - The value to set for all components of the returned vector. #### Returns - `MVector3d` - A new instance with all components set to the given value. #### Since 9.10.2 ### create(Vector3d vector) #### Description Returns a new instance with the same component values as in the given vector. #### Method `static MVector3d create(Vector3d vector)` #### Parameters - **vector** (Vector3d) - Required - The vector used for setting the values of the returned vector. #### Returns - `MVector3d` - A new instance with the same component values as in the given vector. #### Since 9.10.2 ### create(double x, double y, double z) #### Description Returns a new instance with the given component values. #### Method `static MVector3d create(double x, double y, double z)` #### Parameters - **x** (double) - Required - The X component value. - **y** (double) - Required - The Y component value. - **z** (double) - Required - The Z component value. #### Returns - `MVector3d` - A vector with the given component values. #### Since 9.10.2 ### to3dVectors(List vectors) #### Description Returns a list of 3-dimensional vectors with the X and Y components from the given vectors and the Z component set to 0. The order of the vectors is preserved. #### Method `static List to3dVectors(List vectors)` #### Parameters - **vectors** (List) - Required - Vectors in the XY-plane that are used for setting the X and Y components of the returned vectors. #### Returns - `List` - A list of 3-dimensional vectors with the X and Y components from the given vectors and the Z component set to 0. #### Since 9.10.2 ``` -------------------------------- ### Get IFC GUIDs API Source: https://solibri.github.io/Developer-Platform/9.12.10/solibri-api-v1 Retrieves a list of IFC GUIDs present in a given model. ```APIDOC ## GET /models/{modelId}/ifc_guids ### Description Retrieves a list of IFC GUIDs present in a given model. ### Method GET ### Endpoint /models/{modelId}/ifc_guids ### Parameters #### Path Parameters - **modelId** (string) - Required - The unique identifier of the model. ### Response #### Success Response (200) - **items** (array of strings) - A list of IFC GUIDs. ### Response Example ```json [ "1$X1v5MXr3Buiox$k6BAhK", "10pglqEGT2cQr8PnzBOj2n", "20naGoyUXDkuMa2t7ZoZUh" ] ``` ``` -------------------------------- ### Get Presentation IFC GUIDs API Source: https://solibri.github.io/Developer-Platform/25.3.0/solibri-api-v1 Retrieves the list of IFC GUIDs associated with a specific presentation. ```APIDOC ## GET /presentations/{presentationId}/ifc-guids ### Description Retrieves the list of IFC GUIDs associated with a specific presentation. ### Method GET ### Endpoint /presentations/{presentationId}/ifc-guids ### Parameters #### Path Parameters - **presentationId** (string) - Required - The unique identifier of the presentation. ### Response #### Success Response (200) - **IfcGuidList** (array) - A list of IFC GUIDs. ### Response Example ```json [ "1$X1v5MXr3Buiox$k6BAhK", "10pglqEGT2cQr8PnzBOj2n", "20naGoyUXDkuMa2t7ZoZUh" ] ``` #### Error Responses - **400** - Bad Request - **424** - No presentation found with given presentationId ``` -------------------------------- ### Triangle3d Creation Source: https://solibri.github.io/Developer-Platform/9.12.5/javadoc/com/solibri/geometry/primitive3d/Triangle3d Methods for creating new Triangle3d instances. ```APIDOC ## Triangle3d Creation ### Description Static methods to create new Triangle3d instances. ### Methods #### `create(List points)` Creates a new Triangle3d instance from a list of points. **Parameters:** - `points` (List) - Required - A list containing exactly three Vector3d points. **Returns:** - `Triangle3d` - The newly created triangle instance. **Throws:** - `IllegalArgumentException` - If the list does not contain exactly three points. **Since:** 9.10.2 #### `create(Vector3d firstPoint, Vector3d secondPoint, Vector3d thirdPoint)` Creates a new Triangle3d instance from three Vector3d points. **Parameters:** - `firstPoint` (Vector3d) - Required - The first point of the triangle. - `secondPoint` (Vector3d) - Required - The second point of the triangle. - `thirdPoint` (Vector3d) - Required - The third point of the triangle. **Returns:** - `Triangle3d` - The newly created triangle instance. **Throws:** - `IllegalArgumentException` - If any of the points are null or if the list does not contain exactly three points. **Since:** 9.10.2 #### `create(Triangle3d other)` Creates a new Triangle3d instance by copying another triangle. **Parameters:** - `other` (Triangle3d) - Required - The triangle to copy. **Returns:** - `Triangle3d` - The newly created triangle instance. **Since:** 9.10.2 ``` -------------------------------- ### Get Start Point of Segment3d Source: https://solibri.github.io/Developer-Platform/9.12.4/javadoc/com/solibri/geometry/primitive3d/Segment3d Retrieves the starting point of a 3D segment. This method returns a Vector3d object representing the start of the segment. ```java Vector3d getStartPoint() ``` -------------------------------- ### MVector3d Creation Methods Source: https://solibri.github.io/Developer-Platform/9.13.4/javadoc/com/solibri/geometry/linearalgebra/MVector3d Provides static methods for creating new MVector3d instances with various initializations. ```APIDOC ## MVector3d Creation Methods ### create static MVector3d create() Returns a new instance with all components set to zero. Returns: a new zero vector Since: 9.10.2 ### create static MVector3d create(double xyz) Returns a new instance with all components set to the given value. Parameters: `xyz` - the value set to all components of the returned vector Returns: a new instance with all components set to the given value Since: 9.10.2 ### create static MVector3d create(Vector3d vector) Returns a new instance with the same component values as in the given vector. Parameters: `vector` - the vector used for setting the values of the returned vector Returns: a new instance with the same component values as in the given vector Since: 9.10.2 ### create static MVector3d create(double x, double y, double z) Returns a new instance with the given component values. Parameters: `x` - the X component value `y` - the Y component value `z` - the Z component value Returns: a vector with the given component values Since: 9.10.2 ``` -------------------------------- ### MVector2d Creation Methods Source: https://solibri.github.io/Developer-Platform/9.12.5/javadoc/com/solibri/geometry/linearalgebra/MVector2d Provides static methods for creating new MVector2d instances. ```APIDOC ## MVector2d Static Creation Methods ### Description Provides static methods for creating new MVector2d instances with zero values, specified coordinates, or from existing vectors. ### Methods #### `create()` - **Method:** `static MVector2d create()` - **Description:** Returns a 2-dimensional vector with the X and Y values set to 0. - **Returns:** A vector with all components set to 0. - **Since:** 9.10.2 #### `create(double x, double y)` - **Method:** `static MVector2d create(double x, double y)` - **Description:** Returns a 2-dimensional vector with the given component values. - **Parameters:** - `x` (double) - The value of the X component. - `y` (double) - The value of the Y component. - **Returns:** A 2-dimensional vector with the given component values. - **Since:** 9.10.2 #### `create(Vector2d vec)` - **Method:** `static MVector2d create(Vector2d vec)` - **Description:** Returns a 2-dimensional vector with the X and Y values set to those of the given vector. - **Parameters:** - `vec` (Vector2d) - The vector used for setting the values of the created vector. - **Returns:** A 2-dimensional vector with the values set to those of the given vector. - **Since:** 9.10.2 ``` -------------------------------- ### Get Start Point of a Segment3d Source: https://solibri.github.io/Developer-Platform/9.12.1/javadoc/com/solibri/geometry/primitive3d/Segment3d Retrieves the starting point of a `Segment3d`. This method returns a `Vector3d` object representing the coordinates of the segment's start. Available since version 9.10.2. ```java Vector3d getStartPoint() ``` -------------------------------- ### Triangle3d Creation Source: https://solibri.github.io/Developer-Platform/9.13.1/javadoc/com/solibri/geometry/primitive3d/Triangle3d Methods for creating new Triangle3d instances with different parameter sets. ```APIDOC ## Triangle3d Creation ### static Triangle3d create(List points) Creates a new instance of Triangle3d from a list of points. - **Parameters** - `points` (List) - Required - A list containing exactly three Vector3d points. - **Returns** - `Triangle3d` - The newly created triangle instance. - **Throws** - `IllegalArgumentException` - If the list does not contain exactly three points. - **Since** - 9.10.2 ### static Triangle3d create(Vector3d firstPoint, Vector3d secondPoint, Vector3d thirdPoint) Creates a new instance of Triangle3d from three individual points. - **Parameters** - `firstPoint` (Vector3d) - Required - The first vertex of the triangle. - `secondPoint` (Vector3d) - Required - The second vertex of the triangle. - `thirdPoint` (Vector3d) - Required - The third vertex of the triangle. - **Returns** - `Triangle3d` - The newly created triangle instance. - **Throws** - `IllegalArgumentException` - If any of the points are null or if the creation process fails. - **Since** - 9.10.2 ### static Triangle3d create(Triangle3d other) Creates a new instance of Triangle3d as a copy of another triangle. - **Parameters** - `other` (Triangle3d) - Required - The triangle to copy. - **Returns** - `Triangle3d` - The newly created triangle instance. - **Since** - 9.10.2 ``` -------------------------------- ### Get Component GUID Source: https://solibri.github.io/Developer-Platform/25.3.0/javadoc/com/solibri/smc/api/model/Component Retrieves the Globally Unique Identifier (GUID) of the component as specified in the IFC (Industry Foundation Classes) standard. This is a mandatory identifier for IFC entities. ```java String getGUID() ``` -------------------------------- ### Triangle3d Creation Source: https://solibri.github.io/Developer-Platform/9.13.5/javadoc/com/solibri/geometry/primitive3d/Triangle3d Methods for creating new Triangle3d instances. ```APIDOC ## Triangle3d Creation ### Description Methods for creating new Triangle3d instances with different parameters. ### Method `static Triangle3d create(List points)` ### Description Creates a new Triangle3d instance from a list of points. ### Parameters #### Path Parameters - `points` (List) - Required - List of points defining the triangle. ### Throws - `IllegalArgumentException` - if the list does not contain exactly three points. ### Method `static Triangle3d create(Vector3d firstPoint, Vector3d secondPoint, Vector3d thirdPoint)` ### Description Creates a new Triangle3d instance from three individual points. ### Parameters #### Path Parameters - `firstPoint` (Vector3d) - Required - The first point of the triangle. - `secondPoint` (Vector3d) - Required - The second point of the triangle. - `thirdPoint` (Vector3d) - Required - The third point of the triangle. ### Throws - `IllegalArgumentException` - if the list does not contain exactly three points. ### Method `static Triangle3d create(Triangle3d other)` ### Description Creates a new Triangle3d instance as a copy of another triangle. ### Parameters #### Path Parameters - `other` (Triangle3d) - Required - The triangle to copy. ### Since 9.10.2 ``` -------------------------------- ### GET /selectionBasket Source: https://solibri.github.io/Developer-Platform/9.12.0/solibri-api-v1 Retrieves the IFC GUIDs of all currently selected components. ```APIDOC ## GET /selectionBasket ### Description Get IFC guids of the selected components. ### Method GET ### Endpoint /selectionBasket ### Parameters None ### Request Example None ### Response #### Success Response (200) - **ifcGuids** (array) - List of IFC GUIDs of the components that are selected. #### Response Example ```json { "ifcGuids": [ "guid1", "guid2" ] } ``` ``` -------------------------------- ### MLine3d Interface Methods Source: https://solibri.github.io/Developer-Platform/24.5.0/javadoc/com/solibri/geometry/primitive3d/MLine3d This section details the methods available for the MLine3d interface, including creation, setting points, and inherited methods. ```APIDOC ## MLine3d Interface ### Description Interface for handling lines in 3D. Extends `Line3d`. ### Methods #### `create` ```java static MLine3d create(Vector3d firstPoint, Vector3d secondPoint) ``` **Description**: Creates a new `MLine3d` instance. **Parameters**: - `firstPoint` (Vector3d) - The first point of the line. - `secondPoint` (Vector3d) - The second point of the line. **Returns**: - A new `MLine3d` instance. #### `setStartPoint` ```java void setStartPoint(Vector3d startPoint) ``` **Description**: Sets the starting point of this line. **Parameters**: - `startPoint` (Vector3d) - The point to set as the starting point. #### `setEndPoint` ```java void setEndPoint(Vector3d endPoint) ``` **Description**: Sets the end point of this line. **Parameters**: - `endPoint` (Vector3d) - The point to set as the end point. #### `set` ```java void set(Vector3d startPoint, Vector3d endPoint) ``` **Description**: Sets the start and end points of this line. **Parameters**: - `startPoint` (Vector3d) - The starting point of the line. - `endPoint` (Vector3d) - The end point of the line. ### Inherited Methods from `Line3d` - `distance` - `distanceSqr` - `getDirection` - `getFirstPoint` - `getIntersectionPoint` - `getSecondPoint` - `intersects` ``` -------------------------------- ### Get Component by IFC GUID - Java Source: https://solibri.github.io/Developer-Platform/9.12.0/javadoc/com/solibri/smc/api/model/Model Retrieves a component from the model using its IFC GUID. Returns an Optional containing the component if found, otherwise an empty Optional. Requires the 'guid' parameter. ```java Optional getComponentByGuid​(String guid) ```