internal override void ParseXml(XmlElement xml) { base.ParseXml(xml); if (xml.HasAttribute("UnitType")) { Enum.TryParse <IfcDerivedUnitEnum>(xml.Attributes["UnitType"].Value, true, out mUnitType); } if (xml.HasAttribute("UserDefinedType")) { UserDefinedType = xml.Attributes["UserDefinedType"].Value; } foreach (XmlNode child in xml.ChildNodes) { string name = child.Name; if (string.Compare(name, "Elements") == 0) { List <IfcDerivedUnitElement> elements = new List <IfcDerivedUnitElement>(); foreach (XmlNode node in child.ChildNodes) { IfcDerivedUnitElement element = mDatabase.ParseXml <IfcDerivedUnitElement>(node as XmlElement); if (element != null) { elements.Add(element); } } Elements = elements; } } }
internal static IfcDerivedUnitElement Parse(string strDef) { IfcDerivedUnitElement e = new IfcDerivedUnitElement(); int ipos = 0; parseFields(e, ParserSTEP.SplitLineFields(strDef), ref ipos); return e; }
internal static void parseFields(IfcDerivedUnitElement e, List<string> arrFields, ref int ipos) { e.mUnit = ParserSTEP.ParseLink(arrFields[ipos++]); e.mExponent = ParserSTEP.ParseInt(arrFields[ipos++]); }
internal IfcDerivedUnitElement(IfcDerivedUnitElement v) : base() { mUnit = v.mUnit; mExponent = v.mExponent; }
internal IfcDerivedUnit(IfcDerivedUnitElement due1, IfcDerivedUnitElement due2, IfcDerivedUnitElement due3, IfcDerivedUnitEnum type) : base(due1.mDatabase) { mElements.Add(due1.mIndex); mElements.Add(due2.mIndex); mElements.Add(due3.mIndex); mUnitType = type; }
internal IfcDerivedUnit(IfcDerivedUnitElement element, IfcDerivedUnitEnum type) : base(element.mDatabase) { mElements.Add(element.mIndex); mUnitType = type; }
internal IfcDerivedUnitElement(DatabaseIfc db, IfcDerivedUnitElement e) : base(db) { Unit = db.Factory.Duplicate(e.Unit) as IfcNamedUnit; mExponent = e.mExponent; }