問題タブ [xbim]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Xbim で最下位レベルのオブジェクトのみを抽出するにはどうすればよいですか?
IFC 形式の BIM モデルがあり、Xbim を使用してモデル内のすべてのオブジェクトにコストなどの新しいプロパティを追加したいと考えています。.NET アプリケーションを構築しています。次のコードは、プロパティが階、建物、およびサイトにも追加されることを除いて、うまく機能します。他のオブジェクトをネストしない最下位レベルのオブジェクトにのみ追加したいと考えています。
まず、null 以外の関連オブジェクトを持つオブジェクトを除外できると考えて、各オブジェクトの「関連オブジェクト」を出力するさまざまな方法を試しました。これにより、私はこれを見るようになりました:
IfcRelDefinesByType.RelatedObjects ( http://docs.xbim.net/XbimDocs/html/7fb93e55-dcf7-f6da-0e08-f8b5a70accf2.htm ) から、RelatedObjects ( https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3 /FINAL/HTML/ifckernel/lexical/ifcreldecomposes.htm ) にこの情報が含まれます。
しかし、このドキュメントから動作するコードを実装することはできませんでした。
これが私のコードです:
3d - 3D 座標が BIM の 3D オブジェクトの境界内にあるかどうかを判断するにはどうすればよいですか? IFCファイルを操作するXbimを使用しています
3D 建物モデル (BIM) の IFC ファイルを構成要素の物理オブジェクトに分割しており、正しいオブジェクトに割り当てたいプロパティがあります。プロパティには場所が付属しています。これらは、3D 空間内のポイントに関連付けられたスカラー値です。点 P1 = (x1, y1, z1) がある場合、この点がドア内にあるか、ドアの隣の壁にあるか (または空中にないか)、どうすれば判断できますか?
2 つのオプションが表示されますが、Xbim/IFC ドキュメントを解読して、どちらのアプローチでもどこにでもアクセスできませんでした。
- BIM の位置 P1 を見て、次の質問をします。ある場合、どのオブジェクトが空間内のこのポイントを占めていますか?
- BIM の各オブジェクトに目を通し、次の質問をします。このオブジェクトは、その形状とグローバル位置に基づいて、P1 の周りに広がっていますか?
追加の課題として、最終的に非常に大規模な BIM で数万のプロパティを配布する可能性があるため、複雑度の低いアルゴリズムが優先されます。
c# - xbim で文字列 IfcParameterValue を作成すると例外が発生する
c# で xbim (v5.1.323) を使用して、文字列 IfcParameterValue を既存の IfcFlowSegment (Ifc2x3) に追加しようとしています。これは、以下のコードでは「シリンダー」と呼ばれます。"IfcParameterValue" のコンストラクターは、double と string の両方を受け入れます。double 値の追加は完全に機能しましたが、文字列をコンストラクターに渡して IfcParameterValue を作成しようとすると、常にエラーが発生します。
ワーキング(ダブル値)
動作していません(文字列値)
これは私が得るエラーです:
System.NotSupportedException: 'System.Type' インスタンスのシリアル化と逆シリアル化はサポートされていません。セキュリティの問題が発生する可能性があるため、避ける必要があります。パス: $.TargetSite.DeclaringType. ---> System.NotSupportedException: 「System.Type」インスタンスのシリアル化と逆シリアル化はサポートされていません。セキュリティ上の問題が発生する可能性があるため、避ける必要があります。System.Text.Json.Serialization.Converters.TypeConverter.Write (Utf8JsonWriter ライター、Type 値、JsonSerializerOptions オプション) で System.Text.Json.Serialization.JsonConverter
1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.JsonPropertyInfo
1.GetMemberAndWriteJson (オブジェクト obj、WriteStack& 状態、Utf8JsonWriter ライター) で System. Text.Json.Serialization.Converters.ObjectDefaultConverter1.OnTryWrite(Utf8JsonWriter writer, T value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.JsonConverter
1.TryWrite(Utf8JsonWriter ライター、T& 値、JsonSerializerOptions オプション、WriteStack& 状態) System.Text.Json.JsonPropertyInfo1.GetMemberAndWriteJson(Object obj, WriteStack& state, Utf8JsonWriter writer) at System.Text.Json.Serialization.Converters.ObjectDefaultConverter
1.OnTryWrite(Utf8JsonWriter ライター、T 値、JsonSerializerOptions オプション、WriteStack& 状態) System.Text.Json.Serialization.JsonConverter1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state) at System.Text.Json.Serialization.JsonConverter
1.WriteCore(Utf8JsonWriter ライター、T& 値、JsonSerializerOptions オプション、WriteStack& 状態)
この例外の原因は何ですか? または、パラメーター (属性) を IfcElement に簡単に追加するためのより良い解決策はありますか?
本当にありがとう!