Archicad C++ API
About Archicad add-on development using the C++ API.

replace window with door

Martin Walter


I'd like to replace an element that actually is a window by a door, by changing the used library part.

For replacing library parts window with window or door with door it works perfectly.

But is it possible to change an element from window to door?

My actual code is:


	API_ElementMemo elementMemo;
	GSErrCode errorGetMemo = ACAPI_Element_GetMemo(guidElement, &elementMemo);
	if (errorGetMemo != NoError)
		return false;

	// create element mask
	API_Element elementMask;
	BNZeroMemory(&elementMask, sizeof(API_Element));

	// set to door

	ACAPI_ELEMENT_MASK_SET(elementMask, API_Elem_Head, typeID);
	element.header.typeID = API_DoorID;

	ACAPI_ELEMENT_MASK_SET(elementMask, API_DoorType, openingBase.libInd);
	element.door.openingBase.libInd = iLibPartIndexNew;

	errorChangeParams = ACAPI_Element_ChangeParameters({ element.header.guid }, &element, pElementMemo, &elementMask);



AC23, Windows 10, i7-6700HQ, 8Gb RAM, 500Gb SSD

Lee Hankins

I’m sure this ain’t possible as they effectively completely different tools. 

Lee Hankins
ArchiCAD 4.5 - Archicad 26UKI Apple Silicon 5003
macOS Ventura (13.5.2)


I made a wish regarding the merging of the relevant tools here. If they ever implement this change, it would most likely make your operation possible.




AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win10 | R5 2600 | 16GB | GTX1660 

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!