2026年6月6日土曜日

Autodesk Forma(旧ACC)で回転させない方法

Formaはいつでも共有座標

Autodesk Forma(旧ACC)にRevitのデータをアップロードした際に、X-Y軸が傾いてしまうことがあります。これは、Revitのデータに真北を設定した際に起こる現象です。

サンプル意匠.rvtをFormaで見たところ
右上のビューキューブと比べると回転していることがわかる

Formaにアップロードする際に、任意の点を原点としてプロジェクトの北に正対した座標で配置したい場合は、Forma用の共有座標を作成し、現在に設定した状態でアップロードします。

手順

使用しているバージョンはRevit2026、データはサンプル意匠.rvtです。わかりにくいので、リンクのサンプル構造はロード解除した状態で説明します。

敷地(=共有座標)の作成

まず、新たな敷地(=共有座標)を作成します。

  1. 管理タブ>プロジェクトの位置パネル>場所>敷地タブ
    1. 「東京」と「内部」という複数の敷地があります。末尾に(現在)とついている「東京」はプロジェクトの北から真北までの角度が15度になっています。このままFormaにアップロードすると15度東側に「回転した」状態になります。
    2. 「内部」はプロジェクトの北から真北までの角度が0度なので、こちらを現在に指定した状態でFormaにアップロードすれば開店した状態にはなりません。今回はあえて新しくForma用の共有座標を作成してみます。
  2. 「東京」を選択して[複製]ボタンを押します。
  3. 名前を「Forma」としてOK

  4. [現在の値にする]をクリックし、「Forma(現在)」となっていることを確認してからOK

回転角度を0度に

プロジェクトブラウザ>ビュー>建築>*作業者名>平面図>作業用 1階 を開く

一時的に「プロジェクト基準点」と「測量点」だけを表示します。

画面左下ビューコントロールバーの「一時ビューのプロパティを有効化」をクリック


表示タブ>グラフィックスパネル>表示/グラフィックス

モデルカテゴリタブで、外構カテゴリの「プロジェクト基準点」と「測量点」を除いて非表示とします。

ビューの一時プロパティ

X1-Y1の交点にある「プロジェクト基準点」を選択し、真北の角度の345°の文字をクリックしてアクティブにし、0と入力


共有座標原点を移動する~XY平面編

測量点を現在の共有座標(Forma)の原点に移動します。ここで重要なことはクリップを解除してから測量点の座標値を変更することです。

  1. 測量点を選択し、クリップをオフにします。
  2. 高さの値を選択し、0に変更

共有座標原点を移動する~Z座標編

断面図を作成し、測量点の原点の位置を変更します。

  1. 表示タブ>作成パネル>断面
  2. タイプセレクタから「*作業者名」を選択してから、図のようにX1-Y1の交点付近に断面図を作成します。

  3. 作成した断面線を右クリック>ビューに移動 で断面ビューを表示します。今度は測量点だけを表示します。
  4. 測量点を選択し、クリップをクリックして、クリップがオンの状態であることを確認します。また、N/S E/W 高さの値がすべて0であることを再度確認してください。

  5. 測量点をまっすぐ上に移動して1FLに合わせます。クリップをONにした状態で測量店を移動することで、座標系そのものを移動することができます。

測量点を1FLに移動

これで、現在の共有座標、すなわち敷地:Formaの座標原点が、X1-Y1-1FLの交点、かつプロジェクトの北=Y方向 に設定された状態になります。

Formaにアップロード

この状態(共有座標(敷地)Formaが現在の状態)で保存して、Formaにアップロードすれば、「回転していない状態」で、かつ「X1-Y1-1FL」が原点の状態でRevitモデルが配置されます。

Formaで正対して配置された状態になる

2026年5月23日土曜日

IFC座標基底

座標系の変更ができる

RevitのIFC出力では出力時の座標基準が選択できます。

  • 共有座標
  • 測量点
  • プロジェクト基準点
  • 内部原点
  • 真北に向けられたプロジェクト基準点
  • 真北に向けられた内部原点

これはIFC出力設定の地理的参照タブの座標基底から選択できます。

座標基底

それぞれ、どのような結果になるのか、次のような簡単なプロジェクトを出力して確認してみます。10m角の壁だけがあるプロジェクトです。

4隅に内部原点、測量点、プロジェクト基準点、共有座標原点を配置

検証にはBIMvisionを用いています。(Navisworksはいろいろと気を利かせて補正が入ってしまうからです。)

内部原点

