VWスクリプト

Vectorworks Python入門——内装設計者が自動化スクリプトを書き始めるまで

Vectorworks Python入門のアイキャッチ画像

VectorScriptを使い始めたのは設計事務所に入って2年目のころでした。繰り返し作業を自動化したくて、先輩に「VectorScriptで書けば楽になる」と言われたのがきっかけです。ただ、VectorScriptはリファレンスが少なく、エラーメッセージの意味が分かりにくくて途中で挫折しかけました。Vectorworks 2023からPythonが正式サポートされてからは状況が変わりました。Pythonはドキュメントが豊富で、エラーの意味が分かりやすく、ちょっとした自動化なら数行で書けます。この記事では、VectorworksでPythonスクリプトを初めて動かすまでの手順を具体的に解説します。

なぜVectorScriptではなくPythonか

VectorScriptはVectorworks専用言語で、VW内の操作に特化した関数が揃っています。一方でPythonは汎用言語のため、外部ライブラリとの連携やWeb APIの呼び出しなど、VectorScript単体ではできない処理が書けます。また、Python関連の情報はQiitaやStack Overflowに大量にあるため、詰まったときに調べやすい。VectorScriptの独自構文を覚えるより、Pythonの基本を押さえた方が長期的なコスパは高いです。

とはいえVectorScriptが不要というわけではありません。既存のVectorScriptライブラリがあるプロジェクトや、VectorScriptの方が短く書ける処理もあります。両方を知っていることが理想ですが、ゼロから始めるなら今はPythonが入りやすい環境です。

動作環境——どのバージョンから使えるか

VectorworksのスクリプトエディタはVW2023以降で利用できます。「ツール→スクリプト→スクリプトエディタを開く」から起動します。エディタ上部の「言語」ドロップダウンで「Python」を選択すれば準備完了です。Vectorworks側に搭載されたPythonを使うため、別途のインストールは不要です。

使用されるPythonのバージョンはVectorworksのバージョンによって異なります(VW2023はPython 3.9系)。外部ライブラリを使う場合は注意が必要ですが、最初のうちはVectorworks標準のvsモジュールだけで十分です。

最初のスクリプト——アラートを表示するだけ

まず以下の2行を実行してみてください。

import vs
vs.AlertDialog("Hello, Vectorworks!")

Vectorworks上にダイアログが表示されます。「import vs」はVectorworks APIのモジュールを読み込む宣言で、これを先頭に書かないと何もできません。まずこれを実行して「動いた」を確認することが最初の一歩です。エラーが出た場合はインデントとスペルミスを確認してください。

オブジェクト取得の基本パターン

VectorworksでPythonを使う場合の基本は「現在の図面上のオブジェクトを取得して何かする」パターンです。

import vs

h = vs.FSObject()  # 図面上の最初のオブジェクトのハンドル
if h:
    obj_type = vs.GetType(h)
    vs.AlertDialog(f"オブジェクトタイプ: {obj_type}")
else:
    vs.AlertDialog("オブジェクトが見つかりません")

vs.FSObject()は図面上の最初のオブジェクトのハンドル(内部ID)を返します。ハンドルがNoneの場合はオブジェクトなしです。GetType()でオブジェクトの種類(壁・ポリゴン・テキスト等)が数値で返ります。この「ハンドルを取得して属性を調べる」パターンがVW Pythonスクリプトの基礎になります。

最初につまずいた2つのこと

インデントエラー:Pythonはインデント(字下げ)が文法の一部で、タブとスペースが混在するとSyntaxErrorになります。スクリプトエディタのデフォルト設定ならスペース4個で補完されますが、他の場所からコピペするとタブが混入することがあります。エラーが出たらまずインデントを確認してください。

vsモジュール外の関数:VectorworksのスクリプトエディタからはPython標準ライブラリのimportは基本できますが、numpyやpandasなどの外部パッケージは使えません。「import os」「import json」などの標準ライブラリは使えます。「何ができて何ができないか」を最初に把握しておくと、スクリプトの設計見通しが立ちやすくなります。筆者は最初にpandasを使おうとして、エラーで30分詰まった経験があります。

まとめ

NAISO Labでは、内装設計者向けのVectorworksスクリプト集を公開しています。クロス数量の集計、面積計算の自動化、オブジェクト属性の一括変更など、現場で「あれば楽なのに」と感じていたスクリプトをまとめています。まずはスクリプトエディタを開いて、アラートを1本動かすところから始めてみてください。動いた瞬間、少し世界が変わります。

関連記事:Vectorworksのクラスとレイヤーをゼロから設計する / Vectorworks 2026の内装設計向け4大アップグレード / クラスの命名規則を実務で見直す方法

内装設計・施工に関するご相談は、お気軽にお問い合わせください。

お問い合わせはこちら →