✏
Dynamoサンプル:Civil3Dのブロック属性
ブロックの名前から図面内のブロック参照を取得
Document.BlockByName
と Block.BlockReferences
を使用。
ブロック属性の名称から内容を取得
BlockReference.AttributeByTag
を使用。
ブロック属性の内容を入力
BlockReference.SetAttributeByTag
を使用。リストの並びをそろえること。
エラー対処
Excel からデータを取り込んでる場合は、 Data.ImportExcel
の readAsStrings
を True
にします。
Dynamo で数字を扱っている場合は String from Object
を使って文字に変換。
nullは Object.IsNull
と If
を使って空白文字に変換します。
ブロックの属性同期
もっといい方法があるのかもしれないけど、私にはこれが精一杯・・・。
「Camber」パッケージのDocument.SendCommand
を使用し、「attsync」コマンドを実行。「s」オプションを使用し、オブジェクトはLISP (handle ハンドル名)
でハンドル名から取得しています。
ブロック内のすべての属性のオブジェクトを取得
「Camber」パッケージのConvert to Camber Object
を使用しています。Block.Objects
だと、文字もブロック属性も「Text」オブジェクトだったのです・・・。
Discussion