真北の影響:なし

右上の2通りとB通りの交点を原点(0,0,0)として、プロジェクトの北に正対して出力されます。

内部原点


プロジェクト基準点

真北の影響:なし

BIMvisionで「プロジェクト原点」と「内部原点」を読み込んで重ねてみました。真北の越境を受けずにプロジェクトの期待に正対しています。「プロジェクト基準点」で出力すると任意の位置に座標原点(0,0,0)を移動できることがわかります。

内部原点とプロジェクト基準点

共有座標

真北の影響:あり

共有座標の原点は1通り-B通りの交点(左上)です。この点がIFC上の原点になっています。共有座標は真北を上にして出力されています。

内部原点と共有座標

測量点

真北の影響:あり

測量点は2通りとA通りの交点(右下)です。やはり真北の影響を受けていますね。

内部原点と測量点

真北に向けられたプロジェクト基準点

真北の影響:あり

プロジェクト基準点は1通りとA通りの交点(左下)です。こちらも真北の影響を受けています。

内部原点と真北に向けられたプロジェクト基準点

真北に向けられた内部原点

真北の影響:あり

内部原点は2通りとB通りの交点(右上)です。これも名前の通り真北の影響を受けています。

内部原点と真北に向けられた内部原点

目的にもよりますが、分野間の重ね合わせならば原点を自由な位置に設定出来てプロジェクトの北に正対する「プロジェクト基準点」が便利そうです。

2026年5月16日土曜日

IFC ~ USERDEFINED

クラスとPredefinedTypeの関係

 IFCは、現実世界の建材をコンピュータが理解できるように分類しています。しかし、一つのクラスだけでは範囲が広すぎます。例えば

  • IfcCovering(クラス):何かを覆うもの
    • これだけだと、それが「天井」なのか「床」なのか「幅木」なのか区別がつきません。
  • PredefinedType(小分けラベル):その中身を特定する役割
    • CEILING(天井)
    • FLOORING(床仕上げ)
    • SKIRTINGBOARD(幅木)
このように、「クラス + PredefinedType」がセットになることで、初めてその部材が何であるかが確定する仕組みになっています。
このPredefinedTypeのなかにUSERDEFINEDがあります。

USERDEFINEDの役割

IFCを作っている国際組織(buildingSMART)は、世の中にある全ての建材に名前を付けようとしていますが、技術の進歩や地域特有の部材など、どうしてもリストに載らないものが出てきます。
そこで、「リストにはないけれど、このクラス(IfcCoveringなど)に属する何かです」と言いたい時に使うのが USERDEFINED です。例えば・・・・

  • PredefinedType = SKIRTINGBOARD
    • 「世界標準のリストにある『幅木』です」という意味。
  • PredefinedType = USERDEFINED
    • 「リストにはない特殊なものですが、仕上げ材の一種です。具体的な名前は ObjectType を見てください」という意味。

IFCのルールでは、PredefinedType(定義済みの種類)を USERDEFINED にした場合、「じゃあ、具体的に何なの?」という情報を ObjectType という属性に書き込むことが義務付けられています。

RevitでObjectTypeを指定する

RevitでObjectTypeを指定するには、パラメータIfcSpatialContainer同様、隠しパラメータIfcObjectTypeが用意されています。

IfcObjectTypeパラメータは、次のいずれかの方法で作成できます。

  1. 共有パラメータで自作する
  2. プロジェクトパラメータとして自作する
  3. Autodesk公式の共有パラメータを使用する

1や3の共有パラメータであれば、ファミリにあらかじめ仕込んでおくこともできます。

3の場合は、Revitの拡張機能からIFC v26.4.1 for Revit 2026などをインストールすると、次の共有パラメータファイルの中にあります。(各バージョン有ります)

"C:\ProgramData\Autodesk\ApplicationPlugins\IFC 2026.bundle\Contents\2026\IFC Shared Parameters-RevitIFCBuiltIn_ALL.txt"

例えば次のような簡単な下足入れを造作工事カテゴリでインプレイスファミリとして作成しました。これをObjectType=SHOERACKと指定してみます。

造作工事カテゴリで作成した下足入れ

何も設定せずIFCに出力すると・・・・

BIMvisionでの表示

IfcEntityはRevit標準のマッピングでIfcFurnitureになっていますが、PredefinedTypeはNOTDEFINEDですから、「具体的に何なのか?」がわかりませんね。

