Example #1
0
        private void PopulatePropertyTemplates(CustomTreeNode treeNode, IEnumerable <IfcPropertySetTemplate> propertySetTemplates)
        {
            if (propertySetTemplates == null)
            {
                return;
            }

            foreach (var propertySetTemplate in propertySetTemplates)
            {
                if (propertySetTemplate.HasPropertyTemplates == null)
                {
                    continue;
                }

                foreach (var propertyTemplate in propertySetTemplate.HasPropertyTemplates.Items)
                {
                    IfcSimplePropertyTemplate simplePropertyTemplate = propertyTemplate as IfcSimplePropertyTemplate;
                    if (simplePropertyTemplate == null)
                    {
                        continue;
                    }

                    string nodeText = String.Format("{0}", simplePropertyTemplate.Name);
                    if (!String.IsNullOrEmpty(simplePropertyTemplate.PrimaryMeasureType))
                    {
                        nodeText = String.Concat(nodeText, String.Format(" [{0}]", simplePropertyTemplate.PrimaryMeasureType));
                    }

                    CustomTreeNode simplePropertyTemplateNode = new CustomTreeNode(nodeText, simplePropertyTemplate);
                    treeNode.Nodes.Add(simplePropertyTemplateNode);

                    if (simplePropertyTemplate.TemplateType == IfcSimplePropertyTemplateTypeEnum.PSinglevalue)
                    {
                        // TODO: set node images, colors, ...
                    }
                    else if (simplePropertyTemplate.TemplateType == IfcSimplePropertyTemplateTypeEnum.PEnumeratedvalue)
                    {
                        foreach (var enumItem in simplePropertyTemplate.Enumerators.EnumerationValues.Items)
                        {
                            if (enumItem is IfcLabelwrapper)
                            {
                                IfcLabelwrapper labelWrapper = enumItem as IfcLabelwrapper;

                                string         enumNodeText = String.Format("{0}", labelWrapper.Value);
                                CustomTreeNode enumNode     = new CustomTreeNode(enumNodeText, (IfcLabelwrapper)enumItem);
                                // TODO: set node images, colors, ...
                                simplePropertyTemplateNode.Nodes.Add(enumNode);
                            }
                        }
                        // TODO: set node images, colors, ...
                    }
                }
            }
        }
        private static string GetNominalValue(IfcPropertySingleValueNominalValue nominalValue)
        {
            string result = null;

            if (nominalValue.Item is IfcLabelwrapper)
            {
                IfcLabelwrapper lb = nominalValue.Item as IfcLabelwrapper;
                if (lb != null)
                {
                    result = lb.Value;
                }
            }

            return(result);
        }
        private static string GetEnumeratedValue(IfcPropertyEnumeratedValueEnumerationValues enumerationValues)
        {
            string result = null;

            foreach (var item in enumerationValues.Items)
            {
                if (item is IfcLabelwrapper)
                {
                    IfcLabelwrapper lb = item as IfcLabelwrapper;
                    if (lb != null)
                    {
                        result = lb.Value;
                    }
                }
            }

            return(result);
        }