buildingSMART / buildingSMART/bSDD
Struggling to filter properties
- Dominant language
- Python
- Stars
- 193
- Forks
- 45
- PR merge metrics
- No merged PRs in 30d
Description
The usecase is that the user has an object (say an IfcWall) and he wants to know what properties he can apply to it. He has one or more dictionaries active / relevant to his project.
Option 0: /api/TextSearch/v2 - I can get properties, but cannot get the pset name. Search keyword is also mandatory so that won't work. Also cannot filter by IfcWall.
Option 1: /api/Dictionary/v1/Properties - great! I can get a full list of possible properties, and also search using a keyword. But I cannot filter by IfcWall, so I get tons of irrelevant properties :( I also have no idea what pset they are part of, so I need to make additional calls before I can actually add it to my object.
Option 2: /api/Dictionary/v1/Classes (i.e. with GroupsOfProperties) and then /api/Class/Properties/v1 - great! I can filter by IfcWall, and I can search using a keyword, and I also know what pset they are part of. What's not so great is that I need to make 1x call per class to /api/Class/Properties/v1. So if I ever want to query the IFC dictionary itself, that's nearly 800 HTTP requests! It's unusable compared to IfcPropertySetTemplate.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by comparing the documented /api/TextSearch/v2, /api/Dictionary/v1/Properties, /api/Dictionary/v1/Classes, and /api/Class/Properties/v1 behaviors described in the issue. Define the desired class, keyword, dictionary, and property-set filtering flow, then confirm what API response and request changes would make the query usable without hundreds of requests.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100