Hello.
I have a IFC file from Solibri IFC Optimizer.
IFC 3_optimized.zip
I'm trying to read attribute Name from IfcProject instance with code like this:
const IfcSchema::IfcRoot *root = static_cast<const IfcSchema::IfcRoot*>(instance /*this is instance with IfcProject*/);
if (root->hasName())
return root->Name();
root->hasName() is returning true but when I'm calling root->Name() I'm getting exception:
class IfcParse::IfcInvalidTokenException
Token * at 5248629 invalid string
This is how IfcProject instance in this IFC file look like:
#94908=IFCPROJECT('2MB33tRp9A69zGFxGcIs2R',#8,*,*,*,$,$,(#14),#94769);
As you can see instead of $ sign as Name attribute or IfcLabel, there is aterisk * sign.
In IFC Implementation FAQ I found this:
The * character encodes so-called omitted parameters. These are attributes which are defined as a regular explicit attribute in a supertype but redefined as a derived attribute in a subtype (and the record in the IFC file is an instance of the subtype).
I'm thinking where is this Name attribute defined then? Or maybe it's not and that's why this exception is thrown?
Hello.
I have a IFC file from Solibri IFC Optimizer.
IFC 3_optimized.zip
I'm trying to read attribute Name from IfcProject instance with code like this:
root->hasName()is returningtruebut when I'm callingroot->Name()I'm getting exception:This is how IfcProject instance in this IFC file look like:
#94908=IFCPROJECT('2MB33tRp9A69zGFxGcIs2R',#8,*,*,*,$,$,(#14),#94769);As you can see instead of
$sign as Name attribute orIfcLabel, there is aterisk*sign.In IFC Implementation FAQ I found this:
I'm thinking where is this Name attribute defined then? Or maybe it's not and that's why this exception is thrown?