Vectorworksのプラグインオブジェクトを図面に追加する時に、カスタムレコードおよびデータを自動的にオブジェクトに連結するには、必要なデータフィールドを含むレコードフォーマットを作成し、フィールドをそのオブジェクトの適切な定数、パラメータ、またはスタイルにマッピングします。これにより、ワークシート、データタグ、データの可視化など、オブジェクトのデータをレポートするさまざまなVectorworks機能を使用しやすくなります。
この例では、「Cabinet Calculations(キャビネットの計算)」というレコードフォーマットを作成して、ベースキャビネットプラグインオブジェクトのデータセットとして追加しています。
● Countertop Length(天板の長さ):キャビネットの幅パラメータ(天板の直線寸法)にマッピングします。
● Countertop Area(天板の面積):天板に50ミリメートルのオーバーハングを追加して面積を計算してから、1000 * 1000で割り、結果を平方ミリメートルから平方メートルに変換します(長さ/奥行きの単位はミリメートルです)。
条件式: ([Object.Length] * ([Object.Depth] + 50)) / 1000000
● Adjacent to Wall(壁に隣接):マッピングしていません。ユーザはオブジェクト情報パレットのデータタブで、キャビネットが壁に隣接するかどうかを定義します。そのため、防止板が必要になります。
● Backsplash Area(防止板の面積):防止板が必要な場合、その面積は0.6メートル(防止板のパネルの幅)*天板の長さ/ 1000になります(メートルからミリメートルに変換します)。この条件式が、同じレコードの他の2つのフィールドを参照していることに注意してください。
条件式: IF([Record.Cabinet Calculations.Adjacent to Wall], 0.6 * [Record.Cabinet Calculations.Countertop Length] / 1000, 0)
マッピングからレコードフォーマットを削除すると、図面内のすべてのベースキャビネットからレコードの連結が解除されます。
図面にベースキャビネットを配置すると、オブジェクト情報パレットのデータタブに、レコードデータが自動的に連結されていることが示されます。マッピングしたフィールドごとに、マッピング列でフィールドの編集方法を制御できます。
IF(([Object.structuralUse*] = 'Joist') | ([Object.structuralUse*] = 'Beam'), 'IfcBeam', 'IfcMember')
軸組オブジェクトの構造用途設定が根太または梁の場合、IFCエンティティはIfcBeamになります。それ以外の場合はIfcMemberになります。
FIND('Structural', [Style.Name]) = 0
スラブ図形のスタイル名が「Structural」で始まる場合は、スラブにClassification Psetが連結されます。
ファイルを交換する場合、特定のデータフィールドを空にしてはいけないことや、すべてのデータフィールドにデフォルト値を入れておくことを定めた要件やポリシーがしばしば存在します。手動で上書きできる別の値を持つのは、ごく一部のオブジェクトだけです。必須のデータフィールドに必ず値が入るようにするには、データマッピング条件式の最後に定数を記載します。
[Style.Function] ELSE ‘NOTDEFINED’
[Object.VW_Name] ELSE [Style.Name] ELSE ‘Roof’
ほとんどのオブジェクトに対してはデフォルト値であるものの、一部のオブジェクトに対してのみ値が異なるような場合には、レコードフォーマットを作成して、データソースのデフォルト値となるデフォルトのレコードフィールド値を含めることを推奨します。次に、そのレコードを特に値が異なるオブジェクトにのみ連結し、必要に応じて、連結したレコードの値を変更します。そのレコードが連結されていないオブジェクトはデフォルト値を取得し、そのレコードが連結されているオブジェクトは特定の値を取得します。
[Record.Pricing Details.Discount];
データマッピング条件式の結果は多くの場合、「改善」して一段と読みやすくしたり、特定の要件を満たすように前記号/後記号を追加したり、または複数のソースから組み合わせたり計算したりできるようにする必要があります。
この例では、メーカーやステップ幅に関する重要な情報についての、エスカレーターの記載を改善します。また、いくつかの単語を追加して一段と読みやすくします。
' Escalator:' + [Object.Type] + 'Width:' + [Object.Step width]
Escalator: Otis 510 M Width: 1000 (3' 3")
別の例では、窓の名前をVectorworks名から取得するよう設定します。Vectorworksオブジェクト名がない場合は、前記号、IDラベル、後記号の各フィールドを組み合わせます。これらのパラメータがすべて空の場合は、「Window」という単語を使用して窓であることが分かるようにします。
[Object.VW_Name] ELSE [Object.IDPrefix] + [Object.IDLabel] + [Object.IDSuffix] ELSE 'Window'
W-01A1
この例では、窓の設定に基づいてIfcWindow.OverallHeightを計算します。
窓の高さのパラメータは、窓台がない場合、または形式がレンガの窓台がある場合は、正しい値であるものとします。その他の場合には、窓台の(4)高さの値を、窓の高さに追加する必要があります。
[Object.OverallHeight] + IF([Object.IncludeSill] & ([Object.SillStyle] != 'レンガ'),[Object.SillHeight], 0)
2000.0
2150.0
IFCデータには、多くの「列挙」型のデータフィールドが必要です。一般的な例には、PredefinedType、OperationType、ShapeTypeなどがあります。時には、現在の設定がIFCと異なるか、直接マッピングできる有効なデータソースがないか、値が別の言語で記述されているせいで、1対1で対応しないことがあります。
この例では、窓の形式リストを、IFC Window Panelデータセットの必要なOperationTypeにマッピングします。
マッピングには、窓の形式リスト項目をIFC Window Panelパラメータの組み合わせ(論理式と値)にマッピングする、セレクタ関数の1つを使用します。
SELECT2([Object.SashOperation] = '開口部', 'FIXEDCASEMENT',
[Object.SashOperation] = '枠のみ', 'FIXEDCASEMENT',
[Object.SashOperation] = 'はめ殺しガラス', 'FIXEDCASEMENT',
[Object.SashOperation] = 'はめ殺しガラス - ガラス枠なし', 'FIXEDCASEMENT',
[Object.SashOperation] = '摺上げ', 'SLIDINGVERTICAL',
[Object.SashOperation] = '上げ下げ', 'SLIDINGVERTICAL',
[Object.SashOperation] = '開き窓', 'SIDEHUNGLEFTHAND',
[Object.SashOperation] = '両開き窓', 'SIDEHUNGLEFTHAND',
[Object.SashOperation] = '引き違い', 'SLIDINGHORIZONTAL',
[Object.SashOperation] = '突き出し', 'TOPHUNG',
[Object.SashOperation] = '内(外)倒し', 'BOTTOMHUNG',
[Object.SashOperation] = 'ドレーキップ', 'TILTANDTURNLEFTHAND',
[Object.SashOperation] = '縦軸回転', 'PIVOTVERTICAL')
ELSE 'NOTDEFINED’
シンボルとカスタム形状にIFCデータを連結して取り出します。IFCデータマッピングは、指定したIFCエンティティタイプの設定に基づきます。
データマネージャダイアログボックスでPset_ColumnCommonを追加し、Referenceフィールドをオブジェクトのクラス名にマッピングします。さらに、IsExternalとLoadBearingに固定値(TRUE)を追加できます。
IFCデータコマンドを選択してIfcColumnを選択すると、新しいマッピングの挙動を確認できます。
シンボルの場合は、IFCの指定にマッピングを使用する以外に、シンボル定義の名前を使用してデータマッピングを指定することもできます。データマネージャで、シンボル定義を選択してからデータセットを追加をクリックし、取り出したい必要なIFCデータセットを定義できます。たとえば、このシンボルのすべてのインスタンスのフィールドは同じであるため、Pset_ManufacturerTypeInformationを追加してから、すべてのフィールドを固定値にマッピングします。
これで、シンボル定義またはシンボルのインスタンスにIFCデータを連結しなくても、シンボルはPset_ManufacturerTypeInformationを含むIfcFurnishingElementとして取り出されます。IFCデータダイアログボックスを開き、表示されるIfcFurnishingElementを確認後にOKをクリックすると、取り出されるデフォルトのマッピングとデータを確認できます。
~~~~~~~~~~~~~~~~~~~~~~~~~