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