Does anybody know if it is possible to change a component property and how?
Components have instance properties(like CLIP_DRAWING) and definition properties (like PART_NUMBER).
I want to change the PART_NUMBER. I tried with axlDBDeleteProp but unsucessfully.
(I was thinking to delete and then add a new one with axlDBAddProp.)
I only succeeded on deleting ALL part_numbers properties... so it might be possible, but "nil" is the only answer to my tries! ;-)
I also tried to add properties to dictionary but once again with nil (axlDBCreatePropDictEntry)...
Thanks in advance.
1) You need to know where the property in question is located. For example the PART_NAME property resides on the compDef not the compInst. PART_NUMBER may be located on compDef, symDef or symInst. You view the properties in Skill as followsd = axlDBGetDesign(); list all compDef props on 1st compDef in listcd = car(d->compdefs)cd->prop->??; list all compDef props on 1st compInst in listci = car(d->components)ci->prop->??; get to the compDef given a compInstcd = ci->compdef2) To replace a property just use axlDBAddProp, you don't need first delete it axlDBAddProp(cd '("PART_NAME" "foo")) ; verify cd->prop->??
I was not so far... ;-)
Thanks for the information that we do not need to remove the property...
In fact, I was extracted the "comp" like this:
axlSetFindFilter(?enabled list("NOALL" "COMPONENTS") ?onButtons list("ALL"))
comp = car(axlGetSelSet(axlSingleSelectPoint()))
then I was trying to do:
axlDBAddProp(comp '("PART_NUMBER" "Wanted Value")) and it did not work.
In fact I just need to do this:
axlDBAddProp(comp->compdef '("PART_NUMBER" "Wanted Value")) to get it working!
Of course, I have to add the property to the compdef and not to the comp which has no prop section...
So thanks for your answer, it helps a lot.
The PART_NUMBER property is not permitted on a component instance (compInst) which is what you get when youfetch them via the Selection set method. Instead modify your code to compDef = comp->comdef axlDBAddProp(compDef '("PART_NUMBER" "Wanted Value"))