<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on abobonのサイト</title><link>https://ktaroabobon.github.io/post/</link><description>Recent content in Posts on abobonのサイト</description><generator>Hugo -- gohugo.io</generator><language>ja</language><copyright>Copyright © 2008–2018, Steve Francia and the Hugo Authors; all rights reserved.</copyright><lastBuildDate>Thu, 30 Jun 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://ktaroabobon.github.io/post/index.xml" rel="self" type="application/rss+xml"/><item><title>建築確認APIのプロトタイプの作成と考察</title><link>https://ktaroabobon.github.io/post/research/ifc-bc-prototype/</link><pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate><guid>https://ktaroabobon.github.io/post/research/ifc-bc-prototype/</guid><description>
背景 以前、「IFCの属性情報を用いた建築確認自動化の可能性に関する研究」という題で論文を執筆した。 slide share IFC viewerの機能を中心としたフレームワークであるifc.jsを知り、建築確認機能を持つIFC viewerを作成できると考えた。 Webサービス 初期構成 まず最初に考えた構成図は次図
viewerにifc.jsを採用し、建築確認機能をAPI化させる。APIはAWS Lambdaを採用することを想定。（今後変更する可能性あり）
しかし、ここで課題となるのはviewerとAPIの間でIFCのデータをどのような形式で送受信させるかということである。
そこでIFCをJSON形式に変換する方法などを視野に入れ、検討を行った。
IFCデータのやり取りの方法の検討 前述した通り、IFCデータをviewerとAPIの間においてどのような形式でやりとりを行うのかという課題がある。今回はifc-spfデータ（以下、ifcspf）またはIFCをjsonに変換したデータ（以下、ifcjson）を対象とした。なお、jsonに変換する際は以前記事にしたifcJSONを用いて行った。
ifcspfを用いる方法：ifcspfを用いる場合はifcopenshellを用いてifcデータを読み込み解析を行う 利点 ifcのデータ構造をあまり意識せずに処理できる 欠点 処理の環境がifcopenshellに依存する ifcjsonを用いる方法 利点 処理の環境がifcopenshellなどifcのデータに依存せずに処理できる 処理内においてifcをデータベースとして扱うことができる 欠点 データ構造を一つ一つ確認してプログラムの設計やAPIの設計を行わなければならない それぞれについては以上のような利点と欠点が考えられた。
また、データのサイズについても考慮した。それぞれのデータのサイズとしては次表の通りとなっている。
種類 サイズ（MB） ifcspf 約7.8MB ifcjson 約65MB 以上より、ifcspfとifcjsonでは主にサイズの観点からifcspfを使用した方が良いと判断した。</description></item><item><title>ifcJSONの使い方</title><link>https://ktaroabobon.github.io/post/architecture/ifcjson-howto/</link><pubDate>Sat, 18 Jun 2022 00:00:00 +0000</pubDate><guid>https://ktaroabobon.github.io/post/architecture/ifcjson-howto/</guid><description>
本記事ではifcJSONについての使い方を解説しています。
概要 github ifcファイルをjson形式に変換する ifcを保守運用しているBuildingSMARTが作成している pythonで書かれている ifcの対応バージョンはifc2x3, ifc4.0, ifc4.3 このコンバータの目的や開発戦略についての解説はこちらから 実行環境・事前準備 本記事の内容はDockerを用いて環境構築を行いました。
Dockerのインストールについてはこちらから
使い方 ダウンロード まずは、手元のpcにgithubのリポジトリからダウンロードしましょう。
1git clone https://github.com/ktaroabobon/ifcJSON.git 構成は以下のようになっています
1. 2├── Documentation 3│ └── README.md 4├── LICENSE 5├── README.md 6├── Samples 7├── Schema 8├── file_converters 9│ ├── README.md 10│ ├── dataset 11│ │ ├── input 12│ │ └── output 13│ ├── ifc2json.py 14│ ├── ifcjson 15│ ├── json2ifc.py 16│ └── samples.py 17└── schema_converters それぞれのディレクトリの内容は以下の通りです。
Documentation: ifcJSONについてのドキュメント LICENSE: ライセンスについて README.</description></item><item><title>python-ifcopenshellのインストール方法</title><link>https://ktaroabobon.github.io/post/architecture/ifcopenshell-howto/</link><pubDate>Sat, 18 Jun 2022 00:00:00 +0000</pubDate><guid>https://ktaroabobon.github.io/post/architecture/ifcopenshell-howto/</guid><description>
ifcopenshellをpythonで使用する方法。
目的 ifcopenshellをpythonで触りたいがpipでインストールをしたい
方法 pypiにアップロードされているのでそれをダウンロードする
1pip install python-ifcopenshell</description></item><item><title>ifcJSONについて</title><link>https://ktaroabobon.github.io/post/architecture/ifcjson-about/</link><pubDate>Sun, 08 May 2022 00:00:00 +0000</pubDate><guid>https://ktaroabobon.github.io/post/architecture/ifcjson-about/</guid><description>
本記事ではifcJSONについての概要や開発戦略を記載おり、公式ドキュメント を和訳したものが中心となっています。
概要 github ifcを保守運用しているBuildingSMARTが作成している pythonで書かれている ifcの対応バージョンはifc2x3, ifc4.0, ifc4.3 ifcJSONによって解決する問題 開発者の中にはEXPRESSやSTPのファイルを閲覧・使用した経験がほとんどない人もいるため、IFC-stpファイル等を用いて必要なデータを抽出するには労力が増加してしまう。 IFCのデータは通常IFC-stpファイル等を介して交換されるが、これはほとんどの設計・建設プロジェクトや製品に当てはまる、膨大な量の製品が異なった定義や属性情報を持ち、それらが互いに依存して成立しているデータとは相性が悪い。 1つ目に関しては、IFCファイルを直接閲覧・編集を行うのは難しいということである。
2つ目に関しては、ifcは建築物のデータベースの形式の1つであるのでそれをファイル形式でデータの保存・交換を行うことは適していないということである。
目的 ifcのために推奨される単一のjson仕様を定義することを目的としている 開発戦略 ifcをjsonに変換する場合、考慮すべきいくつかの基準がある。
後方互換性 ifcファイルとjson間での相互変換の容易性 可読性、直感性 柔軟性、拡張性 コードとの親和性 XML形式との並列性 EXPRESSスキーマとの並列性 明確な参照構造（フラット構造やネスト構造） 一方で上記の内容全てを満たすことは不可能であるため、以下の内容を満たすことをifcJSONでは開発戦略としている。
後方互換性 ifcファイルとjson間での相互変換の容易性 EXPRESSスキーマとの並列性 ifcJSONにおいて、一番重要であるのはオリジナルのIFC EXPRESSスキーマに存在する全ての定義を含むことである。
仕様 IFC EXPRESS スキーマで必須である多くのオブジェクト、キー、エンティティは変換する際においては必須ではない。つまり、必要最低限の情報のみでjsonに変換することができる。 値としてnullやuserdefined、notdefinedを持つ属性の変換は非推奨である。 ヘッダーはSPFファイルのヘッダー内容を受け継いでいる インスタンスのユニーク性はglobalIdで保証される ifcJSONの構造の変更は柔軟であるため木構造にすることも可能である。 パラメータの名前はcamelCaseで記述する IFCtypeはtypeという属性に、object typeはobjectTypeに格納される ジオメトリについてはSTEPファイルの内容を変換する 属性情報についてはifc EXPRESSの内容を変換する その他 その他の詳細な内容等については、公式ドキュメント 及び公式githubでのpull requestなどを用いて閲覧・検索してみてください。</description></item></channel></rss>