そこでまず、プロジェクトパラメータとしてIfcObjectTypeを目的のカテゴリ(今回は造作工事)にインスタンス(場合によってはタイプ)パラメータとして追加します。

  • パラメータを自作する場合は、データタイプを文字にしてください。
    データタイプは文字

  • Autodeskの標準共有パラメータを使用する場合は、パラメータグループRevit IFC Exporter ParametersグループにあるIfcObjectTypeを利用してください。
    IFC Shared Parameters-RevitIFCBuiltIn_ALL.txt

目的のファミリを選択し、インスタンスパラメータ定義済み書き出しIFCクラス、IFCタイプ、IfcObjectTypeを次のように設定します。

  • 書き出しIFCクラス:IfcFurniuture
  • 定義済みIFCタイプ:USERDEFINED
  • IfcObjectType:SHOERACK
    IFC関連パラメータを設定

この状態で書き出してみます。

ObjectType=SHOERACKと出力されました

これでユーザー定義のオブジェクトタイプを書き出すことができ、この要素がなんであるかを伝えることができるIFCデータになります。

2026年5月9日土曜日

IFC BuildingStorey

IFC空間階層の基本構造

標準的な建築プロジェクトでは、以下の順序で階層が構成されます。

IFCの基本的な階層



IFCクラス 説明 役割
IfcProject プロジェクト 全体の管理単位。プロジェクト名、作成者、単位系(メートルかフィートか等)、座標系の定義などを保持します。
IfcSite 敷地 建物が建つ場所。住所、緯度・経度、敷地の境界線などの情報を含みます。
IfcBuilding 建物 物理的な「ハコ」としての建物。一つの敷地に複数の建物がある場合は、ここに複数の IfcBuilding が並びます。
IfcBuildingStorey 階層・フロア 1階、2階、屋上などのレベル定義。高さ情報(GLからの高度など)を持ちます。
IfcSpace 部屋・空間 居室、廊下、倉庫などの「空間」そのもの。容積や面積の計算根拠になります。
ここでポイントとなるのはIfcBuildingStoreyです。

レベルのパラメータ"建物の階"

レベルには"建物の階"というはい/いいえ型のインスタンスパラメータがあります。これを「はい」に設定したレベルがBuildingStoreyとして出力されます。
レベル線のインスタンスプロパティ

次のようなプロジェクトで考えてみます。このプロジェクトには
  • 1FL
  • 2FL鉄骨天端
  • 2FL
という3つのレベルがあり、構造フレームは2FL鉄骨天端レベルを参照しています。

すべてのレベルの"建物の階"を「はい」に設定した状態でIFCに出力すると。。。
BuildingStoreyは1FL、2FL鉄骨天端、2FLが出力され、BuildingStorey:2FL鉄骨天端には、多くの構造フレームが”Beam”として所属しています。
BIMvisionの画面。すべてのBeamが2FL鉄骨天端にある

2FL鉄骨天端は"建物の階"ではないので、この値を「いいえ」にして出力すると・・・
すべてのBeamが1FLに

BuildingStoreyは1FL、2FLが出力され、構造フレームはBuildingStorey:1FLに所属してしまいます。
IFCでは建物の要素はBuildngStoreyに所属するもの、という方針があるためRevitのIFCエクスポーターが要素の直下のBuildingStoreyを検索して要素を配置するためです。
しかし、この場合の構造フレームは2FLの床を支持するのだから、BuildingStorey:2FLに配置したいとしたらどうすればいいでしょうか?

出力先のレベルを変更する

Revitはこの所属レベル(BuildingStorey)を指定することができます。ヘルプにははっきりとは書いていないのですが、IfcSpatialContainerという共有パラメータを作成すれば、所属するBuildingStoreyを指定することができるのです。
不思議なことに、共有パラメータIfcSpatialContainer(文字型)は大文字小文字半角全角を含めて正確に名前を一致させれば勝手に作っても構いません
Autodesk公式のIfcSpatialContainerを使いたい場合は、Revitの拡張機能の"IFC for Revit"をインストールすると、以下のファイルに
"C:\ProgramData\Autodesk\ApplicationPlugins\IFC 2026.bundle\Contents\2026\IFC Shared Parameters-RevitIFCBuiltIn_ALL.txt"
IfcSpatialContainerというAutodesk公式の共有パラメータがありますからこれを使用するといいでしょう。

使い方

まず、目的のカテゴリ(今回は構造フレームカテゴリ)にインスタンスパラメータとしてIfcSpatialContainerを設定します。
IfcSpatialContainerをプロジェクトパラメータとして設定

