0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ifcopenshellのifcPatchを使ってIFCを結合してみた。

Posted at

はじめに

自分用のメモとして書きますが、誰かに見ていただけると嬉しいです。
今回は複数のIFCを結合していこうと思います。

今回行うこと

ifcOpenShellのgitをクローン
ifcPatchでIFCを結合

の流れで行いたいと思います。

まず、ifcOpenShellのgitのクローンを行う前にgitPythonをinstallしておく必要があります。

今回のgitとPythonの各バージョンは以下です。

git:2.43.0.windows.1
python:3.10.11

ifcOpenShellのgitをクローン

まず今回ifcOpenShellはgitをクローンして環境を作成しようと思います。
任意のディレクトリに移動し、以下のコードをターミナルで打ちます。

git clone https://github.com/IfcOpenShell/IfcOpenShell.git

以下の画像のようにifcOpenShellの環境が作成されました。
スクリーンショット 2024-12-22 220441.png
今回はこのディレクトリ内のifcPatchを使いたいと思います。
以下のコードを打ちifcPatchのディレクトリに移動します。

cd IfcOpenShell/src/ifcpatch

ifcPatchでIFCを結合

次にifcPatchを使い、IFC同士を結合させます。今回は橋梁の下部構造と上下部接続部のIFCデータを結合させようと思います。

下部構造のIFCデータ

image.png

上下部接続部のIFCデータ

image.png

では実際にifcPatchを使い、IFCを結合します。
実行するコードは以下です。

python -m ifcpatch -i "1つ目のIFCが存在するパス" -r MergeProjects -a "2つ目のIFCが存在するパス" -o "結合されるIFCモデルのパス指定と名前"

私は以下のように書き実行しました。(自分が保存しているパスとIFCの名前は書き換えてください。)

python -m ifcpatch -i "C:\IFC\substructure.ifc" -r MergeProjects -a "C:\IFC\connection.ifc" -o "C:\IFC\substructure-connection.ifc"

image.png

実際に結合されたsubstructure-connection.ifcを開くと以下のようなデータとなりました。

image.png

ここで注目するべきが右のIFCデータの構造です。よく見るとIFCSITEとIFCBUILDINGが2つづつ存在しています、しかしこれはIFCデータの構造として間違っています。
そこでIFCSITEとIFCBUILDINGをそれぞれ1つに統合したいと思います。
substructure-connection.ifcをVScodeで開きます。
image.png
このようにIFCはコードでも確認することが出来ます。
まずIFCSITEを1つにまとめます。
Ctrl+FでIFCSITEを検索します。
image.png
するとIFCSITEが2件ヒットします。
1つ目のIFCSITEのOwnerHistory(先頭に付いている#の番号)を一旦メモします。
今回は38です。
そして2つ目のIFCSITEに移動します。
image.png
そして2つ目のIFCSITEのOwnerHistoryの番号をコピーし検索をかけます。今回は#2756の2756です。
すると以下のようにヒットしました。
image.png
そして検索したOwnerHistoryの番号である2756を1つ目のOwnerHistoryの番号の38に書き換えます。
※今回、書き換える箇所は2つ目のOwnerHistoryです。(IFCSITEを直接参照しているOwnerHistoryを書き換えること)
そして2つ目のIFCSITEの全文を削除します。
image.png
 ↓
image.png

ここでIFCビューワに戻りデータを確認するとIFCSITEが1つに統一されていることが確認できました。
image.png

同様にIFCBUILDINGも1つに統一すればIFCの結合は終了です。
image.png

以上がifcPatchの使用方法でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?