Python Assistant Prompts: Report Element Properties


 

Prompt Used:

Script to read all elements in the current DGN file and report the element properties 
(Color, Level, Weight, Style and Element Type).

 

 

Python Assistant Generated Code:

from MSPyBentley import *
from MSPyECObjects import *
from MSPyBentleyGeom import *
from MSPyDgnPlatform import *
from MSPyDgnView import *
from MSPyMstnPlatform import *

def report_element_properties():
    # Get the active model
    ACTIVEMODEL = ISessionMgr.ActiveDgnModelRef
    dgnModel = ACTIVEMODEL.GetDgnModel()

    # Get all graphical elements from the model
    graphicalElements = dgnModel.GetGraphicElements()

    # Get the level cache
    levelCache = dgnModel.GetLevelCache()

    # Iterate through each graphical element
    for elementRef in graphicalElements:
        elementHandle = ElementHandle(elementRef)
        elementPropsGetter = ElementPropertiesGetter(elementHandle)

        # Get element properties
        color = elementPropsGetter.GetColor()
        levelId = elementPropsGetter.GetLevel()
        weight = elementPropsGetter.GetWeight()
        style = elementPropsGetter.GetLineStyle()
        elementType = elementHandle.GetElementType()

        # Get level name from level ID
        levelHandle = levelCache.GetLevel(levelId, includeLibraries=False)
        if levelHandle.IsValid():
            levelName = levelHandle.GetName() 
        else:
            levelName = "Unknown"

        # Print element properties
        print(f"Element ID: {elementHandle.GetElementId()}")
        print(f"  Type: {elementType}")
        print(f"  Color: {color}")
        print(f"  Level: {levelName}")
        print(f"  Weight: {weight}")
        print(f"  Style: {style}")
        print("-" * 40)


def main ():
    # Run the function to report element properties
    report_element_properties ()


if __name__ == "__main__":
    main ()

 

 

Python: Documentation | API Presentations | FAQs | GitHub | Samples | Wikis | Blogs