cm.abstract.dataSymbol

DsPData now defaults to using G2 properties

Previously DsPData used G2 properties by default for its base class. This has now been changed so that subclasses of DsPData will also use G2 properties by default as well.

Old:
extend public bool usingG2() {
  if (blockDataProxy == 0 and proxy) return proxy.usingG2(DsPDataProxyEnv(this));
  return (this.class.toS in {"DsPData", "DcPData", "DcPRenderData"} and
	 (!proxy or proxy.class.toS == "DsPDataProxy"));

}
New:
extend public bool usingG2() {
  if (blockDataProxy == 0 and proxy) return proxy.usingG2(DsPDataProxyEnv(this));
  return true;

}

To override the default behavior, override the usingG2 method in your DsPData subclass, or register a DsPDataProxy and override the public bool usingG2(DsPDataProxyEnv env) method to return false.

cm.abstract.ifc

Handling import of IfcMappedRepresentation

Previously IFC import did not account for the mapping target of an IfcMappedRepresentation (only the mapping source's mapping origin) when calculating the IFC snapper's transform which resulted in multiple snappers being placed in the same location on import. Updated this so now the mapping target transform is applied onto the mapping source's mapping origin's transform on import to determine its position relative to the IFC project.

IFC export includes user drawn multifloors

Improved IFC export to include mezzanines, and user placed floors when the "Include architectural objects on exporting" setting is enabled.