目前,我正在为 IFC 编写一个非常基本的早期绑定,它按照 ISO 10303-21 中描述的 Express 标准进行映射。由于我两个月前才刚刚开始编码,所以我所做的一切仍然相当基本。但是,我已经可以在给定的模式中创建具有所有属性的所有实体和类型。我还可以按照 ISO 将其映射到文件。我仍然遇到一个问题:
在模式中,有些类型是 SELECT 类型,如下所示:
TYPE IfcGridPlacementDirectionSelect = SELECT (IfcDirection ,IfcVirtualGridIntersection); END_TYPE;
IfcDirection 和 IfcVirtualGridIntersection 本身都是实体或类型(我为类型和实体创建了一个类)。我的 TYPE IfcGridPlacementDirectionSelect - 类看起来像这样:
public class IfcGridPlacementDirectionSelect :IfcBase { public IfcBase _value { get; set; } }
有没有办法将选择结构实现到 csharp 中,所以 _value 的属性类型是“IfcDirection”或“IfcVirtualGridIntersection”,而不是我现在所做的“IfcBase”。以便表示 SELECT 结构?