Dynamo
Primer for v2.0
日本語
日本語
  • この Web サイトについて
  • はじめに
    • Dynamo とは、その動作の仕組みとは
    • Primer ユーザ ガイド、Dynamo コミュニティ、プラットフォーム
  • Dynamo のセットアップ
  • ユーザ インタフェース
    • ワークスペース
    • ライブラリ
  • ノードとワイヤ
  • 基本ノードと概念
    • ノードの索引
    • 計算設計用のジオメトリ
      • ジオメトリの概要
      • ベクトル、平面、座標系
      • 点群
      • 曲線
      • サーフェス
      • 立体
      • メッシュ
    • プログラムの構成要素
      • データ
      • 数学的方法
      • ロジック
      • 文字列
      • 色
    • リストを使用した設計
      • リストの概要
      • リストの操作
      • リストのリスト
      • N 次元のリスト
    • Dynamo のディクショナリ
      • ディクショナリとは
      • [Dictionary]カテゴリのノード
      • コード ブロックにおけるディクショナリ
      • Revit での使用例
  • カスタム ノードとパッケージ
    • カスタム ノード
      • カスタム ノードの概要
      • カスタム ノードを作成する
      • ライブラリへのパブリッシュ
    • パッケージ
      • パッケージの概要
      • パッケージのケース スタディ - Mesh Toolkit
      • パッケージを開発する
      • パッケージをパブリッシュする
      • Zero-Touch Importing
  • Revit 用の Dynamo
    • Revit との連携
    • 選択
    • 編集
    • 作成
    • カスタマイズ
    • 設計図書の作成
  • Dynamo for Civil 3D
    • Civil 3D の接続
    • スタートアップ
    • ノード ライブラリ
    • サンプル ワークフロー
      • 道路
        • 照明柱の配置
      • 土地
        • サービスの配置
      • ユーティリティ
        • 構造物の名前を変更する
      • 軌道
        • クリアランスのエンベロープ
      • 測量
        • ポイント グループ管理
    • 高度なトピック
      • オブジェクト バインド
      • Python と Civil 3D
    • Dynamo プレーヤ
    • 便利なパッケージ
    • リソース
  • Dynamo in Forma Beta
    • Forma で Dynamo Player を設定する
    • Dynamo Player でグラフを追加、共有する
    • Dynamo Player でグラフを実行する
    • Dynamo コンピューティング サービスとデスクトップ版 Dynamo の違い
  • Dynamo でのコーディング
    • コード ブロックと DesignScript
      • コード ブロックとは
      • DesignScript 構文
      • 省略表記
      • 関数
    • DesignScript を使用するジオメトリ
      • DesignScript ジオメトリの基本
      • ジオメトリ プリミティブ
      • ベクトル計算
      • 曲線: 補間および制御点
      • 移動、回転、およびその他の変換
      • サーフェス: 補間、制御点、ロフト、回転
      • ジオメトリのパラメータ化
      • 交差およびトリム
      • ジオメトリのブール演算
      • Python 点ジェネレータ
    • Python
      • Python Script ノード
      • Python と Revit
      • 独自の Python テンプレートを設定する
    • 言語の変更
  • ベスト プラクティス
    • 見やすいプログラムを作成するためのガイドライン
    • スクリプト作成のガイドライン
    • スクリプト リファレンス
    • プログラムを管理する
    • Dynamo で大規模なデータ セットを効率的に操作する
  • サンプル ワークフロー
    • スタートアップ ワークフロー
      • パラメータを使用する花瓶
      • アトラクタ ポイント
    • 概念インデックス
  • 開発者向け Primer
    • ソースから Dynamo をビルドする
      • ソースから DynamoRevit をビルドする
      • Dynamo での依存関係の管理と更新
    • Dynamo 向けの開発
      • スタートアップ
      • Zero-Touch ケース スタディ - グリッド ノード
      • Zero-Touch ノードで Python スクリプトを実行する(C#)
      • Zero-Touch の詳細を確認する
      • Dynamo ノードの高度なカスタマイズ
      • Dynamo パッケージで COM (相互運用)タイプを使用する
      • NodeModel ケース スタディ - カスタム UI
      • Dynamo 2.x 用のパッケージと Dynamo ライブラリを更新する
      • Dynamo 3.x 用のパッケージと Dynamo ライブラリを更新する
      • 拡張機能
      • Dynamo 2.0+ のカスタム パッケージ編成を定義する
      • Dynamo コマンド ライン インタフェース
      • Dynamo の統合
      • Dynamo for Revit 向けの開発
      • パッケージをパブリッシュする
      • Visual Studio からパッケージをビルドする
      • パッケージとしての拡張機能
    • プル リクエスト
    • テストによる期待
    • サンプル
  • 付録
    • よくある質問(FAQ)
    • ビジュアル プログラミングと Dynamo
    • リソース
    • リリース ノート
    • 便利なパッケージ
    • サンプル ファイル
    • ホスト統合マップ
    • PDF をダウンロード
    • Dynamo のキーボード ショートカット
Powered by GitBook
On this page
  • 文字列とは
  • 文字列を作成する
  • 演習
  • 文字列のクエリーを実行する
  • 文字列を操作する
  • 文字列を使用する
Edit on GitHub
Export as PDF
  1. 基本ノードと概念
  2. プログラムの構成要素

文字列

PreviousロジックNext色

Last updated 1 month ago

文字列とは

文字列とは、正確には、リテラル定数や何らかのタイプの変数を表す一連の文字の集合のことです。広い意味では、文字列とは、テキストを意味するプログラミング用語です。ここまでの手順では、整数と小数の両方を使用してパラメータをコントロールしてきましたが、テキストについても同じ処理を行うことができます。

文字列を作成する

文字列は、カスタム パラメータの定義、ドキュメント セットの注釈付け、テキストベースのデータ セットの解析など、さまざまな目的で使用することができます。String ノードは、[Core] > [Input]カテゴリで使用することができます。

上記のサンプル ノードは、すべて文字列用のノードです。数値は文字と同様に、文字列として表すことも、テキスト配列全体として表すこともできます。

演習

下のリンクをクリックして、サンプル ファイルをダウンロードします。

すべてのサンプルファイルの一覧については、付録を参照してください。

文字列のクエリーを実行する

文字列のクエリーを実行することにより、大量のデータをすばやく解析することができます。ここでは、ワークフローを促進してソフトウェアの相互運用性を向上させるための基本的な操作について説明します。

次の図は、外部のスプレッドシートから取得したデータの文字列を示しています。この文字列は、XY 面上の長方形の頂点を表しています。簡単な演習として、文字列の分割操作を確認してみましょう。

  1. 「;」セパレータは、長方形の各頂点を分割します。これにより、各頂点の 3 つの項目が含まれているリストが作成されます。

  1. String.Split ノードの中央にある[+]をクリックして、新しいセパレータを作成します。

  2. 「,」という文字をキャンバスに追加し、separator1 入力に接続します。

  3. リストの項目が 10 個になります。String.Split ノードは、separator0 に基づいて分割を行ってから、separator1 に基づいて分割を行います。

上記のリストの項目は数値に見えますが、Dynamo 内では個別の文字列として認識されます。点群を作成するには、データ タイプを文字列から数値に変換する必要があります。これを行うには String.ToNumber ノードを使用します。

  1. String.ToNumber ノードは、単純なノードです。String.Split ノードの出力を String.ToNumber ノードの入力に接続します。出力の表示は変わりませんが、データ タイプは 文字列 から 数値 に変換されています。

いくつかの基本的な操作を実行すると、元の文字列の入力に基づいて基準点に三角形が描画されます。

文字列を操作する

文字列は一般的なテキスト オブジェクトであるため、さまざまな目的で使用することができます。ここでは、[Core] > [String]カテゴリの主要なアクションをいくつか見てみましょう。

このカテゴリには、複数の文字列を順に結合する方法が用意されています。リストから各リテラル文字列を取得して、1 つの文字列に結合します。

以下は、3 つの文字列を連結する方法を示しています。

  1. String.Concat ノード中央の[+]/[-]ボタンをクリックして、連結する文字列の追加と除外を行います。

  2. 出力として、スペースと句読点を含む 1 つの連結された文字列が生成されます。

結合操作は連結操作に非常によく似ていますが、句読点のレイヤーが追加される点が異なります。

Excel を使用したことがあれば、CSV ファイルについても知っているでしょう。CSV とは、カンマ区切り値という意味です。セパレータとしてカンマ(この場合は 2 つのダッシュ)を String.Join ノードで使用すると、CSV に似たデータ構造を作成することができます。

次の図は、2 つの文字列を結合する方法を示しています。

  1. separator 入力を使用して、結合された文字列の区切り文字を指定することができます。

文字列を使用する

最初に、節の文字列を分解する基本的な操作を実行します。文字はカンマに基づいて書式設定されていることがわかります。この書式を使用して、各行を個々の項目に分割します。

  1. ベースとなる文字列を String ノードに貼り付けます。

  2. 別の String ノードを使用して、セパレータを指定します。ここでは、カンマをセパレータとして使用します。

  3. String.Split ノードをキャンバスに追加し、2 つの String ノードに接続します。

  4. 出力として、各行が個別の要素に分割されます。

次に、詩のサビとなる最後の 2 行を処理しましょう。元の節は 1 つのデータ項目でした。最初の手順で、このデータを個別の項目に分割しました。そのため、必要な文字列を検索する必要があります。この例では、リストの最後にある 2 つの項目を選択することは難しく ありません が、書籍全体が処理対象になるような場合、内容をすべて読んでから各要素を手作業で区別するのは大変な作業になります。

  1. String.Contains ノードを使用して文字セットを検索すれば、こうした手作業を行う必要はありません。これは、文書ファイルで「検索」コマンドを実行するのと似ています。この場合、対象のサブストリングが項目内で見つかったかどうかに応じて、「true」または「false」が返されます。

  2. String.Contains ノードの searchFor 入力で、節内で検索するサブストリングを定義します。ここでは、String ノードで「And miles」と指定します。

  3. 出力として、false と true のリストが表示されます。次の手順では、このブール値ロジックを使用して各要素をフィルタします。

  1. List.FilterByBoolMask ノードを使用して false と true を抽出します。in 出力は、mask 入力が true になっているステートメントを返し、out 出力は、mask 入力が false になっているステートメントを返します。

  2. in 出力により、節の最後の 2 行が返されます。この 2 行には、「And miles」という文字列が含まれています。

次に、最後の 2 行を結合して節の繰り返しを強調します。前の手順の出力を確認すると、リスト内に 2 つの項目が含まれていることがわかります。

  1. 2 つの List.GetItemAtIndex ノードを使用し、0 と 1 を index 入力の値として指定することにより、2 つの項目を分離することができます。

  2. 各ノードの出力として、最後の 2 行が順に表示されます。

これらの 2 つの項目を 1 つに結合するには、String.Join ノードを使用します。

  1. String.Join ノードを追加したら、セパレータを指定する必要があります。

  2. セパレータを指定するには、キャンバスに String ノードを追加してカンマを入力します。

  3. 最終的な出力として、最後の 2 行が 1 行に結合されます。

このように、最後の 2 行を分割する作業は手間がかかります。文字列の操作では、多くの場合、事前の作業が必要になります。ただし、文字列の操作は拡張可能であるため、大規模なデータセットにも比較的簡単に適用することができます。スプレッドシートでパラメータを使用して対話式に操作する場合は、文字列の操作を実行すると便利です。

この演習では、文字列のクエリーと文字列の操作を実行して、Robert Frost の「」という詩の最後の節を分解してみましょう。実際の開発作業で詩の文字列を操作することはありませんが、文字列に対する操作を理解するのに役立ちます。

Stopping By Woods on a Snowy Evening
9KB
Building Blocks of Programs - Strings.dyn
連結
分割
文字列の分割