Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        private Entity[] extractItems(iso_10303 iso10303)
        {
            uos1 uos1 = iso10303.uos as uos1;

            return(uos1.Items);
        }