構造フレームを選択し、IfcSpatialContainerの値にBuildingStoreyの名前「2FL」を設定します。名前だけを設定することがポイントです。
IfcSpatialContainerの値をBuildingStoreyの名前にする

この状態で、IFCを書き出せば指定したBuildingStoreyに構造フレームが所属します。
所属するBuildingStoreyを変更出来た


2026年4月26日日曜日

IFCのパラメータマッピング

Pset_Common

IFCには「Pset_〇〇Common」という標準パラメータがあります。

例:

Pset_WallCommon

Pset_DoorCommon

多くのパラメータが定義されていますが、Revitの既定のIFCエクスポータで出力されるパラメータもあれば、出力されないパラメータもあります。このような既定の機能では出力されないパラメータを出力するにはマッピングファイルを利用します。この具体的な方法を壁を例に解説します。

Pset_WallCommonの既定の出力

Pset_WallCommonの次のパラメータは、既定のエクスポータで出力されます。ただし、値が空だとパラメータ自体が出力されないので、関連するパラメータにできるだけ値を設定しましょう。(T=タイプパラメータ、I=インスタンスパラメータ)

IFC Revit 備考
Reference タイプ名(T) 文字
FireRating 耐火等級(T) 文字
ThermalTransmittance 熱伝達係数(T) 熱伝達係数 構造マテリアルの断熱情報
LoadBearing 構造(I)&構造用途(I) はい/いいえ 構造用途が"支持"のとき"はい"
IsExternal 機能(T) はい/いいえ "外部"のとき"はい"
ExtendToStructure はい/いいえ 上部がアタッチされていたら"はい"

Navisworksで確認すると次のようになっています。

Pset_WallCommon(IFC Type)

Pset_WallCommon

パラメータマッピングの手順

他の標準パラメータを出力するには、

  1. RevitにIFCパラメータ用のパラメータを準備
  2. マッピングファイルを作成
  3. マッピングファイルを使ってIFC出力
をする必要があります。今回はPset_WallCommonのうち
  • AcousticRating(文字):遮音等級
  • Compartmentation(はい/いいえ):防火区画
を追記し、
  • ExtendToStructure(はい/いいえ)
を上書きしてみます。

RevitにIFC用パラメータを追加

IFC用のパラメータをプロジェクトに追加します。用意するのは次のパラメータです

パラメータ名 T/I 対応IFCパラメータ
IFC_遮音等級 T 文字 AcousticRating
IFC_防火区画 I はい/いいえ Conpartmentation
IFC_上部接続 I はい/いいえ ExtendToStructure

これをプロジェクトパラメータとして、壁カテゴリ、IFCパラメータグループに追加します。共有パラメータである必要はありません。

管理タブ>プロジェクトパラメータ

そして、壁を選択してこれらの値を設定しておきます。

壁のインスタンスパラメータ

壁のタイプパラメータ

マッピングファイル

マッピングファイルの書式は

IFCのPset名(TAB)IFCパラメータ名(TAB)Revitパラメータ名

です。TAB区切りテキストファイルで文字コードは"UTF-8(BOM付)"です。とりあえずExcelで次のように編集します。パラメータ名は「完全一致」ですので、大文字小文字全角半角が完全に一致するように慎重に設定します。
Excelで編集すると楽です

これを"テキスト(タブ区切り)(*.txt)"として名前を付けて保存します。

タブ区切りテキストで保存する

つぎに、保存したテキストファイルをメモ帳で開き、名前を付けて保存からエンコードをUTF-8(BOM付)の変更して同じ名前で上書き保存しましょう。(パラメータ名に日本語を使用している場合はBOM付にしておいた方が文字化けの危険を避けることができます。)
エンコードを変更

マッピングファイルを使って出力

では、準備ができたのでRevitからIFCファイルを出力します。
  1. ファイル>書き出し>IFCで[設定を変更...]ボタンをクリック
  2. コピー元の設定(ここでは例として<IFC4 Reference View [建築]設定>を使います)を選択し、[選択した設定に基づいて新しい設定を作成します]ボタンをクリック、任意の名前を設定してOK

  3. プロパティセットタブの[パラメータマッピングテーブルを書き出し]の[参照]ボタンをクリックして、作成したマッピングファイルを選択します。
    パラメータマッピングファイルを指定する

  4. OK>書き出し
出力されたIFCファイルをNavisworksなどで開いて、パラメータを確認します。

Pset_WallCommon


Pset_WallCommon(IFC Type)

