🔢

Dynamoサンプル:数字の操作

2022/06/15に公開約2,200字

連番リストを作成

1~10の連番リストを作成したい場合、Code Block1..10;を入力。

リストから和のリスト(累積和)を作成

Python Scriptで、最初のほうにimport itertoolsimport operatorを加える。最後のOUT=0OUT = itertools.accumulate(IN[0])に変更する。

# Load the Python Standard and DesignScript Libraries
import sys
import clr
+ import itertools
+ import operator
# Assign your output to the OUT variable.
-    OUT=0
+    OUT = itertools.accumulate(IN[0])

エラー対処(2022以前)

# The inputs to this node will be stored as a list in the IN variables.
dataEnteringNode = IN

adoc = Application.DocumentManager.MdiActiveDocument
editor = adoc.Editor

- with adoc.LockDocument():
-    with adoc.Database as db:
-
-        with db.TransactionManager.StartTransaction() as t:
-            # Place your code below
-            # 
-            #
-
-            # Commit before end transaction
-            #t.Commit()
-            pass

+ def cumsum(xs):
+  result = [xs[0]]
+  for x in xs[1:]:
+    result.append(result[-1] + x)
+  return result

# Assign your output to the OUT variable.
+OUT = cumsum(IN[0])

奇数を抽出

Python Scriptで、一番最後のOUT=0OUT = IN[0][0::2]に変更する。

# Assign your output to the OUT variable.
-    OUT=0
+    OUT = IN[0][0::2]

偶数を抽出

Python Scriptで、一番最後のOUT=0OUT = IN[0][1::2]に変更する。

# Assign your output to the OUT variable.
-    OUT=0
+    OUT = IN[0][1::2]

小数点の桁数を指定して文字列に変換

小数点を3桁にしたい場合、Python Scriptで、一番最後のOUT=0OUT = '{:.3f}'.format(IN[0])に変更する。

# Assign your output to the OUT variable.
-    OUT=0
+    OUT = '{:.3f}'.format(IN[0])

割り算の商と余りを取得

Python Scriptで、一番最後のOUT=0OUT = divmod(IN[0], IN[1])に変更する。

# Assign your output to the OUT variable.
-    OUT=0
+    OUT = divmod(IN[0], IN[1])

Discussion

ログインするとコメントできます