Message 1 of 7
Parameter Change of Group Member Causing Geometry Change of Other Instances
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I am seeing some odd things happening with a Dynamic updater for Wall when the Wall is part of a group.
- Draw a Wall and if that Wall Type has a Fire Rating
- Place Wall in a Group and then create new Group instances
- Update a Parameter of an instance of the Wall in one of the Groups
- The instance being edit triggers the ParameterChangeType associated in the Updater Trigger
- ALL other instances in ALL other groups trigger GeometryChanges
See the attached video for what I am seeing when I do this.
Register and set generic triggers:
Updaters.WallUpdater wallRatingUpdater = new Updaters.WallUpdater(application.ActiveAddInId);
UpdaterRegistry.RegisterUpdater(wallRatingUpdater, true);
ElementClassFilter wallFilter = new ElementClassFilter(typeof(Wall));
UpdaterRegistry.AddTrigger(wallRatingUpdater.GetUpdaterId(), wallFilter, Element.GetChangeTypeElementAddition());
UpdaterRegistry.AddTrigger(wallRatingUpdater.GetUpdaterId(), wallFilter, Element.GetChangeTypeParameter(new ElementId(BuiltInParameter.ELEM_TYPE_PARAM)));
UpdaterRegistry.AddTrigger(wallRatingUpdater.GetUpdaterId(), wallFilter, Element.GetChangeTypeParameter(new ElementId(BuiltInParameter.ALL_MODEL_MARK)));
UpdaterRegistry.AddTrigger(wallRatingUpdater.GetUpdaterId(), wallFilter, Element.GetChangeTypeGeometry());
Adding the Trigger for the shared parameter after document Open to verify it exists:
if(SharedParameterElement.Lookup(doc, new Guid("Parameter_Guid")) is SharedParameterElement sharedAssemblyType)
{
if(sharedAssemblyType.GetDefinition() is InternalDefinition wallAssemblyType)
{
Updaters.WallUpdater wallUpdater = new Updaters.WallUpdater(application.ActiveAddInId);
ElementClassFilter wallFilter = new ElementClassFilter(typeof(Wall));
UpdaterRegistry.AddTrigger(wallUpdater.GetUpdaterId(), wallFilter, Element.GetChangeTypeParameter(wallAssemblyType.Id));
}
}
This is inside the updater working on each type of trigger: