2017-07-04 21 views
0

現時点では、IFC用の基本的な初期バインディングを作成していますが、ISO 10303-21に記載されているExpress標準に従ってマッピングされています。 2ヶ月前にコーディングを始めたばかりなので、私がやっていることはすべてかなり基本的なものです。しかし、私はすでに、指定されたスキーマ内のすべてのプロパティを持つすべてのエンティティと型を作成できます。私はまた、ISOに続いてファイルにマップすることもできます。 まだ私は全体来ている問題があります。スキーマに実装方法:Express(ISO 10303-21)TYPE typename = C言語でのSELECT

  • 、follwoingのように見えるSELECT種類あるタイプがある:

    TYPE IfcGridPlacementDirectionSelect = SELECT 
    (IfcDirection 
    ,IfcVirtualGridIntersection); 
    END_TYPE; 
    

    IfcDirectionとIfcVirtualGridIntersectionは、両方のエンティティがされていますかタイプ自体(私はタイプと実体のクラスを同様に作成します)。 マイTYPE IfcGridPlacementDirectionSelect - クラスは、このようなものになります。

    public class IfcGridPlacementDirectionSelect :IfcBase 
    { 
        public IfcBase _value { get; set; } 
    } 
    

は_valueのプロパティ型は「IfcDirection」または「IfcVirtualGridIntersection」の代わりに、いずれかであるので、CSHARPに選択構造を実装する方法はあります私は今それを "IfcBase"にしています。 SELECT構造が表現されるように?

答えて

1

あなたのソリューションは合法です。しかし、私はあなたがそのようなクラスを作成すべきではないと思います。それはIFCの構造を破ります。

IfcGridPlacementDirectionSelectを使用するときは、IfcDirectionとの2つの関数を作成します。

0

これまで、汎用クラスを使用して実装しました。これは非常にエレガントな方法ではありませんが、機能します。唯一の問題は、ユーザーが任意のタイプを選択できることです。あなたが実際に選ぶことができることを知っているユーザーに頼る必要があります。私の例は今のところうまくいきます。

public class IfcGridPlacementDirectionSelect<T> : IfcBase 
{ 
    public T _value { get; set; } 
} 
関連する問題