C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

全てのユーザーパラメータの属性を出力する関数

こちらの続きです。
ユーザーパラメータの属性 - C#ATIA

確認作業が面倒な為、あのアドインに突っ込む為に出力部のみを
関数化。

def run(context):
    ui: adsk.core.UserInterface = None
    try:
        app: adsk.core.Application = adsk.core.Application.get()
        ui = app.userInterface

        dumpUserPrmAttrs(app.activeDocument)

    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

def dumpUserPrmAttrs(doc: adsk.fusion.FusionDocument) -> None:
    app: adsk.core.Application = adsk.core.Application.get()
    prms: adsk.fusion.UserParameters = doc.design.userParameters

    attr: adsk.core.Attribute
    prm: adsk.fusion.UserParameter
    for prm in prms:
        for groupName in prm.attributes.groupNames:
            group = prm.attributes.itemsByGroup(groupName)
            app.log(f'GroupName:{groupName}')
            for attr in group:
                app.log(f'  Name:{attr.name}  ValueSize:{len(attr.value.encode())}')

                dict = json.loads(attr.value)
                for key in dict.keys():
                    app.log(f'    {key}:{dict[key]}')

本題より、ツール的なものばっかり作っていて進まない・・・。