internal override void parseJObject(JObject obj) { base.parseJObject(obj); JObject jobj = obj.GetValue("RelatingProfileProperties", StringComparison.InvariantCultureIgnoreCase) as JObject; if (jobj != null) { RelatingProfileProperties = mDatabase.ParseJObject <IfcProfileProperties>(jobj); } jobj = obj.GetValue("ProfileSectionLocation", StringComparison.InvariantCultureIgnoreCase) as JObject; if (jobj != null) { ProfileSectionLocation = mDatabase.ParseJObject <IfcShapeAspect>(jobj); } jobj = obj.GetValue("ProfileOrientation", StringComparison.InvariantCultureIgnoreCase) as JObject; if (jobj != null) { JToken measure = jobj["IfcPlaneAngleMeasure"]; if (measure != null) { mProfileOrientation = new IfcPlaneAngleMeasure(measure.Value <double>()); } else { IfcDirection dir = mDatabase.ParseJObject <IfcDirection>(jobj); if (dir != null) { mProfileOrientation = dir; } } } }