Exemplo n.º 1
0
 private void OnIfcRead_button_click(object sender, RoutedEventArgs e)
 {
     MessageBox.Show("Читать Ifc?", "TSmatch", MessageBoxButton.OK);
     model.ifcPath = @"C:\Users\khrapkin\Desktop\Сибур IFC\18.09.17 (3).ifc";
     model.elements = Ifc.Read(model.ifcPath);
     model.isChanged = true;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Read(nameModel) - получение модели (списка элементов с атрибутами) из Tekla или IFC
        /// </summary>
        /// <param name="modelName">имя читаемой модели, по умолчанию - чтение того, что есть</param>
        /// <returns>Model со списком прочитанных элементов в model.elements</returns>
        public Model Read(string modelName = "")
        {
            if (string.IsNullOrEmpty(name))
            {
                bootstrap = new Boot();
                if (bootstrap.isTeklaActive)
                {
                    getModelFrTekla();
                }
                else
                {
                    elements = Ifc.Read(ifcPath);
                }
            }
            elementsCount = elements.Count;
            getGroups();
#if OLD
            log.Info("TRACE: Read(\"" + modelName + "\")");
            Model mod = (modelName == "" || name == modelName)? this : getModel(modelName);
// 6/4/17 в дальнейшем надо завести поле CAD в Bootsrap и присваивать ему ts или Ifc
            if (TS.isTeklaActive())
            {
                readCAD readElements = new readCAD(ts.Read);
                elements = readElements(Path.Combine(dir, name));
            }
            else
            {
                elements = Ifc.Read(mod.ifcPath);
            }
#endif //OLD
            log.Info(@"TRACE: Модель = " + name + "\t" + Elm.Elements.Count + " компонентов.");
            return(this);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Read(nameModel) - получение модели (списка элементов с атрибутами) из Tekla или IFC
        /// </summary>
        /// <param name="modelName">имя читаемой модели, по умолчанию - чтение того, что есть</param>
        /// <returns>Model со списком прочитанных элементов в model.elements</returns>
        public Model Read(string modelName = "")
        {
            log.Info("TRACE: Read(\"" + modelName + "\")");
            Model mod = (modelName == "" || name == modelName)? this : getModel(modelName);

            elements = TS.isTeklaActive() ? TS.Read(mod.dir, mod.name) : Ifc.Read(mod.ifcPath);
            log.Info(@"TRACE: Модель = " + mod.name + "\t" + Elm.Elements.Count + " компонентов.");
            return(mod);
        }
Exemplo n.º 4
0
        public void openModel(string name = RECENT_MODEL)
        {
            Log.set("openModel(\"" + name + "\")");
            Model mod = null;
            bool ok = false;
            if (TS.isTeklaActive())
            {
                //!! here we could upload over API in Tekla another model it differ from requested name
                //!! if (TS.isTeklaModel(mod.name))
                //!! implement it later on 23/6/2016
                UpdateFrTekla();
            }
            if (name == RECENT_MODEL) mod = RecentModel();
                                 else mod = getModel(name);

            string dir = mod.dir;
            string FileName = "TSmatchINFO.xlsx";
            if (mod.Made == "IFC") FileName = "out.ifc";
            if (mod != null) ok = FileOp.isFileExist(dir, FileName);

            if (!ok)
            {           //-- Folder or File Browth dialog
                FolderBrowserDialog ffd = new FolderBrowserDialog();
                dir = ffd.SelectedPath = mod.dir;
                DialogResult result = ffd.ShowDialog();
                if (result == DialogResult.OK) dir = ffd.SelectedPath;
                do
                {
                    if (!FileOp.isFileExist(dir, FileName))
                    {
                        Msg.W("W20.4_opMod_NO_TSmINFO", dir);
                        OpenFileDialog ofd = new OpenFileDialog();
                        ofd.InitialDirectory = dir;
                        if (ofd.ShowDialog() == DialogResult.OK)
                        {
                            FileName = ofd.FileName;
                            // !!!!!!                       dir = ofd.Sel
                        }
                    }
                    ok = readModel(dir, FileName);
                    //!!!                if(!ok) Msg.Ask(Еще раз?) break;
                } while (!ok);
            }
            else
            {
                string ext = Path.GetExtension(FileName);
                if ( ext == ".ifc") Ifc.Read(dir, FileName); //!!
                if (ext == ".xlsx") dir= "";//!! readModel();
            }
            Log.exit();
        }
Exemplo n.º 5
0
 /// <summary>
 /// Read() - получение модели (списка элементов с атрибутами) из Tekla или IFC
 /// </summary>
 /// <returns>Model со списком прочитанных элементов в model.elements</returns>
 public Model Read()
 {
     elements.Clear();
     if (TS.isTeklaActive()) elements = ts.Read();
     else elements = Ifc.Read(ifcPath);
     string newMD5 = getMD5(elements);
     string fileRaw = Path.Combine(dir, Decl.RAWXML);
     if (newMD5 != MD5 || !FileOp.isFileExist(fileRaw))
     {
         isChanged = true;
         MD5 = newMD5;
         date = DateTime.Now;
         rwXML.XML.WriteToXmlFile(fileRaw, elements);
     }
     return this;
 }
Exemplo n.º 6
0
        /// <summary>
        /// Read() - получение модели (списка элементов с атрибутами) из Tekla или IFC
        /// </summary>
        /// <returns>Model со списком прочитанных элементов в model.elements</returns>
        public Model Read()
        {
            elements.Clear();
            if (TS.isTeklaActive()) getModelFrTekla();
            else elements = Ifc.Read(ifcPath);
            elementsCount = elements.Count;
            wrModel(WrMod.Raw);
            getGroups();
#if OLD

            log.Info("TRACE: Read(\"" + modelName + "\")");
            Model mod = (modelName == "" || name == modelName)? this : getModel(modelName);
// 6/4/17 в дальнейшем надо завести поле CAD в Bootsrap и присваивать ему ts или Ifc
            if (TS.isTeklaActive())
            {
                readCAD readElements = new readCAD(ts.Read);
                elements = readElements(Path.Combine(dir, name));
            }
            else elements = Ifc.Read(mod.ifcPath);
                        log.Info(@"TRACE: Модель = " + name + "\t" + Elm.Elements.Count + " компонентов.");
#endif //OLD
            return this;
        }
Exemplo n.º 7
0
 void getModelFrIfc()
 {
     throw new NotImplementedException();
     elements = Ifc.Read(ifcPath);
 }