Export IFC - IfcRepresentationMap

Bonjour,
j’utilise le SDK pour exporter au format IFC. La données de la classe IfcRepresentationMap sont écrites de façon incomplète :
#59=IFCMAPPEDITEM(#62,#60);
#60=IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#61,1.,$);
#61=IFCCARTESIANPOINT((32.,15.,0.));
/* Ci-dessous il manque la référence au IfcAxis2Placement3D */
#62=IFCREPRESENTATIONMAP(,#63);
#63=IFCSHAPEREPRESENTATION(#20,‘Body’,‘Brep’,(#64));
Dans le code, j’appelle bien la méthode setMappingOrigin pour renseigner l’axe (et un appel à testMappingOrigin renvoie OK).
Cordialement

Bonjour,

IfcRepresentationMap prends un IfcAxis2Placement comme attribut pour setMappingOrigin. C’est une entité de type Select il faut donc faire attention à bien passer un IfcAxis2Placement et non pas un IfcAxis2Placement3D directement. Voici la bonne façon de faire :

  auto placement = new ifc2x3::IfcAxis2Placement;
  auto placement3D = dataset->createIfcAxis2Placement3D();
  placement->setIfcAxis2Placement3D(placement3D);

  // update placement3D attributes...

  auto repmap = dataset->createIfcRepresentationMap();
  repmap->setMappingOrigin(placement);
      

Cordialement

Bonjour et merci pour cette explication très claire qui répond à ma question.
J’ajouterai une précision ci-dessous :
placement->setIfcAxis2Placement3D(placement3D.get());
Cordialement