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); }