Script to read all elements in the current DGN file and report the element properties
(Color, Level, Weight, Style and Element Type).
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