リンクの参照元を一覧する (スクリプト)

リンクの参照元は、ブラウザから一覧することができます。
シーン内でリンクとして参照されている形状をスクリプトを使って取得したい場合は、以下のようにします。


scene = xshade.scene()

# 階層をたどってリンク元を格納する再帰.
def traceHierarchy (shape, ordinalList):
  # リンクの場合、元の参照形状を取得.
  if shape.type == 2 and shape.part_type == 101:  # リンクの場合.
    mShape = shape.link_master   # リンクの参照元を取得.

    # 形状の序数を格納.
    if mShape != None and ordinalList.count(mShape.ordinal) == 0:
      ordinalList.append(mShape.ordinal)
  
  if shape.has_son:
    s = shape.son
    while s.has_bro:
      s = s.bro
      traceHierarchy(s, ordinalList)

# --------------------------------.
rootShape = scene.shape  # ルート形状.

ordinalList = []
traceHierarchy(rootShape, ordinalList)

print "マスターオブジェクト数 : " + str(len(ordinalList))

for ordinalV in ordinalList:
  # 序数よりリンク元の形状を取得.
  shape = scene.get_shape_by_ordinal(ordinalV)
  print str("    ") + shape.name

実行するとリンクとしてのマスターオブジェクト数、リンクの参照元の形状名を表示します。

この記事のタイトルとURLをコピーする
Translate »