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 ()); 
	} 
}