Skip to content
  • Categories
Collapse
Solibri Society Forum
  1. Home
  2. General Discussion
  3. Export all PropertySets with all Properties

Export all PropertySets with all Properties

Scheduled Pinned Locked Moved General Discussion
6 Posts 4 Posters 1.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    alex4omnicon
    wrote on last edited by
    #1

    Hello,

    Is there a way in Solibri to export all PropertySets and Properties sorted by IfcClasses? I would like to give my colleagues an overview of the existing properties.

    If not, is there an alternative with other tools?

    best regards
    Alex

    1 Reply Last reply
    0
    • JSNJ Offline
      JSNJ Offline
      JSN
      wrote on last edited by
      #2

      Not out of the box, but you could do this with the API. Not sure if there is a non-coding alternative out there in other tools to get you that kind of/all information.

      1 Reply Last reply
      0
      • A Offline
        A Offline
        alex4omnicon
        wrote on last edited by
        #3

        Do you have some codesnippets? I’m working with the rules api.

        1 Reply Last reply
        0
        • JSNJ Offline
          JSNJ Offline
          JSN
          wrote on last edited by
          #4

          Not really but afaik there must be an example for the propertystream somewhere here. You could iterate trough all psets and properties and get the values by component as a custominfo string and use it in an ITO.

          1 Reply Last reply
          0
          • E Offline
            E Offline
            elia
            wrote on last edited by
            #5

            Hi all,
            Did anybody come up with a solution and is so kind to share? Many thanks 🙂

            1 Reply Last reply
            0
            • john.lippJ Offline
              john.lippJ Offline
              john.lipp
              wrote on last edited by john.lipp
              #6

              Hi @elia

              Here is a JavaScripted ITO that exports all properties of each IFC class, with each property separated by a semicolon.
              All Properties.ito

              Note that JavaScripted ITOs in Solibri have certain limitations, such as the lack of support for enhanced for-each loops and stream operations. As a result, this script relies on iterators and while loops.

              However, if you’re developing your own Solibri API extensions using Java, these limitations do not apply. This example can serve as a useful reference for accessing PropertySets and their associated Properties from Components.

              importClass(java.util.HashSet);
              importClass(java.lang.StringBuilder);
              
              function getValue(row, components) {
                var componentIterator = components.iterator();
                var psetSet = new HashSet();
              
                while (componentIterator.hasNext()) {
                  var component = componentIterator.next();
                  var propertySets = component.getPropertySets();
                  var propertySetIterator = propertySets.iterator();
              
                  while (propertySetIterator.hasNext()) {
                    var propertySet = propertySetIterator.next();
                    var propertySetName = propertySet.getName();
                    var properties = propertySet.getProperties();
                    var propertyIterator = properties.iterator();
              
                    while (propertyIterator.hasNext()) {
                      var property = propertyIterator.next();
                      var propertyName = property.getName();
                      psetSet.add(propertySetName + "." + propertyName);
                    }
                  }
                }
              
                var result = new StringBuilder();
                var psetIterator = psetSet.iterator();
              
                while (psetIterator.hasNext()) {
                  result.append(psetIterator.next()).append(";");
                }
              
                return result.toString().trim();
              }
              
              1 Reply Last reply
              1

              Copyright © 2025 Solibri Inc. | Powered by NodeBB

              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories