internal override void parseJObject(JObject obj)
{
base.parseJObject(obj);
JToken token = obj.GetValue("Name", StringComparison.InvariantCultureIgnoreCase);
if (token != null)
Name = token.Value<string>();
token = obj.GetValue("Description", StringComparison.InvariantCultureIgnoreCase);
if (token != null)
Description = token.Value<string>();
JObject jobj = obj.GetValue("AppliedValue", StringComparison.InvariantCultureIgnoreCase) as JObject;
if (jobj != null)
{
AppliedValue = mDatabase.parseJObject<IfcAppliedValueSelect>(jobj);
if (mAppliedValueIndex <= 0)
mAppliedValueValue = DatabaseIfc.ParseValue(jobj);
}
jobj = obj.GetValue("UnitBasis", StringComparison.InvariantCultureIgnoreCase) as JObject;
if (jobj != null)
UnitBasis = mDatabase.parseJObject<IfcMeasureWithUnit>(jobj);
Components = mDatabase.extractJArray<IfcAppliedValue>(obj.GetValue("Components", StringComparison.InvariantCultureIgnoreCase) as JArray);
List <IfcExternalReferenceRelationship> ers = mDatabase.extractJArray<IfcExternalReferenceRelationship>(obj.GetValue("HasExternalReferences", StringComparison.InvariantCultureIgnoreCase) as JArray);
for (int icounter = 0; icounter < ers.Count; icounter++)
ers[icounter].addRelated(this);
List<IfcResourceConstraintRelationship> crs = mDatabase.extractJArray<IfcResourceConstraintRelationship>(obj.GetValue("HasConstraintRelationships", StringComparison.InvariantCultureIgnoreCase) as JArray);
for (int icounter = 0; icounter < crs.Count; icounter++)
crs[icounter].addRelated(this);
//todo
token = obj.GetValue("Category", StringComparison.InvariantCultureIgnoreCase);
if (token != null)
Category = token.Value<string>();
token = obj.GetValue("Condition", StringComparison.InvariantCultureIgnoreCase);
if (token != null)
Condition = token.Value<string>();
token = obj.GetValue("ArithmeticOperator", StringComparison.InvariantCultureIgnoreCase);
if (token != null)
Enum.TryParse<IfcArithmeticOperatorEnum>(token.Value<string>(),out mArithmeticOperator);
}