public static void Main(string[] args) { string inputFile = "../../../IfcDotNet_UnitTests/sampleData/NIST_TrainingStructure_param.ifc"; if (!File.Exists(inputFile)) { Console.WriteLine(String.Format(CultureInfo.InvariantCulture, "File does not exist at : {0}", inputFile)); } else { Console.WriteLine("Running..."); StreamReader sr = new StreamReader(inputFile); IStepReader reader = new StepReader(sr); IfcStepSerializer serializer = new IfcStepSerializer(); iso_10303 iso10303 = serializer.Deserialize(reader); uos1 uos1 = iso10303.uos as uos1; Entity[] entities = uos1.Items; Console.WriteLine(String.Format(CultureInfo.InvariantCulture, "Have deserialized {0} entities", entities.Length)); } Console.WriteLine("Press any key to quit"); Console.ReadKey(); Console.WriteLine("Exiting"); }
public void CanDeserialize_NIST_TrainingStructure() { IStepReader reader = getNISTTrainingStructure(); iso_10303 iso10303 = serializer.Deserialize(reader); uos1 uos1 = iso10303.uos as uos1; Entity[] entities = uos1.Items; Assert.AreEqual(17227, entities.Length); }
public static void AssertIsMinimumExample(iso_10303 iso10303) { Assert.IsNotNull(iso10303); Assert.IsNotNull(iso10303.iso_10303_28_header); Assert.AreEqual("An Example", iso10303.iso_10303_28_header.name); Assert.AreEqual(new DateTime(2010, 11, 12, 13, 04, 00), iso10303.iso_10303_28_header.time_stamp); Assert.AreEqual("John Hancock", iso10303.iso_10303_28_header.author); Assert.AreEqual("MegaCorp", iso10303.iso_10303_28_header.organization); Assert.AreEqual("IfcDotNet Library", iso10303.iso_10303_28_header.originating_system); Assert.AreEqual("a preprocessor", iso10303.iso_10303_28_header.preprocessor_version); Assert.AreEqual("documentation", iso10303.iso_10303_28_header.documentation); Assert.AreEqual("none", iso10303.iso_10303_28_header.authorization); Assert.IsNotNull(iso10303.uos, "iso10303.uos is null"); uos uos = iso10303.uos; Assert.AreEqual("uos_1", uos.id); Assert.IsNotNull(uos.configuration, "iso10303.uos.configuration is null"); Assert.AreEqual(1, uos.configuration.Length, "uos.configuration does not have 1 item in it"); Assert.AreEqual("i-ifc2x3", uos.configuration[0]); Assert.IsNotNull(uos as uos1, "uos cannot be converted to uos1"); uos1 uos1 = uos as uos1; Assert.IsNotNull(uos1, "uos1 is null"); Assert.IsNotNull(uos1.Items, "uos1.items is null"); Assert.AreEqual(3, uos1.Items.Length, "uos1.Items does not have 3 items in it"); IfcOrganization org = uos1.Items[0] as IfcOrganization; Assert.IsNotNull(org, "org is null"); Assert.AreEqual("i1101", org.entityid, "entityid is not i1101"); Assert.AreEqual("MegaCorp", org.Name); IfcCartesianPoint pnt = uos1.Items[1] as IfcCartesianPoint; Assert.IsNotNull(pnt, "pnt is null"); Assert.AreEqual("i101", pnt.entityid); Assert.IsNotNull(pnt.Coordinates); Assert.IsNotNull(pnt.Coordinates.Items); Assert.AreEqual(3, pnt.Coordinates.Items.Length); Assert.AreEqual(2500, pnt.Coordinates[0].Value); //TODO shorten the number of properties needed to be called to get the value. pnt.Coordinates[0] would be perfect! Assert.AreEqual(0, pnt.Coordinates[1].Value); Assert.AreEqual(0, pnt.Coordinates[2].Value); IfcDirection dir = uos1.Items[2] as IfcDirection; Assert.IsNotNull(dir, "dir is null"); Assert.AreEqual("i102", dir.entityid); Assert.IsNotNull(dir.DirectionRatios); Assert.IsNotNull(dir.DirectionRatios.Items); Assert.AreEqual(3, dir.DirectionRatios.Items.Length); Assert.AreEqual(0, dir.DirectionRatios[0].Value); Assert.AreEqual(1, dir.DirectionRatios[1].Value); Assert.AreEqual(0, dir.DirectionRatios[0].Value); }
/// <summary> /// Extracts StepDataObjects from a .Net object /// </summary> /// <param name="iso10303"></param> /// <returns></returns> public StepFile Extract(iso_10303 iso10303) { if (iso10303 == null) { throw new ArgumentNullException("iso10303"); } if (iso10303.iso_10303_28_header == null) { throw new ArgumentNullException("iso10303.iso_10303_28_header"); } if (iso10303.uos == null) { throw new ArgumentNullException("iso10303.uos"); } StepFile stepFile = new StepFile(); //header stepFile.Header.Add(GenerateFileDescription( )); stepFile.Header.Add(ExtractFileName(iso10303)); stepFile.Header.Add(ExtractFileSchema(iso10303)); //data uos1 uos1 = iso10303.uos as uos1; if (uos1 == null) //no data { logger.Error("Extract(iso_10303) could not extract, as iso10303.uos was not a type of uos1"); return(stepFile); } //putting the entities in a dictionary so we can deal with references foreach (Entity e in uos1.Items) { if (!this._entityRegister.isAlreadyRegistered(e)) { this._entityRegister.RegisterEntity(e); this._queuedEntities.Enqueue(e); } } while (this._queuedEntities.Count > 0) { Entity e = this._queuedEntities.Dequeue(); int entityId = this._entityRegister.getEntityId(e); StepDataObject sdo = this.ExtractObject(e); stepFile.Data.Add(entityId, sdo); } //clear entityQueue, so next time this method is run it starts empty this._entityRegister = new StepBinderEntityRegister(); return(stepFile); }
private void AssertIso10303(iso_10303 iso10303) { Assert.IsNotNull(iso10303); Assert.IsNotNull(iso10303.iso_10303_28_header); Assert.AreEqual("example.ifc", iso10303.iso_10303_28_header.name); Assert.AreEqual(new DateTime(2008, 08, 01, 21, 53, 56), iso10303.iso_10303_28_header.time_stamp); Assert.AreEqual("Architect", iso10303.iso_10303_28_header.author); Assert.AreEqual("Building Designer Office", iso10303.iso_10303_28_header.organization); Assert.AreEqual("IFC Engine DLL version 1.02 beta", iso10303.iso_10303_28_header.preprocessor_version); Assert.AreEqual("IFC Engine DLL version 1.02 beta", iso10303.iso_10303_28_header.originating_system); Assert.AreEqual("The authorising person", iso10303.iso_10303_28_header.authorization); Assert.IsNotNull(iso10303.uos); uos1 uos1 = iso10303.uos as uos1; Assert.IsNotNull(uos1); Assert.IsNotNull(uos1.Items); }
private Entity[] extractItems(iso_10303 iso10303) { uos1 uos1 = iso10303.uos as uos1; return(uos1.Items); }