| 676 | } |
| 677 | |
| 678 | AdditionalProperties ModelObject_Impl::additionalProperties() const { |
| 679 | AdditionalPropertiesVector candidates = getObject<ModelObject>().getModelObjectSources<AdditionalProperties>(); |
| 680 | if (candidates.size() > 1) { |
| 681 | for (unsigned i = 1, n = candidates.size(); i < n; ++i) { |
| 682 | // do a merge before removing |
| 683 | candidates[0].merge(candidates[i]); |
| 684 | candidates[i].remove(); |
| 685 | } |
| 686 | LOG(Warn, "Removed extraneous ModelObjectAdditionalProperties objects pointing to " << briefDescription() << "."); |
| 687 | } |
| 688 | if (!candidates.empty()) { |
| 689 | return candidates[0]; |
| 690 | } |
| 691 | return AdditionalProperties(getObject<ModelObject>()); |
| 692 | } |
| 693 | |
| 694 | std::vector<IdfObject> ModelObject_Impl::removeAdditionalProperties() { |
| 695 | std::vector<IdfObject> removed; |