- Setup FastApi Backend
- Setup Project Structure
- Go through IDS documentation
- Go through IFC tester library codebase.
- Completed all the planned tasks.
- Not any progress or accomplishment as due to family emergency.
- Backend API to Interact with IFCTester Library
-
- Implemented the
POST /api/ids/loadIds
endpoint to accept an IDS Document, validating its schema against the predefined IDS Schema.
- Implemented the
- Implementing IDS Specs Library: Drag n Drop Functionality
The HTML5 Api is specailly hard to work through in case of drag n drop
- Leveraged the existing IDSLoader to enable users to import an IDS Document and map its specifications to the IDS Editor.
- Developed a new component,
IDSSpecLibrary
, which uses IDSLoader to load the specifications into the library and map them to the appropriate sections of the editor.
- Implementing IDS Specs Library: Drag n Drop Functionality
-
Overcame challenges with the HTML5 Drag n Drop API by carefully studying the documentation, enabling users to drag specifications from the library and drop them into the IDS Editor. This affected both the frontend editor and the actual IDS Document, ensuring the state remained consistent.
-
Fixed existing bugs in the HTML5 Drag n Drop API implementation and handled updates to the
nav
component, ensuring the correct sequence of specifications was reflected during drag and drop operations.
- Bug Fixes + Additional UI enhancement.
- Display loaded filenames
- Display error boundaries encountered while laoding the specs file.
- Above task was achieved.
- Enhance IDSLoader
- Current IDSLoader doesnt parse
PartOfFacet
and Complex Restrictions correctly, tends to break if a IDS is loaded that has these complex restriction orPartOfFacet
- Handeling Complex Restrictions needed more work.
- IdsLoader now handled
PartOfFacet
correctly.
- Design and Implement Facet DropDown Editor
- CompeUp with designFacetDropdown vs Facetmenu editor
- Complete community feedback on the FacetDropdown vs Facetmenu editor
- Implement FacetDropdown Editor
- The major difficllty was implementing the dropdown in resusbale component way , such that it gives a modular and easy way to add new facet.
- Had to revisit the IDS documentation to see how the structure of each facet look like and which tags should be used to identify each facet.
- had difficulty in relating the
load function
of each facet to their ids compoenet
- Less commmunication due to having diffculty in completing above task
- Achieved design goals , talked with community and mentor was able to come up with a plan for next days and created a IDSDropdown component that took care of complex restrictions excpets
Bounds
andLength
- Complete the 'Bounds' complex restriction in the complex restrictions dropdown.
- The dropdown to control should be dynamic and render the appropriate template. The difficulty arises from detecting the existing
minExclusive
,minInclusive
, etc., and then correctly showing the corresponding options in the dropdown. - When an option is changed, it should create the appropriate
idsElement
that will be used to verify theidsDocument
.
- Loading is completed.
- Currently working on the Dropdown option to create the appropriate
idsElement
.
- Completed
Entity Facet
- Too many combinations of templates to be considered ( making it cluttered)
- Entity Facet is addded Succesfully
- Complete
Attribute Facet
- Complete
Classification facet
- Completed
Attribute Facet
None made the code modular to take care of resusability
- Material Facet is addded Succesfully
- Complete
Material facet
- Complete
Classification facet
- Completed
Material facet
- Completed
Classification facet
None made the code modular to take care of resusability
- Material Facet is addded Succesfully
- Complete
PartOf
- Complete
Propoerty
- Completed
PartOf
- The PartOf Facet includes Entity Facet inside therefore existing parsing method was not able to modify the inside of entity Thefore breaking the already implemented flow
- Continue
PartOf
Facet
- Completed
PartOf
- The dropdown wasnt chaning the relation attirbute values
- Continue
PartOf
Facet
- Completed
PartOf
The templates were very large for part of facet so needed a solution
- Part Of Facet is addded Succesfully
- Complete
Propoerty
- Completed
Property Facet
The challenge here was too implement a large amount of templates also a challenge left to tackle is: dataType in property facet should be chosen on already given values but currently left as future scope for AutoComplete Feature.
- Facet Editor Completed
- Complete bunch of TODOs
- Priority1: edit in the value changes the correct and appropiate idsElement value/attribute
- Priority2: create a new specs button
- Priority3: complete
hasLength
Complex Restriction - Priority4: Addition and deletion of
optional types
for eg. Predfined type is optional so it should be avaialble to remove and add as per requirement - Priority5: Nav should be updated dynmically on drag and drop
- Priority6: Plan other TODOs.
- [] Complete bunch of TODOs
- Priority1: edit in the value changes the correct and appropiate idsElement value/attribute
- Priority2: create a new specs button
- Priority3: complete
hasLength
Complex Restrictions - Priority4: Addition and deletion of
optional types
for eg. Predfined type is optional so it should be avaialble to remove and add as per requirement - Priority5: Nav should be updated dynmically on drag and drop
- Priority6: Plan other TODOs.
- Complete bunch of TODOs
- Priority1: edit in the value changes the correct and appropiate idsElement value/attribute
Priority2: create a new specs buttonPriority3: completehasLength
Complex Restrictions- Priority4: Addition and deletion of
optional types
for eg. Predfined type is optional so it should be avaialble to remove and add as per requirement Priority5: Nav should be updated dynmically on drag and drop- Priority6: Plan other TODOs.
- [] Complete bunch of TODOs:
- Priority1: edit in the value changes the correct and appropiate idsElement value/attribute
- Priority2: Addition and deletion of
optional types
for eg. Predfined type is optional so it should be avaialble to remove and add as per requirement - Priority3: Write Better CSS - Priority4: Test with all example .ids and .ifc files - Priority5: Complete if any github issue is left and not addressed
- Priority1: edit in the value changes the correct and appropiate idsElement value/attribute
- Priority2: Addition and deletion of