どんなときに使う?

このようにマッピングファイルを使うと、割とお手軽に標準パラメータセットを上書きできます。標準パラメータだけではなく、独自のPsetをマッピングファイルで出力することもできますが、独自のPsetの場合は、集計表を使ったほうが結果を目視できるし、結合パラメータや計算式や条件式も使えるので、集計表のほうが断然おススメです。
パラメータマッピングは標準パラメータの上書きが主たる目的になりそうですね。

追記:Revit2027

Revit2027ではプロパティマッピングは直接書き出し設定ダイアログボックスで指定できるようになりました。
Revit2027



2026年4月19日日曜日

書き出しIFCクラスと定義済みIFCタイプ

IFCパラメータの働きについて

 要素のインスタンスパラメータの"IFCパラメータ"グループには次の4つのプロパティがあります。

インスタンスパラメータ


タイプパラメータにもあります。

タイプパラメータ
このうち"IfcGUID"は自動で割り当てられるので、のこりの3つのパラメータ
  • IFCに書き出し
  • 書き出しIFCクラス
  • 定義済みIFCタイプ
の働きを次のデータで説明します。
Revitのデータ。右の二つのドアは同タイプ
これを普通にIFCで出力するとこうなります。

IFC(Navisworksで表示)

IFCに書き出し(タイプ)

値:「既定」「はい」「いいえ」

既定

"既定"はIFC書き出し設定に従うという意味で最も標準的な書き出し方法です。

いいえ

"いいえ"を選ぶとこのタイプはIFCに書き出されません。片開きドアのタイププロパティ"IFCに書き出し(タイプ)"をいいえに設定すると、このタイプはIFCでは出力されません。

いいえを選ぶとそのタイプは出力されない

はい(≒既定)

"はい"と既定とは実質的にはほとんど変わりません。あまり意味はないので普段は既定でよいでしょう。

書き出しIFCクラス(タイプ)と定義済みIFCタイプ(タイプ)

この情報はIFCに出力後のプロパティ、IFCTypeの IfcClassとPredefinedTypeに相当します。
IFCTypeパラメータセット

特に指定しなくても、Revitの既定のカテゴリマッピング(カテゴリとIFCクラスの紐づけ)が適用されます。定義済みIFCタイプをDoorではなく他のタイプに変更したい場合は、クリックして変更しましょう。


他にも、一般モデルカテゴリでインプレイスファミリを作った場合・・・
一般モデルファミリ

このまま出力するとIfcクラスはIfcBuildingElementProxyTypeになります。
一般モデルをIFC出力

IfcBuildingElementProxyType は「分類できない要素のための“受け皿”」です。Proxy = 代理・代替(=正体がはっきりしないものの仮の表現)なので、受け取り側に意味が伝わりません。このようなファミリはぜひIfcクラスを指定することをお勧めします。

Ifcクラスを指定する

例えばこれが家具だったとします。その場合、"書き出しIFCクラス(タイプ)"をクリックして、IfcFurnitureTypeを指定します。さらにPREDEFINEDTYPEをSOFAなどに指定します。
Ifcクラスを指定しよう

出力すると・・・・
IfcClassが変更された

これでIFCを受け取る側に要素の意味を伝えることができます。一般モデル特殊設備カテゴリおよびインプレイスファミリは特に注意して、きちんとIfcClassを指定しましょう。
ほかにも本来の用途とは異なる使い方をしている要素もIfcClassを指定してください。例えば「サンプル意匠.rvt」では外構のフェンスをカーテンウォールで作成していますが、これがフェンスであることを明確に伝えるためには IfcRailing.FENCEを指定するとよいでしょう。
フェンスをカーテンウォールで作っている

IFCに書き出し(インスタンス)

値:「タイプ別」「はい」「いいえ」

タイプ別はIFCに書き出し(タイプ)に従うという意味で、「いいえ」にすると、インスタンスごとにIFCに出力しない状態にできます。
中央のドアだけ"いいえ"に設定した場合

書き出しIFCクラスと定義済みIFCタイプ(インスタンス)

これは"書き出しIFCクラス(タイプ)"と"定義済みIFCタイプ(タイプ)"と同じ働きで、インスタンス単位でクラスとタイプを上書きするものです。

結論

  • IFC関連パラメータは基本的には既定値のままでよい
  • 一般モデル・特殊設備カテゴリ、インプレイスファミリ、本来のカテゴリの用途とは異なるモデルはIfcクラス・定義済みIFCタイプを上書きする