public void CanDeserializeNestedObjectWithinArray()
        {
            Entity[] items = DeserializeAssertISO10303AndExtractItems(Utilities.StepNestedObjectWithinArrayString());
            Assert.AreEqual(1, items.Length);
            Assert.IsNotNull(items[0]);
            IfcPropertyEnumeratedValue pev = items[0] as IfcPropertyEnumeratedValue;

            Assert.IsNotNull(pev);
            Assert.IsNotNull(pev.EnumerationValues);
            Assert.IsNotNull(pev.EnumerationValues.Items);
            Assert.AreEqual(1, pev.EnumerationValues.Items.Length);
            Assert.IsNotNull(pev.EnumerationValues.Items[0]);
            IfcText1 txt = pev.EnumerationValues.Items[0] as IfcText1;

            Assert.IsNotNull(txt);
            Assert.AreEqual("bottom_edge", txt.Value);
        }
        public void CanDeserializeNestedStructure()
        {
            Entity[] Items = DeserializeAssertISO10303AndExtractItems(Utilities.StepNestedObjectsString());
            Assert.AreEqual(1, Items.Length);
            Entity e = Items[0];

            Assert.IsNotNull(e);
            IfcPropertySingleValue psv = e as IfcPropertySingleValue;

            Assert.IsNotNull(psv);
            Assert.AreEqual("Reference", psv.Name);
            Assert.AreEqual("Reference", psv.Description);
            Assert.IsNotNull(psv.NominalValue);
            Assert.IsNotNull(psv.NominalValue.Item);
            IfcText1 valueText = psv.NominalValue.Item as IfcText1;

            Assert.IsNotNull(valueText);
            Assert.IsNotNull(valueText.Value);
            Assert.AreEqual("foobar", valueText.Value);
            Assert.IsNull(psv.Unit);
        }