Exemplo n.º 1
0
        private bool stringsCVS_Filter(object item)
        {
            if (string.IsNullOrWhiteSpace(Filter))
            {
                return(true);
            }
            if (SelectedModels != null && SelectedModels.Contains(item))
            {
                return(true);
            }

            string strItem = item as string;

            return(new Regex(Filter, RegexOptions.IgnoreCase).IsMatch(strItem));
        }
        /// <summary>
        ///     OnElementMouseDown: Click Event for each geometric element
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <param name="watch3DNode"></param>
        private void OnElementMouseDown(object sender, MouseButtonEventArgs e, Watch3DNode watch3DNode)
        {
            // 1-CLick event
            if (e.LeftButton != MouseButtonState.Pressed)
            {
                return;
            }

            // Get sender
            var element         = sender as ModelUIElement3D;
            var geometryModel3D = element?.Model as GeometryModel3D;

            if (geometryModel3D == null)
            {
                return;
            }

            // Check Type
            // If it is already selected ... Deselect
            if (SelectedModels.Contains(geometryModel3D))
            {
                // var geo = geometryModel3D.Clone();
                // geo.Material = geometryModel3D.BackMaterial;
                geometryModel3D.Material = geometryModel3D.BackMaterial;
                SelectedModels.Remove(geometryModel3D);
            }
            // If not ... Select!
            else
            {
                SelectedModels.Add(geometryModel3D);
                // var geo = geometryModel3D.Clone();
                // geo.Material = _selectionMaterial;
                geometryModel3D.Material = _selectionMaterial;
            }

            // Get the id of the selected model
            var reslist = new List <Guid>();

            if (SelectedModels != null && SelectedModels.Count > 0)
            {
                foreach (var item in _fallBackGeometry)
                {
                    foreach (var item_2 in SelectedModels)
                    {
                        if (Equals(item_2.Geometry, item.Model3D.Geometry))
                        {
                            reslist.Add(item.Id);
                        }
                    }
                }
            }

            string modelId   = null;
            string projectId = null;

            if (InputPorts[0].Data.GetType() == typeof(ModelInfo))
            {
                var input = InputPorts[0].Data as ModelInfo;
                if (input != null)
                {
                    modelId   = input.ModelId;
                    projectId = input.ProjectId;
                }
            }
            else if (InputPorts[0].Data.GetType() == typeof(BaseRelation))
            {
                var input = InputPorts[0].Data as BaseRelation;
                if (input != null)
                {
                    modelId   = input.ModelId.ToString();
                    projectId = input.ProjectId.ToString();
                }
            }
            else
            {
                return;
            }

            var res = new ModelInfo(projectId, modelId, reslist, ModelType.BimPlusModel);

            OutputPorts[0].Data = res;
            // Set selected models to Output ...

            e.Handled = true;
        }