I can get the face attribute,but how can i get the node attribute or userdata?
The front-end code:
const nodeSelectionItem = this.\_hwv.selectionManager.getFirst();
console.log("getSelectionType:",nodeSelectionItem.getSelectionType());
console.log("nodeId:",nodeSelectionItem.getNodeId());
const nodeId = nodeSelectionItem.getNodeId();
const indices = await this.\_hwv.model.getNodeUserDataIndices(nodeId);
console.log("User data array:",indices);
for (const index of indices) {
const data = await this.\_hwv.model.getNodeUserData(nodeId, index);
const intArray = new Int32Array(data.buffer);
console.log("User data array:", intArray);
}
const faceId = nodeSelectionItem.getFaceEntity().getCadFaceIndex();
console.log("faceId:",faceId);
const faceAttributes = await this.\_hwv.model.getFaceAttributes(nodeId,faceId);
faceAttributes.attributes.forEach(attr => {
console.log("femapId:", attr.getValue());
});
The code of scs generator :
// Author measurement data
uint32_t part_id = _assembly_tree.CreatePart();
_assembly_tree.SetPart(child_node, part_id);
uint32_t body_id = 0;
_assembly_tree.CreateAndAddBody(part_id, body_id, SC::Store::Tessellation);
// Add SolidEdge ID to sc
auto FaceType = SolidEdgeGeometry::FeatureTopologyQueryTypeConstants::igQueryAll;
SolidEdgeGeometry::BodyPtr pBody = (SolidEdgeGeometry::BodyPtr)pSEModel->Body;
SolidEdgeGeometry::FacesPtr faces = (SolidEdgeGeometry::FacesPtr)pBody->Faces[FaceType];
//bool bb = _assembly_tree.AddAttribute(child_node, "body_name",
// SC::Store::AssemblyTree::AttributeType::AttributeTypeString, pSEModel->GetBodyName());
std::string userData = "Hello, this is user data";
const uint8_t* dataBegin = reinterpret_cast<const uint8_t*>(userData.data());
const uint8_t* dataEnd = dataBegin + userData.size();
bool bb = false;
bb = _assembly_tree.AddUserData(child_node, 1, dataBegin, dataEnd);
for (int i = 1; i <= faces->Count; i++) {
int faceId = ((SolidEdgeGeometry::FacePtr)faces->Item(i))->ID;
std::string str = std::to_string(faceId);
_assembly_tree.AddFaceAttribute(body_id, i - 1, "femap_id",
SC::Store::AssemblyTree::AttributeType::AttributeTypeInt, str.c_str());
}
