2010-11-30
03:40 PM
- last edited on
2024-09-09
10:58 AM
by
Doreena Deng
API_CurtainWallType curtainWall; API_CWallSegmentType cwSegment; API_CWallFrameType cwFrame; API_CWallPanelType cwPanel; API_CWallJunctionType cwJunction; API_CWallAccessoryType cwAccessory;
2010-11-30 06:53 PM
Matti wrote:Take a look at the documentation for ModelAccess - there are methods to access all the 3D primitives.
I need to create 3D representation of curtain wall for export. I know that curtain walls in AC consists of segments, frames, panels, junction and accessories.
Here is couple of questions:
What is easiest way get access to curtain wall geometry?
How get access to curtain wall components using API_CurtainWallID?
2010-12-08 03:22 PM
// frames
GSSize nFrames = BMGetPtrSize (reinterpret_cast<GSPtr>(memo.cWallFrames)) / sizeof (API_CWallFrameType);
for (idx = 0; idx < nFrames; ++idx) {
err = ACAPI_Database (APIDb_IsCWPanelDegenerateID, &memo.cWallFrames[idx].head.guid, &isDegenerate);
if (!isDegenerate) {
elems.Push (memo.cWallFrames[idx].head);
} else {
GS::Guid guid = APIGuid2GSGuid (memo.cWallFrames[idx].head.guid);
WriteReport ("Degenerate Frame: %s", (const char*) guid.ToUniString ().ToCStr ());
}
}
// panels
GSSize nPanels = BMGetPtrSize (reinterpret_cast<GSPtr>(memo.cWallPanels)) / sizeof (API_CWallPanelType);
for (idx = 0; idx < nPanels; ++idx) {
err = ACAPI_Database (APIDb_IsCWPanelDegenerateID, &memo.cWallPanels[idx].head.guid, &isDegenerate);
if (!isDegenerate) {
elems.Push (memo.cWallPanels[idx].head);
} else {
GS::Guid guid = APIGuid2GSGuid (memo.cWallPanels[idx].head.guid);
WriteReport ("Degenerate Panel: %s", (const char*) guid.ToUniString ().ToCStr ());
}
}