示例#1
0
 private static void ExcecuteQuery(string cypherQuery)
 {
     using (Neo4JConnector connector = new Neo4JConnector(uri, user, password))
     {
         connector.Ececute(cypherQuery);
     }
 }
        public CreateTemplate(string modelName, string examinationRestriction)
        {
            var uri      = Neo4jAccessData.Uri;
            var user     = Neo4jAccessData.User;
            var password = Neo4jAccessData.Password;

            ExaminationRestriction = examinationRestriction;
            Con = new Neo4JConnector(uri, user, password, modelName);
        }
        /// <summary>
        /// Aufrufen der HTML von xBIM WeXplorer, Code für die Verwendung des WebViewers wurde von
        /// http://docs.xbim.net/XbimWebUI/tutorial-5_Colourful_building.html | http://docs.xbim.net/XbimWebUI/5_Colourful_building.live.html  und https://github.com/xBimTeam/XbimWebUI übernommen
        /// </summary>
        private void ClickOnGrafischDarstellen(object sender, RoutedEventArgs e)
        {
            var path = Constants.FolderPath + @"WebViewer\data\templateModel.ifc";

            //Erzeugen der Modell IFC-Datei aus dem Base64String
            Byte[] bytes = Convert.FromBase64String(Permission.ModelFile);
            File.WriteAllBytes(path, bytes);

            string wexBimB64 = "";

            //Erzeugen der wexBim Datei vom Modell. Dateien im wexBim Format werden für den Web Viewer benötigt
            using (var model = IfcStore.Open(path))
            {
                var context = new Xbim3DModelContext(model);
                context.CreateContext();

                var wexBimFilename = Path.ChangeExtension(path, "wexBIM");
                using (var wexBiMfile = File.Create(wexBimFilename))
                {
                    using (var wexBimBinaryWriter = new BinaryWriter(wexBiMfile))
                    {
                        model.SaveAsWexBim(wexBimBinaryWriter);
                        wexBimBinaryWriter.Close();
                    }
                    wexBiMfile.Close();
                }

                //Umwandeln des wexBim Datei in einen Base64String um es in der Javascript Datei des Web Viewers zu verwenden.
                var bytesWexBim = File.ReadAllBytes(wexBimFilename);
                wexBimB64 = Convert.ToBase64String(bytesWexBim);
            }

            File.Delete(path);

            //Ermitteln der EntityIds aller veränderten Bauteile
            var        tempNeo4j = new Neo4JConnector(Neo4jAccessData.Uri, Neo4jAccessData.User, Neo4jAccessData.Password, "templateModel");
            List <int> entityIds = new List <int>();

            foreach (var item in Distinctions)
            {
                var wallGlobalId        = tempNeo4j.GetIdForChangedElements(item.WallGlobalId);
                var wallElementGlobalId = tempNeo4j.GetIdForChangedElements(item.WallElementGlobalId);
                if (!entityIds.Contains(wallGlobalId) && wallGlobalId != 0 && wallElementGlobalId == 0)
                {
                    entityIds.Add(wallGlobalId);
                }
                else if (!entityIds.Contains(wallElementGlobalId) && wallElementGlobalId != 0)
                {
                    entityIds.Add(wallElementGlobalId);
                }
            }

            //Speichern der BauteilIds und des Base64Strings der wexBim datei.
            var    pathChangedElements = Constants.FolderPath + @"WebViewer\data\templateModel.js";
            string input = "var data = {\"changedElements\" : [" + String.Join(",", entityIds) + "]};";

            input += $@"var dataWexBimB64 = ""{wexBimB64}"";";
            File.WriteAllText(pathChangedElements, input);

            //Aufrufen des Web Viewers
            System.Diagnostics.Process.Start(Constants.FolderPath + @"WebViewer\webViewer.html");
        }