Skip to content
  • Let's talk Solibri!

    1k Topics
    5k Posts
    A

    Thanks Toni for your help!

  • Got a question? Ask away!

    275 Topics
    1k Posts
    MattiM

    Here is an example of creating ITO JavaScript Columns using AI.
    I wanted to list Assemblies and include “Tekla Common.Class” property from the related Beam on the same row.

    Prompt for Gemini 3 Pro:

    See https://solibri.github.io/Developer-Platform/latest/javadoc/index.html Implement Solibri ITO JavaScript column that finds related beams and reads property "Class" value from "Tekla Common" property set of the beam. The functions base is this. Assume only one component as param. function getValue(row, components) {      return ""; }

    The result worked out of the box:

    /* * Solibri ITO Column Script * Function: Find related Beam and read 'Tekla Common' > 'Class' */ function getValue(row, components) { // 1. Basic validation: Ensure there is a component to check if (components.isEmpty()) { return ""; } // Get the first component (assuming one component per row as per parameter) var component = components.iterator().next(); // 2. Find the related Beam var relatedBeam = findRelatedBeam(component); if (relatedBeam != null) { // 3. Read "Class" property from "Tekla Common" property set return getProperty(relatedBeam, "Tekla Common", "Class"); } return ""; // Return empty string if no related beam is found } /* * Helper function to iterate through relations and find a Beam. * Checks CONNECTS (e.g., connection parts) and DECOMPOSES (e.g., assemblies) relations. */ function findRelatedBeam(component) { // Import necessary Solibri API classes var Relation = Packages.com.solibri.smc.api.model.Relation; var ComponentType = Packages.com.solibri.smc.api.model.ComponentType; // Define the relations to check. // We check both FORWARD and BACKWARD directions to cover various modeling scenarios // (e.g., a plate connected to a beam, or a sub-part of a beam assembly). var relationsToCheck = [ Relation.of(Relation.Type.CONNECTS, Relation.Direction.FORWARD), Relation.of(Relation.Type.CONNECTS, Relation.Direction.BACKWARD), Relation.of(Relation.Type.DECOMPOSES, Relation.Direction.FORWARD), Relation.of(Relation.Type.DECOMPOSES, Relation.Direction.BACKWARD) ]; for (var i = 0; i < relationsToCheck.length; i++) { var relation = relationsToCheck[i]; // Get all components related by this specific relation var relatedComponents = component.getRelated(relation); var iterator = relatedComponents.iterator(); while (iterator.hasNext()) { var relComp = iterator.next(); // Check if the related component is strictly of type BEAM if (relComp.getComponentType() == ComponentType.BEAM) { return relComp; } } } return null; } /* * Helper function to safely get a property value as a String */ function getProperty(component, psetName, propName) { // Get all property sets matching the name var psets = component.getPropertySets(psetName); var psetIter = psets.iterator(); while (psetIter.hasNext()) { var pset = psetIter.next(); // Get the specific property var prop = pset.getProperty(propName); // Check if the property exists and has a value // Solibri API returns an Optional<Property> if (prop.isPresent()) { return prop.get().getValueAsString(); } } return ""; }

    dddc88a6-1b63-4070-8270-0bcfd23fcf2d-image.png

  • Solibri Society User Stories

    11 Topics
    41 Posts
    EricE

    Dear Society Members,

    First of all, we want to thank you again for attending our event and demonstrating how powerful sharing can be.
    What a tremendous experience it was to see so much interaction and interest in learning new ways and improving workflows; we are most grateful for what you individually and collectively brought in!
    Also, some due apologies for posting this so late 😓 It’s been extremely busy for me, sorry. I hope I can turn this into positive feedback as I have certainly created a lot of anticipation 😉
    Well, with no further ado, we have collected below the most of materials shared during the event.
    There’s a lot to read through so it is divided into 3 sections available when scrolling below:

    Customer presentations

    B.Y.O.B. sessions

    Videos and other materials

    We’re looking forward hearing more of your comments and suggestions to make our next event an even more rewarding and unforgettable experience.
    It shall happen roughly a year from now, with hopefully an equally exciting location and an extended agenda with dedicated streams over 2 full days in order to maximise the outcome of each session.
    We will initiate some polls related to this in the near future so we can agree with you on the overall direction…

    Thank you again for your dedication and participation in this vibrant community!

    See you all soon 🙂
    Eric on behalf of the Solibri Team

    P.S: Feel free to add more materials in case anything is missing, thanks!

    CUSTOMER PRESENTATIONS

    TAKENAKA, Japan - Aya Matsuhita
    190404_SolibriSociety_BIM_TAKENAKA.pdf

    Root B.V., The Netherlands - Paul Bos, Martijn Groenewoud
    20190404_Root_Solibri_Aedes.pdf

    Itten+Brechbühl AG, Switzerland - Marc Pancera, Constanze Hopf
    190402_BIM@I+B.pdf
    190404_SolibriSocietyEvent.pdf
    SOL_Requests.pdf

    JP van Eesteren, The Netherlands - Jeroen Koomen
    Big models copy.pdf

    BASED BIM management & consultancy, The Netherlands - Robin Kramer
    20190404 Solibri society event - Input BASED copy 2.pdf

    B.Y.O.B. SESSIONS

    Color mapping
    Society event group 1.pdf

    Spatial structure
    solibri event related into spatial structure.pdf

    Lessons learned
    SOL_ElevatorPitch.pdf

    The Mother Of All Rules
    The mother of all Solibri Rules.pdf

    Results of the votes
    Results.png

    VIDEOS & OTHER MATERIALS

    Interactive rulesets - Root BV
    https://youtu.be/A7pmMvLU1-Q

    API based rule check - Harpaceas
    https://youtu.be/If2Vv_127Fw

    Exterior Distance Rule - Alex Lopez
    exterior-distance.zip

    Results of the votes for new Solibri APIs
    Results SDP.png

    Solibri Labs - IFC Optimizer average file size
    Results IFC.png

Copyright © 2025 Solibri Inc. | Powered by NodeBB

Looks like your connection to Solibri Society was lost, please wait while we try to reconnect.